Visitar URL original
Data.Id
id-0.0.6: Id (f a) and BiId (p (s a) (t b)) data types
Safe HaskellNone
LanguageHaskell2010

Data.Id

Description

Id f a — a newtype around f a, with optics and instances for switching the type constructor f.

Synopsis

Id data type

newtype Id (f :: Type -> Type) a Source #

>>> Id [1,2,3]
Id [1,2,3]
>>> Id [1,2,3] == Id [1,2,3]
True
>>> Id [1,2,3] == Id [4,5,6]
False
>>> compare (Id [1,2,3]) (Id [1,2,4])
LT
>>> Id [1,2,3] <= Id [1,2,3]
True

Constructors

Id (f a) 

Instances

Instances details
BindTrans Id Source #
>>> liftB [1,2,3] :: Id [] Int
Id [1,2,3]
Instance details

Defined in Data.Id

Methods

liftB :: Bind b => b a -> Id b a #

MonadTrans Id Source #
>>> lift [1,2,3] :: Id [] Int
Id [1,2,3]
>>> lift (Identity 5) :: Id Identity Int
Id (Identity 5)
Instance details

Defined in Data.Id

Methods

lift :: Monad m => m a -> Id m a #

MonadRWS r w s f => MonadRWS r w s (Id f) Source # 
Instance details

Defined in Data.Id

Generic1 (Id f :: Type -> Type) Source # 
Instance details

Defined in Data.Id

Associated Types

type Rep1 (Id f :: Type -> Type) 
Instance details

Defined in Data.Id

