Module type Decidable.WITH_LOSE_AND_CHOOSE

Exposes the lose and choose functions, mandatory for each requirement.

type 'a t

The type held by the Decidable.

val lose : ('a -> Preface_core.Void.t) -> 'a t

Since Preface_core.Void.t is identity for Either.t, lose act as an identity for Decidable.

val choose : ('a -> ('b, 'c) Stdlib.Either.t) -> 'b t -> 'c t -> 'a t

choose f x y says that if f can handle either x or y it can handle the result of the function.