@@ -6,18 +6,18 @@ import Effect.Random
6import Effect.StdIO
6import Effect.StdIO
8data Expr = Var String
8data Expr = Var String
9− | Val Int
9+ | Val Integer
10 | Add Expr Expr
10 | Add Expr Expr
11− | Random Int
11+ | Random Integer
14−Env = List (String, Int)
14+Env = List (String, Integer)
16-- Evaluator : Type -> Type
16-- Evaluator : Type -> Type
17-- Evaluator t
17-- Evaluator t
18-- = Eff m [EXCEPTION String, RND, STATE Env] t
18-- = Eff m [EXCEPTION String, RND, STATE Env] t
20−eval : Expr -> Eff IO [EXCEPTION String, STDIO, RND, STATE Env] Int
20+eval : Expr -> Eff IO [EXCEPTION String, STDIO, RND, STATE Env] Integer
21eval (Var x) = do vs <- get
21eval (Var x) = do vs <- get
22 case lookup x vs of
22 case lookup x vs of
23 Nothing => raise ("No such variable " ++ x)
23 Nothing => raise ("No such variable " ++ x)
@@ -31,7 +31,7 @@ eval (Random upper) = do val <- rndInt 0 upper
31testExpr : Expr
31testExpr : Expr
32testExpr = Add (Add (Var "foo") (Val 42)) (Random 100)
32testExpr = Add (Add (Var "foo") (Val 42)) (Random 100)
34−runEval : List (String, Int) -> Expr -> IO Int
34+runEval : List (String, Integer) -> Expr -> IO Integer
35runEval args expr = run [(), (), 123456, args] (eval expr)
35runEval args expr = run [(), (), 123456, args] (eval expr)
37main : IO ()
37main : IO ()