diff --git a/essence-of-live-coding.cabal b/essence-of-live-coding.cabal
--- a/essence-of-live-coding.cabal
+++ b/essence-of-live-coding.cabal
@@ -1,5 +1,5 @@
 name:                essence-of-live-coding
-version:             0.2.0.0
+version:             0.2.0.1
 synopsis: General purpose live coding framework
 description:
   essence-of-live-coding is a general purpose and type safe live coding framework.
@@ -30,7 +30,7 @@
 source-repository this
   type:     git
   location: git@github.com:turion/essence-of-live-coding.git
-  tag:      v0.2.0.0
+  tag:      v0.2.0.1
 
 
 library
diff --git a/src/LiveCoding.hs b/src/LiveCoding.hs
--- a/src/LiveCoding.hs
+++ b/src/LiveCoding.hs
@@ -3,6 +3,7 @@
   where
 
 -- base
+import Control.Arrow as X hiding (app)
 import Data.Data as X
 
 -- essence-of-live-coding
diff --git a/src/LiveCoding/Cell/Monad/Trans.hs b/src/LiveCoding/Cell/Monad/Trans.hs
--- a/src/LiveCoding/Cell/Monad/Trans.hs
+++ b/src/LiveCoding/Cell/Monad/Trans.hs
@@ -59,9 +59,7 @@
 
 -- | Supply a 'ReaderT' environment live
 runReaderC'
-  :: Cell (ReaderT r m) a b
+  :: Monad m
+  => Cell (ReaderT r m) a b
   -> Cell m (r, a) b
-runReaderC' Cell { .. } = Cell
-  { cellStep = \state (r, a) -> runReaderT (cellStep state a) r
-  , ..
-  }
+runReaderC' = hoistCellKleisli_ $ \action (r, a) -> runReaderT (action a) r
diff --git a/src/LiveCoding/Debugger.lhs b/src/LiveCoding/Debugger.lhs
--- a/src/LiveCoding/Debugger.lhs
+++ b/src/LiveCoding/Debugger.lhs
@@ -103,6 +103,7 @@
       (b, state') <- step state a
       states <- runStateT (dbgStep dbgState) state'
       return (b, uncurry (flip Debugging) states)
+withDebuggerC noCell debugger = withDebuggerC (toCell noCell) debugger
 \end{code}
 \end{comment}
 Again, let us understand the function through its state type:
diff --git a/src/LiveCoding/External.hs b/src/LiveCoding/External.hs
--- a/src/LiveCoding/External.hs
+++ b/src/LiveCoding/External.hs
@@ -31,7 +31,7 @@
   , ..
   }
 
-concurrently :: MonadIO m => ExternalCell m eIn eOut a b -> IO (Cell m a b, ExternalLoop eIn eOut)
+concurrently :: (MonadIO m, Monoid eOut) => ExternalCell m eIn eOut a b -> IO (Cell m a b, ExternalLoop eIn eOut)
 concurrently externalCell = do
   inVar  <- newEmptyMVar
   outVar <- newEmptyMVar
