Juno Improvements: type inference and intrinsics
-
Add float kind to allow functions polymorphic over any float type (useful with our many float-only intrinsic functons)
-
Make type arguments optional on parametric types, functions, and intrinsic functions and add type wildcards
-
Modify type checking and inference to handle optional type arguments and type wildcards, improve handling of unconstrained types and produce errors if types remain unsolved
-
Add the Hercules intrinsic functions to Juno and implement code generation