diff --git a/biostockholm.cabal b/biostockholm.cabal
--- a/biostockholm.cabal
+++ b/biostockholm.cabal
@@ -1,5 +1,5 @@
 Name:                biostockholm
-Version:             0.2.2
+Version:             0.3
 Synopsis:            Parsing and rendering of Stockholm files (used by Pfam, Rfam and Infernal).
 License:             BSD3
 License-file:        LICENSE
@@ -40,11 +40,11 @@
       , containers         >= 0.2   && < 0.5
       , bytestring         == 0.9.*
       , deepseq            >= 1.1   && < 1.4
-      , conduit            == 0.2.*
+      , conduit            == 0.4.*
       , attoparsec         == 0.10.*
-      , attoparsec-conduit == 0.2.*
+      , attoparsec-conduit == 0.4.*
       , blaze-builder      == 0.3.*
-      , blaze-builder-conduit == 0.2.*
+      , blaze-builder-conduit == 0.4.*
 
       , biocore            >= 0.1   && < 0.3
 
diff --git a/src/Bio/Sequence/Stockholm.hs b/src/Bio/Sequence/Stockholm.hs
--- a/src/Bio/Sequence/Stockholm.hs
+++ b/src/Bio/Sequence/Stockholm.hs
@@ -67,12 +67,12 @@
 -- multiple files are read independently.  If you need to process
 -- large Stockholm files, consider using the streaming interface
 -- on "Bio.Sequence.Stockholm.Stream".
-parseStockholm :: C.ResourceThrow m => C.Conduit B.ByteString m Stockholm
+parseStockholm :: C.MonadThrow m => C.Conduit B.ByteString m Stockholm
 parseStockholm = parseEvents C.=$= parseDoc
 
 
 -- | Pretty prints an Stockholm file.
-renderStockholm :: C.ResourceUnsafeIO m => C.Conduit Stockholm m B.ByteString
+renderStockholm :: C.MonadUnsafeIO m => C.Conduit Stockholm m B.ByteString
 renderStockholm = renderDoc C.=$= renderEvents
 
 
diff --git a/src/Bio/Sequence/Stockholm/Document.hs b/src/Bio/Sequence/Stockholm/Document.hs
--- a/src/Bio/Sequence/Stockholm/Document.hs
+++ b/src/Bio/Sequence/Stockholm/Document.hs
@@ -323,7 +323,7 @@
 
 
 -- | Conduit that parses 'Event'@s@ into documents 'Stockholm'.
-parseDoc :: C.Resource m => C.Conduit Event m Stockholm
+parseDoc :: Monad m => C.Conduit Event m Stockholm
 parseDoc = C.conduitState LookingForHeader push close
     where
 
@@ -383,7 +383,7 @@
 
 
 -- | Conduit that renders 'Stockholm'@s@ into 'Event'@s@.
-renderDoc :: C.Resource m => C.Conduit Stockholm m Event
+renderDoc :: Monad m => C.Conduit Stockholm m Event
 renderDoc = CL.concatMap toEvents
     where
       toEvents (Stockholm file clmn seqs) =
diff --git a/src/Bio/Sequence/Stockholm/Stream.hs b/src/Bio/Sequence/Stockholm/Stream.hs
--- a/src/Bio/Sequence/Stockholm/Stream.hs
+++ b/src/Bio/Sequence/Stockholm/Stream.hs
@@ -90,14 +90,14 @@
 
 
 -- | Conduit that parses a file into events.
-parseEvents :: C.ResourceThrow m => C.Conduit B.ByteString m Event
+parseEvents :: C.MonadThrow m => C.Conduit B.ByteString m Event
 parseEvents = C.sequenceSink LookingForHeader go
     where
       go LookingForHeader = do
         dropSpaces
         let emit = C.Emit InsideStockholm . (:[])
-        insideLine C.=$ sinkParser $  C.Stop <$  A8.endOfInput
-                                  <|> emit   <$> headerParser
+        insideLine C.=$ (sinkParser $  C.Stop <$  A8.endOfInput
+                                   <|> emit   <$> headerParser)
 
       go InsideStockholm = do
         dropSpaces
@@ -133,5 +133,5 @@
 
 
 -- | Conduit that pretty prints an event stream into a file.
-renderEvents :: C.ResourceUnsafeIO m => C.Conduit Event m B.ByteString
+renderEvents :: C.MonadUnsafeIO m => C.Conduit Event m B.ByteString
 renderEvents = CL.map eventPrinter C.=$= builderToByteString
