type Foo(a) = a + Foo type Bar = Bar + Foo type Zip = Unit + Graph