@@ -73,7 +73,7 @@ import PureScript.Backend.Optimizer.Analysis (BackendAnalysis)
7373import PureScript.Backend.Optimizer.CoreFn (Ann(..), Bind(..), Binder(..), Binding(..), CaseAlternative(..), CaseGuard(..), Comment, ConstructorType(..), Expr(..), Guard(..), Ident(..), Literal(..), Meta(..), Module(..), ModuleName(..), ProperName, Qualified(..), ReExport, findProp, propKey, propValue, qualifiedModuleName)
7474import PureScript.Backend.Optimizer.Directives (DirectiveHeaderResult, parseDirectiveHeader)
7575import PureScript.Backend.Optimizer.Semantics (BackendExpr(..), BackendSemantics, Ctx, DataTypeMeta, Env(..), EvalRef(..), ExternImpl(..), ExternSpine, InlineDirective(..), NeutralExpr(..), build, evalExternFromImpl, freeze, optimize)
76−import PureScript.Backend.Optimizer.Semantics.Foreign (coreForeignSemantics)
76+import PureScript.Backend.Optimizer.Semantics.Foreign (ForeignEval)
7777import PureScript.Backend.Optimizer.Syntax (BackendAccessor(..), BackendOperator(..), BackendOperator1(..), BackendOperator2(..), BackendOperatorOrd(..), BackendSyntax(..), Level(..), Pair(..))
7878import PureScript.Backend.Optimizer.Utils (foldl1Array)
7979import Safe.Coerce (coerce)
@@ -106,6 +106,7 @@ type ConvertEnv =
106106 , implementations :: BackendImplementations
107107 , moduleImplementations :: BackendImplementations
108108 , directives :: Map EvalRef InlineDirective
109+ , foreignSemantics :: Map (Qualified Ident) ForeignEval
109110 , rewriteLimit :: Int
110111 }
111112
@@ -270,7 +271,7 @@ makeExternEval :: ConvertEnv -> Env -> Qualified Ident -> Array ExternSpine -> M
270271makeExternEval conv env qual spine = do
271272 let
272273 result = do
273− fn <- Map.lookup qual coreForeignSemantics
274+ fn <- Map.lookup qual conv.foreignSemantics
274275 fn env qual spine
275276 case result of
276277 Nothing -> do