initNameGen :: MonadError Error m => HS.HashSet Binding -> m NameGenerator
initNameGen taken =
    make
        ( taken
        , [ makeThrow $ char `T.cons` maybe [] show num
          | num <- Nothing : map Just [(0 :: Integer) ..]
          , char <- ['a' .. 'z']
          ])
initNameGen :: MonadError Error m => HS.HashSet Binding -> m NameGenerator
initNameGen taken =
    make
        ( taken
        , [ makeThrow $ char `T.cons` maybe [] show num
          | num <- Nothing : map Just [(0 :: Integer) ..]
          , char <- ['a' .. 'z']
          ])
initNameGen taken =
    make
        ( taken
        , [ makeThrow $ char `T.cons` maybe [] show num
          | num <- Nothing : map Just [(0 :: Integer) ..]
          , char <- ['a' .. 'z']
          ])