@@ -274,6 +274,11 @@ execApp' env ctxt f@(EP _ (UN "mkForeign") _) args@(ty:fn:xs) | Just (FFun f arg
274274 Just r -> return (mkEApp r (drop (length argTs) xs))
275275 | otherwise = return (mkEApp f args)
276276
277+execApp' env ctxt c@(EP (DCon _ arity) n _) args =
278+ do args' <- mapM tryForce (take arity args)
279+ let restArgs = drop arity args
280+ execApp' env ctxt (mkEApp c args') restArgs
281+
277282execApp' env ctxt f@(EP _ n _) args =
278283 do let val = lookupDef n ctxt
279284 case val of