Kaba class Button ed

...

Syntax ed

class Button

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

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

    # constants
    let CIRCLE: Button
    let CROSS: Button
    let DOWN: Button
    let L1: Button
    let L3: Button
    let LEFT: Button
    let OPTIONS: Button
    let PS: Button
    let R1: Button
    let R3: Button
    let RIGHT: Button
    let SHARE: Button
    let SQUARE: Button
    let TRIANGLE: Button
    let UP: Button

Functions ed

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

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

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