diff --git a/egison.cabal b/egison.cabal
--- a/egison.cabal
+++ b/egison.cabal
@@ -1,12 +1,12 @@
 Name:                egison
-Version:             2.0.3
+Version:             2.0.4
 Synopsis:            An Interpreter for the Programming Language Egison
 Description:         An interpreter for the programming language Egison.
                      A feature of Egison is the strong pattern match facility.
                      With Egison, you can represent pattern matching for unfree data intuitively,
                      especially for collection data, such as lists, multisets, sets, and so on.
-                     This package include sample Egison program codes "*-test.egi" in "etc/sample/" directory.
-                     This package also include Emacs Lisp file "egison-mode.el" in "etc/elisp/" directory.
+                     This package include sample Egison program codes "*-test.egi" in "sample/" directory.
+                     This package also include Emacs Lisp file "egison-mode.el" in "elisp/" directory.
 Homepage:            http://hagi.is.s.u-tokyo.ac.jp/~egi/egison/
 License:             MIT
 License-file:        LICENSE
diff --git a/hs-src/Language/Egison/Core.hs b/hs-src/Language/Egison/Core.hs
--- a/hs-src/Language/Egison/Core.hs
+++ b/hs-src/Language/Egison/Core.hs
@@ -15,7 +15,7 @@
 
 -- |egison version number
 egisonVersion :: String
-egisonVersion = "2.0.3"
+egisonVersion = "2.0.4"
 
 -- |A utility function to display the egison console banner
 showBanner :: IO ()
diff --git a/lib/core/base.egi b/lib/core/base.egi
--- a/lib/core/base.egi
+++ b/lib/core/base.egi
@@ -4,47 +4,23 @@
 
 (define $Something (type {[$var-match (lambda [$tgt] {tgt})]}))
 
-(define $Bool
-  (type
-    {[$var-match (lambda [$tgt] {tgt})]
-     [$inductive-match
-      (destructor
-        {[true []
-          {[<true> {[]}]
-           [#t {[]}]
-           [_ {}]}]
-         [false []
-          {[<false> {[]}]
-           [#f {[]}]
-           [_ {}]}]})]
-     [$=
-      (lambda [$val $tgt]
-        (match [val tgt] [Bool Bool]
-          {[[<true> <true>] #t]
-           [[<true> #t] #t]
-           [[#t <true>] #t]
-           [[<false> <false>] #t]
-           [[<false> #f] #t]
-           [[#f <false>] #t]
-           [[_ _] <false>]}))]}))
-
 (define $or
   (lambda [$b1 $b2]
-    (match b1 Bool
-      {[<true> #t]
-       [<false> b2]})))
+    (if b1
+        #t
+        b2)))
 
 (define $and
   (lambda [$b1 $b2]
-    (match b1 Bool
-      {[<true> b2]
-       [<false> #f]})))
+    (if b1
+        b2
+        #f)))
 
 (define $not
   (lambda [$b]
-    (match b Bool
-      {[<true> #f]
-       [<false> #t]})))
+    (if b
+        #f
+        #t)))
 
 (define $Order
   (type
diff --git a/lib/core/collection.egi b/lib/core/collection.egi
--- a/lib/core/collection.egi
+++ b/lib/core/collection.egi
@@ -84,9 +84,9 @@
 (define $add
   (lambda [$a]
     (lambda [$xs $x]
-      (match ((member? Integer) x xs) Bool
-        {[#t xs]
-         [#f {@xs x}]}))))
+      (if ((member? Integer) x xs)
+          xs
+          {@xs x}))))
 
 (define $union
   (lambda [$a]
diff --git a/sample/io-test.egi b/sample/io-test.egi
--- a/sample/io-test.egi
+++ b/sample/io-test.egi
@@ -55,6 +55,13 @@
         :)))
 
 (define $main
+  (lambda [$: $argv]
+    (do {[$: (write-string : "output : ")]
+         [$: (write : argv)]
+         [$: (write-char : '\n')]}
+        :)))
+
+(define $main
   (lambda [$:]
     (do {[$: (print : "Return world? (y/n) : ")]
          [[$: $c] (read-char :)]}
