多くのタイプの光学系には、ファンラーホーフェンの表現があります。
たとえばLens、タイプのa は次のLens s t a b  ように表すことができます。
 Functor f => (a -> f b) -> s -> f t同様にTraversal、は同様の方法で表すことができ、Functor制約をApplicative次のように入れ替えます。
 Applicative f => (a -> f b) -> s -> f tMonocleやArrowなどのいくつかの光学フレームワークは、というタイプを定義しますOptional。
Monocleの光学では、階層 OptionalはLensとの間に適合しますTraversal
私が理解しているように:a Traversalが0から多くのターゲットをLens持つ可能性がある aのような場合、は0から1のターゲットを持つ可能性があるOptional aのようなものです。Lens
Monocleでは、Optional関数のペアとして定義されます。
getOrModify :: s -> Either t a 
set :: (b, s) -> tモノクルのソースコード内のコメントは、それが表現することも可能ですことを示唆しているOptional「として弱いPLensと弱いですPPrism」
をOptionalファンラーホーフェン関数として表すことはできますか?
FunctorとApplicativeでliftA2、ない純粋に、そしてそれがで視神経を定義し、多くの1つのターゲット?名前はありますか?