The contravariant analogue of Plus. Adds on to Decide the ability
to express a combinator that rejects all input, to act as the dead-end.
Essentially Decidable without a superclass constraint on Divisible.
If one thinks of f a as a consumer of as, then conclude defines
a consumer that cannot ever receive any input.
Conclude acts as an identity with decide, because any decision that involves conclude must necessarily always pick the other option.
That is, for, say,
decide f x concluded
f is the deciding function that picks which of the inputs of decide
to direct input to; in the situation above, f must always direct all
input to x, and never concluded.
Mathematically, a functor being an instance of Decide means that it is
"monoidal" with respect to the contravariant "either-based" Day
convolution described in the documentation of Decide. On top of
Decide, it adds a way to construct an "identity" conclude where
decide f x (conclude q) == x, and decide g (conclude r) y == y.
Instances25Conclude, …
Conclude ComparisonDefined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeConclude EquivalenceDefined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeConclude PredicateDefined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeDecidable f => Conclude (WrappedDivisible f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeThis instance is only available if the
+contravariantcabalflag is enabled.Conclude ProxyDefined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeConclude U1Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeConclude (Op r)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.Conclude(Divisible m, Divise m) => Conclude (MaybeT m)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeThis instance is only available if the
+contravariantcabalflag is enabled.Conclude f => Conclude (Alt f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeConclude f => Conclude (Rec1 f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeConclude f => Conclude (Backwards f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeConclude f => Conclude (IdentityT f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeConclude f => Conclude (Reverse f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeConclude m => Conclude (ReaderT r m)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeConclude m => Conclude (StateT s m)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeConclude m => Conclude (StateT s m)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeConclude m => Conclude (WriterT w m)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeConclude m => Conclude (WriterT w m)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.Conclude(Conclude f, Conclude g) => Conclude (Product f g)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.Conclude(Conclude f, Conclude g) => Conclude (f :*: g)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeConclude f => Conclude (M1 i c f)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeConclude m => Conclude (RWST r w s m)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeConclude m => Conclude (RWST r w s m)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.Conclude(Apply f, Applicative f, Conclude g) => Conclude (Compose f g)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.Conclude(Apply f, Applicative f, Conclude g) => Conclude (f :.: g)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.Conclude