pub type Equal<X, A, B> = App<App<FEq, X>, Tup<A, B>>;
eq{x}(a, b).
eq{x}(a, b)
pub struct Equal<X, A, B>(/* private fields */);