package scalaprops import scalaz.IList sealed abstract class CheckResult extends Product with Serializable{ def succeeded: Int def discarded: Int } object CheckResult { final case class Passed(override val succeeded: Int, override val discarded: Int) extends CheckResult final case class Proven(override val succeeded: Int, override val discarded: Int) extends CheckResult final case class Falsified(override val succeeded: Int, override val discarded: Int, args: IList[Arg]) extends CheckResult final case class Exhausted(override val succeeded: Int, override val discarded: Int) extends CheckResult final case class PropException(override val succeeded: Int, override val discarded: Int, args: IList[Arg], exception: Throwable) extends CheckResult final case class GenException(override val succeeded: Int, override val discarded: Int, exception: Throwable) extends CheckResult final case class Timeout(override val succeeded: Int, override val discarded: Int) extends CheckResult final case class Ignored(override val succeeded: Int, override val discarded: Int, reason: String) extends CheckResult }