function optics.filterimport { optics } from "https://deno.land/x/fun@v2.0.0-alpha.6/mod.ts"; const { filter } = optics; filter<A, B extends A>(r: Refinement<A, B>): <U extends Tag, S>(first: Optic<U, S, A>) => Optic<Align<U, AffineTag>, S, B>Given an Optic focused on A, filter out or refine that A. filter<A>(r: Predicate<A>): <U extends Tag, S>(first: Optic<U, S, A>) => Optic<Align<U, AffineTag>, S, A>Given an Optic focused on A, filter out or refine that A. Type ParametersAB extends AParametersr: Refinement<A, B>Returns<U extends Tag, S>(first: Optic<U, S, A>) => Optic<Align<U, AffineTag>, S, B>Type ParametersAParametersr: Predicate<A>Returns<U extends Tag, S>(first: Optic<U, S, A>) => Optic<Align<U, AffineTag>, S, A>