diff options
Diffstat (limited to 'src/Data/JLD.hs')
| -rw-r--r-- | src/Data/JLD.hs | 9 | 
1 files changed, 9 insertions, 0 deletions
| diff --git a/src/Data/JLD.hs b/src/Data/JLD.hs index c5c28eb..d7688d0 100644 --- a/src/Data/JLD.hs +++ b/src/Data/JLD.hs | |||
| @@ -5,6 +5,7 @@ module Data.JLD ( | |||
| 5 | JLDExpansionParams (..), | 5 | JLDExpansionParams (..), | 
| 6 | JLDExpansionState (..), | 6 | JLDExpansionState (..), | 
| 7 | expand, | 7 | expand, | 
| 8 | flatten, | ||
| 8 | ) where | 9 | ) where | 
| 9 | 10 | ||
| 10 | import Data.JLD.Prelude | 11 | import Data.JLD.Prelude | 
| @@ -15,6 +16,7 @@ import Data.JLD.Expansion (JLDEParams (..)) | |||
| 15 | import Data.JLD.Expansion qualified as E (expand) | 16 | import Data.JLD.Expansion qualified as E (expand) | 
| 16 | import Data.JLD.Expansion.Context (buildActiveContext) | 17 | import Data.JLD.Expansion.Context (buildActiveContext) | 
| 17 | import Data.JLD.Expansion.Global (JLDExpansionEnv (..), JLDExpansionState (..)) | 18 | import Data.JLD.Expansion.Global (JLDExpansionEnv (..), JLDExpansionState (..)) | 
| 19 | import Data.JLD.Flattening qualified as F (flatten) | ||
| 18 | import Data.JLD.Mime | 20 | import Data.JLD.Mime | 
| 19 | import Data.JLD.Model.ActiveContext (ActiveContext (..), newActiveContext) | 21 | import Data.JLD.Model.ActiveContext (ActiveContext (..), newActiveContext) | 
| 20 | import Data.JLD.Model.Keyword (Keyword (..)) | 22 | import Data.JLD.Model.Keyword (Keyword (..)) | 
| @@ -97,3 +99,10 @@ expand document baseUrl paramsFn = do | |||
| 97 | Left err -> Left err | 99 | Left err -> Left err | 
| 98 | 100 | ||
| 99 | pure (result', state') | 101 | pure (result', state') | 
| 102 | |||
| 103 | flatten :: Monad m => Value -> URI -> (JLDExpansionParams () m -> JLDExpansionParams e m) -> m (Either (JLDError e) Value, JLDExpansionState) | ||
| 104 | flatten document baseUrl paramsFn = do | ||
| 105 | (result, state') <- expand document baseUrl paramsFn | ||
| 106 | case result of | ||
| 107 | Left err -> pure (Left err, state') | ||
| 108 | Right expanded -> fmap (,state') <. runExceptT <| F.flatten expanded | ||
