A workaround for the difficulties of dealing with a contravariant 'In' parameter type.
A Rule is a function from some input to a Result.
A factory for rules.
A factory for rules that apply to a particular context.
One of the 'unit' definitions must be overridden in concrete subclasses
View one type of input as another based on a transformation rule
Represents the combined value of two rules applied in sequence.