Можно ли сделать полиморфную проекцию строки (или записи) в PureScript? - PullRequest
1 голос
/ 08 октября 2019

Мне любопытно, есть ли полиморфная функция, такая как 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.

...