diff --git a/papillon.cabal b/papillon.cabal
--- a/papillon.cabal
+++ b/papillon.cabal
@@ -2,7 +2,7 @@
 cabal-version:	>= 1.8
 
 name:		papillon
-version:	0.0.88
+version:	0.1.0.0
 stability:	Experimental
 author:		Yoshikuni Jujo <PAF01143@nifty.ne.jp>
 maintainer:	Yoshikuni Jujo <PAF01143@nifty.ne.jp>
@@ -28,7 +28,7 @@
 source-repository	this
   type:		git
   location:	git://github.com/YoshikuniJujo/papillon.git
-  tag:		0.0.88
+  tag:		0.1.0.0
 
 library
   hs-source-dirs:	src
@@ -38,12 +38,16 @@
     Text.Papillon.Papillon,
     Text.Papillon.Papillon,
     Text.Papillon.List
-  build-depends:	base > 3 && < 5, template-haskell, monads-tf, transformers
+  build-depends:
+    base > 3 && < 5, template-haskell, monads-tf, transformers,
+    bytestring == 0.10.*
   ghc-options:		-Wall
 
 executable	papillon
   hs-source-dirs:	bin
   main-is:		papillon.hs
   other-modules:	Class
-  build-depends:	directory, filepath, base > 3 && < 5, template-haskell, monads-tf, transformers, papillon
+  build-depends:
+    directory, filepath, base > 3 && < 5, template-haskell,
+    monads-tf, transformers, papillon
   ghc-options:		-Wall
diff --git a/src/Text/Papillon.hs b/src/Text/Papillon.hs
--- a/src/Text/Papillon.hs
+++ b/src/Text/Papillon.hs
@@ -23,6 +23,8 @@
 import Text.Papillon.Core
 import Language.Haskell.TH.Quote
 
+import qualified Data.ByteString.Char8 as BSC
+
 papillon :: QuasiQuoter
 papillon = QuasiQuoter {
 	quoteExp = undefined,
diff --git a/src/Text/Papillon/Papillon.hs b/src/Text/Papillon/Papillon.hs
--- a/src/Text/Papillon/Papillon.hs
+++ b/src/Text/Papillon/Papillon.hs
@@ -17,6 +17,9 @@
 import Control.Monad.Trans.Error (Error(..))
 import "monads-tf" Control.Monad.Error
 import "monads-tf" Control.Monad.Identity
+
+import qualified Data.ByteString.Char8 as BSC
+
 data ParseError pos drv
     = ParseError {peCode :: String,
                   peMessage :: String,
@@ -60,3 +63,10 @@
           listUpdatePos _ (CharPos (y, x)) = CharPos (y, x + 1)
 runError :: forall err a . ErrorT err Identity a -> Either err a
 runError = runIdentity . runErrorT
+
+instance Source BSC.ByteString where
+	type Token BSC.ByteString = Char
+	data Pos BSC.ByteString = NoPos
+	getToken = BSC.uncons
+	initialPos = NoPos
+	updatePos _ _ = NoPos
