Я не совсем понимаю, почему это работает:
module Records where
type Element e = { element :: String, label :: String | e }
type Sel = ( value :: Number, values :: [Number] )
type Select = Element Sel
в то время как это говорит Cannot unify # * with *
.
module Records where
type Element e = { element :: String, label :: String | e }
type Sel = { value :: Number, values :: [Number] }
type Select = Element Sel
(Обратите внимание на '()' вокруг правой части Sel вместо '{}'.)
Я прочитал здесь https://leanpub.com/purescript/read#leanpub-auto-objects-and-rows, которые forall r. { firstName :: String, lastName :: String | r }
обессахаривают forall r. Object (firstName :: String, lastName :: String | r)
Я все еще немного сбит с толку, почему вы не можете использовать рекордный сахар для расширения записей.