- show (Lambda x t) = "\\" ++ x ++ "." ++ show t
- show (App t r) = "(" ++ show t ++ " " ++ show r ++ ")"
+ show (EmLambda x y t) = show (Lambda (x ++ " " ++ y) t)
+ show (Lambda x t) = "(λ" ++ x ++ "." ++ show t ++ ")"
+ show (AppApp a b c) = show a ++ " " ++ braced (App b c)
+ show (App t r) = show t ++ " " ++ show r
+
+braced :: Term -> String
+braced t = "(" ++ show t ++ ")"
+
+-- |
+-- prop> t == tRead (show (t :: Term))