diff --git a/Egison.hs b/Egison.hs
--- a/Egison.hs
+++ b/Egison.hs
@@ -10,7 +10,7 @@
 main :: IO ()
 main = do args <- getArgs
           case length args of
-              0 -> do flushStr "Egison, version 0.1.2 : http://hagi.is.s.u-tokyo.ac.jp/~egi/egison/\nWelcome to Egison Interpreter!\n"
+              0 -> do flushStr "Egison, version 0.1.2.1 : http://hagi.is.s.u-tokyo.ac.jp/~egi/egison/\nWelcome to Egison Interpreter!\n"
                       defsRef <- newIORef []
                       runRepl defsRef
               _ -> putStrLn "Program takes only 0 argument!"
diff --git a/egison.cabal b/egison.cabal
--- a/egison.cabal
+++ b/egison.cabal
@@ -7,7 +7,7 @@
 -- The package version. See the Haskell package versioning policy
 -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for
 -- standards guiding when and how versions should be incremented.
-Version:             0.1.2
+Version:             0.1.2.1
 
 -- A short (one-line) description of the package.
 Synopsis:            An Interpreter for the Programming Language Egison
@@ -60,7 +60,7 @@
   Main-is:             Egison.hs
   
   -- Packages needed in order to build this package.
-  Build-depends:       base >= 4.0 && < 5, haskell98, mtl, parsec3
+  Build-depends:       base >= 4.0 && < 5, haskell98, mtl, parsec2
   
   -- Modules not exported by this package.
   -- Other-modules:       
diff --git a/etc/sample/list-test.egi b/etc/sample/list-test.egi
--- a/etc/sample/list-test.egi
+++ b/etc/sample/list-test.egi
@@ -371,3 +371,34 @@
       {[<nil> {}]
        [<cons $a $rs>
         {@(reverse rs) a}]})))
+
+
+(define $min
+  (lambda [$Ns]
+    (match Ns (List Int)
+      {[<cons $n <nil>> n]
+       [<cons $n $Rs>
+        (let {[$r (min Rs)]}
+          (match (compare n r) Order
+            {[<less> n]
+             [_ r]}))]})))       
+
+(define $gcd
+  (lambda [$Ns]
+    (let {[$Ns2 (remove-all Ns 0)]}
+      (match ns2 (Multiset Int)
+        {[<cons $n <nil>> n]
+         [<cons ,(min Ns2)
+                $Rs>
+          (gcd {n @(map (lambda [$r] (mod r n))
+                        Rs)})]}))))
+
+(define $gcd
+  (lambda [$Ns]
+    (let {[$Ns2 (remove-all Ns 0)]}
+      (match Ns2 (Set Int)
+        {[<cons $n <nil>> n]
+         [<cons ,(min Ns2)
+                $Rs>
+          (gcd {n @(map (lambda [$r] (mod r n))
+                        Rs)})]}))))
