Companion
Extend this class in the companion object of a type or type tag that you would like to use as a seed.
final case class UserId(value: String)
object UserId extends SeededGen.Companion[UserId](SeedExtractor.from(_.value)) {
sealed abstract class Tag extends SeededGen.Tag
}
This will give you a uniform syntax for constructing seeded generators.
val example: UserId.Gen[String] = UserId.gen(implicit userId => Gen.string)