gratuitous type operators
semigroupoid instances