diff --git a/coroutine-object.cabal b/coroutine-object.cabal
--- a/coroutine-object.cabal
+++ b/coroutine-object.cabal
@@ -1,5 +1,5 @@
 Name:		coroutine-object
-Version:	0.2.0.0
+Version:	0.3
 Synopsis:       Object-oriented programming realization using coroutine 
 Description: 	Object-oriented programming realization using coroutine 
 License: 	BSD3
diff --git a/src/Control/Monad/Trans/Crtn/Logger/Simple.hs b/src/Control/Monad/Trans/Crtn/Logger/Simple.hs
--- a/src/Control/Monad/Trans/Crtn/Logger/Simple.hs
+++ b/src/Control/Monad/Trans/Crtn/Logger/Simple.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE GADTs #-}
+{-# LANGUAGE ScopedTypeVariables #-}
 
 module Control.Monad.Trans.Crtn.Logger.Simple where
 
@@ -14,11 +15,12 @@
 simplelogger = loggerW 0
  
 -- |
-loggerW :: (MonadLog m) => Int -> LogServer m () 
+loggerW :: forall m. (MonadLog m) => Int -> LogServer m () 
 loggerW num = ReaderT (f num)
-  where f n req = 
-          case req of 
-            Arg WriteLog msg -> do lift (scribe ("log number "++show n++" : "++ msg))
-                                   req' <- request (Res WriteLog ())
-                                   f (n+1) req' 
+  where
+    f :: Int -> LogInput -> CrtnT (Res LogOp) (Arg LogOp) m () 
+    f n (Arg WriteLog msg) = do 
+      lift (scribe ("log number "++show n++" : "++ msg))
+      req' <- request (Res WriteLog ())
+      f (n+1) req' 
 
diff --git a/src/Control/Monad/Trans/Crtn/Object.hs b/src/Control/Monad/Trans/Crtn/Object.hs
--- a/src/Control/Monad/Trans/Crtn/Object.hs
+++ b/src/Control/Monad/Trans/Crtn/Object.hs
@@ -30,13 +30,6 @@
 data Res s = forall i o.  Res (s i o) o 
            | Ign
 
-{-
--- |
-type SObjT s = CrtnT (Arg s) (ResMethodInput s)  
-
--- | 
-type ClientT s = CoroutineT (MethodInput s) (MethodOutput s)
--}
 
 -- | Server object
 type SObjT s m = SrvT (Arg s) (Res s) m  
