diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,67 +1,7 @@
-# Ptera: A Generator for Parsers
+# Ptera: A Parser Generator for PEGs
 
 [![Hackage](https://img.shields.io/hackage/v/ptera.svg)](https://hackage.haskell.org/package/ptera)
 
-## Installation
-
-Add dependencies on `package.cabal`:
-
-```
-build-depends:
-    base,
-    bytestring,
-    ptera,          -- main
-    ptera-th,       -- for outputing parser with Template Haskell
-    charset,
-    template-haskell,
-```
-
-## Usage
-
-Write parser rules:
-
-```haskell
-data Terminal
-    = Digit
-    | SymPlus
-    | SymMulti
-    deriving (Eq, Show, Enum)
-
-data NonTerminal
-    | Expr
-    | Sum
-    | Product
-    | Value
-    deriving (Eq, Show, Enum)
-
-type ParseRule = Rule Terminal NonTerminal
-
-
-data Ast
-    = GenValue
-    | GenSum (NonEmpty Ast)
-    | GenProduct Ast Ast
-
-rExpr :: ParseRule Ast
-rExpr = rule Expr rSum
-
-rSum :: ParseRule Ast
-rSum = rule Sum do
-    (rProduct <,> manyP do token SymPlus *> rProduct) <&> \(e, es) -> GenSum do e :| es
-
-rProduct :: ParseRule Ast
-rProduct = rule Product do
-    orP
-        [
-            (rValue <* token SymMulti <,> rProduct) <&> \(e1, e2) -> GenProduct e1 e2,
-            rValue
-        ]
-
-rValue :: ParseRule Ast
-rValue = rule Value do token Digit *> pure GenValue
-```
-
 ## Examples
 
 * Small language: https://github.com/mizunashi-mana/ptera/tree/master/example/small-lang
-* Haskell2010: https://github.com/mizunashi-mana/ptera/tree/master/example/haskell2010
diff --git a/ptera.cabal b/ptera.cabal
--- a/ptera.cabal
+++ b/ptera.cabal
@@ -2,7 +2,7 @@
 build-type:          Custom
 
 name:                ptera
-version:             0.1.0.0
+version:             0.2.0.0
 license:             Apache-2.0 OR MPL-2.0
 license-file:        LICENSE
 copyright:           (c) 2021 Mizunashi Mana
diff --git a/src/Language/Parser/Ptera.hs b/src/Language/Parser/Ptera.hs
--- a/src/Language/Parser/Ptera.hs
+++ b/src/Language/Parser/Ptera.hs
@@ -15,7 +15,8 @@
                                                                 runParser)
 import qualified Language.Parser.Ptera.Runner                  as Runner
 import           Language.Parser.Ptera.Scanner                 hiding (T)
-import           Language.Parser.Ptera.Syntax                  hiding (T, semAct, semActM)
+import           Language.Parser.Ptera.Syntax                  hiding (T,
+                                                                semAct, semActM)
 
 type Parser = Runner.T
 
diff --git a/src/Language/Parser/Ptera/Syntax.hs b/src/Language/Parser/Ptera/Syntax.hs
--- a/src/Language/Parser/Ptera/Syntax.hs
+++ b/src/Language/Parser/Ptera/Syntax.hs
@@ -36,10 +36,9 @@
     SafeGrammar.fixGrammar,
     SafeGrammar.ruleExpr,
     (SafeGrammar.<^>),
+    SafeGrammar.eps,
     (<:>),
-    eps,
     (<::>),
-    epsM,
     SafeGrammar.var,
     SafeGrammar.varA,
     SafeGrammar.tok,
@@ -49,7 +48,7 @@
 
 import           Language.Parser.Ptera.Prelude
 
-import qualified Language.Parser.Ptera.Data.HFList as HFList
+import qualified Language.Parser.Ptera.Data.HFList        as HFList
 import qualified Language.Parser.Ptera.Syntax.SafeGrammar as SafeGrammar
 
 
@@ -71,18 +70,12 @@
 
 infixl 4 <:>
 
-eps :: (HList '[] -> a) -> AltM ctx rules tokens elem a
-eps act = SafeGrammar.eps do semAct act
-
 (<::>)
     :: SafeGrammar.Expr rules tokens elem us -> (HList us -> ActionTask ctx a)
     -> AltM ctx rules tokens elem a
 e <::> act = e SafeGrammar.<:> semActM act
 
 infixl 4 <::>
-
-epsM :: (HList '[] -> ActionTask ctx a) -> AltM ctx rules tokens elem a
-epsM act = SafeGrammar.eps do semActM act
 
 
 type HList = HFList.T Identity
diff --git a/src/Language/Parser/Ptera/Syntax/SafeGrammar.hs b/src/Language/Parser/Ptera/Syntax/SafeGrammar.hs
--- a/src/Language/Parser/Ptera/Syntax/SafeGrammar.hs
+++ b/src/Language/Parser/Ptera/Syntax/SafeGrammar.hs
@@ -38,7 +38,7 @@
 
 import qualified Data.HashMap.Strict                  as HashMap
 import qualified Language.Parser.Ptera.Data.HEnum     as HEnum
-import qualified Language.Parser.Ptera.Data.HFList     as HFList
+import qualified Language.Parser.Ptera.Data.HFList    as HFList
 import qualified Language.Parser.Ptera.Syntax.Grammar as SyntaxGrammar
 import           Prelude                              (String)
 import qualified Type.Membership                      as Membership
@@ -215,8 +215,8 @@
 
 infixl 4 <:>
 
-eps :: action '[] a -> Alt action rules tokens elem a
-eps act = UnsafeAlt do SyntaxGrammar.Alt HFList.HFNil Nothing act
+eps :: Expr rules tokens elem '[]
+eps = UnsafeExpr HFList.HFNil
 
 (<^>)
     :: Expr rules tokens elem us1 -> Expr rules tokens elem us2
