hnix-0.17.0: Haskell implementation of the Nix language
Safe HaskellSafe-Inferred
LanguageHaskell2010

Nix.Expr.Types.Annotated

Description

The source location annotated nix expression type and supporting types.

Synopsis

Documentation

type Ann ann f = Fix (AnnF ann f) Source #

type AnnF ann f = Compose (AnnUnit ann) f Source #

data AnnUnit ann expr Source #

A type constructor applied to a type along with an annotation

Intended to be used with Fix: type MyType = Fix (Compose (AnnUnit Annotation) F)

Constructors

AnnUnit 

Fields

Instances

Instances details
FromJSON2 AnnUnit Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

liftParseJSON2 :: (Value -> Parser a) -> (Value -> Parser [a]) -> (Value -> Parser b) -> (Value -> Parser [b]) -> Value -> Parser (AnnUnit a b) #

liftParseJSONList2 :: (Value -> Parser a) -> (Value -> Parser [a]) -> (Value -> Parser b) -> (Value -> Parser [b]) -> Value -> Parser [AnnUnit a b] #

ToJSON2 AnnUnit Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

liftToJSON2 :: (a -> Value) -> ([a] -> Value) -> (b -> Value) -> ([b] -> Value) -> AnnUnit a b -> Value #

liftToJSONList2 :: (a -> Value) -> ([a] -> Value) -> (b -> Value) -> ([b] -> Value) -> [AnnUnit a b] -> Value #

liftToEncoding2 :: (a -> Encoding) -> ([a] -> Encoding) -> (b -> Encoding) -> ([b] -> Encoding) -> AnnUnit a b -> Encoding #

liftToEncodingList2 :: (a -> Encoding) -> ([a] -> Encoding) -> (b -> Encoding) -> ([b] -> Encoding) -> [AnnUnit a b] -> Encoding #

Eq2 AnnUnit Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

liftEq2 :: (a -> b -> Bool) -> (c -> d -> Bool) -> AnnUnit a c -> AnnUnit b d -> Bool #

Ord2 AnnUnit Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

liftCompare2 :: (a -> b -> Ordering) -> (c -> d -> Ordering) -> AnnUnit a c -> AnnUnit b d -> Ordering #

Read2 AnnUnit Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

liftReadsPrec2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> Int -> ReadS (AnnUnit a b) #

liftReadList2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> ReadS [AnnUnit a b] #

liftReadPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec (AnnUnit a b) #

liftReadListPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec [AnnUnit a b] #

Show2 AnnUnit Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

liftShowsPrec2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> Int -> AnnUnit a b -> ShowS #

liftShowList2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> [AnnUnit a b] -> ShowS #

Binary NExprLoc Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

put :: NExprLoc -> Put #

get :: Get NExprLoc #

putList :: [NExprLoc] -> Put #

Serialise NExprLoc Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Generic1 (AnnUnit ann :: Type -> Type) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Associated Types

type Rep1 (AnnUnit ann) :: k -> Type #

Methods

from1 :: forall (a :: k). AnnUnit ann a -> Rep1 (AnnUnit ann) a #

to1 :: forall (a :: k). Rep1 (AnnUnit ann) a -> AnnUnit ann a #

FromJSON ann => FromJSON1 (AnnUnit ann) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

liftParseJSON :: (Value -> Parser a) -> (Value -> Parser [a]) -> Value -> Parser (AnnUnit ann a) #

liftParseJSONList :: (Value -> Parser a) -> (Value -> Parser [a]) -> Value -> Parser [AnnUnit ann a] #

ToJSON ann => ToJSON1 (AnnUnit ann) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

liftToJSON :: (a -> Value) -> ([a] -> Value) -> AnnUnit ann a -> Value #

liftToJSONList :: (a -> Value) -> ([a] -> Value) -> [AnnUnit ann a] -> Value #

liftToEncoding :: (a -> Encoding) -> ([a] -> Encoding) -> AnnUnit ann a -> Encoding #

liftToEncodingList :: (a -> Encoding) -> ([a] -> Encoding) -> [AnnUnit ann a] -> Encoding #

Foldable (AnnUnit ann) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