type Rep1 (Id f :: Type -> Type) = D1 ('MetaData "Id" "Data.Id" "id-0.0.6-CwqOmRasLZp1Zgz265nvCi" 'True) (C1 ('MetaCons "Id" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 f)))

Methods

from1 :: Id f a -> Rep1 (Id f) a #

to1 :: Rep1 (Id f) a -> Id f a #

FoldableWithIndex i f => FoldableWithIndex i (Id f) Source #
>>> import Control.Lens (ifoldMap)
>>> ifoldMap (\i x -> [(i, x)]) (Id [10,20,30])
[(0,10),(1,20),(2,30)]
Instance details

Defined in Data.Id

Methods

ifoldMap :: Monoid m => (i -> a -> m) -> Id f a -> m #

ifoldMap' :: Monoid m => (i -> a -> m) -> Id f a -> m #

ifoldr :: (i -> a -> b -> b) -> b -> Id f a -> b #

ifoldl :: (i -> b -> a -> b) -> b -> Id f a -> b #

ifoldr' :: (i -> a -> b -> b) -> b -> Id f a -> b #

ifoldl' :: (i -> b -> a -> b) -> b -> Id f a -> b #

FunctorWithIndex i f => FunctorWithIndex i (Id f) Source #
>>> import Control.Lens (imap)
>>> imap (+) (Id [10,20,30])
Id [10,21,32]
Instance details

Defined in Data.Id

Methods

imap :: (i -> a -> b) -> Id f a -> Id f b #

TraversableWithIndex i f => TraversableWithIndex i (Id f) Source #
>>> import Control.Lens (itraverse)
>>> itraverse (\i x -> if i > 1 then Nothing else Just (x * 10)) (Id [1,2,3])
Nothing
>>> itraverse (\i x -> if i > 2 then Nothing else Just (x * 10)) (Id [1,2,3])
Just (Id [10,20,30])
Instance details

Defined in Data.Id

Methods

itraverse :: Applicative f0 => (i -> a -> f0 b) -> Id f a -> f0 (Id f b) #

MonadError a f => MonadError a (Id f) Source #
>>> throwError "oops" :: Id (Either String) Int
Id (Left "oops")
>>> catchError (Id (Left "oops")) (\_ -> Id (Right 42)) :: Id (Either String) Int
Id (Right 42)
Instance details

Defined in Data.Id

Methods

throwError :: a -> Id f a0 #

catchError :: Id f a0 -> (a -> Id f a0) -> Id f a0 #

MonadReader a f => MonadReader a (Id f) Source #
>>> import Control.Monad.Reader (runReader)
>>> runReader (unId ask) "hello"
"hello"
>>> runReader (unId (local (++" world") ask)) "hello"
"hello world"
Instance details

Defined in Data.Id

Methods

ask :: Id f a #

local :: (a -> a) -> Id f a0 -> Id f a0 #

reader :: (a -> a0) -> Id f a0 #

MonadState a f => MonadState a (Id f) Source #
>>> import Control.Monad.State (runState)
>>> runState (unId (get >>= \s -> put (s + 1) >> pure s)) 10
(10,11)
Instance details

Defined in Data.Id

Methods

get :: Id f a #

put :: a -> Id f () #

state :: (a -> (a0, a)) -> Id f a0 #

MonadWriter a f => MonadWriter a (Id f) Source #
>>> import Control.Monad.Writer (runWriter)
>>> runWriter (unId (tell "hello" >> tell " world"))
((),"hello world")
>>> runWriter (unId (writer (7, "log")))
(7,"log")
Instance details

Defined in Data.Id

Methods

writer :: (a0, a) -> Id f a0 #

tell :: a -> Id f () #

listen :: Id f a0 -> Id f (a0, a) #

pass :: Id f (a0, a -> a) -> Id f a0 #

MonadFail f => MonadFail (Id f) Source #
>>> fail "oops" :: Id Maybe Int
Id Nothing
Instance details

Defined in Data.Id

Methods

fail :: String -> Id f a #

MonadFix f => MonadFix (Id f) Source #
>>> mfix (\_ -> Id [1,2,3])
Id [1,2,3]
Instance details

Defined in Data.Id

Methods

mfix :: (a -> Id f a) -> Id f a #

MonadIO f => MonadIO (Id f) Source #
>>> unId (liftIO (pure 7) :: Id IO Int)
7
Instance details

Defined in Data.Id

Methods

liftIO :: IO a -> Id f a #

MonadZip f => MonadZip (Id f) Source #
>>> mzipWith (+) (Id [1,2,3]) (Id [10,20,30])
Id [11,22,33]
Instance details

Defined in Data.Id

Methods

mzip :: Id f a -> Id f b -> Id f (a, b) #

mzipWith :: (a -> b -> c) -> Id f a -> Id f b -> Id f c #

munzip :: Id f (a, b) -> (Id f a, Id f b) #

Foldable f => Foldable (Id f) Source #
>>> foldMap show (Id [1,2,3])
"123"
>>> foldMap Sum (Id [1,2,3])
Sum {getSum = 6}
>>> foldr (:) [] (Id [1,2,3])
[1,2,3]
Instance details

Defined in Data.Id

Methods

fold :: Monoid m => Id f m -> m #

foldMap :: Monoid m => (a -> m) -> Id f a -> m #

foldMap' :: Monoid m => (a -> m) -> Id f a -> m #

foldr :: (a -> b -> b) -> b -> Id f a -> b #

foldr' :: (a -> b -> b) -> b -> Id f a -> b #

foldl :: (b -> a -> b) -> b -> Id f a -> b #

foldl' :: (b -> a -> b) -> b -> Id f a -> b #

foldr1 :: (a -> a -> a) -> Id f a -> a #

foldl1 :: (a -> a -> a) -> Id f a -> a #

toList :: Id f a -> [a] #

null :: Id f a -> Bool #

length :: Id f a -> Int #

elem :: Eq a => a -> Id f a -> Bool #

maximum :: Ord a => Id f a -> a #

minimum :: Ord a => Id f a -> a #

sum :: Num a => Id f a -> a #

product :: Num a => Id f a -> a #

Foldable1 f => Foldable1 (Id f) Source #
>>> foldMap1 show (Id (Identity 7))
"7"
Instance details

Defined in Data.Id

Methods

fold1 :: Semigroup m => Id f m -> m #

foldMap1 :: Semigroup m => (a -> m) -> Id f a -> m #

foldMap1' :: Semigroup m => (a -> m) -> Id f a -> m #

toNonEmpty :: Id f a -> NonEmpty a #

maximum :: Ord a => Id f a -> a #

minimum :: Ord a => Id f a -> a #

head :: Id f a -> a #

last :: Id f a -> a #

foldrMap1 :: (a -> b) -> (a -> b -> b) -> Id f a -> b #

foldlMap1' :: (a -> b) -> (b -> a -> b) -> Id f a -> b #

foldlMap1 :: (a -> b) -> (b -> a -> b) -> Id f a -> b #

foldrMap1' :: (a -> b) -> (a -> b -> b) -> Id f a -> b #

Eq1 f => Eq1 (Id f) Source #
>>> liftEq (==) (Id [1,2,3]) (Id [1,2,3])
True
>>> liftEq (==) (Id [1,2,3]) (Id [4,5,6])
False
>>> liftEq (\_ _ -> True) (Id [1,2,3]) (Id [4,5,6])
True
Instance details

Defined in Data.Id

Methods

liftEq :: (a -> b -> Bool) -> Id f a -> Id f b -> Bool #

Ord1 f => Ord1 (Id f) Source #
>>> liftCompare compare (Id [1,2,3]) (Id [1,2,4])
LT
>>> liftCompare compare (Id [1,2,3]) (Id [1,2,3])
EQ
>>> liftCompare (\_ _ -> GT) (Id [1]) (Id [2])
GT
Instance details

Defined in Data.Id

Methods

liftCompare :: (a -> b -> Ordering) -> Id f a -> Id f b -> Ordering #

Show1 f => Show1 (Id f) Source #
>>> liftShowsPrec showsPrec showList 0 (Id [1,2,3]) ""
"Id [1,2,3]"
>>> liftShowsPrec showsPrec showList 0 (Id (Just 'x')) ""
"Id (Just 'x')"
>>> liftShowsPrec showsPrec showList 11 (Id [1,2,3]) ""
"(Id [1,2,3])"
Instance details

Defined in Data.Id

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> Id f a -> ShowS #

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [Id f a] -> ShowS #

Contravariant f => Contravariant (Id f) Source #
>>> import Data.Functor.Contravariant (Predicate(..), getPredicate)
>>> getPredicate (unId (contramap length (Id (Predicate (> 3))))) "hello"
True
>>> getPredicate (unId (contramap length (Id (Predicate (> 3))))) "hi"
False
Instance details

Defined in Data.Id

Methods

contramap :: (a' -> a) -> Id f a -> Id f a' #

(>$) :: b -> Id f b -> Id f a #

Traversable f => Traversable (Id f) Source #
>>> traverse Just (Id [1,2,3])
Just (Id [1,2,3])
>>> traverse (\x -> if x > 2 then Nothing else Just x) (Id [1,2,3])
Nothing
>>> traverse (\x -> if x > 3 then Nothing else Just x) (Id [1,2,3])
Just (Id [1,2,3])
Instance details

Defined in Data.Id

Methods

traverse :: Applicative f0 => (a -> f0 b) -> Id f a -> f0 (Id f b) #

sequenceA :: Applicative f0 => Id f (f0 a) -> f0 (Id f a) #

mapM :: Monad m => (a -> m b) -> Id f a -> m (Id f b) #

sequence :: Monad m => Id f (m a) -> m (Id f a) #

Alternative f => Alternative (Id f) Source #
>>> Id [1,2] <|> Id [3,4]
Id [1,2,3,4]
>>> Id Nothing <|> Id (Just 2)
Id (Just 2)
>>> empty :: Id [] Int
Id []
>>> empty :: Id Maybe Int
Id Nothing
Instance details

Defined in Data.Id

Methods

empty :: Id f a #

(<|>) :: Id f a -> Id f a -> Id f a #

some :: Id f a -> Id f [a] #

many :: Id f a -> Id f [a] #

Applicative f => Applicative (Id f) Source #
>>> Id [(+1), (*2)] <*> Id [3,4]
Id [4,5,6,8]
>>> pure 7 :: Id [] Int
Id [7]
>>> pure 'x' :: Id Identity Char
Id (Identity 'x')
Instance details

Defined in Data.Id

Methods

pure :: a -> Id f a #

(<*>) :: Id f (a -> b) -> Id f a -> Id f b #

liftA2 :: (a -> b -> c) -> Id f a -> Id f b -> Id f c #

(*>) :: Id f a -> Id f b -> Id f b #

(<*) :: Id f a -> Id f b -> Id f a #

Functor f => Functor (Id f) Source #
>>> fmap (+1) (Id [1,2,3])
Id [2,3,4]
>>> fmap (*2) (Id (Identity 5))
Id (Identity 10)
>>> fmap show (Id [1,2,3])
Id ["1","2","3"]
Instance details

Defined in Data.Id

Methods

fmap :: (a -> b) -> Id f a -> Id f b #

(<$) :: a -> Id f b -> Id f a #

Monad f => Monad (Id f) Source #
>>> Id [1,2,3] >>= (\x -> Id [x, x*10])
Id [1,10,2,20,3,30]
>>> Id (Identity 5) >>= (Id . Identity . (+1))
Id (Identity 6)
Instance details

Defined in Data.Id

Methods

(>>=) :: Id f a -> (a -> Id f b) -> Id f b #

(>>) :: Id f a -> Id f b -> Id f b #

return :: a -> Id f a #

MonadPlus f => MonadPlus (Id f) Source #
>>> mzero :: Id [] Int
Id []
>>> mplus (Id [1,2]) (Id [3,4])
Id [1,2,3,4]
Instance details

Defined in Data.Id

Methods

mzero :: Id f a #

mplus :: Id f a -> Id f a -> Id f a #

Comonad f => Comonad (Id f) Source #
>>> extract (Id (Identity 7))
7
Instance details

Defined in Data.Id

Methods

extract :: Id f a -> a #

duplicate :: Id f a -> Id f (Id f a) #

extend :: (Id f a -> b) -> Id f a -> Id f b #

Decidable f => Decidable (Id f) Source #
>>> import Data.Functor.Contravariant (Predicate(..), getPredicate)
>>> import Data.Functor.Contravariant.Divisible (chosen)
>>> getPredicate (unId (chosen (Id (Predicate even)) (Id (Predicate (> 0))))) (Left 4)
True
>>> getPredicate (unId (chosen (Id (Predicate even)) (Id (Predicate (> 0))))) (Right 0)
False
Instance details

Defined in Data.Id

Methods

lose :: (a -> Void) -> Id f a #

choose :: (a -> Either b c) -> Id f b -> Id f c -> Id f a #

Divisible f => Divisible (Id f) Source #
>>> import Data.Functor.Contravariant (Predicate(..), getPredicate)
>>> import Data.Functor.Contravariant.Divisible (divided)
>>> getPredicate (unId (divided (Id (Predicate even)) (Id (Predicate (> 0))))) (4, 1)
True
>>> getPredicate (unId (divided (Id (Predicate even)) (Id (Predicate (> 0))))) (3, 1)
False
Instance details

Defined in Data.Id

Methods

divide :: (a -> (b, c)) -> Id f b -> Id f c -> Id f a #

conquer :: Id f a #

NFData1 f => NFData1 (Id f) Source # 
Instance details

Defined in Data.Id

Methods

liftRnf :: (a -> ()) -> Id f a -> () #

Distributive f => Distributive (Id f) Source # 
Instance details

Defined in Data.Id

Methods

distribute :: Functor f0 => f0 (Id f a) -> Id f (f0 a) #

collect :: Functor f0 => (a -> Id f b) -> f0 a -> Id f (f0 b) #

distributeM :: Monad m => m (Id f a) -> Id f (m a) #

collectM :: Monad m => (a -> Id f b) -> m a -> Id f (m b) #

MonadCont f => MonadCont (Id f) Source #
>>> import Control.Monad.Cont (runCont)
>>> runCont (callCC (\k -> k (Id [7]))) unId :: [Int]
[7]
Instance details

Defined in Data.Id

Methods

callCC :: ((a -> Id f b) -> Id f a) -> Id f a #

Selective f => Selective (Id f) Source #
>>> select (Id [Right 7]) (Id [const 0])
Id [7]
>>> select (Id [Left 3]) (Id [(+1)])
Id [4]
>>> select (Id [Left 3, Right 7]) (Id [(+1), (*2)])
Id [4,6,7]
Instance details

Defined in Data.Id

Methods

select :: Id f (Either a b) -> Id f (a -> b) -> Id f b #

Alt f => Alt (Id f) Source #
>>> Id [1,2] <!> Id [3,4]
Id [1,2,3,4]
>>> Id (Just 1) <!> Id (Just 2)
Id (Just 1)
>>> Id Nothing <!> Id (Just 2)
Id (Just 2)
Instance details

Defined in Data.Id

Methods

(<!>) :: Id f a -> Id f a -> Id f a #

some :: Applicative (Id f) => Id f a -> Id f [a] #

many :: Applicative (Id f) => Id f a -> Id f [a] #

Apply f => Apply (Id f) Source #
>>> Id [(+1), (*2)] <.> Id [3,4]
Id [4,5,6,8]
>>> Id (Identity (+1)) <.> Id (Identity 5)
Id (Identity 6)
Instance details

Defined in Data.Id

Methods

(<.>) :: Id f (a -> b) -> Id f a -> Id f b #

(.>) :: Id f a -> Id f b -> Id f b #

(<.) :: Id f a -> Id f b -> Id f a #

liftF2 :: (a -> b -> c) -> Id f a -> Id f b -> Id f c #

Bind f => Bind (Id f) Source #
>>> Id [1,2,3] >>- (\x -> Id [x, x*10])
Id [1,10,2,20,3,30]
>>> Id (Identity 5) >>- (Id . Identity . (+1))
Id (Identity 6)
Instance details

Defined in Data.Id

Methods

(>>-) :: Id f a -> (a -> Id f b) -> Id f b #

join :: Id f (Id f a) -> Id f a #

Extend f => Extend (Id f) Source #
>>> duplicated (Id (Identity 7))
Id (Identity (Id (Identity 7)))
Instance details

Defined in Data.Id

Methods

duplicated :: Id f a -> Id f (Id f a) #

extended :: (Id f a -> b) -> Id f a -> Id f b #

Plus f => Plus (Id f) Source #
>>> zero :: Id [] Int
Id []
Instance details

Defined in Data.Id

Methods

zero :: Id f a #

Traversable1 f => Traversable1 (Id f) Source #
>>> traverse1 Just (Id (Identity 7))
Just (Id (Identity 7))
Instance details

Defined in Data.Id

Methods

traverse1 :: Apply f0 => (a -> f0 b) -> Id f a -> f0 (Id f b) #

sequence1 :: Apply f0 => Id f (f0 b) -> f0 (Id f b) #

(Typeable f, Typeable a, Data (f a)) => Data (Id f a) Source # 
Instance details

Defined in Data.Id

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Id f a -> c (Id f a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Id f a) #

toConstr :: Id f a -> Constr #

dataTypeOf :: Id f a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Id f a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Id f a)) #

gmapT :: (forall b. Data b => b -> b) -> Id f a -> Id f a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Id f a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Id f a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Id f a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Id f a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Id f a -> m (Id f a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Id f a -> m (Id f a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Id f a -> m (Id f a) #

Monoid (f a) => Monoid (Id f a) Source #
>>> mempty :: Id [] Int
Id []
>>> Id [1,2] <> mempty
Id [1,2]
>>> mempty <> Id [1,2] :: Id [] Int
Id [1,2]
Instance details

Defined in Data.Id

Methods

mempty :: Id f a #

mappend :: Id f a -> Id f a -> Id f a #

mconcat :: [Id f a] -> Id f a #

Semigroup (f a) => Semigroup (Id f a) Source #
>>> Id [1,2,3] <> Id [4,5]
Id [1,2,3,4,5]
>>> Id "hello" <> Id " world"
Id "hello world"
Instance details

Defined in Data.Id

Methods

(<>) :: Id f a -> Id f a -> Id f a #

sconcat :: NonEmpty (Id f a) -> Id f a #

stimes :: Integral b => b -> Id f a -> Id f a #

Floating (f a) => Floating (Id f a) Source # 
Instance details

Defined in Data.Id

Methods

pi :: Id f a #

exp :: Id f a -> Id f a #

log :: Id f a -> Id f a #

sqrt :: Id f a -> Id f a #

(**) :: Id f a -> Id f a -> Id f a #

logBase :: Id f a -> Id f a -> Id f a #

sin :: Id f a -> Id f a #

cos :: Id f a -> Id f a #

tan :: Id f a -> Id f a #

asin :: Id f a -> Id f a #

acos :: Id f a -> Id f a #

atan :: Id f a -> Id f a #

sinh :: Id f a -> Id f a #

cosh :: Id f a -> Id f a #

tanh :: Id f a -> Id f a #

asinh :: Id f a -> Id f a #

acosh :: Id f a -> Id f a #

atanh :: Id f a -> Id f a #

log1p :: Id f a -> Id f a #

expm1 :: Id f a -> Id f a #

log1pexp :: Id f a -> Id f a #

log1mexp :: Id f a -> Id f a #

Generic (Id f a) Source # 
Instance details

Defined in Data.Id

Associated Types

type Rep (Id f a) 
Instance details

Defined in Data.Id

type Rep (Id f a) = D1 ('MetaData "Id" "Data.Id" "id-0.0.6-CwqOmRasLZp1Zgz265nvCi" 'True) (C1 ('MetaCons "Id" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a))))

Methods

from :: Id f a -> Rep (Id f a) x #

to :: Rep (Id f a) x -> Id f a #

Num (f a) => Num (Id f a) Source # 
Instance details

Defined in Data.Id

Methods

(+) :: Id f a -> Id f a -> Id f a #

(-) :: Id f a -> Id f a -> Id f a #

(*) :: Id f a -> Id f a -> Id f a #

negate :: Id f a -> Id f a #

abs :: Id f a -> Id f a #

signum :: Id f a -> Id f a #

fromInteger :: Integer -> Id f a #

Fractional (f a) => Fractional (Id f a) Source # 
Instance details

Defined in Data.Id

Methods

(/) :: Id f a -> Id f a -> Id f a #

recip :: Id f a -> Id f a #

fromRational :: Rational -> Id f a #

Show (f a) => Show (Id f a) Source # 
Instance details

Defined in Data.Id

Methods

showsPrec :: Int -> Id f a -> ShowS #

show :: Id f a -> String #

showList :: [Id f a] -> ShowS #

NFData (f a) => NFData (Id f a) Source # 
Instance details

Defined in Data.Id

Methods

rnf :: Id f a -> () #

Eq (f a) => Eq (Id f a) Source # 
Instance details

Defined in Data.Id

Methods

(==) :: Id f a -> Id f a -> Bool #

(/=) :: Id f a -> Id f a -> Bool #

Ord (f a) => Ord (Id f a) Source # 
Instance details

Defined in Data.Id

Methods

compare :: Id f a -> Id f a -> Ordering #

(<) :: Id f a -> Id f a -> Bool #

(<=) :: Id f a -> Id f a -> Bool #

(>) :: Id f a -> Id f a -> Bool #

(>=) :: Id f a -> Id f a -> Bool #

max :: Id f a -> Id f a -> Id f a #

min :: Id f a -> Id f a -> Id f a #

Hashable (f a) => Hashable (Id f a) Source # 
Instance details

Defined in Data.Id

Methods

hashWithSalt :: Int -> Id f a -> Int #

hash :: Id f a -> Int #

Wrapped (Id f a) Source #
>>> view _Wrapped' (Id [1,2,3])
[1,2,3]
>>> set _Wrapped' [4,5] (Id [1,2,3])
Id [4,5]
Instance details

Defined in Data.Id

Associated Types

type Unwrapped (Id f a) 
Instance details

Defined in Data.Id

type Unwrapped (Id f a) = f a

Methods

_Wrapped' :: Iso' (Id f a) (Unwrapped (Id f a)) #

Id f a ~ x => Rewrapped (Id f a') x Source # 
Instance details

Defined in Data.Id

AsId (Id f a) f a Source # 
Instance details

Defined in Data.Id

Methods

matchId :: Id f a -> Maybe (Id f a) Source #

_Id :: Prism' (Id f a) (Id f a) Source #

GetterId (Id f a) f a Source # 
Instance details

Defined in Data.Id

Methods

getId :: Getter (Id f a) (Id f a) Source #

HasId (Id f a) f a Source # 
Instance details

Defined in Data.Id

Methods

setId :: Id f a -> Id f a -> Id f a Source #

id' :: Lens' (Id f a) (Id f a) Source #

ReviewId (Id f a) f a Source # 
Instance details

Defined in Data.Id

Methods

reviewId :: Review (Id f a) (Id f a) Source #

type Rep1 (Id f :: Type -> Type) Source # 
Instance details

Defined in Data.Id

type Rep1 (Id f :: Type -> Type) = D1 ('MetaData "Id" "Data.Id" "id-0.0.6-CwqOmRasLZp1Zgz265nvCi" 'True) (C1 ('MetaCons "Id" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 f)))
type Rep (Id f a) Source # 
Instance details

Defined in Data.Id

type Rep (Id f a) = D1 ('MetaData "Id" "Data.Id" "id-0.0.6-CwqOmRasLZp1Zgz265nvCi" 'True) (C1 ('MetaCons "Id" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a))))
type Unwrapped (Id f a) Source # 
Instance details

Defined in Data.Id

type Unwrapped (Id f a) = f a

Functions

unId :: Id f a -> f a Source #

>>> unId (Id [1,2,3])
[1,2,3]
>>> unId (Id (Identity 7))
Identity 7

mapId :: (f a -> g b) -> Id f a -> Id g b Source #

>>> mapId reverse (Id [1,2,3])
Id [3,2,1]
>>> mapId (Just . head) (Id [1,2,3])
Id (Just 1)
>>> mapId Identity (Id [1,2,3])
Id (Identity [1,2,3])

Type aliases

type IdProxy a = Id (Proxy :: Type -> Type) a Source #

>>> let x = Id Proxy :: IdProxy Int in x
Id Proxy

type IdMaybe a = Id Maybe a Source #

>>> Id (Just 3) :: IdMaybe Int
Id (Just 3)
>>> Id Nothing :: IdMaybe Int
Id Nothing

type IdIdentity a = Id Identity a Source #

>>> Id (Identity 7) :: IdIdentity Int
Id (Identity 7)

type IdEither e a = Id (Either e) a Source #

>>> Id (Left "err") :: IdEither String Int
Id (Left "err")
>>> Id (Right 7) :: IdEither String Int
Id (Right 7)

type IdWriter w a = Id ((,) w) a Source #

>>> Id ("log", 7) :: IdWriter String Int
Id ("log",7)

type IdList a = Id [] a Source #

>>> Id [1,2,3] :: IdList Int
Id [1,2,3]
>>> Id [] :: IdList Int
Id []

type IdNonEmpty a = Id NonEmpty a Source #

>>> Id (1 :| [2,3]) :: IdNonEmpty Int
Id (1 :| [2,3])

type IdConst c a = Id (Const c :: Type -> Type) a Source #

>>> Id (Const "hello") :: IdConst String Int
Id (Const "hello")

type IdTagged f a = Id (Tagged f) a Source #

>>> Id (Tagged 7) :: IdTagged Bool Int
Id (Tagged 7)

Type classes

GetterId

class GetterId a (f :: Type -> Type) x | a -> f x where Source #

>>> view getId (Id [1,2,3])
Id [1,2,3]
>>> view getId (Id (Identity 7))
Id (Identity 7)

Methods

getId :: Getter a (Id f x) Source #

Instances

Instances details
GetterId (Identity a) Identity a Source # 
Instance details

Defined in Data.Id

Methods

getId :: Getter (Identity a) (Id Identity a) Source #

GetterId (NonEmpty a) NonEmpty a Source # 
Instance details

Defined in Data.Id

Methods

getId :: Getter (NonEmpty a) (Id NonEmpty a) Source #

GetterId (Maybe a) Maybe a Source # 
Instance details

Defined in Data.Id

Methods

getId :: Getter (Maybe a) (Id Maybe a) Source #

GetterId [a] [] a Source # 
Instance details

Defined in Data.Id

Methods

getId :: Getter [a] (Id [] a) Source #

GetterId (Id f a) f a Source # 
Instance details

Defined in Data.Id

Methods

getId :: Getter (Id f a) (Id f a) Source #

GetterId (Either e a) (Either e) a Source # 
Instance details

Defined in Data.Id

Methods

getId :: Getter (Either e a) (Id (Either e) a) Source #

GetterId (Proxy a) (Proxy :: Type -> Type) a Source # 
Instance details

Defined in Data.Id

Methods

getId :: Getter (Proxy a) (Id (Proxy :: Type -> Type) a) Source #

GetterId (w, a) ((,) w) a Source # 
Instance details

Defined in Data.Id

Methods

getId :: Getter (w, a) (Id ((,) w) a) Source #

GetterId (Const c a) (Const c :: Type -> Type) a Source # 
Instance details

Defined in Data.Id

Methods

getId :: Getter (Const c a) (Id (Const c :: Type -> Type) a) Source #

GetterId (Tagged s a) (Tagged s) a Source # 
Instance details

Defined in Data.Id

Methods

getId :: Getter (Tagged s a) (Id (Tagged s) a) Source #

HasId

class GetterId a f x => HasId a (f :: Type -> Type) x | a -> f x where Source #

>>> view id' (Id [1,2,3])
Id [1,2,3]
>>> set id' (Id [4,5]) (Id [1,2,3])
Id [4,5]

Minimal complete definition

setId

Methods

setId :: Id f x -> a -> a Source #

id' :: Lens' a (Id f x) Source #

Instances

Instances details
HasId (Identity a) Identity a Source # 
Instance details

Defined in Data.Id

HasId (NonEmpty a) NonEmpty a Source # 
Instance details

Defined in Data.Id

HasId (Maybe a) Maybe a Source # 
Instance details

Defined in Data.Id

Methods

setId :: Id Maybe a -> Maybe a -> Maybe a Source #

id' :: Lens' (Maybe a) (Id Maybe a) Source #

HasId [a] [] a Source # 
Instance details

Defined in Data.Id

Methods

setId :: Id [] a -> [a] -> [a] Source #

id' :: Lens' [a] (Id [] a) Source #

HasId (Id f a) f a Source # 
Instance details

Defined in Data.Id

Methods

setId :: Id f a -> Id f a -> Id f a Source #

id' :: Lens' (Id f a) (Id f a) Source #

HasId (Either e a) (Either e) a Source # 
Instance details

Defined in Data.Id

Methods

setId :: Id (Either e) a -> Either e a -> Either e a Source #

id' :: Lens' (Either e a) (Id (Either e) a) Source #

HasId (Proxy a) (Proxy :: Type -> Type) a Source # 
Instance details

Defined in Data.Id

Methods

setId :: Id (Proxy :: Type -> Type) a -> Proxy a -> Proxy a Source #

id' :: Lens' (Proxy a) (Id (Proxy :: Type -> Type) a) Source #

HasId (w, a) ((,) w) a Source # 
Instance details

Defined in Data.Id

Methods

setId :: Id ((,) w) a -> (w, a) -> (w, a) Source #

id' :: Lens' (w, a) (Id ((,) w) a) Source #

HasId (Const c a) (Const c :: Type -> Type) a Source # 
Instance details

Defined in Data.Id

Methods

setId :: Id (Const c :: Type -> Type) a -> Const c a -> Const c a Source #

id' :: Lens' (Const c a) (Id (Const c :: Type -> Type) a) Source #

HasId (Tagged s a) (Tagged s) a Source # 
Instance details

Defined in Data.Id

Methods

setId :: Id (Tagged s) a -> Tagged s a -> Tagged s a Source #

id' :: Lens' (Tagged s a) (Id (Tagged s) a) Source #

ReviewId

class ReviewId a (f :: Type -> Type) x | a -> f x where Source #

>>> review reviewId (Id [1,2,3]) :: Id [] Int
Id [1,2,3]
>>> review reviewId (Id (Identity 7)) :: IdIdentity Int
Id (Identity 7)

Methods

reviewId :: Review a (Id f x) Source #

Instances

Instances details
ReviewId (Identity a) Identity a Source # 
Instance details

Defined in Data.Id

ReviewId (NonEmpty a) NonEmpty a Source # 
Instance details

Defined in Data.Id

ReviewId (Maybe a) Maybe a Source # 
Instance details

Defined in Data.Id

Methods

reviewId :: Review (Maybe a) (Id Maybe a) Source #

ReviewId [a] [] a Source # 
Instance details

Defined in Data.Id

Methods

reviewId :: Review [a] (Id [] a) Source #

ReviewId (Id f a) f a Source # 
Instance details

Defined in Data.Id

Methods

reviewId :: Review (Id f a) (Id f a) Source #

ReviewId (Either e a) (Either e) a Source # 
Instance details

Defined in Data.Id

Methods

reviewId :: Review (Either e a) (Id (Either e) a) Source #

ReviewId (Proxy a) (Proxy :: Type -> Type) a Source # 
Instance details

Defined in Data.Id

Methods

reviewId :: Review (Proxy a) (Id (Proxy :: Type -> Type) a) Source #

ReviewId (w, a) ((,) w) a Source # 
Instance details

Defined in Data.Id

Methods

reviewId :: Review (w, a) (Id ((,) w) a) Source #

ReviewId (Const c a) (Const c :: Type -> Type) a Source # 
Instance details

Defined in Data.Id

Methods

reviewId :: Review (Const c a) (Id (Const c :: Type -> Type) a) Source #

ReviewId (Tagged s a) (Tagged s) a Source # 
Instance details

Defined in Data.Id

Methods

reviewId :: Review (Tagged s a) (Id (Tagged s) a) Source #

AsId

class ReviewId a f x => AsId a (f :: Type -> Type) x | a -> f x where Source #

>>> preview _Id (Id [1,2,3])
Just (Id [1,2,3])
>>> review _Id (Id [1,2,3]) :: Id [] Int
Id [1,2,3]

Minimal complete definition

matchId

Methods

matchId :: a -> Maybe (Id f x) Source #

_Id :: Prism' a (Id f x) Source #

Instances

Instances details
AsId (Identity a) Identity a Source # 
Instance details

Defined in Data.Id

AsId (NonEmpty a) NonEmpty a Source # 
Instance details

Defined in Data.Id

AsId (Maybe a) Maybe a Source # 
Instance details

Defined in Data.Id

Methods

matchId :: Maybe a -> Maybe (Id Maybe a) Source #

_Id :: Prism' (Maybe a) (Id Maybe a) Source #

AsId [a] [] a Source # 
Instance details

Defined in Data.Id

Methods

matchId :: [a] -> Maybe (Id [] a) Source #

_Id :: Prism' [a] (Id [] a) Source #

AsId (Id f a) f a Source # 
Instance details

Defined in Data.Id

Methods

matchId :: Id f a -> Maybe (Id f a) Source #

_Id :: Prism' (Id f a) (Id f a) Source #

AsId (Either e a) (Either e) a Source # 
Instance details

Defined in Data.Id

Methods

matchId :: Either e a -> Maybe (Id (Either e) a) Source #

_Id :: Prism' (Either e a) (Id (Either e) a) Source #

AsId (Proxy a) (Proxy :: Type -> Type) a Source # 
Instance details

Defined in Data.Id

Methods

matchId :: Proxy a -> Maybe (Id (Proxy :: Type -> Type) a) Source #

_Id :: Prism' (Proxy a) (Id (Proxy :: Type -> Type) a) Source #

AsId (w, a) ((,) w) a Source # 
Instance details

Defined in Data.Id

Methods

matchId :: (w, a) -> Maybe (Id ((,) w) a) Source #

_Id :: Prism' (w, a) (Id ((,) w) a) Source #

AsId (Const c a) (Const c :: Type -> Type) a Source # 
Instance details

Defined in Data.Id

Methods

matchId :: Const c a -> Maybe (Id (Const c :: Type -> Type) a) Source #

_Id :: Prism' (Const c a) (Id (Const c :: Type -> Type) a) Source #

AsId (Tagged s a) (Tagged s) a Source # 
Instance details

Defined in Data.Id

Methods

matchId :: Tagged s a -> Maybe (Id (Tagged s) a) Source #

_Id :: Prism' (Tagged s a) (Id (Tagged s) a) Source #

Optics

__Wrapped :: forall f1 a f' a' p f2. (Profunctor p, Functor f2) => p (f1 a) (f2 (f' a')) -> p (Id f1 a) (f2 (Id f' a')) Source #

>>> view __Wrapped (Id [1,2,3])
[1,2,3]
>>> view (from __Wrapped) [1,2,3] :: Id [] Int
Id [1,2,3]
>>> over __Wrapped (fmap (+1)) (Id [1,2,3])
Id [2,3,4]

__Unwrapped :: forall f1 a f' a' p f2. (Profunctor p, Functor f2) => p (Id f1 a) (f2 (Id f' a')) -> p (f1 a) (f2 (f' a')) Source #

>>> view __Unwrapped [1,2,3] :: Id [] Int
Id [1,2,3]
>>> view (from __Unwrapped) (Id [1,2,3])
[1,2,3]
>>> over __Unwrapped (mapId (fmap (+1))) [1,2,3] :: [Int]
[2,3,4]

idIdentity :: forall a a' p f. (Profunctor p, Functor f) => p a (f a') -> p (IdIdentity a) (f (IdIdentity a')) Source #

idTagged :: forall (f :: Type -> Type) a a' s s'. Rewrapped (f a) (f a) => Iso (Id f a) (IdIdentity a') (Id (Tagged s) (Unwrapped (f a))) (Id (Tagged s') a') Source #

>>> view idTagged (Id (Identity 7)) :: IdTagged Bool Int
Id (Tagged 7)
>>> view (from idTagged) (Id (Tagged 7) :: IdTagged Bool Int) :: IdIdentity Int
Id (Identity 7)

idProxy :: forall a a' p f. (Profunctor p, Functor f) => p () (f ()) -> p (IdProxy a) (f (IdProxy a')) Source #

>>> view idProxy (Id Proxy :: IdProxy Int)
()
>>> set idProxy () (Id Proxy :: IdProxy Int)
Id Proxy

just :: (Unwrapped s ~ Maybe (Unwrapped (Unwrapped a)), Unwrapped t ~ Maybe (Unwrapped (Unwrapped b)), Rewrapped s t, Rewrapped t s, Rewrapped b a, Rewrapped a b, Rewrapped (Unwrapped b) (Unwrapped a), Rewrapped (Unwrapped a) (Unwrapped b)) => Prism s t a b Source #

>>> preview (just :: Prism (IdMaybe Int) (IdMaybe Int) (IdIdentity Int) (IdIdentity Int)) (Id (Just 7))
Just (Id (Identity 7))
>>> preview (just :: Prism (IdMaybe Int) (IdMaybe Int) (IdIdentity Int) (IdIdentity Int)) (Id Nothing)
Nothing
>>> review (just :: Prism (IdMaybe Int) (IdMaybe Int) (IdIdentity Int) (IdIdentity Int)) (Id (Identity 7))
Id (Just 7)

rejust :: (Unwrapped t ~ Maybe (Unwrapped (Unwrapped b)), Rewrapped t t, Rewrapped b b, Rewrapped (Unwrapped b) (Unwrapped b)) => Getter b t Source #

>>> view (rejust :: Getter (IdIdentity Int) (IdMaybe Int)) (Id (Identity 7))
Id (Just 7)

nothing :: (Unwrapped t ~ Maybe x, Unwrapped s ~ Maybe x, Unwrapped (Unwrapped a) ~ (), Unwrapped (Unwrapped b) ~ (), Rewrapped s t, Rewrapped t s, Rewrapped b a, Rewrapped a b, Rewrapped (Unwrapped b) (Unwrapped a), Rewrapped (Unwrapped a) (Unwrapped b)) => Prism s t a b Source #

>>> preview (nothing :: Prism (IdMaybe Int) (IdMaybe Int) (IdIdentity ()) (IdIdentity ())) (Id Nothing)
Just (Id (Identity ()))
>>> preview (nothing :: Prism (IdMaybe Int) (IdMaybe Int) (IdIdentity ()) (IdIdentity ())) (Id (Just 7))
Nothing
>>> review (nothing :: Prism (IdMaybe Int) (IdMaybe Int) (IdIdentity ()) (IdIdentity ())) (Id (Identity ()))
Id Nothing

renothing :: (Unwrapped t ~ Maybe x, Unwrapped (Unwrapped a) ~ (), Rewrapped t t, Rewrapped a a, Rewrapped (Unwrapped a) (Unwrapped a)) => Getter a t Source #

>>> view (renothing :: Getter (IdIdentity ()) (IdMaybe Int)) (Id (Identity ()))
Id Nothing