aboutsummaryrefslogtreecommitdiff
path: root/neb/std/core.py
diff options
context:
space:
mode:
Diffstat (limited to 'neb/std/core.py')
-rw-r--r--neb/std/core.py13
1 files changed, 6 insertions, 7 deletions
diff --git a/neb/std/core.py b/neb/std/core.py
index d9f512e..1c3c4b4 100644
--- a/neb/std/core.py
+++ b/neb/std/core.py
@@ -30,7 +30,7 @@ def interpretDef(symbol, args, env, ns):
def_name_arg = Arg("name", TypeEnum.ANY, lazy=True)
def_val_arg = Arg("value", TypeEnum.ANY)
-CORE.register("def", Builtin("def", interpretDef, [def_name_arg, def_val_arg]))
+CORE.register("def", Builtin("def", interpretDef, [def_name_arg, def_val_arg], return_type=Type(":list")))
def interpretRedef(symbol, args, env, ns):
if not isinstance(args[0], Symbol):
@@ -42,7 +42,7 @@ def interpretRedef(symbol, args, env, ns):
env.reregister(name, args[1])
return List([])
-CORE.register("redef", Builtin("redef", interpretRedef, [def_name_arg, def_val_arg]))
+CORE.register("redef", Builtin("redef", interpretRedef, [def_name_arg, def_val_arg], return_type=Type(":list")))
def interpretLambda(symbol, args, env, ns):
new_args = args
@@ -121,7 +121,7 @@ def interpretFunc(symbol, args, env, ns):
env.register(name, func)
return List([])
-CORE.register("func", Builtin("func", interpretFunc, [def_name_arg, lambda_args_arg, lambda_body_arg], lambda_body_arg))
+CORE.register("func", Builtin("func", interpretFunc, [def_name_arg, lambda_args_arg, lambda_body_arg], lambda_body_arg, Type(":list")))
def interpretBlock(symbol, args, env, ns):
ret = List([])
@@ -157,14 +157,14 @@ def interpretUse(symbol, args, env, ns):
interpret(parse(lex(data)), env, ns)
return List([])
-CORE.register("use", Builtin("use", interpretUse, [Arg("filename", TypeEnum.STRING)]))
+CORE.register("use", Builtin("use", interpretUse, [Arg("filename", TypeEnum.STRING)], return_type=Type(":list")))
def interpretAssert(symbol, args, env, ns):
if args[0].value != True:
raise InterpretPanic(symbol, "assertion failed")
return List([])
-CORE.register("assert", Builtin("assert", interpretAssert, [Arg("cond", TypeEnum.BOOL)]))
+CORE.register("assert", Builtin("assert", interpretAssert, [Arg("cond", TypeEnum.BOOL)], return_type=Type(":list")))
def interpretUseAs(symbol, args, env, ns):
target_file_name = args[0].value
@@ -176,7 +176,7 @@ def interpretUseAs(symbol, args, env, ns):
interpret(parse(lex(data)), env, args[1].name)
return List([])
-CORE.register("use-as", Builtin("use-as", interpretUseAs, [Arg("filename", TypeEnum.STRING), Arg("namespace", TypeEnum.ANY, lazy=True)]))
+CORE.register("use-as", Builtin("use-as", interpretUseAs, [Arg("filename", TypeEnum.STRING), Arg("namespace", TypeEnum.ANY, lazy=True)], return_type=Type(":list")))
def interpretQuote(symbol, args, env, ns):
return args[0]
@@ -218,4 +218,3 @@ type_parent_arg = Arg("name", TypeEnum.ANY)
type_func_arg = Arg("func", TypeEnum.ANY)
CORE.register("type", Builtin("type", interpretType, [type_name_arg, type_parent_arg, type_func_arg]))
-