data Boolean = Wahr | Falsch deriving Show data Paar a = Paar a a deriving Show data Liste a = Nil | Cons a (Liste a) deriving Show data GeomObjekt = Linie (Paar Int) Int | Rechteck (Paar Int) Int Int | Quadrat (Paar Int) Int deriving Show und :: Boolean -> Boolean -> Boolean und a b = case a of Wahr -> b Falsch -> Falsch operationPaar :: (a -> a -> b) -> Paar a -> b operationPaar f (Paar a b) = f a b undPaar :: Paar Boolean -> Boolean undPaar p = operationPaar (\ a b -> und a b) p --mapListe :: mapListe f l = undefined --undPaarListe :: undPaarListe l = undefined --istQuadrat :: istQuadrat l = undefined