prim syntax → builtin

This commit is contained in:
2026-09-21 05:01:20 -06:00
parent 94ab42007a
commit f143df400a
3 changed files with 6 additions and 11 deletions
+2 -2
View File
@@ -18,7 +18,7 @@ genCodeName f = gensym' @Name $ f ^. _Wrapped' . to (<> "-code")
bindEnv :: List Name -> Exp -> Exp
bindEnv frees m = [cps|
(prim (get-env) (κ #{frees} #{m}))
(builtin (get-env) (κ #{frees} #{m}))
|]
close1 :: forall es. GenSym :> es => Exp -> Eff es Exp
@@ -41,7 +41,7 @@ close1 = \case
let codes = bs' ^.. each . _1 . to MkLabel
pure [cps|
(letrec #{bs'}
(prim (make-shared-closure #{codes} #{frees})
(builtin (make-shared-closure #{codes} #{frees})
(κ #{boundNames}
#{e})))
|]
+1 -6
View File
@@ -49,15 +49,10 @@ convert (Scm.ExpLit l) k = k . one . ValImm $ case l of
convert (Scm.ExpBuiltin p) k =
telescope (convert1 @es) p \p' -> do
r_l <- gensym' "r"
-- k_l <- gensym' @Name "prim-k"
m <- k [ValVar r_l]
pure [cps|
(prim #{p'} (κ (#{r_l}) #{m}))
(builtin #{p'} (κ (#{r_l}) #{m}))
|]
-- pure [cps|
-- (letrec ((#{k_l} (κ (#{r_l}) #{m})))
-- (prim #{p'} #{k_l}))
-- |]
convert (Scm.ExpLambda xs e) k = do
f <- gensym' "lambda-body"
+3 -3
View File
@@ -335,7 +335,7 @@ instance S.DatumIso Abs where
instance S.DatumIso Exp where
datumIso = S.match
$ S.With (. prim)
$ S.With (. builtin)
$ S.With (. letrec)
$ S.With (. continue)
$ S.With (. if_)
@@ -365,8 +365,8 @@ instance S.DatumIso Exp where
>>> S.el (S.datumIso @Kexp)
>>> S.rest (S.datumIso @Val)
>>> S.onTail S.swap
prim = S.list $
S.el (S.decorate S.SynBuiltin >>> S.sym "prim")
builtin = S.list $
S.el (S.decorate S.SynBuiltin >>> S.sym "builtin")
>>> S.el (builtinDatumIso id (S.datumIso @Val))
>>> S.el S.datumIso