diff --git a/Data/Syntax/Attoparsec/ByteString.hs b/Data/Syntax/Attoparsec/ByteString.hs
--- a/Data/Syntax/Attoparsec/ByteString.hs
+++ b/Data/Syntax/Attoparsec/ByteString.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE TupleSections #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {- |
 Module      :  Data.Syntax.Attoparsec.ByteString
@@ -38,6 +39,9 @@
 instance SemiIsoAlternative Parser where
     siempty = Parser empty
     (Parser x) /|/ (Parser y) = Parser $ x <|> y
+
+instance SemiIsoMonad Parser where
+    (Parser m) //= f = Parser $ m >>= (\x -> (x,) <$> getParser (f x))
 
 instance Syntax Parser ByteString where
     anyChar = Parser AP.anyWord8
diff --git a/Data/Syntax/Attoparsec/Text.hs b/Data/Syntax/Attoparsec/Text.hs
--- a/Data/Syntax/Attoparsec/Text.hs
+++ b/Data/Syntax/Attoparsec/Text.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE TupleSections #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {- |
 Module      :  Data.Syntax.Attoparsec.Text
@@ -20,6 +21,7 @@
 import qualified Data.Attoparsec.Text as AP
 import           Data.SemiIsoFunctor
 import           Data.Syntax
+import           Data.Syntax.Char
 import           Data.Text (Text)
 
 -- | A wrapped 'Data.Attoparsec.Text.Parser'.
@@ -39,6 +41,9 @@
     siempty = Parser empty
     (Parser x) /|/ (Parser y) = Parser $ x <|> y
 
+instance SemiIsoMonad Parser where
+    (Parser m) //= f = Parser $ m >>= (\x -> (x,) <$> getParser (f x))
+
 instance Syntax Parser Text where
     anyChar = Parser AP.anyChar
     char = Parser . void . AP.char
@@ -49,3 +54,7 @@
     takeWhile = Parser . AP.takeWhile
     takeWhile1 = Parser . AP.takeWhile1
     takeTill = Parser . AP.takeTill
+
+instance SyntaxChar Parser Text where
+    decimal = Parser AP.decimal
+    scientific = Parser AP.scientific
diff --git a/syntax-attoparsec.cabal b/syntax-attoparsec.cabal
--- a/syntax-attoparsec.cabal
+++ b/syntax-attoparsec.cabal
@@ -1,5 +1,5 @@
 name:                syntax-attoparsec
-version:             0.1.0.0
+version:             0.2.0.0
 synopsis:            Syntax instances for Attoparsec.
 license:             MIT
 license-file:        LICENSE
@@ -17,5 +17,5 @@
 library
   exposed-modules:     Data.Syntax.Attoparsec.Text
                        Data.Syntax.Attoparsec.ByteString
-  build-depends:       base >= 4 && < 5, syntax, semi-iso, attoparsec, text, bytestring
+  build-depends:       base >= 4 && < 5, syntax >= 0.2, semi-iso >= 0.3, attoparsec, text, bytestring
   default-language:    Haskell2010
