Rectangle

type Rectangle =
    inherit Control

    val memory@atom = (width@atom, height@atom)
        |> to_atom
        |> map { w, h ->
            let quad = Quad.create
                up_left = Vector3.new
                up_right = Vector3 w.as<f32> 0 0
                down_left = Vector3 0 h.as<f32> 0
                down_right = Vector3 w.as<f32> h.as<f32> 0

            MeshMemory.from_quad quad }

Прямоугольник хранит в себе геометрическую форму, созданную исходя из его ширины и высоты.

type Control
    var maybe_drawable : Option<Drawable> = None

Единица упаковки кода называется ящик.

Тип Rectangle определён в ящике control, отвечающем за внутреннюю логику элементов управления. Последний же фрагмент кода находится в ящике drawer, который выводит пользовательский интерфейс на экран и зависит от конкретного отрисовщика, частью которого является Drawable.

type Rectangle
    let material : ControlMaterial @auto

    val drawable = Drawable
        mesh = Mesh.from_memory memory@atom
        material = material.unwrap

    maybe_drawable = drawable

Поле material получает значение автоматически благодаря атрибуту @auto.

let material @publish = app.drawer.materials.control

let rectangle = Rectangle.new

Атрибут @publish делает значение доступным для подстановки в @auto привязки.

Именно неявная передача значений это не только вопрос снижения сложности. В других ящиках может находиться код, создающий Rectangle, но ничего не знающий о зависимостях, которые он получил в drawer. Весь этот код продолжит работать, но теперь при вызове будет требовать предварительно опубликованную material.