madlang 4.0.2.9 → 4.0.2.11
raw patch · 12 files changed
+62/−38 lines, 12 filesdep +recursiondep −recursion-schemesdep ~basesetup-changedPVP ok
version bump matches the API change (PVP)
Dependencies added: recursion
Dependencies removed: recursion-schemes
Dependency ranges changed: base
API changes (from Hackage documentation)
Files
- CHANGELOG.md +9/−0
- Setup.hs +7/−4
- app/Main.hs +2/−2
- madlang.cabal +18/−8
- src/Text/Madlibs/Ana/Parse.hs +1/−0
- src/Text/Madlibs/Ana/ParseUtils.hs +1/−0
- src/Text/Madlibs/Ana/Resolve.hs +1/−1
- src/Text/Madlibs/Cata/Display.hs +1/−1
- src/Text/Madlibs/Cata/SemErr.hs +0/−1
- src/Text/Madlibs/Generate/TH.hs +2/−5
- src/Text/Madlibs/Internal/Types.hs +18/−13
- src/Text/Madlibs/Internal/Utils.hs +2/−3
CHANGELOG.md view
@@ -1,5 +1,14 @@ # madlang +## 4.0.2.11++ * Use `recursion` rather than `recursion-schemes`+ * No longer depend on `TemplateHaskell`++## 4.0.2.10++ * Allow GHC <= 8.0.2+ ## 4.0.2.9 * Use `getUserAppDataDirectory` instead of relying on the `$HOME` variable,
Setup.hs view
@@ -1,8 +1,11 @@+import Data.Foldable (sequenceA_) import Distribution.CommandLine import Distribution.Simple main :: IO ()-main = setManpath >>- writeManpages "man/madlang.1" "madlang.1" >>- writeBashCompletions "madlang" >>- defaultMain+main = sequenceA_+ [ setManpath+ , writeManpages "man/madlang.1" "madlang.1"+ , writeBashCompletions "madlang"+ , defaultMain+ ]
app/Main.hs view
@@ -1,8 +1,8 @@ -- | Provides `madlang` runMadlangutable-module Main (- main ) where+module Main ( main ) where import Data.Maybe+import Data.Semigroup import qualified Data.Text as T import qualified Data.Text.Lazy as TL import qualified Data.Text.Lazy.IO as TLIO
madlang.cabal view
@@ -1,19 +1,19 @@ cabal-version: 1.18 name: madlang-version: 4.0.2.9+version: 4.0.2.11 license: BSD3 license-file: LICENSE copyright: Copyright: (c) 2016-2018 Vanessa McHale maintainer: vamchale@gmail.com author: Vanessa McHale stability: experimental-homepage: https://hub.darcs.net/vmchale/madlang+tested-with: ghc ==8.2.2 ghc ==8.4.3 ghc ==8.0.2 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+category: Text build-type: Custom extra-source-files: test/templates/*.mad@@ -60,9 +60,12 @@ Text.Madlibs.Cata.SemErr Text.Madlibs.Cata.Display default-language: Haskell2010+ other-extensions: DeriveAnyClass DeriveFunctor DeriveGeneric+ DeriveLift FlexibleInstances OverloadedStrings TypeFamilies+ TemplateHaskell ghc-options: -Wall build-depends:- base >=4.11 && <5,+ base >=4.9 && <5, megaparsec >=6.0, text -any, template-haskell -any,@@ -76,14 +79,15 @@ containers -any, titlecase >=1.0, th-lift-instances -any,- recursion-schemes -any,+ recursion >=1.0.0.0, binary -any - if flag(development)+ if (flag(development) && impl(ghc <8.4)) ghc-options: -Werror if impl(ghc >=8.0) ghc-options: -Wincomplete-uni-patterns -Wincomplete-record-updates+ -Wredundant-constraints -Widentities executable madlang main-is: Main.hs@@ -94,7 +98,7 @@ default-language: Haskell2010 ghc-options: -Wall build-depends:- base >=4.11,+ base >=4.9, madlang -any, optparse-applicative -any, text -any,@@ -109,11 +113,12 @@ if flag(library) buildable: False - if flag(development)+ if (flag(development) && impl(ghc <8.4)) ghc-options: -Werror if impl(ghc >=8.0) ghc-options: -Wincomplete-uni-patterns -Wincomplete-record-updates+ -Wredundant-constraints -Widentities test-suite madlang-test type: exitcode-stdio-1.0@@ -135,6 +140,7 @@ if impl(ghc >=8.0) ghc-options: -Wincomplete-uni-patterns -Wincomplete-record-updates+ -Wredundant-constraints -Widentities benchmark madlang-bench type: exitcode-stdio-1.0@@ -148,8 +154,12 @@ megaparsec -any, text -any + if impl(ghc >=8.0)+ ghc-options: -Wredundant-constraints -Widentities+ if flag(development) ghc-options: -Werror if impl(ghc >=8.0) ghc-options: -Wincomplete-uni-patterns -Wincomplete-record-updates+ -Wredundant-constraints -Widentities
src/Text/Madlibs/Ana/Parse.hs view
@@ -17,6 +17,7 @@ import Control.Monad.State import qualified Data.Map as M import Data.Maybe+import Data.Semigroup import qualified Data.Text as T import Data.Void import Text.Madlibs.Ana.ParseUtils
src/Text/Madlibs/Ana/ParseUtils.hs view
@@ -19,6 +19,7 @@ import Data.List import qualified Data.Map as M import Data.Maybe (mapMaybe)+import Data.Semigroup import qualified Data.Set as S import qualified Data.Text as T import Data.Text.Titlecase
src/Text/Madlibs/Ana/Resolve.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedStrings #-} -- | Module containing IO stuff to get/parse files with external dependencies@@ -18,6 +17,7 @@ import Control.Monad (replicateM, void) import Control.Monad.IO.Class (MonadIO, liftIO) import Control.Monad.Random.Class+import Data.Semigroup import qualified Data.Text as T import Data.Void import System.Directory
src/Text/Madlibs/Cata/Display.hs view
@@ -1,7 +1,7 @@ -- | Module with helper functions for displaying the parsed tree module Text.Madlibs.Cata.Display (displayTree) where -import Data.Functor.Foldable+import Control.Recursion import Data.Tree import Text.Madlibs.Internal.Types
src/Text/Madlibs/Cata/SemErr.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedStrings #-} -- | Module defining the SemErr data type
src/Text/Madlibs/Generate/TH.hs view
@@ -1,8 +1,4 @@-{-# OPTIONS_GHC -fno-warn-orphans #-}-{-# LANGUAGE DeriveLift #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE StandaloneDeriving #-}-{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TemplateHaskell #-} -- | Module containing Quasi-Quoter and Template Haskell splice for use as an EDSL. module Text.Madlibs.Generate.TH@@ -12,6 +8,7 @@ import Control.Arrow (first) import Data.FileEmbed (embedStringFile)+import Data.Semigroup import qualified Data.Text as T import qualified Data.Text.IO as TIO import Data.Void
src/Text/Madlibs/Internal/Types.hs view
@@ -1,23 +1,20 @@-{-# LANGUAGE DeriveAnyClass #-}-{-# LANGUAGE DeriveFoldable #-}-{-# LANGUAGE DeriveFunctor #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE DeriveLift #-}-{-# LANGUAGE DeriveTraversable #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE TemplateHaskell #-}-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE TypeSynonymInstances #-}+{-# LANGUAGE DeriveAnyClass #-}+{-# LANGUAGE DeriveFunctor #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DeriveLift #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TypeFamilies #-} -- | Module with the type of a random token module Text.Madlibs.Internal.Types where import Control.Arrow (second) import Control.Monad.State+import Control.Recursion import Data.Binary (Binary) import Data.Function-import Data.Functor.Foldable.TH (makeBaseFunctor)+import Data.Semigroup import qualified Data.Text as T import GHC.Generics (Generic) import Instances.TH.Lift ()@@ -61,6 +58,7 @@ -- > (List [(0.5,"Hello you"), (0.5, "Hello me")]) instance Monoid RandTok where mempty = Value ""+ mappend = (<>) -- TODO make this a map instead of keys for faster parse. -- | State monad providing context, i.e. function we've already called before@@ -70,4 +68,11 @@ instance (Eq a) => Eq (Context a) where (==) = on (==) (flip evalState []) -makeBaseFunctor ''RandTok+data RandTokF a = ListF [(Prob, a)] | ValueF T.Text+ deriving (Functor)++type instance Base RandTok = RandTokF++instance Recursive RandTok where+ project (List psk) = ListF psk+ project (Value t) = ValueF t
src/Text/Madlibs/Internal/Utils.hs view
@@ -1,6 +1,5 @@-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE TypeSynonymInstances #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE OverloadedStrings #-} -- | Internal utils to help out elsewhere module Text.Madlibs.Internal.Utils where