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