( Please excuse the odd syntax. Hashnode doesn't support coloring for OCaml. )
Pure functional programming is neat. It allows for some extremely unique optimisations and speed improvements - but it makes usual programming things like IO hard.
Therefo...