module Expr where data Exp = Var String | App Exp Exp | Lam String Exp -- Lambda-Ausdrücke | S | K | I -- Kombinatoren | M | N | P -- Platzhalter für Ausdrücke deriving Eq instance Show Exp where show (Var cs) = cs show (App e1 e2) = '(' : show e1 ++ " " ++ show e2 ++ ")" show (Lam cs e) = "(\\ " ++ cs ++ "." ++ show e show S = "S" show K = "K" show I = "I" show M = "M" show N = "N" show P = "P"