simplify: no distinction between generic types and 'normal' types.

This commit is contained in:
Joeri Exelmans 2025-05-08 16:58:07 +02:00
parent b4826605af
commit a664ddac8a
27 changed files with 535 additions and 360 deletions

View file

@ -1,12 +1,20 @@
done:
- everything is properly typed, up to the meta-circular level
- primitives
- structures: list, product, sum
- 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
set and dictionary implemented as purely functional red-black tree
keys allowed: (anything with total ordering)
- primitive values
- structural values
- dynamically typed values
- types
- generic types and type unification (inferencing)
- recursive types
todo:
- dynamically typed values: have 'Any' or 'Top' type?
- 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
@ -19,6 +27,5 @@ todo:
(b) dirty: use 'magic' function that compares any JS value
- typeclass mechanism
- interfaces (type classes)
- what about type links: they connect anything to its type... what is the type of 'anything'?