Допустим у нас есть структура:
data Struct = Constructor {
field :: String,
value :: Integer
}
deriving (Show)
Далее мы ее инициализируем каким-то значением:
Prelude> let item = Constructor "Module" 100
Теперь имя item связано с типом Struct
Для получения значений отдельных полей, ты можешь использовать имена этих полей, как функции ( только если ты еспользуешь синтаксис, показанный в примере) :
Prelude> field s
"Module"
Prelude>value s
100