Union型クラス
union関数が定義されている
2つのRow型のUnionを計算する
重複しているものも含む
code:purs(hs)
class Union (left :: # Type) (right :: # Type) (union :: # Type)
| left right -> union, right union -> left, union left -> right
こっちの定義の方がやや見やすい
code:purs(hs)
class Union (left :: Row k) (right :: Row k) (union :: Row k) | left right -> union, right union -> left, union left -> right
union関数
2つのrecordをmergeする関数
code:purs(hs)
union :: forall r1 r2 r3. Union r1 r2 r3 => { | r1 } -> { | r2 } -> { | r3 }
union { x: 1, y: "y" } { y: 2, z: true }
:: { x :: Int, y :: String, y :: Int, z :: Boolean }
rowが重複していても、全部mergeしている