diff --git a/demo/example.mad b/demo/example.mad
--- a/demo/example.mad
+++ b/demo/example.mad
@@ -27,7 +27,7 @@
     1.0 "wishes she could journey around the world."
     1.0 "falls down on the subway escalator."
     1.0 "meets a handsome dark stranger."
-    1.0 "suffers because mercury is in powerade."
+    1.0 "suffers because mercury is in gatorade."
     1.0 "charms a prince."
 
 :define subject
diff --git a/demo/releases.mad b/demo/releases.mad
new file mode 100644
--- /dev/null
+++ b/demo/releases.mad
@@ -0,0 +1,26 @@
+:include animals.mad
+:include adjectives.mad
+
+# TODO make a neat little site for this?
+:category release
+    | adjectives-aadjective.capitalize " " animals-aanimal.capitalize
+    | adjectives-badjective.capitalize " " animals-banimal.capitalize
+    | adjectives-cadjective.capitalize " " animals-canimal.capitalize
+    | adjectives-dadjective.capitalize " " animals-danimal.capitalize
+    | adjectives-eadjective.capitalize " " animals-eanimal.capitalize
+    | adjectives-fadjective.capitalize " " animals-fanimal.capitalize
+    | adjectives-gadjective.capitalize " " animals-ganimal.capitalize
+    | adjectives-hadjective.capitalize " " animals-hanimal.capitalize
+    | adjectives-iadjective.capitalize " " animals-ianimal.capitalize
+    | adjectives-ladjective.capitalize " " animals-lanimal.capitalize
+    | adjectives-kadjective.capitalize " " animals-kanimal.capitalize
+    | adjectives-madjective.capitalize " " animals-manimal.capitalize
+    | adjectives-nadjective.capitalize " " animals-nanimal.capitalize
+    | adjectives-oadjective.capitalize " " animals-oanimal.capitalize
+    | adjectives-padjective.capitalize " " animals-panimal.capitalize
+    | adjectives-qadjective.capitalize " " animals-qanimal.capitalize
+    | adjectives-sadjective.capitalize " " animals-sanimal.capitalize
+    | adjectives-vadjective.capitalize " " animals-vanimal.capitalize
+
+:return
+    1.0 release
diff --git a/madlang.cabal b/madlang.cabal
--- a/madlang.cabal
+++ b/madlang.cabal
@@ -1,5 +1,5 @@
 name:                madlang
-version:             3.1.0.10
+version:             3.1.1.0
 synopsis:            Randomized templating language DSL
 description:         Madlang is a text templating language written in Haskell,
                      meant to explore computational creativity and generative
diff --git a/src/Text/Madlibs/Ana/Parse.hs b/src/Text/Madlibs/Ana/Parse.hs
--- a/src/Text/Madlibs/Ana/Parse.hs
+++ b/src/Text/Madlibs/Ana/Parse.hs
@@ -165,6 +165,14 @@
     val <- fmap normalize . some $ function
     pure (str, val) <?> "category block"
 
+-- | Parse a `:library` declaration
+preLibrary :: Parser ()
+preLibrary = void (nonIndented (keyword "library"))
+    <?> "library declaration"
+
+library :: Parser (Key, [(Prob, [PreTok])])
+library = preLibrary >> pure ("Return", [(1, [])])
+
 -- | Parse the `:return` block
 final :: [T.Text] -> Parser [(Prob, [PreTok])]
 final ins = do
@@ -176,7 +184,7 @@
 program :: [T.Text] -> Parser [(Key, [(Prob, [PreTok])])]
 program ins = sortKeys <$> (checkSemantics =<< do
     inclusions
-    p <- many (try (definition ins) <|> try category <|> ((,) "Return" <$> final ins))
+    p <- many (try (definition ins) <|> try category <|> try ((,) "Return" <$> final ins) <|> library)
     lexeme eof
     pure p)
 
diff --git a/test/templates/include-recursive.mad b/test/templates/include-recursive.mad
--- a/test/templates/include-recursive.mad
+++ b/test/templates/include-recursive.mad
@@ -1,5 +1,5 @@
 :include include.mad
 :define another
-    1.0 include-gambling-something
+    1.0 include-lib-something
 :return
     1.0 another
diff --git a/test/templates/include.mad b/test/templates/include.mad
--- a/test/templates/include.mad
+++ b/test/templates/include.mad
@@ -1,6 +1,7 @@
-:include gambling.mad
+:include lib.mad
+
 :define realistic
-    1.0 gambling-something.to_lower
+    1.0 lib-something.to_lower
     0.03 "on its side"
 :return
     1.0 realistic
diff --git a/test/templates/lib.mad b/test/templates/lib.mad
new file mode 100644
--- /dev/null
+++ b/test/templates/lib.mad
@@ -0,0 +1,5 @@
+:library
+
+:define something
+    0.5 "heads".to_upper.to_upper
+    0.5 "tailS".to_lower
