是否可以制作具有以下类型的光学元件:
getIndex :: Lens.IndexedGetter i a i
我找不到一个现有的并且在尝试写一个没有成功的时候我觉得它无法完成,但如果是这样的话我想知道原因的解释。
答案 0 :(得分:3)
索引由getter任意定义,因此没有通用的方法来创建索引。
Maven
与IndexedGetter i s i
同构,通过以下双射:
s -> (i, i)
ito :: (s -> (i, a)) -> IndexedGetter i s a
iview :: IndexedGetter i s a -> s -> (i, a)
(完全量化的forall s i. IndexedGetter i s i
类型)将与{{1}}同构,但这不是有人居住的(它会暗示getIndex
与forall s i. s -> (i, i)
和() -> (Void, Void)
)。