Gradual typing
breandan opened this issue · comments
Currently, Kotlin∇ requires declaring all type and shape information at compile time. It should be possible to relax this constraint to support more flexible prototyping. To implement this feature, we would need to introduce an untyped class hierarchy to the DSL. Bidirectional operator overloads could be used to translate to and from the typed and untyped hierarchies. The semantics for these conversions must be thought out more carefully, but essentially would not be dissimilar to the existing operators for dimension switching, i.e. between scalar, vector and matrix functions.
References
- Gradually typed symbolic expressions, Broman and Siek (2018)