Why must every Monad instance be a datatype or newtype, even if there will be just a single constructor? Peter