Если вы используете библиотеку fieldslib Джейн Стрит, доступную с core, то вы можете написать:
type t = { a:int; b:int } with fields
и это дает вам a
и b
в качестве функций выбора типа t -> int
Он также предоставляет вам подмодуль под названием Fields
из так называемых полей первого класса , которые включают селектор, мутатор и, что критично для некоторых приложений, строковое имя поля. Это очень полезно для создания хороших сообщений об ошибках в функциях проверки, например.
Вы также получаете некоторые функции более высокого порядка для всей записи, наиболее полезно сгиб по записи.