diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
 # dickinson
 
+## 1.3.0.4
+
+  * Add some libraries for declension and conjugation in English
+  * Change `emd fmt` behavior around imports.
+  * Manpage example
+  * Fix bug where pattern match exhaustiveness checking failed when the
+    constructor in question was defined in another file
+
 ## 1.3.0.3
 
   * Fall back onto `$HOME/.local/share/man/man1` if manpages were not found in
diff --git a/language-dickinson.cabal b/language-dickinson.cabal
--- a/language-dickinson.cabal
+++ b/language-dickinson.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.0
 name:               language-dickinson
-version:            1.3.0.3
+version:            1.3.0.4
 license:            BSD3
 license-file:       LICENSE
 copyright:          Copyright: (c) 2020 Vanessa McHale
@@ -18,6 +18,7 @@
     man/emd.1
     lib/*.dck
     prelude/*.dck
+    lib/grammar/*.dck
 
 extra-source-files:
     test/data/*.pretty
diff --git a/lib/grammar/common.dck b/lib/grammar/common.dck
new file mode 100644
--- /dev/null
+++ b/lib/grammar/common.dck
@@ -0,0 +1,5 @@
+%-
+
+tydecl person = First | Second | Third
+
+tydecl number = Singular | Plural
diff --git a/lib/grammar/noun.dck b/lib/grammar/noun.dck
new file mode 100644
--- /dev/null
+++ b/lib/grammar/noun.dck
@@ -0,0 +1,9 @@
+; types for noun declension
+
+(:include grammar.common)
+
+%-
+
+tydecl case = Subjective | Objective | DependentPossessive | IndependentPossessive
+
+tydecl gender = Masculine | Feminine | Neuter
diff --git a/lib/grammar/verb.dck b/lib/grammar/verb.dck
new file mode 100644
--- /dev/null
+++ b/lib/grammar/verb.dck
@@ -0,0 +1,9 @@
+; https://en.wikipedia.org/wiki/Grammatical_tense#English
+
+(:include grammar.common)
+
+%-
+
+tydecl tense = Present | Past | Future
+
+tydecl mood = Indicative | Subjunctive | Conditional | Imperative
diff --git a/lib/noun.dck b/lib/noun.dck
--- a/lib/noun.dck
+++ b/lib/noun.dck
@@ -33,6 +33,7 @@
       (| "valetudinarian")
       (| "car")
       (| "head")
+      (| "sitophobia")
       (| "tail")
       (| "joke")
       (| "autocracy")
diff --git a/man/emd.1 b/man/emd.1
--- a/man/emd.1
+++ b/man/emd.1
@@ -78,11 +78,29 @@
 A vim plugin is available; see
 .PP
 https://github.com/vmchale/dickinson/tree/master/vim
+.SS CTAGS
+.PP
+To configure exuberant ctags or universal ctags, put
+.IP
+.nf
+\f[C]
+--langdef=DICKINSON
+--langmap=DICKINSON:.dck
+--regex-DICKINSON=/:def *([[:lower:]][[:alnum:]]+)/\[rs]1/f,function/
+--regex-DICKINSON=/tydecl *([[:lower:]][[:alnum:]]+) *=/\[rs]1/t,type/
+\f[R]
+.fi
+.PP
+in the project .ctags
 .SH SHELL COMPLETIONS
 .PP
 To get shell completions in your current session:
-.PP
-\f[C]eval \[dq]$(emd --bash-completion-script emd)\[dq]\f[R]
+.IP
+.nf
+\f[C]
+eval \[dq]$(emd --bash-completion-script emd)\[dq]
+\f[R]
+.fi
 .PP
 Put this in your \f[C]\[ti]/.bashrc\f[R] or
 \f[C]\[ti]/.bash_profile\f[R] to install them.
diff --git a/run/Main.hs b/run/Main.hs
--- a/run/Main.hs
+++ b/run/Main.hs
@@ -18,7 +18,7 @@
 data Act = Run !FilePath ![FilePath]
          | REPL ![FilePath]
          | Check ![FilePath] ![FilePath]
-         | Lint ![FilePath]
+         | Lint ![FilePath] ![FilePath]
          | Format !FilePath Bool
          | Man
          | Ide !FilePath ![FilePath]
@@ -56,7 +56,7 @@
 checkP = Check <$> some dckFile <*> includes
 
 lintP :: Parser Act
-lintP = Lint <$> some dckFile
+lintP = Lint <$> some dckFile <*> includes
 
 dckFile :: Parser FilePath
 dckFile = argument str
@@ -106,8 +106,8 @@
 run (Run fp is)       = do { is' <- modIs is ; TIO.putStrLn =<< pipeline is' fp }
 run (REPL fps)        = dickinsonRepl fps
 run (Check fs i)      = do { is' <- modIs i ; traverse_ (validateFile is') fs }
-run (Lint fs)         = traverse_ warnFile fs
+run (Lint fs is)      = do { is' <- modIs is ; traverse_ warnFile fs ; traverse_ (patternExhaustivenessFile is') fs }
 run (Format fp False) = fmtFile fp
 run (Format fp True)  = fmtInplace fp
 run Man               = putStrLn =<< manFind
-run (Ide fp is)       = do { is' <- modIs is ; validateFile is' fp ; warnFile fp }
+run (Ide fp is)       = do { is' <- modIs is ; validateFile is' fp ; warnFile fp ; patternExhaustivenessFile is' fp }
diff --git a/run/REPL.hs b/run/REPL.hs
--- a/run/REPL.hs
+++ b/run/REPL.hs
@@ -38,8 +38,8 @@
 import           Prettyprinter.Render.Text      (putDoc)
 import           REPL.Completions
 import           REPL.Save
-import           System.Console.Haskeline       (InputT, completeFilename, defaultSettings, fallbackCompletion,
-                                                 getInputLine, historyFile, runInputT, setComplete)
+import           System.Console.Haskeline       (InputT, completeFilename, defaultSettings, fallbackCompletion, getInputLine, historyFile, runInputT,
+                                                 setComplete)
 import           System.Directory               (getHomeDirectory)
 import           System.FilePath                ((</>))
 import           System.Random                  (newStdGen, randoms)
@@ -71,6 +71,8 @@
         Just (":help":_)              -> showHelp *> loop
         Just (":save":[fp])           -> saveReplSt fp *> loop
         Just (":save":_)              -> liftIO (putStrLn ":save takes one argument") *> loop
+        Just [":l"]                   -> liftIO (putStrLn "nothing loaded!") *> loop
+        Just [":load"]                -> liftIO (putStrLn "nothing loaded!") *> loop
         Just (":l":fs)                -> traverse loadFile fs *> loop
         Just (":load":fs)             -> traverse loadFile fs *> loop
         Just (":r":[fp])              -> loadReplSt fp *> loop
diff --git a/src/Language/Dickinson/File.hs b/src/Language/Dickinson/File.hs
--- a/src/Language/Dickinson/File.hs
+++ b/src/Language/Dickinson/File.hs
@@ -6,6 +6,7 @@
                                , validateFile
                                , validateAmalgamate
                                , warnFile
+                               , patternExhaustivenessFile
                                , tcFile
                                , amalgamateRename
                                , amalgamateRenameM
@@ -89,7 +90,7 @@
 
 -- | Run some lints
 warnFile :: FilePath -> IO ()
-warnFile = maybeThrowIO . (\x -> checkDuplicates x <|> checkMultiple x <|> checkExhaustive x) . modDefs
+warnFile = maybeThrowIO . (\x -> checkDuplicates x <|> checkMultiple x) . modDefs
     <=< eitherThrowIO . parse
     <=< BSL.readFile
 
@@ -98,6 +99,9 @@
 
 tcFile :: [FilePath] -> FilePath -> IO ()
 tcFile is = eitherThrowIO . tyRun <=< amalgamateRename is
+
+patternExhaustivenessFile :: [FilePath] -> FilePath -> IO ()
+patternExhaustivenessFile is = maybeThrowIO . checkExhaustive <=< amalgamateRename is
 
 evalFile :: [FilePath] -> FilePath -> IO T.Text
 evalFile is fp = (\g -> evalFileGen g is fp) =<< newStdGen
diff --git a/src/Language/Dickinson/Type.hs b/src/Language/Dickinson/Type.hs
--- a/src/Language/Dickinson/Type.hs
+++ b/src/Language/Dickinson/Type.hs
@@ -117,7 +117,24 @@
 prettyImport pn (Import _ n) = parens (":include" <+> pn n)
 
 instance Pretty (Dickinson a) where
-    pretty (Dickinson is ds) = concatWith (\x y -> x <> hardline <> hardline <> y) (fmap pretty is <> ["%-"] <> fmap pretty ds)
+    pretty (Dickinson [] ds) =
+           "%-"
+        <> hardline
+        <> hardline
+        <> concatWith (\x y -> x <> hardline <> hardline <> y) (fmap pretty ds)
+    pretty (Dickinson is []) =
+           concatWith (\x y -> x <> hardline <> y) (fmap pretty is)
+        <> hardline
+        <> hardline
+        <> "%-"
+    pretty (Dickinson is ds) =
+           concatWith (\x y -> x <> hardline <> y) (fmap pretty is)
+        <> hardline
+        <> hardline
+        <> "%-"
+        <> hardline
+        <> hardline
+        <> concatWith (\x y -> x <> hardline <> hardline <> y) (fmap pretty ds)
 
 prettyLetLeaf :: Pretty t => (t, Expression a) -> Doc b
 prettyLetLeaf (n, e@MultiInterp{}) = group (brackets (pretty n <^> pretty e))
diff --git a/test/Golden.hs b/test/Golden.hs
--- a/test/Golden.hs
+++ b/test/Golden.hs
@@ -39,6 +39,7 @@
         , withDckFile "test/examples/quote.dck"
         , withDckFile "test/examples/declension.dck"
         , withDckFile "test/data/refractory.dck"
+        , withDckFile "test/data/imports.dck"
         ]
 
 prettyBSL :: Dickinson a -> BSL.ByteString
diff --git a/test/data/imports.dck b/test/data/imports.dck
new file mode 100644
--- /dev/null
+++ b/test/data/imports.dck
@@ -0,0 +1,4 @@
+(:include profession)
+(:include geography)
+
+%-
diff --git a/test/data/imports.pretty b/test/data/imports.pretty
new file mode 100644
--- /dev/null
+++ b/test/data/imports.pretty
@@ -0,0 +1,4 @@
+(:include profession)
+(:include geography)
+
+%-
diff --git a/test/data/pathologicalImports.dck b/test/data/pathologicalImports.dck
new file mode 100644
--- /dev/null
+++ b/test/data/pathologicalImports.dck
@@ -0,0 +1,11 @@
+(:include grammar.verb)
+(:include grammar.noun)
+
+%-
+
+(:def pronoun
+  (:lambda x (case, person)
+    (:match x
+      [(Subjective, First) "I"]
+      [(Objective, First) "me"]
+      )))
