OptionalLaws

dev.constructive.eo.laws.OptionalLaws
trait OptionalLaws[S, A]

Law equations for an Optional[S, A]Optic[S, S, A, A, Affine].

Ported from Monocle's monocle.law.OptionalLaws. getOption is recovered from EO's primitive to, whose Affine carrier is a Miss/Hit sum — fold projects out the focused value when present.

Attributes

Source
OptionalLaws.scala
Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Value members

Abstract methods

def optional: Optic[S, S, A, A, Affine]

The optic under test.

The optic under test.

Attributes

Source
OptionalLaws.scala

Concrete methods

def composeModify(s: S, f: A => A, g: A => A): Boolean

modify(g) ∘ modify(f) == modify(f andThen g).

modify(g) ∘ modify(f) == modify(f andThen g).

Attributes

Source
OptionalLaws.scala
def consistentGetOptionModifyId(s: S): Boolean

getOption survives a no-op modify: getOption(modify(identity)(s)) == getOption(s).

getOption survives a no-op modify: getOption(modify(identity)(s)) == getOption(s).

Attributes

Source
OptionalLaws.scala
def getOption(s: S): Option[A]

Mirror of Monocle's Optional.getOption.

Mirror of Monocle's Optional.getOption.

Attributes

Source
OptionalLaws.scala
def modifyIdentity(s: S): Boolean

modify(identity) == identity.

modify(identity) == identity.

Attributes

Source
OptionalLaws.scala