summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Env.hs9
1 files changed, 7 insertions, 2 deletions
diff --git a/Env.hs b/Env.hs
index a914dab..5064392 100644
--- a/Env.hs
+++ b/Env.hs
@@ -6,9 +6,14 @@ import State
type Dispatch = String -> (String -> IO ()) -> Env -> IO ()
data Env = DispatchEnv State Conf Dispatch | Env State Conf
+castEnv :: Env -> Env
+castEnv (DispatchEnv state conf _) = Env state conf
+
envGetInt :: String -> Env -> Int
-envGetInt key (DispatchEnv _ conf _) = getUnwrappedInt key conf
+envGetInt key (Env _ conf) = getUnwrappedInt key conf
+envGetInt key env = envGetInt key (castEnv env)
envGet :: String -> Env -> String
-envGet key (DispatchEnv _ conf _) = getUnwrapped key conf
+envGet key (Env _ conf) = getUnwrapped key conf
+envGet key env = envGet key (castEnv env)