diff --git a/egison.cabal b/egison.cabal
--- a/egison.cabal
+++ b/egison.cabal
@@ -1,5 +1,5 @@
 Name:                egison
-Version:             3.8.1
+Version:             3.8.2
 Synopsis:            Programming language with non-linear pattern-matching against non-free data
 Description:
   An interpreter for Egison, a **pattern-matching-oriented**, purely functional programming language.
diff --git a/hs-src/Language/Egison.hs b/hs-src/Language/Egison.hs
--- a/hs-src/Language/Egison.hs
+++ b/hs-src/Language/Egison.hs
@@ -139,4 +139,5 @@
   , "lib/core/io.egi"
   , "lib/core/random.egi"
   , "lib/core/string.egi"
+  , "lib/core/maybe.egi"
   ]
diff --git a/lib/core/maybe.egi b/lib/core/maybe.egi
new file mode 100644
--- /dev/null
+++ b/lib/core/maybe.egi
@@ -0,0 +1,16 @@
+;;;;;
+;;;;;
+;;;;; Maybe (Option)
+;;;;;
+;;;;;
+
+(define $Nothing {})
+(define $Just (lambda [$x] {x}))
+
+(define $nothing (pattern-function [] <nil>))
+(define $just (pattern-function [$pat] <cons pat _>))
+
+(define $maybe (lambda [$a] (list a)))
+
+;(match-all (Just 1) (maybe integer) [(nothing) "error"]) ; {}
+;(match-all (Just 1) (maybe integer) [(just $x) x]) ; {1}
