diff --git a/HW1.fedorind.hs b/HW1.fedorind.hs index 3d92b6b..611498a 100644 --- a/HW1.fedorind.hs +++ b/HW1.fedorind.hs @@ -16,11 +16,6 @@ data Expr | Mul Expr Expr -- ^ Multiplication expressions deriving (Eq,Show) -instance Num Expr where - (+) = Add - (*) = Mul - fromInteger = Lit . fromInteger - fold :: (Int -> a) -> (a -> a -> a) -> (a -> a -> a) -> Expr -> a fold f1 f2 f3 = rec where @@ -28,6 +23,11 @@ fold f1 f2 f3 = rec rec (Add l r) = f2 (rec l) (rec r) rec (Mul l r) = f3 (rec l) (rec r) +instance Num Expr where + (+) = Add + (*) = Mul + fromInteger = Lit . fromInteger + -- | The expression: 2 + 3 * 4 e1 :: Expr e1 = Add (Lit 2) (Mul (Lit 3) (Lit 4))