@@ -38,6 +38,7 @@ import Control.Monad.Except
3838import Control.Monad.State.Strict
3939import Data.Aeson hiding (Array, Bool, String)
4040import Data.CaseInsensitive (CI)
41+import qualified Data.CaseInsensitive as CI
4142import Data.Function (on)
4243import qualified Data.HashMap.Strict as Map
4344import qualified Data.HashSet as Set
@@ -265,16 +266,16 @@ data Memo = Memo
265266 }
266267
267268initial :: Service (Fix Schema) -> Memo
268−initial s = Memo s mempty mempty core mempty mempty mempty
269+initial s = Memo s mempty mempty core mempty reserve mempty
269270 where
271+ -- Types available in Network.Google.Prelude.
270272 core = Map.fromList
271273 [ ("Body", SLit requiredInfo Body)
272274 ]
273275
274−-- reserve :: Flattened -> AST ()
275−-- reserve svc = do
276−-- let bs = Set.fromList $ map (CI.mk . idToText) (_svcSchemas svc)
277−-- branches %= Map.insert mempty bs
276+ -- Reserved sum constructor names.
277+ reserve = Map.singleton mempty . Set.fromList $
278+ map (CI.mk . global) (Map.keys (s ^. dSchemas))
278279
279280makeLenses ''Memo
280281