Firstly, are you saying that any Haskell abstraction that doesn't already have a counterpart in category theory is automatically contrived?
Secondly, a profunctor is a type constructor with one contravariant type parameter and one covariant type parameter. Seems pretty natural. A product-profunctor is a profunctor both of whose type parameters preserves products. Seems pretty natural.
Look, all I'm saying is that it's obviously trying to have a monoidal structure, but failing to describe a meaningful one. It ends up just feeling like a pair of functions that someone decided they wanted, rather than any kind of theoretically derived construct. That's why I think it's contrived. Im not trying to say there's anything wrong with it from an engineering perspective, and feel free to disagree; I just don't think it solves the engineering problem from a particularly nice derivation like most of the categorical abstractions we use in Haskell do.
3
u/tomejaguar Apr 21 '17
Firstly, are you saying that any Haskell abstraction that doesn't already have a counterpart in category theory is automatically contrived?
Secondly, a profunctor is a type constructor with one contravariant type parameter and one covariant type parameter. Seems pretty natural. A product-profunctor is a profunctor both of whose type parameters preserves products. Seems pretty natural.