fold :: Monoid m => AnnUnit ann m -> m #

foldMap :: Monoid m => (a -> m) -> AnnUnit ann a -> m #

foldMap' :: Monoid m => (a -> m) -> AnnUnit ann a -> m #

foldr :: (a -> b -> b) -> b -> AnnUnit ann a -> b #

foldr' :: (a -> b -> b) -> b -> AnnUnit ann a -> b #

foldl :: (b -> a -> b) -> b -> AnnUnit ann a -> b #

foldl' :: (b -> a -> b) -> b -> AnnUnit ann a -> b #

foldr1 :: (a -> a -> a) -> AnnUnit ann a -> a #

foldl1 :: (a -> a -> a) -> AnnUnit ann a -> a #

toList :: AnnUnit ann a -> [a] #

null :: AnnUnit ann a -> Bool #

length :: AnnUnit ann a -> Int #

elem :: Eq a => a -> AnnUnit ann a -> Bool #

maximum :: Ord a => AnnUnit ann a -> a #

minimum :: Ord a => AnnUnit ann a -> a #

sum :: Num a => AnnUnit ann a -> a #

product :: Num a => AnnUnit ann a -> a #

Eq ann => Eq1 (AnnUnit ann) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

liftEq :: (a -> b -> Bool) -> AnnUnit ann a -> AnnUnit ann b -> Bool #

Ord ann => Ord1 (AnnUnit ann) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

liftCompare :: (a -> b -> Ordering) -> AnnUnit ann a -> AnnUnit ann b -> Ordering #

Read ann => Read1 (AnnUnit ann) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (AnnUnit ann a) #

liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [AnnUnit ann a] #

liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (AnnUnit ann a) #

liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [AnnUnit ann a] #

Show ann => Show1 (AnnUnit ann) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> AnnUnit ann a -> ShowS #

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [AnnUnit ann a] -> ShowS #

Traversable (AnnUnit ann) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

traverse :: Applicative f => (a -> f b) -> AnnUnit ann a -> f (AnnUnit ann b) #

sequenceA :: Applicative f => AnnUnit ann (f a) -> f (AnnUnit ann a) #

mapM :: Monad m => (a -> m b) -> AnnUnit ann a -> m (AnnUnit ann b) #

sequence :: Monad m => AnnUnit ann (m a) -> m (AnnUnit ann a) #

Functor (AnnUnit ann) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

fmap :: (a -> b) -> AnnUnit ann a -> AnnUnit ann b #

(<$) :: a -> AnnUnit ann b -> AnnUnit ann a #

Binary r => Binary (NExprLocF r) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

put :: NExprLocF r -> Put #

get :: Get (NExprLocF r) #

putList :: [NExprLocF r] -> Put #

NFData ann => NFData1 (AnnUnit ann) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

liftRnf :: (a -> ()) -> AnnUnit ann a -> () #

Hashable ann => Hashable1 (AnnUnit ann) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

liftHashWithSalt :: (Int -> a -> Int) -> Int -> AnnUnit ann a -> Int #

Serialise r => Serialise (NExprLocF r) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

(Data ann, Data expr) => Data (AnnUnit ann expr) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnUnit ann expr -> c (AnnUnit ann expr) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (AnnUnit ann expr) #

toConstr :: AnnUnit ann expr -> Constr #

dataTypeOf :: AnnUnit ann expr -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (AnnUnit ann expr)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (AnnUnit ann expr)) #

gmapT :: (forall b. Data b => b -> b) -> AnnUnit ann expr -> AnnUnit ann expr #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnUnit ann expr -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnUnit ann expr -> r #

gmapQ :: (forall d. Data d => d -> u) -> AnnUnit ann expr -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnUnit ann expr -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnUnit ann expr -> m (AnnUnit ann expr) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnUnit ann expr -> m (AnnUnit ann expr) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnUnit ann expr -> m (AnnUnit ann expr) #

Generic (AnnUnit ann expr) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Associated Types

type Rep (AnnUnit ann expr) :: Type -> Type #

Methods

from :: AnnUnit ann expr -> Rep (AnnUnit ann expr) x #

to :: Rep (AnnUnit ann expr) x -> AnnUnit ann expr #

