True False False True False True True True False True False A 'a' B False C 'a' 1 D A (A 'a') A 42 B D C True 3 D R {x = 'a', y = 10} R {x = R {x = 'b', y = 11}, y = 10} R {x = True, y = 12} R {x = True, y = 12} Alt [True] [F0,F1 '1',F2 ('2',"34"),F3 5,F4 '6' 7,F5 fcn(100)='d',F6 (Just [F1 '8',F1 '9']),F7 (FF 0 ':'),F8 [(';','<'),('=','>')]] [G1 "True",G2 ["True","False"]] [1,2,3,4,6,7,8] U5 [U1,U2 1,U3 (True,1),U4 (False,2) 1 ((True,3),(False,4))] 1 (X,Z) [X] [X,Y] [X,Y,Z] [] [Y] [Y,Z] [] [] [Z] 0 0 0 -1 -1 -1 -2 -2 -2 1 1 1 0 0 0 -1 -1 -1 2 2 2 1 1 1 0 0 0 True True True False False False False False False False True True False True True False False False False False True False False True False False True [MkPair False 2,MkPair False 3,MkPair False 4,MkPair False 5,MkPair True 2,MkPair True 3,MkPair True 4,MkPair True 5] 5 True Leaf 1 :^: Leaf 2 Leaf 1 :^: Leaf 2 Nothing 1 `Cons` (2 `Cons` Nil) 1 `Cons` (2 `Cons` Nil) Nothing Nothing (:::) () (:::) () Nothing (Rec Bool,X)