Package

hedgehog

predef

Permalink

package predef

We have our own FP predef for 2 reasons.

1. The obvious political reasons. I don't think there are any really good reasons to need more than one implementation of this library (if we do our job correctly).

Probably more importantly:

2. Library dependencies _do_ have a cost. Especially in the JVM world where we insist of relying on binary compatibility.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. predef
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. trait Applicative[F[_]] extends Functor[F]

    Permalink
  2. trait ApplicativeSyntax extends AnyRef

    Permalink

    Convenience syntax for Applicative usage.

    Convenience syntax for Applicative usage.

    Please forgive the use of overloading here, which avoids having to have an ApplicativeBuilder.

  3. trait DecimalPlus[A] extends AnyRef

    Permalink

    Operations that are unfortunately missing from Fractional

  4. class EitherOps[L, R] extends AnyRef

    Permalink
  5. trait Functor[F[_]] extends AnyRef

    Permalink
  6. abstract class Identity[A] extends AnyRef

    Permalink

    The simplest form of monad that we can use with hedgehog.

    The simplest form of monad that we can use with hedgehog.

    NOTE: We _must_ use some form of call-by-need value for our M in GenT[M, ?] to avoid stack overflows.

  7. trait IntegralPlus[A] extends AnyRef

    Permalink

    Operations that are unfortunately missing from Integral

  8. sealed trait LazyList[A] extends AnyRef

    Permalink

    A _very_ naive lazy-list.

    A _very_ naive lazy-list. Unfortunately using Scala Stream results in the head being evaluated prematurely for shrinking.

  9. trait Monad[F[_]] extends Applicative[F]

    Permalink
  10. type State[S, A] = StateT[Identity, S, A]

    Permalink
  11. case class StateT[M[_], S, A](run: (S) ⇒ M[(S, A)]) extends Product with Serializable

    Permalink
  12. abstract class StateTImplicits1 extends AnyRef

    Permalink
  13. abstract class StateTImplicits2 extends StateTImplicits1

    Permalink
  14. trait StateTOpt[M[_]] extends AnyRef

    Permalink

Value Members

  1. object Applicative

    Permalink
  2. object DecimalPlus

    Permalink
  3. object Functor

    Permalink
  4. object Identity

    Permalink
  5. object IntegralPlus

    Permalink
  6. object LazyList

    Permalink
  7. object Monad

    Permalink
  8. def State: StateTOpt[Identity]

    Permalink
  9. object StateT extends StateTImplicits2 with Serializable

    Permalink
  10. implicit def eitherOps[L, R](e: Either[L, R]): EitherOps[L, R]

    Permalink
  11. def findMap[A, B](fa: LazyList[A])(f: (A) ⇒ Option[B]): Option[B]

    Permalink
    Annotations
    @tailrec()
  12. def replicateM[M[_], A](n: Int, fa: M[A])(implicit F: Applicative[M]): M[List[A]]

    Permalink

    Performs the action n times, returning the list of results.

  13. def sequence[M[_], A](fa: List[M[A]])(implicit F: Applicative[M]): M[List[A]]

    Permalink

    Strict sequencing in an applicative functor M that ignores the value in fa.

  14. def some[A](a: A): Option[A]

    Permalink
  15. def stateT[M[_]]: StateTOpt[M]

    Permalink
  16. def traverse[M[_], A, B](fa: List[A])(f: (A) ⇒ M[B])(implicit F: Applicative[M]): M[List[B]]

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped