I've been trying to implement an instance Eq for a Function but I keep getting Syntax erros and can't find anywhere how it's supposed to be. A function is equal if for every input it throws the same output. So I tried just going through every input and check if the results are equal.
newtype Funktion = Fkt { f :: Zahlraum_0_10 -> Zahlraum_0_10 }
data Zahlraum_0_10 = N | I | II | III | IV | V | VI
| VII | VIII | IX | X | F deriving (Eq,Ord,Show)
instance Eq Funktion where
(==) (Fkt f2 _) (Fkt f1 _) = f2 I == f1 I && f2 II == f1 II && f2 III == f1 III &&
f2 IV == f1 IV && f2 V == f1 V && f2 VI == f1 VI && f2 VII == f1 VII && f2 VIII == f1 VIII &&
f2 IX == f1 IX && f2 X == f1 X && f2 N == f1 N && f2 F == f1 F