Module eso::unify[][src]

Expand description

Type-level machinery to allow Eso::unify to work.

The Unify trait specifies the rules how two Maybe types can be merged:

This …… unifies with …… containing …… producing …
An<A>An<A>same inner typeAn<A>
No<A>An<B>any typeAn<B>
An<A>No<B>any typeAn<A>
No<A>No<B>any typeNo<A>

This module also provides the utility trait Unify3 that contains the ugly type manipulations to apply the Unify rules between three types.

Traits

Unify

A type A that can be unified with another type B.

Unify3

Shorthand for unifying three types by applying Unify twice.