By annotating types with the constructor application that was used to create them. Later on we can use the router to replace compiler's INSTANCES or for user defined types.
1.8 KiB
TODO
-
Decide between lineair types / uniqueness vs garbage collector
-
Rename constant to literal
-
Implement a trace() builtin for debugging
-
Check if we can use DataView in the Javascript examples, e.g. with setUint32
-
Storing u8 in memory still claims 32 bits (since that's what you need in local variables). However, using load8_u / loadu_s we can optimize this.
-
Implement a FizzBuzz example
-
Also, check the codes for FIXME and TODO
-
Allocation is done using pointers for members, is this desired?
-
See if we want to replace Fractional with Real, and add Rational, Irrationl, Algebraic, Transendental
-
Does Subscript do what we want? It's a language feature rather a normal typed thing. How would you implement your own Subscript-able type?
- Clean up Subscript implementation - it's half implemented in the compiler. Makes more sense to move more parts to stdlib_types.
-
Have a set of rules or guidelines for the constraint comments, they're messy.
-
Why is expression_subscript_bytes using a helper method but expression_subscript_static_array is not?
-
Parser is putting stuff in ModuleDataBlock
- Surely the compiler should build data blocks
-
Make prelude more an actual thing
- Merge in compiler.INSTANCES
- Make it less build in - have a environment class of some kind
-
Implemented Bounded: https://hackage.haskell.org/package/base-4.21.0.0/docs/Prelude.html#t:Bounded
-
Try to implement the min and max functions using select
-
Filter out methods that aren't used; other the other way around (easier?) only add __ methods when needed
-
Move foldr into type class methods
- Functions don't seem to be a thing on typing level yet?
- Related to the FIXME in phasm_type3?
- Type constuctor should also be able to constuct placeholders - somehow.