Birçok optik türü van Laarhoven temsiline sahiptir.
Örneğin, a Lenstipi Lens s t a b şu şekilde temsil edilebilir:
Functor f => (a -> f b) -> s -> f t
Benzer şekilde, a Traversal, aşağıdakiler için Functorkısıtlamayı değiştirerek benzer bir şekilde temsil edilebilir Applicative:
Applicative f => (a -> f b) -> s -> f t
Monocle ve Arrow gibi çeşitli optik çerçeveleri denilen türü tanımlar Optional.
Monocle Optik hiyerarşi içinde Optional arasındaki uyan LensveTraversal
Anladığım kadarıyla: Bir Eğer Traversalbir gibidir Lensolabileceğini birçoğuna sıfır hedefleri, daha sonra bir Optionalbir gibidir Lensolabileceğini sıfır bire hedefler.
Monocle'da, Optionalbir çift işlev olarak tanımlanır:
getOrModify :: s -> Either t a
set :: (b, s) -> t
Monocle kaynak kodundaki yorumlar , Optional"zayıf PLensve zayıf olarak PPrism" göstermenin de mümkün olduğunu göstermektedir
OptionalVan Laarhoven fonksiyonunu temsil etmek mümkün müdür ?
FunctorveApplicativebirlikteliftA2, ancak hiçbir saf, daha sonra bununla bir optik tanımlarsınız birçok birinden hedefleri? Bunun bir adı var mı?