24 lines
944 B
Text
24 lines
944 B
Text
done:
|
|
- everything is properly typed, up to the meta-circular level
|
|
- primitives
|
|
- structures: list, product, sum
|
|
can compose structures, e.g., create list of list of product of sum of ...
|
|
list type is specialized for ListOfByte to use Uint8Array
|
|
- generic types and type inferencing
|
|
|
|
todo:
|
|
- to support sets of slots, need comparison of slots
|
|
=> comparison of values
|
|
=> problem: how to compare transformed values? their inputs can come from different types
|
|
|
|
(a) tedious: put in every value:
|
|
- the type
|
|
- a comparison function for that type
|
|
then first compare types, if types match, compare values.
|
|
could generalize this by writing a compare function on 'typed' values.
|
|
|
|
(b) dirty: use 'magic' function that compares any JS value
|
|
|
|
- typeclass mechanism
|
|
|
|
- what about type links: they connect anything to its type... what is the type of 'anything'?
|