-
TraditionalRecordSyntax -
- Since:
-
7.4.1
- Status:
-
Включено по умолчанию.
Разрешает традиционный синтаксис записей (например,
C {f = x}).
Традиционный синтаксис записей, такой как C {f = x}, включён по умолчанию. Чтобы его отключить, можно использовать расширение NoTraditionalRecordSyntax.
Под NoTraditionalRecordSyntax, запрещено определять тип данных записи или использовать синтаксис записи в выражении. Например, все следующие требуют TraditionalRecordSyntax:
data T = MkT { foo :: Int } -- record datatype definition
x = MkT { foo = 3 } -- construction
y = x { foo = 3 } -- update
f (MkT { foo = i }) = i -- pattern matching
Однако, если функция выбора поля находится в области видимости, она может использоваться обычно. (Это возникает, если модуль, использующий NoTraditionalRecordSyntax, импортирует модуль, который определил запись с включённым TraditionalRecordSyntax). Если вы хотите подавить функции выбора поля, используйте расширение NoFieldSelectors.