Requires module:adt module:generics.Show module:generics.Eq module:generics.Ord Classes All Any Char Fn Max Min Product Record Sum