Packages

trait Algebra[F[_]] extends AnyRef

A validation concept involves a function that evaluates a value and the ability to create a success or failure based on an input type wrapped in F. F must be able to express the concept of success or failure. Note that at this level, F could be a product type or sum type (coproduct). Usually they are sum types.

Should we consider message gathering to be a "logging" activity and use a writer monad?

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

Type Members

  1. trait Logic extends AnyRef

    Since we can fail and succeed, add logic support.

    Since we can fail and succeed, add logic support. This is really a Semigroup "combine" for a specific logic operation. Explicitly use or create an import for them as needed. We could defined an isValid type method in this trait but that's a bit of a code smell that we are using procedural logic and we can use these semigroups in other places and algorithms.

Abstract Value Members

  1. abstract def fail[I]: Validator[F, I, I]
  2. abstract val logic: Logic
  3. abstract def succeed[I]: Validator[F, I, I]

Concrete Value Members

  1. def apply[I, O](implicit validator: Validator[F, I, O]): Validator[F, I, O]
  2. def pure[I, O](f: (I) => F[O]): Validator[F, I, O]