Duo-Combinators

Atop

``` /x:A M1-D2< \y:B

M1.AT(D2) (x,y) M1: Fn(C)->D D2: Fn(A,B)->C ```

Appose

``` /M2-x:A D1< \M2-y:A

D1.AP(M2) (x,y) D1: Fn(B,B)->C M2: Fn(A)->B ```

Compose

``` M1-M2-y:B

M1.CP(M2) (y) M1: Fn(D)->E M2: Fn(B)->C ```

Hook

``` /x:A D1< \M2-y:B

D1.HK(M2)(x,y) D1: Fn(A,C)->D M2: Fn(B)->C ```

MonoHook

``` (y) / \ D1< \ \M2-y:B

D1.MH(M2)(y) D1: Fn(B,C)->D M2: Fn(B)->C ```

RevHook

``` (y) / \ /M-x:A D1< X \ / -y:B (M2(x))

D1.RH(M2)(x,y) D1: Fn(B,C)->D M2: Fn(A)->C ```

Mono-Combinator

Relflex

``` (y) / \ D1< >y:B \ / (y)

D1.RF()(y) D1 : (B,B)->C ```

Flip

``` (y) / \ /x:A D1< X \ / \y:B (x)

D1.FL()(x,y) D1 : Fn(B,A)->C ```