// 2025-2026 Богданович Давид Когут Прихожденко (кдб.дійсність.укр)

взяти визначення КД;
взяти визначення мавка;
взяти визначення мавка/розбирач;

простір мавка {
  внутрішня дія КД_виділити_сиру_памʼять(система: *КД::Система, розмір: природне) -> *п8 {
    змінна М = система.дані як *Машина;
    вернути виділити<п8>(М, розмір);
  }

  внутрішня дія КД_перевиділити_сиру_памʼять(система: *КД::Система, значення: *п8, новий_розмір: природне) -> *п8 {
    змінна М = система.дані як *Машина;
    вернути перевиділити<п8>(М, значення, новий_розмір);
  }

  внутрішня дія КД_звільнити_сиру_памʼять(система: *КД::Система, значення: адреса) {
    змінна М = система.дані як *Машина;
    звільнити(М, значення);
  }

  дія перекодувати_ю8_в_кд(М: *Машина, значення: ю8, вихід: *кд, вихід_позиції_помилки: *природне) -> логічне {
    змінна система_КД = КД::Система {
      дані = М,
      виділити_сиру_памʼять = КД_виділити_сиру_памʼять,
      звільнити_сиру_памʼять = КД_звільнити_сиру_памʼять,
      перевиділити_сиру_памʼять = КД_перевиділити_сиру_памʼять
    };

    вернути КД::перекодувати_з_ю8(
      система_КД::адреса,
      значення,
      ні,
      так,
      вихід,
      вихід_позиції_помилки
    );
  }

  дія перекодувати_кд_в_ю8(М: *Машина, значення: кд, вихід: *ю8, вихід_позиції_помилки: *природне) -> логічне {
    змінна система_КД = КД::Система {
      дані = М,
      виділити_сиру_памʼять = КД_виділити_сиру_памʼять,
      звільнити_сиру_памʼять = КД_звільнити_сиру_памʼять,
      перевиділити_сиру_памʼять = КД_перевиділити_сиру_памʼять
    };

    вернути КД::перекодувати_в_ю8(
      система_КД::адреса,
      значення,
      так,
      вихід,
      вихід_позиції_помилки
    );
  }
}