@@ -23,9 +23,10 @@ import Control.Exception
2323import Control.Monad.Trans
2424import Control.Monad.Trans.State.Strict
2525import Control.Monad.Trans.Error
26−import Control.Monad
26+import Control.Monad hiding (forM)
2727import Data.Maybe
2828import Data.Bits
29+import Data.Traversable (forM)
2930import qualified Data.Map as M
3031
3132#ifdef IDRIS_FFI
@@ -175,9 +176,9 @@ doExec env ctxt v@(V i) | i < length env = return (snd (env !! i))
175176doExec env ctxt (Bind n (Let t v) body) = do v' <- doExec env ctxt v
176177 doExec ((n, v'):env) ctxt body
177178doExec env ctxt (Bind n (NLet t v) body) = trace "NLet" $ undefined
178−doExec env ctxt tm@(Bind n b body) = return $
179− EBind n (fmap (\_->EErased) b)
180− (\arg -> doExec ((n, arg):env) ctxt body)
179+doExec env ctxt tm@(Bind n b body) = do b' <- forM b (doExec env ctxt)
180+ return $
181+ EBind n b' (\arg -> doExec ((n, arg):env) ctxt body)
181182doExec env ctxt a@(App _ _) =
182183 do let (f, args) = unApply a
183184 f' <- doExec env ctxt f