diff options
Diffstat (limited to 'assignment-13/uFPL/Util.dcl')
-rw-r--r-- | assignment-13/uFPL/Util.dcl | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/assignment-13/uFPL/Util.dcl b/assignment-13/uFPL/Util.dcl new file mode 100644 index 0000000..0370fc9 --- /dev/null +++ b/assignment-13/uFPL/Util.dcl @@ -0,0 +1,20 @@ +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 |