diff --git a/cabal.project.local b/cabal.project.local
--- a/cabal.project.local
+++ b/cabal.project.local
@@ -1,3 +1,2 @@
-with-compiler: ghc-8.2.2
 optimization: 1
 constraints: madlang +development
diff --git a/madlang.cabal b/madlang.cabal
--- a/madlang.cabal
+++ b/madlang.cabal
@@ -1,145 +1,155 @@
-name:                madlang
-version:             4.0.1.0
-synopsis:            Randomized templating language DSL
-description:         Madlang is a text templating language written in Haskell,
-                     meant to explore computational creativity and generative
-                     literature.
-homepage:            https://hub.darcs.net/vmchale/madlang
-license:             BSD3
-license-file:        LICENSE
-author:              Vanessa McHale
-maintainer:          vanessa.mchale@reconfigure.io
-copyright:           Copyright: (c) 2016-2017 Vanessa McHale
-category:            Web
-build-type:          Custom
-stability:           experimental
-extra-source-files:  README.md
-                   , test/templates/*.mad
-                   , test/templates/err/*.mad
-                   , demo/*.mad
-                   , cabal.project.local
-                   , man/madlang.1
-cabal-version:       >=1.10
+cabal-version: >=1.10
+name: madlang
+version: 4.0.1.1
+license: BSD3
+license-file: LICENSE
+copyright: Copyright: (c) 2016-2017 Vanessa McHale
+maintainer: vanessa.mchale@reconfigure.io
+author: Vanessa McHale
+stability: experimental
+homepage: https://hub.darcs.net/vmchale/madlang
+synopsis: Randomized templating language DSL
+description:
+    Madlang is a text templating language written in Haskell,
+    meant to explore computational creativity and generative
+    literature.
+category: Web
+build-type: Custom
+extra-source-files:
+    README.md
+    test/templates/*.mad
+    test/templates/err/*.mad
+    demo/*.mad
+    cabal.project.local
+    man/madlang.1
 
-custom-setup
-  setup-depends:   base
-                 , Cabal
-                 , cli-setup >= 0.1.0.2
+source-repository head
+    type: darcs
+    location: https://hub.darcs.net/vmchale/madlang
 
-Flag profile {
-  Description: Build for profiling
-  Default: False
-  Manual: True
-}
+custom-setup
+    setup-depends: base -any,
+                   Cabal -any,
+                   cli-setup >=0.1.0.2
 
-Flag development {
-  Description: Turn on '-Werror'
-  Default: False
-  Manual: True
-}
+flag development
+    description:
+        Turn on '-Werror'
+    default: False
+    manual: True
 
-Flag library {
-  Description: Don't build an executable
-  Default:     False
-}
+flag library
+    description:
+        Don't build an executable
+    default: False
+    manual: True
 
 library
-  hs-source-dirs:      src
-  exposed-modules:     Text.Madlibs
-  other-modules:       Text.Madlibs.Ana.ParseUtils
-                     , Text.Madlibs.Cata.Run
-                     , Text.Madlibs.Ana.Parse
-                     , Text.Madlibs.Ana.Resolve
-                     , Text.Madlibs.Internal.Types
-                     , Text.Madlibs.Generate.TH
-                     , Text.Madlibs.Internal.Utils
-                     , Text.Madlibs.Cata.SemErr
-                     , Text.Madlibs.Cata.Display
-                     , Text.Madlibs.Packaging.Fetch
-  build-depends:       base >= 4.9 && < 5
-                     , megaparsec >= 6.0
-                     , text
-                     , template-haskell
-                     , MonadRandom
-                     , composition-prelude >= 1.1.0.0
-                     , directory
-                     , file-embed
-                     , random-shuffle
-                     , mtl
-                     , recursion-schemes-ext
-                     , ansi-wl-pprint
-                     , containers
-                     , titlecase >= 1.0
-                     , th-lift-instances
-                     , http-client
-                     , http-client-tls
-                     , tar
-                     , zlib
-                     , zip-archive
-                     , recursion-schemes
-                     , binary
-  default-language:    Haskell2010
-  if flag(development)
-    ghc-options:       -Werror
-  if impl(ghc >= 8.0)
-    ghc-options:       -Wincomplete-uni-patterns -Wincomplete-record-updates
-  ghc-options:         -Wall
+    exposed-modules:
+        Text.Madlibs
+    hs-source-dirs: src
+    other-modules:
+        Text.Madlibs.Ana.ParseUtils
+        Text.Madlibs.Cata.Run
+        Text.Madlibs.Ana.Parse
+        Text.Madlibs.Ana.Resolve
+        Text.Madlibs.Internal.Types
+        Text.Madlibs.Generate.TH
+        Text.Madlibs.Internal.Utils
+        Text.Madlibs.Cata.SemErr
+        Text.Madlibs.Cata.Display
+        Text.Madlibs.Packaging.Fetch
+    default-language: Haskell2010
+    ghc-options: -Wall
+    build-depends:
+        base >=4.9 && <5,
+        megaparsec >=6.0,
+        text -any,
+        template-haskell -any,
+        MonadRandom -any,
+        composition-prelude >=1.1.0.0,
+        directory -any,
+        file-embed -any,
+        random-shuffle -any,
+        mtl -any,
+        recursion-schemes-ext >=1.0.0.3,
+        ansi-wl-pprint -any,
+        containers -any,
+        titlecase >=1.0,
+        th-lift-instances -any,
+        http-client -any,
+        http-client-tls -any,
+        tar -any,
+        zlib -any,
+        zip-archive -any,
+        recursion-schemes -any,
+        binary -any
+    
+    if flag(development)
+        ghc-options: -Werror
+    
+    if impl(ghc >=8.0)
+        ghc-options: -Wincomplete-uni-patterns -Wincomplete-record-updates
 
 executable madlang
-  if flag(library)
-    Buildable: False
-  else
-    Buildable: True
-  hs-source-dirs:      app
-  main-is:             Main.hs
-  other-modules:       Paths_madlang
-  if flag(profile)
-    ghc-options:       -rtsopts -fprof-auto -prof
-  if flag(development)
-    ghc-options:       -Werror
-  if impl(ghc >= 8.0)
-    ghc-options:       -Wincomplete-uni-patterns -Wincomplete-record-updates
-  ghc-options:         -Wall
-  build-depends:       base
-                     , madlang
-                     , optparse-applicative
-                     , text
-                     , directory
-                     , megaparsec
-  default-language:    Haskell2010
-
-benchmark madlang-bench
-  type:             exitcode-stdio-1.0
-  hs-source-dirs:   bench
-  main-is:          Bench.hs
-  build-depends:    base
-                  , criterion
-                  , madlang
-                  , megaparsec
-                  , text
-  if flag(development)
-    ghc-options:    -Werror
-  if impl(ghc >= 8.0)
-    ghc-options:    -Wincomplete-uni-patterns -Wincomplete-record-updates
-  default-language: Haskell2010
+    main-is: Main.hs
+    hs-source-dirs: app
+    other-modules:
+        Paths_madlang
+    default-language: Haskell2010
+    ghc-options: -Wall
+    build-depends:
+        base -any,
+        madlang -any,
+        optparse-applicative -any,
+        text -any,
+        directory -any,
+        megaparsec -any
+    
+    if flag(library)
+        buildable: False
+    
+    if flag(development)
+        ghc-options: -Werror
+    
+    if impl(ghc >=8.0)
+        ghc-options: -Wincomplete-uni-patterns -Wincomplete-record-updates
 
 test-suite madlang-test
-  type:                exitcode-stdio-1.0
-  hs-source-dirs:      test
-  main-is:             Spec.hs
-  other-modules:       Demo
-  build-depends:       base
-                     , madlang
-                     , hspec
-                     , text
-                     , hspec-megaparsec
-  if flag(development)
-    ghc-options:       -Werror
-  if impl(ghc >= 8.0)
-    ghc-options:       -Wincomplete-uni-patterns -Wincomplete-record-updates
-  ghc-options:         -threaded -rtsopts -Wall -with-rtsopts=-N
-  default-language:    Haskell2010
+    type: exitcode-stdio-1.0
+    main-is: Spec.hs
+    hs-source-dirs: test
+    other-modules:
+        Demo
+    default-language: Haskell2010
+    ghc-options: -threaded -rtsopts -Wall -with-rtsopts=-N
+    build-depends:
+        base -any,
+        madlang -any,
+        hspec -any,
+        text -any,
+        hspec-megaparsec -any
+    
+    if flag(development)
+        ghc-options: -Werror
+    
+    if impl(ghc >=8.0)
+        ghc-options: -Wincomplete-uni-patterns -Wincomplete-record-updates
 
-source-repository head
-  type:     darcs
-  location: https://hub.darcs.net/vmchale/madlang
+benchmark madlang-bench
+    type: exitcode-stdio-1.0
+    main-is: Bench.hs
+    hs-source-dirs: bench
+    default-language: Haskell2010
+    build-depends:
+        base -any,
+        criterion -any,
+        madlang -any,
+        megaparsec -any,
+        text -any
+    
+    if flag(development)
+        ghc-options: -Werror
+    
+    if impl(ghc >=8.0)
+        ghc-options: -Wincomplete-uni-patterns -Wincomplete-record-updates
