Type one: where all the side effects are hidden behind an OS call.
Type two: Where side effects are primary and unavoidable.
People on the standards committee universally write type one code (compilers and the like). Where the Linux kernel is type two.