You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
A program which contains a let annotated (using either Promise or Assume) by a polymorphic type, itself located inside a Promise (which triggers the "strict" or "static" typechecking mode), is unduly rejected.
To Reproduce
let f =
Promise(forall a. a -> a, let g =
Promise(forall a. a -> a, fun x => x)
in g)
in f 2
which results in
Typechecked: Err("The following types dont match Arrow(Constant(119), Constant(119))
-- Forall(Ident(\"a\"), Concrete(Arrow(Concrete(Var(Ident(\"a\"))), Concrete(Var(Ident(\"a\"))))))")
Evaluation finished with result:
Num(2.0)
Expected behavior
Well-typed programs with polymorphic annotations inside a promise should typecheck. In particular, the previous example should result in the output:
Typechecked: Ok(Types(Dyn))
Evaluation finished with result:
Num(2.0)
The text was updated successfully, but these errors were encountered:
Describe the bug
A program which contains a let annotated (using either
Promise
orAssume
) by a polymorphic type, itself located inside aPromise
(which triggers the "strict" or "static" typechecking mode), is unduly rejected.To Reproduce
which results in
Expected behavior
Well-typed programs with polymorphic annotations inside a promise should typecheck. In particular, the previous example should result in the output:
The text was updated successfully, but these errors were encountered: