diff --git a/pugs-compat.cabal b/pugs-compat.cabal
--- a/pugs-compat.cabal
+++ b/pugs-compat.cabal
@@ -1,5 +1,5 @@
 Name           : pugs-compat
-Version        : 0.0.4
+Version        : 0.0.5
 Build-type     : Simple
 Category       : Pugs
 License        : BSD3
@@ -9,7 +9,7 @@
 Description    : Portable Haskell/POSIX layer for Pugs
 Cabal-Version  : >=1.2.1
 
-Library {
+Library
   Extensions      : CPP, MagicHash, ScopedTypeVariables, MultiParamTypeClasses,
                     TypeSynonymInstances, FlexibleInstances, PatternGuards,
                     UndecidableInstances, FlexibleContexts, OverlappingInstances
@@ -22,7 +22,7 @@
                     Pugs.Compat.Monads Pugs.Compat.Posix Pugs.Compat.String
                     Pugs.Compat.Regex
 
-  Ghc-Options     : -fparr
+  Ghc-Options     : -fparr -Wall
 
   Hs-source-dirs  : src
 
@@ -32,4 +32,3 @@
     Build-depends : unix
     Extensions    : ForeignFunctionInterface
     CPP-options   : -DPUGS_HAVE_POSIX
-}
diff --git a/src/Pugs/Compat.hs b/src/Pugs/Compat.hs
--- a/src/Pugs/Compat.hs
+++ b/src/Pugs/Compat.hs
@@ -1,3 +1,4 @@
+{-# OPTIONS_GHC -fno-warn-unused-imports -fno-warn-orphans #-}
 {-|
     Internal utilities and library imports.
 
diff --git a/src/Pugs/Compat/Cast.hs b/src/Pugs/Compat/Cast.hs
--- a/src/Pugs/Compat/Cast.hs
+++ b/src/Pugs/Compat/Cast.hs
@@ -1,3 +1,4 @@
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 module Pugs.Compat.Cast (
     (:>:)(..),
     (:<:)(..),
@@ -7,8 +8,8 @@
     _cast
 ) where
 
-import Data.Dynamic hiding (cast)
 import GHC.Exts (unsafeCoerce#, Word(W#), Word#)
+import Data.Dynamic hiding (cast)
 import Data.ByteString (ByteString)
 import Data.Sequence (Seq)
 import Numeric (showHex)
diff --git a/src/Pugs/Compat/Monads.hs b/src/Pugs/Compat/Monads.hs
--- a/src/Pugs/Compat/Monads.hs
+++ b/src/Pugs/Compat/Monads.hs
@@ -20,7 +20,6 @@
 ) where
 
 import Prelude hiding (mapM)
-import GHC.Base (realWorld#)
 import Data.Traversable
 import Debug.Trace
 import qualified Data.ByteString.Internal as I (inlinePerformIO)
diff --git a/src/Pugs/Compat/Posix.hs b/src/Pugs/Compat/Posix.hs
--- a/src/Pugs/Compat/Posix.hs
+++ b/src/Pugs/Compat/Posix.hs
@@ -1,3 +1,4 @@
+{-# OPTIONS_GHC -fno-warn-orphans #-}
 {-|
     POSIX calls and emulations.
 
diff --git a/src/Pugs/Compat/Regex.hs b/src/Pugs/Compat/Regex.hs
--- a/src/Pugs/Compat/Regex.hs
+++ b/src/Pugs/Compat/Regex.hs
@@ -3,7 +3,11 @@
     executePCRE
 ) where
 
+import Data.Array (Array)
 import qualified Text.Regex.PCRE.String as PCRE
 
+compilePCRE :: PCRE.CompOption -> PCRE.ExecOption -> String -> IO (Either (PCRE.MatchOffset, String) PCRE.Regex) 
 compilePCRE = PCRE.compile
+
+executePCRE :: PCRE.Regex -> String -> IO (Either PCRE.WrapError (Maybe (Array Int (PCRE.MatchOffset, PCRE.MatchLength)))) 
 executePCRE = PCRE.execute