(Read ann, Read expr) => Read (AnnUnit ann expr) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

readsPrec :: Int -> ReadS (AnnUnit ann expr) #

readList :: ReadS [AnnUnit ann expr] #

readPrec :: ReadPrec (AnnUnit ann expr) #

readListPrec :: ReadPrec [AnnUnit ann expr] #

(Show ann, Show expr) => Show (AnnUnit ann expr) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

showsPrec :: Int -> AnnUnit ann expr -> ShowS #

show :: AnnUnit ann expr -> String #

showList :: [AnnUnit ann expr] -> ShowS #

(Binary ann, Binary a) => Binary (AnnUnit ann a) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

put :: AnnUnit ann a -> Put #

get :: Get (AnnUnit ann a) #

putList :: [AnnUnit ann a] -> Put #

(NFData ann, NFData expr) => NFData (AnnUnit ann expr) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

rnf :: AnnUnit ann expr -> () #

(Eq ann, Eq expr) => Eq (AnnUnit ann expr) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

(==) :: AnnUnit ann expr -> AnnUnit ann expr -> Bool #

(/=) :: AnnUnit ann expr -> AnnUnit ann expr -> Bool #

(Ord ann, Ord expr) => Ord (AnnUnit ann expr) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

compare :: AnnUnit ann expr -> AnnUnit ann expr -> Ordering #

(<) :: AnnUnit ann expr -> AnnUnit ann expr -> Bool #

(<=) :: AnnUnit ann expr -> AnnUnit ann expr -> Bool #

(>) :: AnnUnit ann expr -> AnnUnit ann expr -> Bool #

(>=) :: AnnUnit ann expr -> AnnUnit ann expr -> Bool #

max :: AnnUnit ann expr -> AnnUnit ann expr -> AnnUnit ann expr #

min :: AnnUnit ann expr -> AnnUnit ann expr -> AnnUnit ann expr #

(Hashable ann, Hashable expr) => Hashable (AnnUnit ann expr) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

hashWithSalt :: Int -> AnnUnit ann expr -> Int #

hash :: AnnUnit ann expr -> Int #

(Serialise ann, Serialise a) => Serialise (AnnUnit ann a) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

encode :: AnnUnit ann a -> Encoding #

decode :: Decoder s (AnnUnit ann a) #

encodeList :: [AnnUnit ann a] -> Encoding #

decodeList :: Decoder s [AnnUnit ann a] #

Monad m => MonadState (HashMap Path NExprLoc, HashMap Text Text) (StandardTF r m) Source # 
Instance details

Defined in Nix.Standard

type Rep1 (AnnUnit ann :: Type -> Type) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

