Evidence that states if the conclusion C
can be inferred from the
premise P
or not.
Type class that allows F
to be used as carrier type of a refinement.
Type class that allows F
to be used as carrier type of a refinement.
The first type parameter of F
is the base type that is being refined
by its second type parameter which is the type-level predicate that
denotes the refinement. Consequently, F[T, P]
is a phantom type
that only contains a value of type T
.
The library provides instances of RefType
for
Refined
value classshapeless.tag.@@
which is a subtype of its first parameter
(i.e. (T @@ P) <: T
)
Wraps a value of type T
that satisfies the predicate P
.
Type class for validating values of type T
according to a type-level
predicate P
.
Type class for validating values of type T
according to a type-level
predicate P
. The semantics of P
are defined by the instance(s) of
this type class for P
.
Evidence that states if the conclusion
C
can be inferred from the premiseP
or not.This type class is used to implement refinement subtyping. If a valid
Inference[P, C]
exists, the typeF[T, P]
is considered a subtype ofF[T, C]
.