aboutsummaryrefslogtreecommitdiff
path: root/src/boot/translator.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/boot/translator.boot')
-rw-r--r--src/boot/translator.boot6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/boot/translator.boot b/src/boot/translator.boot
index 08b0bfde..3ac9a1c5 100644
--- a/src/boot/translator.boot
+++ b/src/boot/translator.boot
@@ -379,9 +379,13 @@ genDeclaration(n,t) ==
if argTypes ~= nil and symbol? argTypes
then argTypes := [argTypes]
["DECLAIM",["FTYPE",["FUNCTION",argTypes,valType],n]]
+ t is ["%Forall",vars,t'] =>
+ vars = nil => genDeclaration(n,t')
+ if symbol? vars then
+ vars := [vars]
+ genDeclaration(n,applySubst([[v,:"*"] for v in vars],t'))
["DECLAIM",["TYPE",t,n]]
-
++ Translate the signature declaration `d' to its Lisp equivalent.
translateSignatureDeclaration d ==
case d of