@@ -50,7 +50,10 @@ spec = do
50 Rec (#a := 1) `append` Rec (#b := 2)
50 Rec (#a := 1) `append` Rec (#b := 2)
51 `shouldBe` Rec (#a := 1, #b := 2)
51 `shouldBe` Rec (#a := 1, #b := 2)
52 it "append with duplicates" $ do
52 it "append with duplicates" $ do
53− pendingWith "append is overwriting all duplicate fields with same value"
53+ -- `append` will not deal with duplicates; based on current
54+ -- implementation, the last value (here, 8) will overwrite all duplicate
55+ -- fields. See `union` if you want to deal with duplicates sensibly.
56+ pendingWith "append should just append?"
54 let r1 = Rec (#b := 5, #a := 6)
57 let r1 = Rec (#b := 5, #a := 6)
55 r2 = Rec (#c := 7, #a := 8)
58 r2 = Rec (#c := 7, #a := 8)
56 r1 `append` r2
59 r1 `append` r2
@@ -59,7 +62,7 @@ spec = do
59 it "simple union" $ do
62 it "simple union" $ do
60 Rec (#a := 1) `union` Rec (#b := 2)
63 Rec (#a := 1) `union` Rec (#b := 2)
61 `shouldBe` Rec (#a := 1, #b := 2)
64 `shouldBe` Rec (#a := 1, #b := 2)
62− it "union with duplicates" $ do
65+ it "union with duplicates (left-biased)" $ do
63 let r1 = Rec (#b := 5, #a := 6)
66 let r1 = Rec (#b := 5, #a := 6)
64 r2 = Rec (#c := 7, #a := 8)
67 r2 = Rec (#c := 7, #a := 8)
65 r1 `union` r2
68 r1 `union` r2