on master help sign in
Strictly evaluate type constructor args
2544d93David Christiansen
src/Core/Execute.hs+5
@@ -279,6 +279,11 @@ execApp' env ctxt c@(EP (DCon _ arity) n _) args =
279 let restArgs = drop arity args
279 let restArgs = drop arity args
280 execApp' env ctxt (mkEApp c args') restArgs
280 execApp' env ctxt (mkEApp c args') restArgs
281
281
282+execApp' env ctxt c@(EP (TCon _ arity) n _) args =
283+ do args' <- mapM tryForce (take arity args)
284+ let restArgs = drop arity args
285+ execApp' env ctxt (mkEApp c args') restArgs
286+
282execApp' env ctxt f@(EP _ n _) args =
287execApp' env ctxt f@(EP _ n _) args =
283 do let val = lookupDef n ctxt
288 do let val = lookupDef n ctxt
284 case val of
289 case val of