Compose lenses whilst preserving unfocussed data

This commit is contained in:
milner committed 2019-02-19 19:49:43 +00:00
1 parent 0f219fea14
commit d996eba971
3 files changed
+12

No files matched your search

+4
View File
@@ -5,3 +5,7 @@ let lens ~view ~set = view, set
let view (get, _) = get
let set (_, put) = put
let over (get, put) ~f source = put (f (get source)) source
let compose (outer_get, outer_put) (inner_get, inner_put) =
(fun source -> inner_get (outer_get source)),
(fun value source -> outer_put (inner_put value (outer_get source)) source)