All the material in Categories.hs and CategoriesInstances.hs does not belong to an implementation of optics but should be part of some library on constrained categories.
The criterion for correctness is that they should have the definitions and laws of enriched categories over the types of the language. Data.Category does not seem to be enough (the constraints needed to be passed to constructors), but I would be happy to adopt some new version of it.
Meanwhile, the code can keep the necessary Category instances.
All the material in
Categories.hs
andCategoriesInstances.hs
does not belong to an implementation of optics but should be part of some library on constrained categories.The criterion for correctness is that they should have the definitions and laws of enriched categories over the types of the language. Data.Category does not seem to be enough (the constraints needed to be passed to constructors), but I would be happy to adopt some new version of it.
Meanwhile, the code can keep the necessary Category instances.