Safe Haskell | None |
---|---|
Language | Haskell2010 |
The source location annotated nix expression type and supporting types.
Synopsis
- type Ann ann f = Fix (AnnF ann f)
- type AnnF ann f = Compose (AnnUnit ann) f
- data AnnUnit ann expr = AnnUnit {
- annotation :: ann
- annotated :: expr
- data SrcSpan = SrcSpan {}
- pattern Ann :: forall ann (f :: Type -> Type). ann -> f (Ann ann f) -> Ann ann f
- pattern AnnF :: ann -> f a -> Compose (AnnUnit ann) f a
- annUnitToAnn :: AnnUnit ann (f (Ann ann f)) -> Ann ann f
- type NExprLoc = Fix NExprLocF
- type NExprLocF = AnnF SrcSpan NExprF
- pattern NSynHoleAnn :: SrcSpan -> VarName -> NExprLoc
- pattern NAssertAnn :: SrcSpan -> NExprLoc -> NExprLoc -> NExprLoc
- pattern NWithAnn :: SrcSpan -> NExprLoc -> NExprLoc -> NExprLoc
- pattern NIfAnn :: SrcSpan -> NExprLoc -> NExprLoc -> NExprLoc -> NExprLoc
- pattern NLetAnn :: SrcSpan -> [Binding NExprLoc] -> NExprLoc -> NExprLoc
- pattern NAbsAnn :: SrcSpan -> Params NExprLoc -> NExprLoc -> NExprLoc
- pattern NHasAttrAnn :: SrcSpan -> NExprLoc -> NAttrPath NExprLoc -> NExprLoc
- pattern NSelectAnn :: SrcSpan -> Maybe NExprLoc -> NExprLoc -> NAttrPath NExprLoc -> NExprLoc
- pattern NBinaryAnn :: SrcSpan -> NBinaryOp -> NExprLoc -> NExprLoc -> NExprLoc
- pattern NUnaryAnn :: SrcSpan -> NUnaryOp -> NExprLoc -> NExprLoc
- pattern NEnvPathAnn :: SrcSpan -> Path -> NExprLoc
- pattern NLiteralPathAnn :: SrcSpan -> Path -> NExprLoc
- pattern NSetAnn :: SrcSpan -> Recursivity -> [Binding NExprLoc] -> NExprLoc
- pattern NListAnn :: SrcSpan -> [NExprLoc] -> NExprLoc
- pattern NSymAnn :: SrcSpan -> VarName -> NExprLoc
- pattern NStrAnn :: SrcSpan -> NString NExprLoc -> NExprLoc
- pattern NConstantAnn :: SrcSpan -> NAtom -> NExprLoc
- pattern NSynHoleAnnF :: SrcSpan -> VarName -> NExprLocF r
- pattern NAssertAnnF :: SrcSpan -> r -> r -> NExprLocF r
- pattern NWithAnnF :: SrcSpan -> r -> r -> NExprLocF r
- pattern NIfAnnF :: SrcSpan -> r -> r -> r -> NExprLocF r
- pattern NLetAnnF :: SrcSpan -> [Binding r] -> r -> NExprLocF r
- pattern NAbsAnnF :: SrcSpan -> Params r -> r -> NExprLocF r
- pattern NHasAttrAnnF :: SrcSpan -> r -> NAttrPath r -> NExprLocF r
- pattern NSelectAnnF :: SrcSpan -> Maybe r -> r -> NAttrPath r -> NExprLocF r
- pattern NBinaryAnnF :: SrcSpan -> NBinaryOp -> r -> r -> NExprLocF r
- pattern NUnaryAnnF :: SrcSpan -> NUnaryOp -> r -> NExprLocF r
- pattern NEnvPathAnnF :: SrcSpan -> Path -> NExprLocF r
- pattern NLiteralPathAnnF :: SrcSpan -> Path -> NExprLocF r
- pattern NSetAnnF :: SrcSpan -> Recursivity -> [Binding r] -> NExprLocF r
- pattern NListAnnF :: SrcSpan -> [r] -> NExprLocF r
- pattern NSymAnnF :: SrcSpan -> VarName -> NExprLocF r
- pattern NStrAnnF :: SrcSpan -> NString r -> NExprLocF r
- pattern NConstantAnnF :: SrcSpan -> NAtom -> NExprLocF r
- stripAnnF :: AnnF ann f r -> f r
- stripAnnotation :: Functor f => Ann ann f -> Fix f
- annNUnary :: AnnUnit SrcSpan NUnaryOp -> NExprLoc -> NExprLoc
- annNBinary :: AnnUnit SrcSpan NBinaryOp -> NExprLoc -> NExprLoc -> NExprLoc
- annNSelect :: Maybe NExprLoc -> NExprLoc -> AnnUnit SrcSpan (NAttrPath NExprLoc) -> NExprLoc
- annNHasAttr :: NExprLoc -> AnnUnit SrcSpan (NAttrPath NExprLoc) -> NExprLoc
- annNApp :: NExprLoc -> NExprLoc -> NExprLoc
- annNAbs :: AnnUnit SrcSpan (Params NExprLoc) -> NExprLoc -> NExprLoc
- annNStr :: AnnUnit SrcSpan (NString NExprLoc) -> NExprLoc
- deltaInfo :: SourcePos -> (Text, Int, Int)
- annNNull :: NExprLoc
- nullSpan :: SrcSpan
- module Data.Functor.Compose
- data SourcePos = SourcePos {
- sourceName :: FilePath
- sourceLine :: !Pos
- sourceColumn :: !Pos
- unPos :: Pos -> Int
- mkPos :: Int -> Pos
Documentation
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)
AnnUnit | |
|
Instances
ToJSON2 AnnUnit Source # | |
Defined in Nix.Expr.Types.Annotated 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 # | |
FromJSON2 AnnUnit Source # | |
Defined in Nix.Expr.Types.Annotated | |
Eq2 AnnUnit Source # | |
Ord2 AnnUnit Source # | |
Defined in Nix.Expr.Types.Annotated | |
Read2 AnnUnit Source # | |
Defined in Nix.Expr.Types.Annotated 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 # | |
Binary NExprLoc Source # | |
Serialise NExprLoc Source # | |
ToExpr NExprLoc Source # | |
Functor (AnnUnit ann) Source # | |
Foldable (AnnUnit ann) Source # | |
Defined in Nix.Expr.Types.Annotated 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 # | |
Traversable (AnnUnit ann) Source # | |
Defined in Nix.Expr.Types.Annotated | |
ToJSON ann => ToJSON1 (AnnUnit ann) Source # | |
Defined in Nix.Expr.Types.Annotated 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 # | |
FromJSON ann => FromJSON1 (AnnUnit ann) Source # | |
Eq ann => Eq1 (AnnUnit ann) Source # | |
Ord ann => Ord1 (AnnUnit ann) Source # | |
Defined in Nix.Expr.Types.Annotated | |
Read ann => Read1 (AnnUnit ann) Source # | |
Defined in Nix.Expr.Types.Annotated 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 # | |
Binary r => Binary (NExprLocF r) Source # | |
NFData ann => NFData1 (AnnUnit ann) Source # | |
Defined in Nix.Expr.Types.Annotated | |
Hashable ann => Hashable1 (AnnUnit ann) Source # | |
Defined in Nix.Expr.Types.Annotated | |
Serialise r => Serialise (NExprLocF r) Source # | |
Generic1 (AnnUnit ann :: Type -> Type) Source # | |
(Eq ann, Eq expr) => Eq (AnnUnit ann expr) Source # | |
(Data ann, Data expr) => Data (AnnUnit ann expr) Source # | |
Defined in Nix.Expr.Types.Annotated 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) # | |
(Ord ann, Ord expr) => Ord (AnnUnit ann expr) Source # | |
Defined in Nix.Expr.Types.Annotated 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 # | |
(Read ann, Read expr) => Read (AnnUnit ann expr) Source # | |
(Show ann, Show expr) => Show (AnnUnit ann expr) Source # | |
Generic (AnnUnit ann expr) Source # | |
(Hashable ann, Hashable expr) => Hashable (AnnUnit ann expr) Source # | |
Defined in Nix.Expr.Types.Annotated | |
(Binary ann, Binary a) => Binary (AnnUnit ann a) Source # | |
(NFData ann, NFData expr) => NFData (AnnUnit ann expr) Source # | |
Defined in Nix.Expr.Types.Annotated | |
(Serialise ann, Serialise a) => Serialise (AnnUnit ann a) Source # | |
Monad m => MonadState (HashMap Path NExprLoc, HashMap Text Text) (StandardTF r m) Source # | |
type Rep1 (AnnUnit ann :: Type -> Type) Source # | |
Defined in Nix.Expr.Types.Annotated type Rep1 (AnnUnit ann :: Type -> Type) = D1 ('MetaData "AnnUnit" "Nix.Expr.Types.Annotated" "hnix-0.16.0-8yNt853wvoc5yRPRKlu02G" '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 # | |
Defined in Nix.Expr.Types.Annotated type Rep (AnnUnit ann expr) = D1 ('MetaData "AnnUnit" "Nix.Expr.Types.Annotated" "hnix-0.16.0-8yNt853wvoc5yRPRKlu02G" 'False) (C1 ('MetaCons "AnnUnit" 'PrefixI 'True) (S1 ('MetaSel ('Just "annotation") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann) :*: S1 ('MetaSel ('Just "annotated") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 expr))) |
Demarcation of a chunk in a source file.
Instances
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.
type NExprLoc = Fix NExprLocF Source #
Annotated Nix expression (each subexpression direct to its source location).
pattern NSelectAnn :: SrcSpan -> Maybe NExprLoc -> NExprLoc -> NAttrPath NExprLoc -> NExprLoc Source #
pattern NAssertAnnF :: SrcSpan -> r -> r -> NExprLocF r Source #
pattern NConstantAnnF :: SrcSpan -> NAtom -> NExprLocF r Source #
Pattern systems for matching on NExprLocF
constructions.
annNSelect :: Maybe NExprLoc -> NExprLoc -> AnnUnit SrcSpan (NAttrPath NExprLoc) -> NExprLoc Source #
module Data.Functor.Compose
The data type SourcePos
represents source positions. It contains the
name of the source file, a line number, and a column number. Source line
and column positions change intensively during parsing, so we need to
make them strict to avoid memory leaks.
SourcePos | |
|