:: a -> (a -> b) -> b -package:diagrams-lib -package:funcmp package:bifunctors