Some of you might be familiar with (.:) = (.) . (.).
It has type :: (c -> d) -> (a -> b -> c) -> a -> b -> d
(.).(.) :: (Category cat) => cat c d -> (a -> cat b c) -> a -> cat b d
I know little about Category Theory, but throwing together some random words I collected over time that looks like... a "contravariant bind in the monad of endocategories", maybe? I just invented that and it's almost certainly meaningless gibberish, but knowing our community it might well be that there's a lib for that.
Also, why ish = f .: g == (f .) . g
not good enough?
So many questions, so much bikeshedding to do, so little time...