diff --git a/air.cabal b/air.cabal
--- a/air.cabal
+++ b/air.cabal
@@ -1,5 +1,5 @@
 Name:                 air
-Version:              2011.6.19
+Version:              2011.7.25
 Build-type:           Simple
 Synopsis:             air
 Description:          An alternative Haskell Prelude library.
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -0,0 +1,4 @@
+2011.7.25
+---------
+
+* add bytestring conversion
diff --git a/src/Air/Env.hs b/src/Air/Env.hs
--- a/src/Air/Env.hs
+++ b/src/Air/Env.hs
@@ -13,5 +13,6 @@
 import Prelude hiding ((.), (>), (<), (^), (/), (-), (+), length, drop, take, splitAt, replicate, (!!))
 import Air.Data.Monoid ((+))
 import Air.Data.Default (Default, def)
+import Air.Data.Managed (Managed, initialize, destroy, with_managed_object)
 import Air.Control.Monad.ListBuilder
 import Air.Control.Monad.ObjectBuilder
diff --git a/src/Air/Light.hs b/src/Air/Light.hs
--- a/src/Air/Light.hs
+++ b/src/Air/Light.hs
@@ -21,7 +21,10 @@
 import Control.Concurrent
 import System.Exit ( exitWith, ExitCode(ExitSuccess) )
 
+import qualified Data.ByteString.Lazy.Char8 as LazyByteString
+import qualified Data.ByteString.Char8 as StrictByteString
 
+
 -- base DSL
 {-# INLINE (.) #-}
 (.) :: a -> (a -> b) -> b
@@ -347,3 +350,9 @@
 
 io :: (MonadIO m) => IO a -> m a
 io = liftIO
+
+l2s :: LazyByteString.ByteString -> StrictByteString.ByteString
+l2s x = StrictByteString.concat - LazyByteString.toChunks x
+
+s2l :: StrictByteString.ByteString -> LazyByteString.ByteString
+s2l x = LazyByteString.fromChunks [x]
