diff options
Diffstat (limited to 'src/boot/translator.boot')
-rw-r--r-- | src/boot/translator.boot | 6 |
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 |