# TODO - Decide between lineair types / uniqueness vs garbage collector - https://borretti.me/article/how-australs-linear-type-checker-works - 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? - Functions don't seem to be a thing on typing level yet? - static_array and tuple should probably not be PrimitiveType3, but instead subclass AppliedType3? - See if we want to replace Fractional with Real, and add Rational, Irrationl, Algebraic, Transendental - test_bytes_index_out_of_bounds vs static trap(?) - Find pytest.mark.skip - There's a weird resolve_as reference in calculate_alloc_size - Either there should be more of them or less - At first glance, looks like failure in the typing system - Related to the FIXME in phasm_type3? - WEBASSEMBLY_BUILTIN_BYTES_OPS is special cased - Should be part of a prelude (?) - In Haskell this is not a type class - Casting is not implemented except u32 which is special cased - Parser is putting stuff in ModuleDataBlock - Compiler should probably do that - Make prelude more an actual thing - Merge in type3types.LOOKUP_TABLE - 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 UnaryOp.operator into type class methods - Move foldr into type class methods - PrimitiveType is just the type, nothing primitive about it (change the name). u32 are still basic types or something.