Kaba class Type ed

...

Syntax ed

class Type

    # functions
    func static pure all(type: Class&) -> Type[]
    func static pure from_int(i: i32) -> Type
    func static pure parse(label: string, type: Class&) -> Type

    # operators
    func pure __i32__() -> i32           # i32(Type) -> i32
    func static __assign__(a: Type, b: Type) # Type = Type
    func pure __add__(b: Type) -> Type   # Type + Type -> Type
    func static __iadd__(a: Type, b: Type) # Type += Type
    func pure __eq__(b: Type) -> bool    # Type == Type -> bool
    func pure __neq__(b: Type) -> bool   # Type __neq__ Type -> bool
    func pure __bitand__(b: Type) -> Type # Type & Type -> Type
    func pure __bitor__(b: Type) -> Type # Type | Type -> Type

    # constants
    let CONSTANT: Type
    let DUMMY: Type
    let FLOAT: Type
    let FUNCTION: Type
    let LIST: Type
    let NUMBER: Type
    let OPERATOR: Type
    let SPECIAL: Type
    let VARIABLE: Type

Functions ed

func static pure all(type: Class&) -> Type[]
...

func static pure from_int(i: i32) -> Type
...

func static pure parse(label: string, type: Class&) -> Type
...