On Fri, Nov 23, 2012 at 6:34 AM, Heinrich Apfelmus <apfelmus@quantentunnel.de> wrote:
The (#) operator is quite natural and useful in the diagrams library, but the thing is that even though it is *implemented* as function application, it is *semantically* not a function application. It only serves to furnish shapes and diagrams with additional properties; it's type is very restricted, so to speak.
Since the use cases mentioned (diagrams, lenses) are very similar, perhaps there is a general combinator (&) that does the job for both, but which has a much more restricted type and is not equivalent to reverse function application. Maybe an abstraction like "Settable functors", "Thingomorphisms with properties" or something like that.