:: a -> (a -> b) -> b -package:diagrams-lib package:ghc-lib-parser