Banyak jenis optik memiliki representasi van Laarhoven.
Misalnya, Lenstipe Lens s t a b dapat direpresentasikan sebagai:
Functor f => (a -> f b) -> s -> f t
Demikian pula a Traversal, dapat direpresentasikan dengan cara yang sama, menukar Functorkendala untuk Applicative:
Applicative f => (a -> f b) -> s -> f t
Beberapa kerangka kerja optik, seperti Monocle dan Arrow menentukan jenis yang disebut Optional.
Dalam Optik Monocle, heirarki Optional cocok untuk LensdanTraversal
Seperti yang saya pahami: Jika a Traversalseperti a Lensyang mungkin memiliki nol hingga banyak target, maka a Optionalseperti a Lensyang mungkin memiliki nol ke satu target.
Di Monocle, Optionaldidefinisikan sebagai sepasang fungsi:
getOrModify :: s -> Either t a
set :: (b, s) -> t
Komentar dalam kode sumber Monocle menunjukkan bahwa mungkin juga untuk mewakili Optional"sebagai yang lebih lemah PLensdan lebih lemah PPrism"
Apakah mungkin untuk mewakili Optionalfungsi van Laarhoven?
FunctordanApplicativedenganliftA2, tetapi tidak murni, maka itu akan menentukan optik dengan satu ke banyak target? Apakah ini punya nama?