language: Haskell (ghc-7.4.1)
date: 630 days 14 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
data Expr = Lit Int |
    Expr :+: Expr |
    Expr :-: Expr |
    Expr :*: Expr deriving (Eq, Show)
 
instance Num Expr where
    (+) = (:+:)
    (-) = (:-:)
    (*) = (:*:)
    negate = (Lit 0 :-:)
    abs e = e -- todo
    signum e = Lit 1 -- todo
    fromInteger = Lit . fromInteger
 
main = do
    putStr $ show ((2 + 3 * 4) :: Expr)
[1 of 1] Compiling Main             ( prog.hs, prog.o )
Linking prog ...