Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Indexing
ix :: Fin n -> Lens' (Vec n a) a Source #
Index lens.
>>>
('a' L.::: 'b' L.::: 'c' L.::: L.VNil) ^. L._Pull . ix (FS FZ)
'b'
>>>
('a' L.::: 'b' L.::: 'c' L.::: L.VNil) & L._Pull . ix (FS FZ) .~ 'x'
'a' ::: 'x' ::: 'c' ::: VNil
_Cons :: Iso (Vec ('S n) a) (Vec ('S n) b) (a, Vec n a) (b, Vec n b) Source #
Match on non-empty Vec
.
Note: lens
_Cons
is a ReifiedPrism
.
In fact,
cannot have an instance of Vec
n aCons
as types don't match.
_head :: Lens' (Vec ('S n) a) a Source #
Head lens. Note: lens
_head
is a Traversal'
.
>>>
('a' L.::: 'b' L.::: 'c' L.::: L.VNil) ^. L._Pull . _head
'a'
>>>
('a' L.::: 'b' L.::: 'c' L.::: L.VNil) & L._Pull . _head .~ 'x'
'x' ::: 'b' ::: 'c' ::: VNil