Open Cypher1 opened 5 years ago
Work on this has progressed substantially in https://github.com/Cypher1/Tako/pull/72 but the PrimOpTypes still need to be converted to use the new data types, as does the interpreter.
This should allow the start of work on code generation and exploration of unification of Tako's two type checkers (one for data and one for predicates).
A small subset of common operations on bit vectors are available and a bool/bit, uint
Building on #48 there should be a simple way to build more complex data structures that support tagging (at compile time where possible).
Ideally these would be subtypable (i.e. Left a and Right b a subtypes of Either a b and do not need to be defined separately). This should make typing guarantees more useful without requiring common Haskell patterns such as
data Value = IntV Int | BoolV Bool
. Instead it should be possible to have a typeValue = Int | Bool
, only requiring clarification when those types overlap.