Структура

type TextPos = struct
    line : u32
    char : u32

Структура TextPos содержит два поля типа u32.

let position = TextPos line = 1
                       char = 8

position это неизменяемая привязка, доступная до конца текущего файла.

let position = TextPos
    line = 1
    char = 8

Задание значений полей перенесено на новую строку.

let line = 1
let char = 8

let position = TextPos =line =char

Использован короткий синтаксис, так как поля и привязки имеют одинаковые имена.

let position = TextPos 1 8

Поля получают значения позиционно.

let position = TextPos.new

Если все поля структуры являются числовыми, то new инициализирует их нулём.

type TextPos
    def left = TextPos line (char - 1)

Структура TextPos открывается, чтобы добавить метод left.

type TextPos
    def move_left @mut =
        char -= 1

let mut position = TextPos 1 8
position.move_left

Атрибут @mut добавлен к методу move_left, чтобы поля стали доступными для записи. Вызвать такой метод можно только для изменяемой структуры.