It really is a great imperative langue! The IO monad is basically a better C, if you know how to wield the FFI.