diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,6 +8,8 @@
 [Penny](http://www.github.com/massysett/penny) so it doesn't have much
 of a stable API.
 
+It uses the pcre C library, so make sure you have that installed.
+
 ## Test results
 
 [![Build Status](https://travis-ci.org/massysett/matchers.svg?branch=master)](https://travis-ci.org/massysett/matchers)
diff --git a/lib/Matchers.hs b/lib/Matchers.hs
--- a/lib/Matchers.hs
+++ b/lib/Matchers.hs
@@ -9,7 +9,6 @@
 import Data.Text (Text, pack, toCaseFold, isInfixOf)
 import Matchers.Pcre as PCRE
 import qualified Prednote as R
-import Matchers.Types
 import Data.Monoid
 
 pcre
@@ -19,14 +18,13 @@
   -> Either String (R.Pred Text)
 pcre cs txt = fmap f $ compile cs txt
   where
-    f pc = R.predicate st dyn pd
+    f pc = R.predicate cond pd
       where
-        st = "matches the PCRE regular expression "
-          <> txt <> " - " <> s
+        cond = "matches the PCRE regular expression "
+          <> (pack . show $ txt) <> ", " <> s
         s = case cs of
           Sensitive -> "case sensitive"
           Insensitive -> "case insensitive"
-        dyn x = "text " <> pack (show x) <> " - " <> st
         pd x = case exec pc x of
           Nothing -> False
           Just b -> b
@@ -51,18 +49,17 @@
 txtMatch
   :: (Text -> Text -> Bool)
   -> Text
-  -- ^ Static label
+  -- ^ Condition description
   -> CaseSensitive
   -> Text
   -- ^ Pattern
   -> R.Pred Text
-txtMatch f lbl c p = R.predicate st dyn pd
+txtMatch f lbl c p = R.predicate cond pd
   where
-    st = lbl <> " - " <> cs
+    cond = lbl <> ", " <> cs
     (cs, flipCase) = case c of
       Sensitive -> ("case sensitive", id)
       Insensitive -> ("case insensitive", toCaseFold)
-    dyn txt = "text " <> pack (show txt) <> " - " <> st
     pd t = f pat txt
       where
         txt = flipCase t
diff --git a/lib/Matchers/Pcre.hs b/lib/Matchers/Pcre.hs
--- a/lib/Matchers/Pcre.hs
+++ b/lib/Matchers/Pcre.hs
@@ -1,6 +1,7 @@
 {-# LANGUAGE Trustworthy #-}
 module Matchers.Pcre
-  ( B.PCRE
+  ( B.CaseSensitive(..)
+  , B.PCRE
   , compile
   , exec
   ) where
@@ -8,10 +9,9 @@
 import qualified Matchers.Pcre.Base as B
 import qualified Data.Text as X
 import System.IO.Unsafe (unsafePerformIO)
-import Matchers.Types
 
 compile
-  :: CaseSensitive
+  :: B.CaseSensitive
   -> X.Text
   -> Either String B.PCRE
 compile cl x = unsafePerformIO $ B.compile cl x
diff --git a/lib/Matchers/Pcre/Base.hsc b/lib/Matchers/Pcre/Base.hsc
--- a/lib/Matchers/Pcre/Base.hsc
+++ b/lib/Matchers/Pcre/Base.hsc
@@ -1,7 +1,8 @@
 {-# LANGUAGE ForeignFunctionInterface, EmptyDataDecls #-}
 
 module Matchers.Pcre.Base
-  ( PCRE
+  ( CaseSensitive(..)
+  , PCRE
   , compile
   , exec
   ) where
@@ -15,10 +16,13 @@
 import Data.ByteString
 import Data.Text
 import Data.Text.Encoding
-import Matchers.Types
 
+
 #include <pcre.h>
 #include <stdlib.h>
+
+data CaseSensitive = Sensitive | Insensitive
+  deriving (Eq, Ord, Show)
 
 caseless :: CInt
 caseless = #const PCRE_CASELESS
diff --git a/lib/Matchers/Types.hs b/lib/Matchers/Types.hs
deleted file mode 100644
--- a/lib/Matchers/Types.hs
+++ /dev/null
@@ -1,5 +0,0 @@
-module Matchers.Types where
-
-data CaseSensitive = Sensitive | Insensitive
-  deriving (Eq, Ord, Show)
-
diff --git a/matchers.cabal b/matchers.cabal
--- a/matchers.cabal
+++ b/matchers.cabal
@@ -1,5 +1,5 @@
 Name: matchers
-Version: 0.22.0.0
+Version: 0.24.0.0
 Cabal-version: >=1.8
 Build-Type: Simple
 License: BSD3
@@ -29,14 +29,13 @@
           base >=4.5.0.0 && < 5
         , bytestring >=0.9.2.1 && < 0.11
         , text >=0.11.2.0 && < 1.3
-        , prednote >= 0.26.0.0 && < 0.27
+        , prednote >= 0.28.0.0 && < 0.29
 
 
     Exposed-modules:
         Matchers
       , Matchers.Pcre
       , Matchers.Pcre.Base
-      , Matchers.Types
 
    extra-libraries: pcre
 
