diff --git a/madlang.cabal b/madlang.cabal
--- a/madlang.cabal
+++ b/madlang.cabal
@@ -1,5 +1,5 @@
 name:                madlang
-version:             4.0.0.3
+version:             4.0.0.4
 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.hs b/src/Text/Madlibs.hs
--- a/src/Text/Madlibs.hs
+++ b/src/Text/Madlibs.hs
@@ -38,6 +38,7 @@
                     , SemanticError (..)
                     -- * Command-line executable
                     , runMadlang
+                    , cacheFile
                     -- * Template Haskell EDSL
                     , madlang
                     , madFile
diff --git a/src/Text/Madlibs/Ana/Resolve.hs b/src/Text/Madlibs/Ana/Resolve.hs
--- a/src/Text/Madlibs/Ana/Resolve.hs
+++ b/src/Text/Madlibs/Ana/Resolve.hs
@@ -1,4 +1,5 @@
-{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleContexts  #-}
+{-# LANGUAGE OverloadedStrings #-}
 
 -- | Module containing IO stuff to get/parse files with external dependencies
 module Text.Madlibs.Ana.Resolve (
@@ -56,7 +57,7 @@
         | otherwise = '/'
 
 filenameBytecode :: FilePath -> FilePath
-filenameBytecode = id
+filenameBytecode = T.unpack . T.replace ".mad" ".mbc" . T.pack
 
 -- | Cache the parsed strucutre (and libraries it depends on) as a binary file
 -- `.filename.mbc`, reading instead from it when possible.
