+++ /dev/null
-definition module GenPrint\r
-\r
-import StdGeneric\r
-\r
-class PrintOutput s where\r
- printOutput :: Char *s -> *s\r
- \r
-:: *StringOutput\r
-\r
-:: PrintState s\r
-\r
-mkPrintState :: *s -> PrintState *s | PrintOutput s\r
-mkStringPrintState :: PrintState StringOutput\r
-printToString :: a -> String | gPrint{|*|} a\r
-\r
-(<<-) infixl 0 :: (PrintState *s) a -> *(PrintState *s) \r
- | gPrint{|*|} a & PrintOutput s\r
-\r
-\r
-instance PrintOutput StringOutput \r
-instance PrintOutput File\r
-\r
-generic gPrint a :: a (PrintState *s) -> (PrintState *s) | PrintOutput s\r
-\r
-derive gPrint Int, Real, Char, Bool, String, UNIT, PAIR, EITHER, FIELD, CONS, OBJECT, [], {!}, {}\r
-//derive bimap PrintState\r
-\r