Especially if you get an easy way out for when you need it.<p>Like unsafePerformIO, but for calling not-proven-to-be-terminating functions.  Or an explicit marker like the wrapping monads for side-effecting functions.