definition module uFPL.Util :: PrState = { indent :: Int , output :: [String] } class print a :: a -> PrState -> PrState printToString :: a -> String | print a instance print (PrState -> PrState) instance print String instance print Int nl :: PrState -> PrState indent :: PrState -> PrState unindent :: PrState -> PrState prsperse :: a [b] -> PrState -> PrState | print a & print b