on master help sign in
Add requireA/requireAllA functions
89cd33cJasper Van der Jeugt
src/Hakyll/Core/Compiler.hs+18
@@ -9,7 +9,9 @@ module Hakyll.Core.Compiler
9 , getResourceString
9 , getResourceString
10 , fromDependency
10 , fromDependency
11 , require
11 , require
12+ , requireA
12 , requireAll
13 , requireAll
14+ , requireAllA
13 , cached
15 , cached
14 , unsafeCompiler
16 , unsafeCompiler
15 ) where
17 ) where
@@ -108,6 +110,14 @@ require identifier f =
108 y <- getDependency identifier
110 y <- getDependency identifier
109 return $ f x y
111 return $ f x y
110
112
113+-- | Arrow-based variant of 'require'
114+--
115+requireA :: (Binary a, Typeable a, Writable a)
116+ => Identifier
117+ -> Compiler (b, a) c
118+ -> Compiler b c
119+requireA identifier = (require identifier (,) >>>)
120+
111-- | Require a number of targets. Using this function ensures automatic handling
121-- | Require a number of targets. Using this function ensures automatic handling
112-- of dependencies
122-- of dependencies
113--
123--
@@ -124,6 +134,14 @@ requireAll pattern f =
124 items <- mapM (unCompilerM . getDependency) deps
134 items <- mapM (unCompilerM . getDependency) deps
125 return $ f x items
135 return $ f x items
126
136
137+-- | Arrow-based variant of 'require'
138+--
139+requireAllA :: (Binary a, Typeable a, Writable a)
140+ => Pattern
141+ -> Compiler (b, [a]) c
142+ -> Compiler b c
143+requireAllA pattern = (requireAll pattern (,) >>>)
144+
127cached :: (Binary a, Typeable a, Writable a)
145cached :: (Binary a, Typeable a, Writable a)
128 => String
146 => String
129 -> Compiler () a
147 -> Compiler () a