diff --git a/Text/ShellEscape.hs b/Text/ShellEscape.hs
--- a/Text/ShellEscape.hs
+++ b/Text/ShellEscape.hs
@@ -5,7 +5,9 @@
 module Text.ShellEscape
   ( Text.ShellEscape.Escape.Escape(..)
   , Text.ShellEscape.Sh.Sh()
+  , Text.ShellEscape.Sh.sh
   , Text.ShellEscape.Bash.Bash()
+  , Text.ShellEscape.Bash.bash
   ) where
 
 import Text.ShellEscape.Escape
diff --git a/Text/ShellEscape/Bash.hs b/Text/ShellEscape/Bash.hs
--- a/Text/ShellEscape/Bash.hs
+++ b/Text/ShellEscape/Bash.hs
@@ -21,6 +21,10 @@
 newtype Bash                 =  Bash (EscapeVector EscapingMode)
  deriving (Eq, Ord, Show)
 
+{-| Construct a Bash escaped intermediate form.
+ -}
+bash                        ::  ByteString -> Bash
+bash                         =  escape
 
 instance Escape Bash where
   escape                     =  Bash . escWith classify
@@ -47,7 +51,6 @@
     ANSIBackslash           ->  Put.putString $ backslashify c
 
 backslashify                ::  Char -> String
-backslashify '\ESC'          =  "\\e"
 backslashify c               =  (take 2 . drop 1 . show) c
 
 hexify                      ::  Char -> String
@@ -56,8 +59,6 @@
 classify                    ::  Char -> EscapingMode
 classify c | c <= '\ACK'     =  ANSIHex
            | c <= '\r'       =  ANSIBackslash
-           | c <= '\SUB'     =  ANSIHex
-           | c == '\ESC'     =  ANSIBackslash
            | c <= '\US'      =  ANSIHex
            | c <= '&'        =  Quoted
            | c == '\''       =  ANSIBackslash
diff --git a/Text/ShellEscape/EscapeVector.hs b/Text/ShellEscape/EscapeVector.hs
--- a/Text/ShellEscape/EscapeVector.hs
+++ b/Text/ShellEscape/EscapeVector.hs
@@ -6,7 +6,7 @@
 
 import Data.Vector (Vector)
 import qualified Data.Vector as Vector
-import qualified Data.Vector.Mutable as Vector
+import qualified Data.Vector.Mutable as Vector (new, write)
 
 import qualified Text.ShellEscape.Put as Put
 
diff --git a/Text/ShellEscape/Sh.hs b/Text/ShellEscape/Sh.hs
--- a/Text/ShellEscape/Sh.hs
+++ b/Text/ShellEscape/Sh.hs
@@ -19,6 +19,11 @@
 newtype Sh                   =  Sh (EscapeVector EscapingMode)
  deriving (Eq, Ord, Show)
 
+{-| Construct a Bourne Shell escaped intermediate form.
+ -}
+sh                          ::  ByteString -> Sh
+sh                           =  escape
+
 instance Escape Sh where
   escape                     =  Sh . escWith classify
   unescape (Sh v)            =  stripEsc v
diff --git a/shell-escape.cabal b/shell-escape.cabal
--- a/shell-escape.cabal
+++ b/shell-escape.cabal
@@ -1,5 +1,5 @@
 name                          : shell-escape
-version                       : 0.0.0
+version                       : 0.1.1
 category                      : Text
 license                       : BSD3
 license-file                  : LICENSE