type Rep1 (AnnUnit ann :: Type -> Type) = D1 ('MetaData "AnnUnit" "Nix.Expr.Types.Annotated" "hnix-0.17.0-8saIMbclRB9HPH4JCEpCXn" 'False) (C1 ('MetaCons "AnnUnit" 'PrefixI 'True) (S1 ('MetaSel ('Just "annotation") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: S1 ('MetaSel ('Just "annotated") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))
type Rep (AnnUnit ann expr) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

type Rep (AnnUnit ann expr) = D1 ('MetaData "AnnUnit" "Nix.Expr.Types.Annotated" "hnix-0.17.0-8saIMbclRB9HPH4JCEpCXn" 'False) (C1 ('MetaCons "AnnUnit" 'PrefixI 'True) (S1 ('MetaSel ('Just "annotation") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: S1 ('MetaSel ('Just "annotated") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 expr)))

data SrcSpan Source #

Demarcation of a chunk in a source file.

Instances

Instances details
FromJSON SrcSpan Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

ToJSON SrcSpan Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Data SrcSpan Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SrcSpan -> c SrcSpan #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SrcSpan #

toConstr :: SrcSpan -> Constr #

dataTypeOf :: SrcSpan -> DataType #

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

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

gmapT :: (forall b. Data b => b -> b) -> SrcSpan -> SrcSpan #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SrcSpan -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SrcSpan -> r #

gmapQ :: (forall d. Data d => d -> u) -> SrcSpan -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SrcSpan -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SrcSpan -> m SrcSpan #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcSpan -> m SrcSpan #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcSpan -> m SrcSpan #

Semigroup SrcSpan Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Generic SrcSpan Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Associated Types

type Rep SrcSpan :: Type -> Type #

Methods

from :: SrcSpan -> Rep SrcSpan x #

to :: Rep SrcSpan x -> SrcSpan #

Show SrcSpan Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Binary NExprLoc Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

put :: NExprLoc -> Put #

get :: Get NExprLoc #

putList :: [NExprLoc] -> Put #

Binary SrcSpan Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

put :: SrcSpan -> Put #

get :: Get SrcSpan #

putList :: [SrcSpan] -> Put #

NFData SrcSpan Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

rnf :: SrcSpan -> () #

Eq SrcSpan Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

(==) :: SrcSpan -> SrcSpan -> Bool #

(/=) :: SrcSpan -> SrcSpan -> Bool #

Ord SrcSpan Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Hashable SrcSpan Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

hashWithSalt :: Int -> SrcSpan -> Int #

hash :: SrcSpan -> Int #

Serialise NExprLoc Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Serialise SrcSpan Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Binary r => Binary (NExprLocF r) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Methods

put :: NExprLocF r -> Put #

get :: Get (NExprLocF r) #

putList :: [NExprLocF r] -> Put #

Serialise r => Serialise (NExprLocF r) Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

Has (Context m t) SrcSpan Source # 
Instance details

Defined in Nix.Context

Monad m => MonadState (HashMap Path NExprLoc, HashMap Text Text) (StandardTF r m) Source # 
Instance details

Defined in Nix.Standard

type Rep SrcSpan Source # 
Instance details

Defined in Nix.Expr.Types.Annotated

type Rep SrcSpan = D1 ('MetaData "SrcSpan" "Nix.Expr.Types.Annotated" "hnix-0.17.0-8saIMbclRB9HPH4JCEpCXn" 'False) (C1 ('MetaCons "SrcSpan" 'PrefixI 'True) (S1 ('MetaSel ('Just "getSpanBegin") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NSourcePos) :*: S1 ('MetaSel ('Just "getSpanEnd") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NSourcePos)))

pattern Ann :: forall ann (f :: Type -> Type). ann -> f (Ann ann f) -> Ann ann f Source #

Pattern: Fix (Compose (AnnUnit _ _)). Fix composes units of (annotations & the annotated) into one object. Giving annotated expression.

pattern AnnF :: ann -> f a -> Compose (AnnUnit ann) f a Source #

Pattern: (Compose (AnnUnit _ _)).

annUnitToAnn :: AnnUnit ann (f (Ann ann f)) -> Ann ann f Source #

type NExprLoc = Fix NExprLocF Source #

Annotated Nix expression (each subexpression direct to its source location).

pattern NAssertAnnF :: SrcSpan -> r -> r -> NExprLocF r Source #

pattern NWithAnnF :: SrcSpan -> r -> r -> NExprLocF r Source #

pattern NIfAnnF :: SrcSpan -> r -> r -> r -> NExprLocF r Source #

pattern NLetAnnF :: SrcSpan -> [Binding r] -> r -> NExprLocF r Source #

pattern NAbsAnnF :: SrcSpan -> Params r -> r -> NExprLocF r Source #

pattern NHasAttrAnnF :: SrcSpan -> r -> NAttrPath r -> NExprLocF r Source #

pattern NSelectAnnF :: SrcSpan -> Maybe r -> r -> NAttrPath r -> NExprLocF r Source #

pattern NBinaryAnnF :: SrcSpan -> NBinaryOp -> r -> r -> NExprLocF r Source #

pattern NAppAnnF :: SrcSpan -> r -> r -> NExprLocF r Source #

pattern NUnaryAnnF :: SrcSpan -> NUnaryOp -> r -> NExprLocF r Source #

pattern NListAnnF :: SrcSpan -> [r] -> NExprLocF r Source #

pattern NStrAnnF :: SrcSpan -> NString r -> NExprLocF r Source #

stripAnnF :: AnnF ann f r -> f r Source #

stripAnnotation :: Functor f => Ann ann f -> Fix f Source #