Updated module header and tightened imports
Generalized some types to use polymorphic type synonyms
Removed unnecessary hiding clauses
Re-organized module and exported `maximum`, `minimum` and `toLazyM