diff --git a/Data/Object/Yaml.hs b/Data/Object/Yaml.hs
--- a/Data/Object/Yaml.hs
+++ b/Data/Object/Yaml.hs
@@ -85,24 +85,27 @@
            -> m ()
 encodeFile fp = Y.encodeFile fp . ge
 
+emitEvents :: (MonadIO m, MonadFailure YamlException m)
+           => Event -> Event -> YamlEncoder m () -> YamlEncoder m ()
+emitEvents start stop body = emitEvent start >> body >> emitEvent stop
+
 ge :: (MonadIO m, MonadFailure YamlException m, IsYamlScalar k,
        IsYamlScalar v)
    => Object k v
    -> YamlEncoder m ()
-ge yo = emitEvent EventStreamStart >> emitEvent EventDocumentStart
-     >> geO yo >> emitEvent EventDocumentEnd >> emitEvent EventStreamEnd
+ge yo = emitEvents EventStreamStart EventStreamEnd
+      $ emitEvents EventDocumentStart EventDocumentEnd
+      $ geO yo
 
 geO :: (MonadIO m, MonadFailure YamlException m, IsYamlScalar k,
         IsYamlScalar v)
     => Object k v
     -> YamlEncoder m ()
 geO (Scalar s) = geS s
-geO (Sequence yos) = emitEvent EventSequenceStart
-                  >> mapM_ geO yos
-                  >> emitEvent EventSequenceEnd
-geO (Mapping pairs) = emitEvent EventMappingStart
-                   >> mapM_ gePair pairs
-                   >> emitEvent EventMappingEnd
+geO (Sequence yos)  = emitEvents EventSequenceStart EventSequenceEnd
+                    $ mapM_ geO yos
+geO (Mapping pairs) = emitEvents EventMappingStart EventMappingEnd
+                    $ mapM_ gePair pairs
 
 gePair :: (MonadIO m, MonadFailure YamlException m, IsYamlScalar k,
            IsYamlScalar v)
@@ -113,12 +116,10 @@
 geS :: (MonadIO m, IsYamlScalar a, MonadFailure YamlException m)
     => a
     -> YamlEncoder m ()
-geS = geYS . toYamlScalar
+geS = emitEvent . toEventScalar . toYamlScalar
 
-geYS :: (MonadIO m, MonadFailure YamlException m)
-     => YamlScalar
-     -> YamlEncoder m ()
-geYS (YamlScalar v t s) = emitEvent $ EventScalar v t s
+toEventScalar :: YamlScalar -> Event
+toEventScalar (YamlScalar v t s) = EventScalar v t s
 
 decode :: (MonadFailure YamlException m, IsYamlScalar k, IsYamlScalar v)
        => ByteString
diff --git a/data-object-yaml.cabal b/data-object-yaml.cabal
--- a/data-object-yaml.cabal
+++ b/data-object-yaml.cabal
@@ -1,5 +1,5 @@
 name:            data-object-yaml
-version:         0.2.0
+version:         0.2.0.1
 license:         BSD3
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -20,7 +20,7 @@
     build-depends:   base >= 4 && < 5,
                      data-object >= 0.2.0 && < 0.3,
                      bytestring >= 0.9.1.4 && < 0.10,
-                     text >= 0.5 && < 0.6,
+                     text >= 0.7 && < 0.8,
                      convertible-text >= 0.2.0 && < 0.3,
                      attempt >= 0.2.0 && < 0.3,
                      failure >= 0.0.0 && < 0.1,
