import { refold } from "https://deno.land/x/fun@v2.0.0-alpha.10/optics.ts";
Construct a Refold<S, A> from view, review, and modify functions.
Examples
Example 1
Example 1
import * as O from "./optics.ts";
import * as S from "./set.ts";
const set = <A>() => O.refold<ReadonlySet<A>, A>(
Array.from,
S.of,
S.map,
);
const numberSet = set<number>();
const result1 = numberSet.view(S.set(1, 2, 3)); // [1, 2, 3]
const result2 = numberSet.view(S.empty()); // []
const result3 = numberSet.review(1); // Set(1)
const result4 = numberSet.modify(n => n + 1)(S.of(1)); // Set(2)