Мне любопытно, есть ли полиморфная функция, такая как project
ниже, или если возможно разработать такую функцию в PureScript:
type MyRecRow = (a :: Int, b :: String)
type MyRec = Record MyRecRow
type MyRecA = {a :: Int}
foo :: MyRec
foo = {a: 5, b: "bbb"}
bar :: MyRecA
bar = project(foo)
Мои нынешние предложения по пониманию этого могут быть возможны вуровень типа, использующий такие вещи, как Prim.Row Cons
и Lacks
, и, возможно, что-то вроде purescript-heterogeneous
для реализации, хотя это немного выше моего текущего уровня беглости с PureScript.