case classDateSource(start: LocalDate, incrementUnit: Period = Period.ofWeeks(1))(implicit fmt: DateTimeFormatter = Implicits.fmt) extends Source[Iterator[LocalDate], String] with Product with Serializable
case classGaussianSource(mu: Double = 2.0, sigma: Double = 1.0)(implicit mc: MathContext = Implicits.mc) extends Source[Gaussian, Double] with Product with Serializable
case classGenderSource(p: Double = 0.5) extends Source[Bernoulli, String] with Product with Serializable
case classIncrementingSource(start: Int = 1) extends Source[Iterator[Int], Int] with Product with Serializable