Fantastic changes from @neoeinstein to allow passing in externally defined fromJson and toJson members for types that you don't control - makes it much simpler to write serialization code for System.* etc. types, or any other types where you can't write the serialization in the original type assembly.
Additionally, moved Json.setLens, etc. to Json.Lens.set, which is being harmonised across libraries which provide Aether lens functionality externally (generally monadic forms of the lens functions) - Freya is also moving to this. It also makes things consistent across libraries - Lens.set for core Aether lens functions, Json.Lens.set, Freya.Lens.set, etc. in external libraries which implement compatible functions. Non-breaking for now as shims are in place with deprecation - they will be removed in the next major version.
Fantastic changes from @neoeinstein to allow passing in externally defined fromJson and toJson members for types that you don't control - makes it much simpler to write serialization code for System.* etc. types, or any other types where you can't write the serialization in the original type assembly.
Additionally, moved Json.setLens, etc. to Json.Lens.set, which is being harmonised across libraries which provide Aether lens functionality externally (generally monadic forms of the lens functions) - Freya is also moving to this. It also makes things consistent across libraries - Lens.set for core Aether lens functions, Json.Lens.set, Freya.Lens.set, etc. in external libraries which implement compatible functions. Non-breaking for now as shims are in place with deprecation - they will be removed in the next major version.