В приведенном ниже коде,
{-# LANGUAGE OverloadedLabels #-}
module Foo where
data R = R { x :: Int }
g :: Int
g = #x (R { x = 1 })
Я ожидал, что это проверка типа, но вместо этого я получаю:
foo.hs:7:5: error:
• No instance for (GHC.OverloadedLabels.IsLabel "x" (R -> Int))
arising from the overloaded label ‘#x’
(maybe you haven't applied a function to enough arguments?)
• In the expression: #x
In the expression: #x (R {x = 1})
In an equation for ‘g’: g = #x (R {x = 1})
Учитывая перегруженные поля записи предложение, я ожидал, что будет встроенный экземпляр IsLabel "x" (R -> Int)
. Это все еще так или же реализация отклоняется от предложения?