diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,4 +1,5 @@
 # miniEgison: Template Haskell Implementation of Egison Pattern Matching
+[![Build Status](https://travis-ci.org/egison/egison-haskell.svg?branch=master)](https://travis-ci.org/egison/egison-haskell)
 
 This Haskell library provides the users with the pattern-matching facility against non-free data types.
 Non-free data types are data types whose data have no standard forms.
diff --git a/mini-egison.cabal b/mini-egison.cabal
--- a/mini-egison.cabal
+++ b/mini-egison.cabal
@@ -1,7 +1,7 @@
 cabal-version: 1.12
 
 name:           mini-egison
-version:        0.1.5
+version:        0.1.6
 synopsis:    Template Haskell Implementation of Egison Pattern Matching
 description: This package provides the pattern-matching facility that fulfills the following three criteria for practical pattern matching for non-free data types\: (i) non-linear pattern matching with backtracking; (ii) extensibility of pattern-matching algorithms; (iii) ad-hoc polymorphism of patterns.
   Non-free data types are data types whose data have no standard forms.
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -16,6 +16,18 @@
 pmConcat xss = matchAll xss (Multiset (Multiset Something))
                  [[mc| cons (cons $x _) _ => x |]]
 
+pmUniq :: (Eq a) => [a] -> [a]
+pmUniq xs = matchAll xs (List Eql)
+               [[mc| join _ (cons $x (not (join _ (cons #x _)))) => x |]]
+
+pmIntersect :: (Eq a) => [a] -> [a] -> [a]
+pmIntersect xs ys = matchAll (xs, ys) (Pair (Multiset Eql) (Multiset Eql))
+                      [[mc| pair (cons $x _) (cons #x _) => x |]]
+
+pmDiff :: (Eq a) => [a] -> [a] -> [a]
+pmDiff xs ys = matchAll (xs, ys) (Pair (Multiset Eql) (Multiset Eql))
+                 [[mc| pair (cons $x _) (not (cons #x _)) => x |]]
+
 spec :: Spec
 spec = do
   describe "list and multiset matchers" $ do
@@ -98,5 +110,9 @@
       pmap (+ 10) [1,2,3] `shouldBe` [11, 12, 13]
     it "concat" $
       pmConcat [[1,2], [3], [4, 5]] `shouldBe` [1..5]
-    -- it "uniq" $
-    --   pmUniq [1,1,2,3,2] `shouldBe` [1,2,3]
+    it "uniq" $
+      pmUniq [1,1,2,3,2] `shouldBe` [1,3,2]
+    it "intersect" $
+      pmIntersect [1,2,3,4] [2,4,5] `shouldBe` [2,4]
+    it "diff" $
+      pmDiff [1,2,3,4] [2,4,5] `shouldBe` [1,3]
