diff options
| author | Jasper Van der Jeugt <m@jaspervdj.be> | 2012-11-24 13:34:50 +0100 |
|---|---|---|
| committer | Jasper Van der Jeugt <m@jaspervdj.be> | 2012-11-24 13:35:00 +0100 |
| commit | 6e7a80e8a3a4ac5d77a2f520cd8ecc1aba6f32ef (patch) | |
| tree | 28bbc77da81f485db5aa696d658e69c142c13bdf /src/Hakyll/Core/Rules | |
| parent | 0a6b2b259862b90ccca11281de89091e2e01cb4d (diff) | |
| download | hakyll-6e7a80e8a3a4ac5d77a2f520cd8ecc1aba6f32ef.tar.gz | |
Simpler rules
Diffstat (limited to 'src/Hakyll/Core/Rules')
| -rw-r--r-- | src/Hakyll/Core/Rules/Internal.hs | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/src/Hakyll/Core/Rules/Internal.hs b/src/Hakyll/Core/Rules/Internal.hs index 249ae3b..df42d11 100644 --- a/src/Hakyll/Core/Rules/Internal.hs +++ b/src/Hakyll/Core/Rules/Internal.hs @@ -4,7 +4,6 @@ {-# LANGUAGE Rank2Types #-} module Hakyll.Core.Rules.Internal ( RuleSet (..) - , RuleState (..) , RuleEnvironment (..) , Rules (..) , runRules @@ -51,13 +50,6 @@ instance Monoid RuleSet where -------------------------------------------------------------------------------- --- | Rule state -data RuleState = RuleState - { rulesNextIdentifier :: Int - } deriving (Show) - - --------------------------------------------------------------------------------- -- | Rule environment data RuleEnvironment = RuleEnvironment { rulesProvider :: Provider @@ -69,7 +61,7 @@ data RuleEnvironment = RuleEnvironment -------------------------------------------------------------------------------- -- | The monad used to compose rules newtype Rules a = Rules - { unRules :: RWST RuleEnvironment RuleSet RuleState IO a + { unRules :: RWST RuleEnvironment RuleSet () IO a } deriving (Monad, Functor, Applicative) @@ -88,11 +80,10 @@ instance MonadMetadata Rules where -- | Run a Rules monad, resulting in a 'RuleSet' runRules :: Rules a -> Provider -> IO RuleSet runRules rules provider = do - (_, _, ruleSet) <- runRWST (unRules rules) env state + (_, _, ruleSet) <- runRWST (unRules rules) env () return $ nubCompilers ruleSet where - state = RuleState {rulesNextIdentifier = 0} - env = RuleEnvironment + env = RuleEnvironment { rulesProvider = provider , rulesPattern = mempty , rulesVersion = Nothing @@ -103,6 +94,6 @@ runRules rules provider = do -- | Remove duplicate compilers from the 'RuleSet'. When two compilers match an -- item, we prefer the first one nubCompilers :: RuleSet -> RuleSet -nubCompilers set = set { rulesCompilers = nubCompilers' (rulesCompilers set) } +nubCompilers set = set {rulesCompilers = nubCompilers' (rulesCompilers set)} where nubCompilers' = M.toList . M.fromListWith (flip const) |
