@@ -15,6 +15,7 @@
15{-# LANGUAGE RankNTypes #-}
15{-# LANGUAGE RankNTypes #-}
16{-# LANGUAGE RecordWildCards #-}
16{-# LANGUAGE RecordWildCards #-}
17{-# LANGUAGE TemplateHaskell #-}
17{-# LANGUAGE TemplateHaskell #-}
18+{-# LANGUAGE ViewPatterns #-}
19-- Module : Gen.Types
20-- Module : Gen.Types
20-- Copyright : (c) 2015 Brendan Hay
21-- Copyright : (c) 2015 Brendan Hay
@@ -50,6 +51,7 @@ import Data.Text (Text)
50import qualified Data.Text as Text
51import qualified Data.Text as Text
51import qualified Data.Text.Lazy as LText
52import qualified Data.Text.Lazy as LText
52import qualified Data.Text.Lazy.Builder as Build
53import qualified Data.Text.Lazy.Builder as Build
54+import Data.Text.Manipulate
53import Debug.Trace
55import Debug.Trace
54import qualified Filesystem.Path.CurrentOS as Path
56import qualified Filesystem.Path.CurrentOS as Path
55import Formatting
57import Formatting
@@ -287,3 +289,11 @@ reserveBranches = do
287 ss <- use schemas
289 ss <- use schemas
288 let bs = Set.fromList $ map (CI.mk . global) (Map.keys ss)
290 let bs = Set.fromList $ map (CI.mk . global) (Map.keys ss)
289 branches %= Map.insertWith (<>) mempty bs
291 branches %= Map.insertWith (<>) mempty bs
293+reserveFields :: AST ()
296+ forM_ (Map.keys ss) $ \(global -> k) -> do
297+ let p:ps = splitWords k
299+ fields %= Map.insertWith (<>) (CI.mk p) (Set.singleton (CI.mk s))