@@ -15,6 +15,7 @@
1515{-# LANGUAGE RankNTypes #-}
1616{-# LANGUAGE RecordWildCards #-}
1717{-# LANGUAGE TemplateHaskell #-}
18+{-# LANGUAGE ViewPatterns #-}
1819
1920-- Module : Gen.Types
2021-- Copyright : (c) 2015 Brendan Hay
@@ -50,6 +51,7 @@ import Data.Text (Text)
5051import qualified Data.Text as Text
5152import qualified Data.Text.Lazy as LText
5253import qualified Data.Text.Lazy.Builder as Build
54+import Data.Text.Manipulate
5355import Debug.Trace
5456import qualified Filesystem.Path.CurrentOS as Path
5557import Formatting
@@ -287,3 +289,11 @@ reserveBranches = do
287289 ss <- use schemas
288290 let bs = Set.fromList $ map (CI.mk . global) (Map.keys ss)
289291 branches %= Map.insertWith (<>) mempty bs
292+
293+reserveFields :: AST ()
294+reserveFields = do
295+ ss <- use schemas
296+ forM_ (Map.keys ss) $ \(global -> k) -> do
297+ let p:ps = splitWords k
298+ s = mconcat ps
299+ fields %= Map.insertWith (<>) (CI.mk p) (Set.singleton (CI.mk s))