purescript-0.14.4: tests/purs/failing/3701.purs
-- @shouldFailWith TypesDoNotUnify
module Main where
import Prim.Row as Row
merge
:: forall r1 r2 r3 r4
. Row.Union r1 r2 r3
=> Row.Nub r3 r4
=> Record r1
-> Record r2
-> Record r4
merge r = merge r
type FooRow r =
( thing1 :: String
, thing2 :: Int
| r
)
type AddedRow =
( thing3 :: String )
type AddedRow2 =
( thing1 :: String )
fooMerge :: forall addedRow.
Row.Union addedRow (FooRow ()) (FooRow addedRow) =>
Row.Nub (FooRow addedRow) (FooRow addedRow) =>
Record addedRow ->
Record (FooRow addedRow)
fooMerge addedRow = merge addedRow {thing1: "foo", thing2: 1}
foo1 :: Record (FooRow (AddedRow))
foo1 = fooMerge { thing3: "foo" }
foo2 :: Record (FooRow (AddedRow2))
foo2 = fooMerge { thing1: "foo" }