diff --git a/Data/SGF/Parse/Encodings.hs b/Data/SGF/Parse/Encodings.hs
--- a/Data/SGF/Parse/Encodings.hs
+++ b/Data/SGF/Parse/Encodings.hs
@@ -3,12 +3,21 @@
 
 import Control.Exception.Extensible
 import Control.Monad.State
+import Control.Applicative (Applicative(..))
+import Control.Monad (liftM,ap)
 import Control.Throws
 import Data.Encoding
 import Data.Word
 
 type MyIHateGHC = MyEither DecodingException (String, [Word8])
 newtype MyEither a b = MyEither (Either a b) deriving (Throws a)
+
+instance Functor (MyEither a) where
+    fmap = liftM
+
+instance Applicative (MyEither a) where
+    pure = return 
+    (<*>) = ap
 
 instance Monad (MyEither a) where
     return = MyEither . Right
diff --git a/Data/SGF/Parse/Util.hs b/Data/SGF/Parse/Util.hs
--- a/Data/SGF/Parse/Util.hs
+++ b/Data/SGF/Parse/Util.hs
@@ -2,8 +2,8 @@
 module Data.SGF.Parse.Util where
 
 import Control.Arrow
-import Control.Monad.Error hiding (Error(..))
-import qualified Control.Monad.Error as Either
+import Control.Monad.Except hiding (Error(..))
+import qualified Control.Monad.Trans.Except as Either
 import Control.Monad.State hiding (State(..))
 import Control.Monad.Writer
 import Data.Char
@@ -51,10 +51,6 @@
     = KnownError   { errorType :: ErrorType, errorPosition :: SourcePos }
     | UnknownError { errorDescription :: Maybe String }
     deriving (Eq, Ord, Show)
-
-instance Either.Error Error where
-    noMsg  = UnknownError Nothing
-    strMsg = UnknownError . Just
 
 die         :: Error -> Translator a
 dieWithPos  :: ErrorType -> SourcePos -> Translator a
diff --git a/Data/SGF/Types.hs b/Data/SGF/Types.hs
--- a/Data/SGF/Types.hs
+++ b/Data/SGF/Types.hs
@@ -56,7 +56,7 @@
 import Data.Map hiding (empty, filter, findIndex)
 import Data.Maybe
 import Data.Ord
-import Data.Set hiding (empty, filter)
+import Data.Set hiding (empty, filter, findIndex)
 import Data.Tree
 import Data.Word
 import Prelude hiding (round)
diff --git a/sgf.cabal b/sgf.cabal
--- a/sgf.cabal
+++ b/sgf.cabal
@@ -1,5 +1,5 @@
 name:               sgf
-version:            0.1.3
+version:            0.1.3.1
 author:             Daniel Wagner daniel@wagner-home.com
 maintainer:         Toni Cebrián ancechu@gmail.com 
 homepage:           https://github.com/tonicebrian/sgf
@@ -18,6 +18,8 @@
 build-type:         Simple
 
 library
+    ghc-options:    -Werror
+
     exposed-modules:    Data.SGF
                         Data.SGF.Parse
                         Data.SGF.Types
@@ -33,7 +35,8 @@
                     time>=1,
                     parsec>=3,
                     split,
-                    encoding>=0.6
+                    encoding>=0.6,
+                    transformers>=0.4
 
 source-repository head
     type:       git
