-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Vec: length-indexed (sized) list: optics support -- -- This package provides optics and instances for data types in -- vec package. -- -- Data.Vec.Optics.Instances provides all the instances. the other -- modules provide some named optics too. @package vec-optics @version 0.3 module Data.Vec.DataFamily.SpineStrict.Optics -- | Index lens. -- --
-- >>> view (ix (FS FZ)) ('a' ::: 'b' ::: 'c' ::: VNil)
-- 'b'
--
--
--
-- >>> set (ix (FS FZ)) 'x' ('a' ::: 'b' ::: 'c' ::: VNil)
-- 'a' ::: 'x' ::: 'c' ::: VNil
--
ix :: forall n a. InlineInduction n => Fin n -> Lens' (Vec n a) a
-- | Match on non-empty Vec.
--
-- Note: lens _Cons is a Prism. In fact,
-- Vec n a cannot have an instance of Cons as
-- types don't match.
_Cons :: Iso (Vec ( 'S n) a) (Vec ( 'S n) b) (a, Vec n a) (b, Vec n b)
-- | Head lens. Note: lens _head is a
-- Traversal'.
--
--
-- >>> view _head ('a' ::: 'b' ::: 'c' ::: VNil)
-- 'a'
--
--
--
-- >>> set _head 'x' ('a' ::: 'b' ::: 'c' ::: VNil)
-- 'x' ::: 'b' ::: 'c' ::: VNil
--
_head :: Lens' (Vec ( 'S n) a) a
-- | Tail lens.
_tail :: Lens' (Vec ( 'S n) a) (Vec n a)
-- | An Iso from toPull and fromPull.
_Pull :: InlineInduction n => Iso (Vec n a) (Vec n b) (Vec n a) (Vec n b)
-- | Prism from list.
--
--
-- >>> preview _Vec "foo" :: Maybe (Vec N.Nat3 Char)
-- Just ('f' ::: 'o' ::: 'o' ::: VNil)
--
--
-- -- >>> preview _Vec "foo" :: Maybe (Vec N.Nat2 Char) -- Nothing ---- --
-- >>> review _Vec (True ::: False ::: VNil) -- [True,False] --_Vec :: InlineInduction n => Prism' [a] (Vec n a) instance Data.Type.Nat.InlineInduction n => Optics.Internal.Indexed.FunctorWithIndex (Data.Fin.Fin n) (Data.Vec.DataFamily.SpineStrict.Vec n) instance Data.Type.Nat.InlineInduction n => Optics.Internal.Indexed.FoldableWithIndex (Data.Fin.Fin n) (Data.Vec.DataFamily.SpineStrict.Vec n) instance Data.Type.Nat.InlineInduction n => Optics.Internal.Indexed.TraversableWithIndex (Data.Fin.Fin n) (Data.Vec.DataFamily.SpineStrict.Vec n) instance Data.Type.Nat.InlineInduction n => Optics.Each.Core.Each (Data.Fin.Fin n) (Data.Vec.DataFamily.SpineStrict.Vec n a) (Data.Vec.DataFamily.SpineStrict.Vec n b) a b instance Data.Type.Nat.InlineInduction n => Optics.At.Core.Ixed (Data.Vec.DataFamily.SpineStrict.Vec n a) instance Data.Tuple.Optics.Field1 (Data.Vec.DataFamily.SpineStrict.Vec ('Data.Nat.S n) a) (Data.Vec.DataFamily.SpineStrict.Vec ('Data.Nat.S n) a) a a instance Data.Tuple.Optics.Field2 (Data.Vec.DataFamily.SpineStrict.Vec ('Data.Nat.S ('Data.Nat.S n)) a) (Data.Vec.DataFamily.SpineStrict.Vec ('Data.Nat.S ('Data.Nat.S n)) a) a a instance Data.Tuple.Optics.Field3 (Data.Vec.DataFamily.SpineStrict.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n))) a) (Data.Vec.DataFamily.SpineStrict.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n))) a) a a instance Data.Tuple.Optics.Field4 (Data.Vec.DataFamily.SpineStrict.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n)))) a) (Data.Vec.DataFamily.SpineStrict.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n)))) a) a a instance Data.Tuple.Optics.Field5 (Data.Vec.DataFamily.SpineStrict.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n))))) a) (Data.Vec.DataFamily.SpineStrict.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n))))) a) a a instance Data.Tuple.Optics.Field6 (Data.Vec.DataFamily.SpineStrict.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n)))))) a) (Data.Vec.DataFamily.SpineStrict.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n)))))) a) a a instance Data.Tuple.Optics.Field7 (Data.Vec.DataFamily.SpineStrict.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n))))))) a) (Data.Vec.DataFamily.SpineStrict.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n))))))) a) a a instance Data.Tuple.Optics.Field8 (Data.Vec.DataFamily.SpineStrict.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n)))))))) a) (Data.Vec.DataFamily.SpineStrict.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n)))))))) a) a a instance Data.Tuple.Optics.Field9 (Data.Vec.DataFamily.SpineStrict.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n))))))))) a) (Data.Vec.DataFamily.SpineStrict.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n))))))))) a) a a module Data.Vec.Lazy.Optics -- | Index lens. -- --
-- >>> view (ix (FS FZ)) ('a' ::: 'b' ::: 'c' ::: VNil)
-- 'b'
--
--
--
-- >>> set (ix (FS FZ)) 'x' ('a' ::: 'b' ::: 'c' ::: VNil)
-- 'a' ::: 'x' ::: 'c' ::: VNil
--
ix :: Fin n -> Lens' (Vec n a) a
-- | Match on non-empty Vec.
--
-- Note: lens _Cons is a Prism. In fact,
-- Vec n a cannot have an instance of Cons as
-- types don't match.
_Cons :: Iso (Vec ( 'S n) a) (Vec ( 'S n) b) (a, Vec n a) (b, Vec n b)
-- | Head lens. Note: lens _head is a
-- Traversal'.
--
--
-- >>> view _head ('a' ::: 'b' ::: 'c' ::: VNil)
-- 'a'
--
--
--
-- >>> set _head 'x' ('a' ::: 'b' ::: 'c' ::: VNil)
-- 'x' ::: 'b' ::: 'c' ::: VNil
--
_head :: Lens' (Vec ( 'S n) a) a
-- | Tail lens.
_tail :: Lens' (Vec ( 'S n) a) (Vec n a)
-- | An Iso from toPull and fromPull.
_Pull :: SNatI n => Iso (Vec n a) (Vec n b) (Vec n a) (Vec n b)
-- | Prism from list.
--
--
-- >>> preview _Vec "foo" :: Maybe (Vec N.Nat3 Char)
-- Just ('f' ::: 'o' ::: 'o' ::: VNil)
--
--
-- -- >>> preview _Vec "foo" :: Maybe (Vec N.Nat2 Char) -- Nothing ---- --
-- >>> review _Vec (True ::: False ::: VNil) -- [True,False] --_Vec :: SNatI n => Prism' [a] (Vec n a) instance Optics.Internal.Indexed.FunctorWithIndex (Data.Fin.Fin n) (Data.Vec.Lazy.Vec n) instance Optics.Internal.Indexed.FoldableWithIndex (Data.Fin.Fin n) (Data.Vec.Lazy.Vec n) instance Optics.Internal.Indexed.TraversableWithIndex (Data.Fin.Fin n) (Data.Vec.Lazy.Vec n) instance Optics.Each.Core.Each (Data.Fin.Fin n) (Data.Vec.Lazy.Vec n a) (Data.Vec.Lazy.Vec n b) a b instance Optics.At.Core.Ixed (Data.Vec.Lazy.Vec n a) instance Data.Tuple.Optics.Field1 (Data.Vec.Lazy.Vec ('Data.Nat.S n) a) (Data.Vec.Lazy.Vec ('Data.Nat.S n) a) a a instance Data.Tuple.Optics.Field2 (Data.Vec.Lazy.Vec ('Data.Nat.S ('Data.Nat.S n)) a) (Data.Vec.Lazy.Vec ('Data.Nat.S ('Data.Nat.S n)) a) a a instance Data.Tuple.Optics.Field3 (Data.Vec.Lazy.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n))) a) (Data.Vec.Lazy.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n))) a) a a instance Data.Tuple.Optics.Field4 (Data.Vec.Lazy.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n)))) a) (Data.Vec.Lazy.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n)))) a) a a instance Data.Tuple.Optics.Field5 (Data.Vec.Lazy.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n))))) a) (Data.Vec.Lazy.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n))))) a) a a instance Data.Tuple.Optics.Field6 (Data.Vec.Lazy.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n)))))) a) (Data.Vec.Lazy.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n)))))) a) a a instance Data.Tuple.Optics.Field7 (Data.Vec.Lazy.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n))))))) a) (Data.Vec.Lazy.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n))))))) a) a a instance Data.Tuple.Optics.Field8 (Data.Vec.Lazy.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n)))))))) a) (Data.Vec.Lazy.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n)))))))) a) a a instance Data.Tuple.Optics.Field9 (Data.Vec.Lazy.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n))))))))) a) (Data.Vec.Lazy.Vec ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S ('Data.Nat.S n))))))))) a) a a module Data.Vec.Lazy.Inline.Optics -- | Index lens. -- --
-- >>> view (ix (FS FZ)) ('a' ::: 'b' ::: 'c' ::: VNil)
-- 'b'
--
--
--
-- >>> set (ix (FS FZ)) 'x' ('a' ::: 'b' ::: 'c' ::: VNil)
-- 'a' ::: 'x' ::: 'c' ::: VNil
--
ix :: forall n a. InlineInduction n => Fin n -> Lens' (Vec n a) a
-- | Match on non-empty Vec.
--
-- Note: lens _Cons is a Prism. In fact,
-- Vec n a cannot have an instance of Cons as
-- types don't match.
_Cons :: Iso (Vec ( 'S n) a) (Vec ( 'S n) b) (a, Vec n a) (b, Vec n b)
-- | Head lens. Note: lens _head is a
-- Traversal'.
--
--
-- >>> view _head ('a' ::: 'b' ::: 'c' ::: VNil)
-- 'a'
--
--
--
-- >>> set _head 'x' ('a' ::: 'b' ::: 'c' ::: VNil)
-- 'x' ::: 'b' ::: 'c' ::: VNil
--
_head :: Lens' (Vec ( 'S n) a) a
-- | Tail lens.
_tail :: Lens' (Vec ( 'S n) a) (Vec n a)
-- | An Iso from toPull and fromPull.
_Pull :: InlineInduction n => Iso (Vec n a) (Vec n b) (Vec n a) (Vec n b)
-- | Prism from list.
--
--
-- >>> preview _Vec "foo" :: Maybe (Vec N.Nat3 Char)
-- Just ('f' ::: 'o' ::: 'o' ::: VNil)
--
--
-- -- >>> preview _Vec "foo" :: Maybe (Vec N.Nat2 Char) -- Nothing ---- --
-- >>> review _Vec (True ::: False ::: VNil) -- [True,False] --_Vec :: InlineInduction n => Prism' [a] (Vec n a) module Data.Vec.Pull.Optics -- | Index lens. -- -- a ::: x ::: c ::: VNil >>> view -- (L._Pull % ix (FS FZ)) (a L.::: b L.::: c -- L.::: L.VNil) b -- --
-- >>> set (L._Pull % ix (FS FZ)) 'x' ('a' L.::: 'b' L.::: 'c' L.::: L.VNil)
-- 'a' ::: 'x' ::: 'c' ::: VNil
--
ix :: Fin n -> Lens' (Vec n a) a
-- | Match on non-empty Vec.
--
-- Note: lens _Cons is a Prism. In fact,
-- Vec n a cannot have an instance of Cons as
-- types don't match.
_Cons :: Iso (Vec ( 'S n) a) (Vec ( 'S n) b) (a, Vec n a) (b, Vec n b)
-- | Head lens. Note: lens _head is a
-- Traversal'.
--
--
-- >>> view (L._Pull % _head) ('a' L.::: 'b' L.::: 'c' L.::: L.VNil)
-- 'a'
--
--
--
-- >>> set (L._Pull % _head) 'x' ('a' L.::: 'b' L.::: 'c' L.::: L.VNil)
-- 'x' ::: 'b' ::: 'c' ::: VNil
--
_head :: Lens' (Vec ( 'S n) a) a
-- | Tail lens.
_tail :: Lens' (Vec ( 'S n) a) (Vec n a)
-- | Prism from list.
_Vec :: SNatI n => Prism' [a] (Vec n a)
instance Optics.Internal.Indexed.FunctorWithIndex (Data.Fin.Fin n) (Data.Vec.Pull.Vec n)
instance Data.Type.Nat.SNatI n => Optics.Internal.Indexed.FoldableWithIndex (Data.Fin.Fin n) (Data.Vec.Pull.Vec n)
-- | This module re-exports instances from all the modules defined in
-- vec-lens package.
module Data.Vec.Optics.Instances