Class PrismLaws<S,​A>


  • public final class PrismLaws<S,​A>
    extends java.lang.Object
    • Field Detail

      • prism

        private final PPrism<S,​S,​A,​A> prism
    • Constructor Detail

      • PrismLaws

        public PrismLaws​(PPrism<S,​S,​A,​A> prism)
    • Method Detail

      • partialRoundTripOneWay

        public IsEq<S> partialRoundTripOneWay​(S s)
        if a Prism match you can always go back to the source
      • roundTripOtherWay

        public IsEq<Option<A>> roundTripOtherWay​(A a)
        reverseGet produces a value
      • modifyIdentity

        public IsEq<S> modifyIdentity​(S s)
        modify id = id
      • modifySupplierFPoint

        public IsEq<S> modifySupplierFPoint​(S s)
        modifyF Applicative.point(_) = Applicative.point(_)
      • modifyEitherFPoint

        public IsEq<Either<java.lang.String,​S>> modifyEitherFPoint​(S s)
        modifyF Applicative.point(_) = Applicative.point(_)
      • modifyOptionFPoint

        public IsEq<Option<S>> modifyOptionFPoint​(S s)
        modifyF Applicative.point(_) = Applicative.point(_)
      • modifyPairFPoint

        public IsEq<Pair<S,​S>> modifyPairFPoint​(S s)
        modifyF Applicative.point(_) = Applicative.point(_)
      • modifyFunctionFPoint

        public IsEq<S> modifyFunctionFPoint​(S s)
        modifyF Applicative.point(_) = Applicative.point(_)
      • modifyIterableFPoint

        public IsEq<java.util.List<S>> modifyIterableFPoint​(S s)
        modifyF Applicative.point(_) = Applicative.point(_)
      • setOption

        public IsEq<Option<S>> setOption​(S s,
                                         A a)
        setOption only succeeds when the Prism is matching
      • modifyOptionIdentity

        public IsEq<Option<S>> modifyOptionIdentity​(S s)
        modifyOption with id is isomorphomic to isMatching