mult :: Expr
mult = (Lam "x" (Lam "y"
        (If (BinOp Equal
            (Ident "x")
            (Lit (LInt 0)))
            (Lit $ LInt 0)
            (BinOp Plus
                (Ident "y")
                (App (App (Ident "mult") (BinOp Minus (Ident "x") (Lit (LInt 1)))) (Ident "y"))
            )

       )))
mult :: Expr
mult = (Lam "x" (Lam "y"
        (If (BinOp Equal
            (Ident "x")
            (Lit (LInt 0)))
            (Lit $ LInt 0)
            (BinOp Plus
                (Ident "y")
                (App (App (Ident "mult") (BinOp Minus (Ident "x") (Lit (LInt 1)))) (Ident "y"))
            )

       )))
mult = (Lam "x" (Lam "y"
        (If (BinOp Equal
            (Ident "x")
            (Lit (LInt 0)))
            (Lit $ LInt 0)
            (BinOp Plus
                (Ident "y")
                (App (App (Ident "mult") (BinOp Minus (Ident "x") (Lit (LInt 1)))) (Ident "y"))
            )

       )))