package scalaprops abstract class Seed extends Product with Serializable { def createRand: Rand } object Seed { final case class LongSeed(value: Long) extends Seed { override def createRand: Rand = Platform.randFromLong(value) } final case class IntSeed(value: Int) extends Seed { override def createRand: Rand = Platform.randFromInt(value) } final case class RandSeed(value: Rand) extends Seed { override def createRand: Rand = value } }