diff --git a/she.cabal b/she.cabal
--- a/she.cabal
+++ b/she.cabal
@@ -1,5 +1,5 @@
 name:               she
-version:            0.4
+version:            0.5
 homepage:           http://personal.cis.strath.ac.uk/~conor/pub/she
 synopsis:           A Haskell preprocessor adding miscellaneous features
 description:
@@ -42,6 +42,7 @@
                         HaLay
                         Parsley
                         Patsy
+                        ShesHers
                         Superclass
                         TypesToKinds
 
diff --git a/src/Imports.lhs b/src/Imports.lhs
--- a/src/Imports.lhs
+++ b/src/Imports.lhs
@@ -9,6 +9,7 @@
 
 > import HaLay
 > import Parsley
+> import ShesHers
 
 > tryReadFile :: FilePath -> IO String
 > tryReadFile s = catch (readFile s) $ \ e ->
@@ -24,7 +25,8 @@
 > getHers p = ready f <$> tryReadFile f where f = joinPath p <.> "hers"
 
 > storySoFar :: [[Tok]] -> IO [[Tok]]
-> storySoFar hs = oneOfEach [] <$> foldMap getHers (hs >>= grokImports)
+> storySoFar hs = (shesHers ++) <$>
+>                 (oneOfEach [] <$> foldMap getHers (hs >>= grokImports))
 
 > pModule :: P Tok String
 > pModule = (teq (KW "module") *> spc *> uid) <* pRest
diff --git a/src/ShesHers.lhs b/src/ShesHers.lhs
new file mode 100644
--- /dev/null
+++ b/src/ShesHers.lhs
@@ -0,0 +1,44 @@
+> module ShesHers where
+
+> import HaLay
+
+> bigString :: String
+> bigString = unlines
+>   [ "module ShesHers where"
+>   , "  class Functor f where"
+>   , "    fmap"
+>   , ""
+>   , "  class Applicative f where"
+>   , "    pure, (<*>)"
+>   , "    instance Functor f where"
+>   , "      fmap = (<*>) . pure"
+>   , ""
+>   , "  class Monad f where"
+>   , "    return, (>>=), (>>), fail where"
+>   , "    instance Applicative f where"
+>   , "      pure = return"
+>   , "      ff <*> sf = ff >>= \\ f -> sf >>= \\ s -> return (f s)"
+>   , ""
+>   , "  class Foldable f where"
+>   , "    fold, foldMap, foldr, foldl, foldr1, foldl1"
+>   , ""
+>   , "  class Traversable f where"
+>   , "    traverse, sequenceA, mapM, sequence"
+>   , "    instance Foldable f where"
+>   , "      foldMap = foldMapDefault"
+>   , "    instance Functor f where"
+>   , "      fmap = fmapDefault"
+>   , ""
+>   , "  class Alternative where"
+>   , "    empty, (<|>)"
+>   , ""
+>   , "  class MonadPlus where"
+>   , "    mzero, mplus"
+>   , "    instance Alternative where"
+>   , "      empty = mzero"
+>   , "      (<|>) = mplus"
+>   , ""
+>   ]
+
+> shesHers :: [[Tok]]
+> shesHers = ready "ShesHers.hers" bigString
