5 2 Конструктор деструктор

 struct Point 
 {
   public:
     let mut x : real = 0.0;
     let mut y : real = 0.0;

     fn::ctor Point(let const x, let const y)
     {
         init this.x = x;
         init this.y = y;
     };
     fn::dtor Point() {};
 }

Конструкторы называются именем класса и тип функции объявлен как fn::ctor. Деструкторы тоже называются именем класса и тип функции объявлен как fn::dtor. Ключевое слово init действующее в пределах конструктора обозначает переопределение дефолтного значения членов класса на указанное значение. Это аналог списка инициализации для c++, но более гибкий.

TODO: придумать в каком порядке члены инициализируются, возможные варианты: так как объявленны, как присвоенны, или как-то неопределённо для оптимизаций.

struct String
{
  public:
  let mut characters : char[] = null;
  let mut 
}
fn::ctor 

cast::auto

Ключевое слово которое говорит, что можно автоматически приводить к типу. (как explicit в c++ но наоборот)

fn::ctor cast::auto Point(let const val)
{
    init this.val = val;
};