- Ptr addr# = castStablePtrToPtr stablePtr
- hvals = ExplicitList opaqueTy (map wrapInOpaque scope)
- locInfo = nlTuple [ HsLit (HsString (packageIdFS$ modulePackageId mod))
- , HsLit (HsString mod_name)
- , HsLit (HsInt (fromIntegral site))]
-
- funE = l$ HsVar jumpFuncId
- ptrE = l (HsLit (HsInt (fromIntegral (I# (addr2Int# addr#)))))
- hvalE = l hvals
- locE = l locInfo
- msgE = l (srcSpanLit loc)
- return$ l(l(l(l(funE `HsApp` ptrE) `HsApp` hvalE) `HsApp` locE) `HsApp` msgE)
+ Ptr addr# = castStablePtrToPtr stablePtr
+ locals = ExplicitList opaqueTy (map wrapInOpaque scope)
+ locInfo = nlTuple [ HsVar mod_name_ref
+ , HsLit (HsInt (fromIntegral site))]
+ funE = l$ HsVar jumpFuncId
+ ptrE = (HsLit (HsInt (fromIntegral (I# (addr2Int# addr#)))))
+ locE = locInfo
+ msgE = srcSpanLit loc
+ argsE = nlTuple [ptrE, locals, msgE]
+ lazy_argsE = HsApp (l$ HsWrap (WpTyApp argsT) (HsVar lazyId)) (l argsE)
+ argsT = mkTupleType [intTy, mkListTy opaqueTy, stringTy]
+ return $
+ l(l(funE `HsApp` l locE) `HsApp` l lazy_argsE)
+