data Term = Con Int | Div Term Term; answer, err :: Term; answer = (Div (Div (Con 1972) (Con 2)) (Con 23)); err = (Div (Con 1)(Con 0)); eval :: Term -> Int; eval (Con a) = a; eval (Div t u) = (quot (eval t) (eval u)); main = print (eval answer) -- > 42