diff --git a/simple-pipe.cabal b/simple-pipe.cabal
--- a/simple-pipe.cabal
+++ b/simple-pipe.cabal
@@ -2,7 +2,7 @@
 cabal-version:	>= 1.8
 
 name:		simple-pipe
-version:	0.0.0.1
+version:	0.0.0.2
 stability:	Experimental
 author:		Yoshikuni Jujo <PAF01143@nifty.ne.jp>
 maintainer:	Yoshikuni Jujo <PAF01143@nifty.ne.jp>
@@ -87,7 +87,7 @@
 source-repository	this
     type:	git
     location:	git://github.com/YoshikuniJujo/forest.git
-    tag:	simple-pipe-0.0.0.1
+    tag:	simple-pipe-0.0.0.2
 
 library
     hs-source-dirs:	src
diff --git a/src/Data/Pipe/List.hs b/src/Data/Pipe/List.hs
--- a/src/Data/Pipe/List.hs
+++ b/src/Data/Pipe/List.hs
@@ -3,19 +3,19 @@
 	toList,
 	) where
 
-import Control.Applicative
+import Control.Monad
 import Data.Pipe
 
-fromList :: Monad m => [a] -> Pipe () a m ()
+fromList :: (Monad m, Monad (p () a m), PipeClass p) => [a] -> p () a m ()
 fromList [] = return ()
 fromList (x : xs) = yield x >> fromList xs
 
 -- | Consume all values from the stream and return as a list.
 -- This will pull all values into memory.
 
-toList :: Monad m => Pipe a () m [a]
+toList :: (Monad m, Monad (p a () m), PipeClass p) => p a () m [a]
 toList = do
 	mx <- await
 	case mx of
-		Just x -> (x :) <$> toList
+		Just x -> (x :) `liftM` toList
 		_ -> return []
