hunk ./Yhc/Core/GRIN/ElimDead.hs 137 - ff _ _ _ = GVar "n0" + ff _ v _ = case M.lookup (HVar (unVar v)) hm of + Just [HasValue (GTag ('K':'@':_))] -> GVar "n0" + Just [HasValue (GTagged ('F':'@':_) _)] -> GVar "n0" + Just [HasValue (GTagged ('P':'@':_) _)] -> GVar "n0" + Just _ -> v + Nothing -> GVar "n0" hunk ./Yhc/Core/GRIN/OptFetch.hs 44 - Just [HasValue (GTag ('K':'@':caf))] -> - let vv = unGVar bv ++ "'" ++ v - cv = vv ++ "'1" - rv = vv ++ "'2" - call = GBind (GCall caf []) (gVar cv) - ftch = GBind (GFetch cv t0 (Just n)) (gVar rv) - ret = GSimple (GUnit $ gVar rv) - in GBind (GInline [call, ftch, ret]) bv + Just [HasValue (GTag ('K':'@':_))] -> evalvar bv v t0 n + Just [HasValue (GTagged ('F':'@':_) _)] -> evalvar bv v t0 n hunk ./Yhc/Core/GRIN/OptFetch.hs 51 + evalvar bv v t0 n = + let vv = unGVar bv ++ "'" ++ v + cv = vv ++ "'1" + rv = vv ++ "'2" + call = GBind (GCall "GRIN;eval" [gVar v]) (gVar cv) + ftch = GBind (GFetch cv t0 (Just n)) (gVar rv) + ret = GSimple (GUnit $ gVar rv) + in GBind (GInline [call, ftch, ret]) bv