module Exercise_9 where {- Library DO NOT CHANGE -} infixl 6 :+: infixl 7 :*: data Arith = Literal Integer | Var String | Arith :+: Arith | Arith :*: Arith deriving (Show, Eq) {- End Library -} {-H9.1-} -- Beweis: abzugeben als map_tree.cprf {-H9.2-} eval :: (String -> Integer) -> Arith -> Integer eval = undefined equivalent :: (String -> Integer) -> Arith -> Arith -> Bool equivalent = undefined isSimple :: Arith -> Bool isSimple = undefined prop_isSimplification :: (Arith -> Arith) -> (String -> Integer) -> Arith -> Bool prop_isSimplification simplify valuation a = undefined {-H9.3-} simplify :: Arith -> Arith simplify = undefined {-H9.4-} g :: (a -> a') -> (b -> b') -> Either a b -> Either a' b' g = undefined h :: (a -> Either a b) -> a -> b h = undefined