Kaba class Complex ed

...

Syntax ed

class Complex
    var x: f32
    var y: f32

    # constructors
    func mut __init__(x: f32, y: f32)

    # functions
    func pure abs() -> f32
    func pure abs_sqr() -> f32
    func pure bar() -> Complex

    # operators
    func pure __str__() -> string        # str(Complex) -> string
    func mut __assign__(b: Complex)      # Complex = Complex
    func pure __add__(b: Complex) -> Complex # Complex + Complex -> Complex
    func pure __sub__(b: Complex) -> Complex # Complex - Complex -> Complex
    func pure __mul__(b: Complex) -> Complex # Complex * Complex -> Complex
    func pure __mul__(b: f32) -> Complex # Complex * f32 -> Complex
    func pure __div__(b: Complex) -> Complex # Complex / Complex -> Complex
    func mut __iadd__(b: Complex)        # Complex += Complex
    func mut __isub__(b: Complex)        # Complex -= Complex
    func mut __imul__(b: Complex)        # Complex *= Complex
    func mut __idiv__(b: Complex)        # Complex /= Complex
    func pure __eq__(b: Complex) -> bool # Complex == Complex -> bool
    func pure __neg__() -> Complex       # - Complex -> Complex

    # constants
    let I: Complex

Functions ed

func pure abs() -> f32
...

func pure abs_sqr() -> f32
...

func pure bar() -> Complex
...

Elements ed

var x: f32
...

var y: f32
...