mkBaseGen :: (MonadRandom m, Ord tc, Ord tv)
  => DataGenMap c tc tv m
  -> tc -> [tv]
  -> Choice (DataPat c tc tv)
  -> DataGen c tv m
mkBaseGen baseg tc vs alts = mkDataGenM baseg k tc alts id (const id)
  where
    k gen = DataGen vs gen

-- | An implementation shared by the two functions above.
mkBaseGen :: (MonadRandom m, Ord tc, Ord tv)
  => DataGenMap c tc tv m
  -> tc -> [tv]
  -> Choice (DataPat c tc tv)
  -> DataGen c tv m
mkBaseGen baseg tc vs alts = mkDataGenM baseg k tc alts id (const id)
  where
    k gen = DataGen vs gen

-- | An implementation shared by the two functions above.
mkBaseGen baseg tc vs alts = mkDataGenM baseg k tc alts id (const id)
  where
    k gen = DataGen vs gen

-- | An implementation shared by the two functions above.