Agda-2.5.4: A dependently typed functional programming language and proof assistant

Safe HaskellNone
LanguageHaskell2010

Agda.Syntax.Abstract

Description

The abstract syntax. This is what you get after desugaring and scope analysis of the concrete syntax. The type checker works on abstract syntax, producing internal syntax (Agda.Syntax.Internal).

Synopsis

Documentation

class MaybePostfixProjP a where #

Minimal complete definition

maybePostfixProjP

type NAPs e = [NamedArg (Pattern' e)] #

data Pattern' e #

Parameterised over the type of dot patterns.

Constructors

VarP BindName 
ConP ConPatInfo AmbiguousQName (NAPs e) 
ProjP PatInfo ProjOrigin AmbiguousQName

Destructor pattern d.

DefP PatInfo AmbiguousQName (NAPs e)

Defined pattern: function definition f ps. It is also abused to convert destructor patterns into concrete syntax thus, we put AmbiguousQName here as well.

WildP PatInfo

Underscore pattern entered by user. Or generated at type checking for implicit arguments.

AsP PatInfo BindName (Pattern' e) 
DotP PatInfo e

Dot pattern .e

AbsurdP PatInfo 
LitP Literal 
PatternSynP PatInfo AmbiguousQName (NAPs e) 
RecP PatInfo [FieldAssignment' (Pattern' e)] 
WithP PatInfo (Pattern' e)

| p, for with-patterns.

Instances
Functor Pattern' # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

fmap :: (a -> b) -> Pattern' a -> Pattern' b #

(<$) :: a -> Pattern' b -> Pattern' a #

Foldable Pattern' # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

fold :: Monoid m => Pattern' m -> m #

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

foldr :: (a -> b -> b) -> b -> Pattern' a -> b #

foldr' :: (a -> b -> b) -> b -> Pattern' a -> b #

foldl :: (b -> a -> b) -> b -> Pattern' a -> b #

foldl' :: (b -> a -> b) -> b -> Pattern' a -> b #

foldr1 :: (a -> a -> a) -> Pattern' a -> a #

foldl1 :: (a -> a -> a) -> Pattern' a -> a #

toList :: Pattern' a -> [a] #

null :: Pattern' a -> Bool #

length :: Pattern' a -> Int #

elem :: Eq a => a -> Pattern' a -> Bool #

maximum :: Ord a => Pattern' a -> a #

minimum :: Ord a => Pattern' a -> a #

sum :: Num a => Pattern' a -> a #

product :: Num a => Pattern' a -> a #

Traversable Pattern' # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

traverse :: Applicative f => (a -> f b) -> Pattern' a -> f (Pattern' b) #

sequenceA :: Applicative f => Pattern' (f a) -> f (Pattern' a) #

mapM :: Monad m => (a -> m b) -> Pattern' a -> m (Pattern' b) #

sequence :: Monad m => Pattern' (m a) -> m (Pattern' a) #

MapNamedArgPattern NAP # 
Instance details

Defined in Agda.Syntax.Abstract.Pattern

Methods

mapNamedArgPattern :: (NAP -> NAP) -> NAP -> NAP #

IsFlexiblePattern Pattern # 
Instance details

Defined in Agda.TypeChecking.Rules.LHS

UniverseBi Declaration Pattern # 
Instance details

Defined in Agda.Syntax.Abstract

ToConcrete Pattern Pattern # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

UniverseBi Declaration (Pattern' Void) # 
Instance details

Defined in Agda.Syntax.Abstract

APatternLike a (Pattern' a) # 
Instance details

Defined in Agda.Syntax.Abstract.Pattern

Methods

foldrAPattern :: Monoid m => (Pattern' a -> m -> m) -> Pattern' a -> m #

traverseAPatternM :: Monad m => (Pattern' a -> m (Pattern' a)) -> (Pattern' a -> m (Pattern' a)) -> Pattern' a -> m (Pattern' a) #

ToAbstract Pattern (Pattern' Expr) # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract Pattern (Names, Pattern) # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

Eq e => Eq (Pattern' e) # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

(==) :: Pattern' e -> Pattern' e -> Bool #

(/=) :: Pattern' e -> Pattern' e -> Bool #

Data e => Data (Pattern' e) # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Pattern' e -> c (Pattern' e) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Pattern' e) #

toConstr :: Pattern' e -> Constr #

dataTypeOf :: Pattern' e -> DataType #

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

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

gmapT :: (forall b. Data b => b -> b) -> Pattern' e -> Pattern' e #

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

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

gmapQ :: (forall d. Data d => d -> u) -> Pattern' e -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Pattern' e -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Pattern' e -> m (Pattern' e) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Pattern' e -> m (Pattern' e) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Pattern' e -> m (Pattern' e) #

Show e => Show (Pattern' e) # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

showsPrec :: Int -> Pattern' e -> ShowS #

show :: Pattern' e -> String #

showList :: [Pattern' e] -> ShowS #

KillRange e => KillRange (Pattern' e) # 
Instance details

Defined in Agda.Syntax.Abstract

SetRange (Pattern' a) # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

setRange :: Range -> Pattern' a -> Pattern' a #

HasRange (Pattern' e) # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

getRange :: Pattern' e -> Range #

IsProjP (Pattern' e) # 
Instance details

Defined in Agda.Syntax.Abstract

IsWithP (Pattern' e) #

Check for with-pattern.

Instance details

Defined in Agda.Syntax.Abstract.Pattern

Methods

isWithP :: Pattern' e -> Maybe (Pattern' e) #

IsProjP e => MaybePostfixProjP (Pattern' e) # 
Instance details

Defined in Agda.Syntax.Abstract

ExprLike a => ExprLike (Pattern' a) # 
Instance details

Defined in Agda.Syntax.Abstract.Views

Methods

recurseExpr :: Applicative m => (Expr -> m Expr -> m Expr) -> Pattern' a -> m (Pattern' a) #

foldExpr :: Monoid m => (Expr -> m) -> Pattern' a -> m #

traverseExpr :: (Applicative m, Monad m) => (Expr -> m Expr) -> Pattern' a -> m (Pattern' a) #

mapExpr :: (Expr -> Expr) -> Pattern' a -> Pattern' a #

EmbPrj a => EmbPrj (Pattern' a) # 
Instance details

Defined in Agda.TypeChecking.Serialise.Instances.Abstract

Methods

icode :: Pattern' a -> S Int32 #

icod_ :: Pattern' a -> S Int32 #

value :: Int32 -> R (Pattern' a) #

NamesIn (Pattern' a) # 
Instance details

Defined in Agda.Syntax.Internal.Names

Methods

namesIn :: Pattern' a -> Set QName #

ExpandPatternSynonyms (Pattern' e) # 
Instance details

Defined in Agda.TypeChecking.Patterns.Abstract

ToAbstract (Pattern' Expr) (Pattern' Expr) # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

data LHSCore' e #

The lhs in projection-application and with-pattern view. Parameterised over the type e of dot patterns.

Constructors

LHSHead

The head applied to ordinary patterns.

Fields

LHSProj

Projection.

Fields

LHSWith

With patterns.

Fields

Instances
Functor LHSCore' # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

fmap :: (a -> b) -> LHSCore' a -> LHSCore' b #

(<$) :: a -> LHSCore' b -> LHSCore' a #

Foldable LHSCore' # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

fold :: Monoid m => LHSCore' m -> m #

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

foldr :: (a -> b -> b) -> b -> LHSCore' a -> b #

foldr' :: (a -> b -> b) -> b -> LHSCore' a -> b #

foldl :: (b -> a -> b) -> b -> LHSCore' a -> b #

foldl' :: (b -> a -> b) -> b -> LHSCore' a -> b #

foldr1 :: (a -> a -> a) -> LHSCore' a -> a #

foldl1 :: (a -> a -> a) -> LHSCore' a -> a #

toList :: LHSCore' a -> [a] #

null :: LHSCore' a -> Bool #

length :: LHSCore' a -> Int #

elem :: Eq a => a -> LHSCore' a -> Bool #

maximum :: Ord a => LHSCore' a -> a #

minimum :: Ord a => LHSCore' a -> a #

sum :: Num a => LHSCore' a -> a #

product :: Num a => LHSCore' a -> a #

Traversable LHSCore' # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

traverse :: Applicative f => (a -> f b) -> LHSCore' a -> f (LHSCore' b) #

sequenceA :: Applicative f => LHSCore' (f a) -> f (LHSCore' a) #

mapM :: Monad m => (a -> m b) -> LHSCore' a -> m (LHSCore' b) #

sequence :: Monad m => LHSCore' (m a) -> m (LHSCore' a) #

ToConcrete LHSCore Pattern # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

ToAbstract LHSCore (LHSCore' Expr) # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

Eq e => Eq (LHSCore' e) # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

(==) :: LHSCore' e -> LHSCore' e -> Bool #

(/=) :: LHSCore' e -> LHSCore' e -> Bool #

Data e => Data (LHSCore' e) # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LHSCore' e -> c (LHSCore' e) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (LHSCore' e) #

toConstr :: LHSCore' e -> Constr #

dataTypeOf :: LHSCore' e -> DataType #

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

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

gmapT :: (forall b. Data b => b -> b) -> LHSCore' e -> LHSCore' e #

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

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

gmapQ :: (forall d. Data d => d -> u) -> LHSCore' e -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> LHSCore' e -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> LHSCore' e -> m (LHSCore' e) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LHSCore' e -> m (LHSCore' e) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LHSCore' e -> m (LHSCore' e) #

Show e => Show (LHSCore' e) # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

showsPrec :: Int -> LHSCore' e -> ShowS #

show :: LHSCore' e -> String #

showList :: [LHSCore' e] -> ShowS #

KillRange e => KillRange (LHSCore' e) # 
Instance details

Defined in Agda.Syntax.Abstract

HasRange (LHSCore' e) # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

getRange :: LHSCore' e -> Range #

ExprLike a => ExprLike (LHSCore' a) # 
Instance details

Defined in Agda.Syntax.Abstract.Views

Methods

recurseExpr :: Applicative m => (Expr -> m Expr -> m Expr) -> LHSCore' a -> m (LHSCore' a) #

foldExpr :: Monoid m => (Expr -> m) -> LHSCore' a -> m #

traverseExpr :: (Applicative m, Monad m) => (Expr -> m Expr) -> LHSCore' a -> m (LHSCore' a) #

mapExpr :: (Expr -> Expr) -> LHSCore' a -> LHSCore' a #

ToAbstract (LHSCore' Expr) (LHSCore' Expr) # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

data LHS #

The lhs of a clause in focused (projection-application) view (outside-in). Projection patters are represented as LHSProjs.

Constructors

LHS 

Fields

Instances
Eq LHS #

Ignore Range when comparing LHSs.

Instance details

Defined in Agda.Syntax.Abstract

Methods

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

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

Data LHS # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

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

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

toConstr :: LHS -> Constr #

dataTypeOf :: LHS -> DataType #

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

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

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

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

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

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

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

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

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

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

Show LHS # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

showsPrec :: Int -> LHS -> ShowS #

show :: LHS -> String #

showList :: [LHS] -> ShowS #

KillRange LHS # 
Instance details

Defined in Agda.Syntax.Abstract

HasRange LHS # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

getRange :: LHS -> Range #

AllNames Clause # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

allNames :: Clause -> Seq QName #

ExprLike LHS # 
Instance details

Defined in Agda.Syntax.Abstract.Views

Methods

recurseExpr :: Applicative m => (Expr -> m Expr -> m Expr) -> LHS -> m LHS #

foldExpr :: Monoid m => (Expr -> m) -> LHS -> m #

traverseExpr :: (Applicative m, Monad m) => (Expr -> m Expr) -> LHS -> m LHS #

mapExpr :: (Expr -> Expr) -> LHS -> LHS #

LHSToSpine LHS SpineLHS #

LHS instance.

Instance details

Defined in Agda.Syntax.Abstract.Pattern

LHSToSpine Clause SpineClause #

Clause instance.

Instance details

Defined in Agda.Syntax.Abstract.Pattern

ToConcrete LHS LHS # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

Reify NamedClause Clause # 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

ToAbstract Clause Clause # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract LeftHandSide LHS # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

Reify (QNamed Clause) Clause # 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

ToAbstract (QNamed Clause) Clause # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

ToAbstract [QNamed Clause] [Clause] # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

data SpineLHS #

The lhs of a clause in spine view (inside-out). Projection patterns are contained in spLhsPats, represented as ProjP d.

Constructors

SpineLHS 

Fields

Instances
Eq SpineLHS # 
Instance details

Defined in Agda.Syntax.Abstract

Data SpineLHS # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

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

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

toConstr :: SpineLHS -> Constr #

dataTypeOf :: SpineLHS -> DataType #

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

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

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

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

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

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

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

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

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

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

Show SpineLHS # 
Instance details

Defined in Agda.Syntax.Abstract

KillRange SpineLHS # 
Instance details

Defined in Agda.Syntax.Abstract

HasRange SpineLHS # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

getRange :: SpineLHS -> Range #

ExprLike SpineLHS # 
Instance details

Defined in Agda.Syntax.Abstract.Views

Methods

recurseExpr :: Applicative m => (Expr -> m Expr -> m Expr) -> SpineLHS -> m SpineLHS #

foldExpr :: Monoid m => (Expr -> m) -> SpineLHS -> m #

traverseExpr :: (Applicative m, Monad m) => (Expr -> m Expr) -> SpineLHS -> m SpineLHS #

mapExpr :: (Expr -> Expr) -> SpineLHS -> SpineLHS #

LHSToSpine LHS SpineLHS #

LHS instance.

Instance details

Defined in Agda.Syntax.Abstract.Pattern

LHSToSpine Clause SpineClause #

Clause instance.

Instance details

Defined in Agda.Syntax.Abstract.Pattern

ToConcrete SpineLHS LHS # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

data RHS #

Constructors

RHS 

Fields

AbsurdRHS 
WithRHS QName [Expr] [Clause]

The QName is the name of the with function.

RewriteRHS 

Fields

Instances
Eq RHS #

Ignore rhsConcrete when comparing RHSs.

Instance details

Defined in Agda.Syntax.Abstract

Methods

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

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

Data RHS # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

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

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

toConstr :: RHS -> Constr #

dataTypeOf :: RHS -> DataType #

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

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

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

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

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

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

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

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

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

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

Show RHS # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

showsPrec :: Int -> RHS -> ShowS #

show :: RHS -> String #

showList :: [RHS] -> ShowS #

KillRange RHS # 
Instance details

Defined in Agda.Syntax.Abstract

HasRange RHS # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

getRange :: RHS -> Range #

AllNames RHS # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

allNames :: RHS -> Seq QName #

ExprLike RHS # 
Instance details

Defined in Agda.Syntax.Abstract.Views

Methods

recurseExpr :: Applicative m => (Expr -> m Expr -> m Expr) -> RHS -> m RHS #

foldExpr :: Monoid m => (Expr -> m) -> RHS -> m #

traverseExpr :: (Applicative m, Monad m) => (Expr -> m Expr) -> RHS -> m RHS #

mapExpr :: (Expr -> Expr) -> RHS -> RHS #

ToAbstract AbstractRHS RHS # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToConcrete RHS (RHS, [Expr], [Expr], [Declaration]) # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

Methods

toConcrete :: RHS -> AbsToCon (RHS0, [Expr], [Expr], [Declaration]) #

bindToConcrete :: RHS -> ((RHS0, [Expr], [Expr], [Declaration]) -> AbsToCon b) -> AbsToCon b #

data WhereDeclarations #

Instances
Eq WhereDeclarations # 
Instance details

Defined in Agda.Syntax.Abstract

Data WhereDeclarations # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

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

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

toConstr :: WhereDeclarations -> Constr #

dataTypeOf :: WhereDeclarations -> DataType #

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

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

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

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

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

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

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

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

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

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

Show WhereDeclarations # 
Instance details

Defined in Agda.Syntax.Abstract

KillRange WhereDeclarations # 
Instance details

Defined in Agda.Syntax.Abstract

HasRange WhereDeclarations # 
Instance details

Defined in Agda.Syntax.Abstract

AllNames WhereDeclarations # 
Instance details

Defined in Agda.Syntax.Abstract

ExprLike WhereDeclarations # 
Instance details

Defined in Agda.Syntax.Abstract.Views

ToConcrete WhereDeclarations WhereClause # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

data Clause' lhs #

We could throw away where clauses at this point and translate them to let. It's not obvious how to remember that the let was really a where clause though, so for the time being we keep it here.

Constructors

Clause 

Fields

Instances
Functor Clause' # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

fmap :: (a -> b) -> Clause' a -> Clause' b #

(<$) :: a -> Clause' b -> Clause' a #

Foldable Clause' # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

fold :: Monoid m => Clause' m -> m #

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

foldr :: (a -> b -> b) -> b -> Clause' a -> b #

foldr' :: (a -> b -> b) -> b -> Clause' a -> b #

foldl :: (b -> a -> b) -> b -> Clause' a -> b #

foldl' :: (b -> a -> b) -> b -> Clause' a -> b #

foldr1 :: (a -> a -> a) -> Clause' a -> a #

foldl1 :: (a -> a -> a) -> Clause' a -> a #

toList :: Clause' a -> [a] #

null :: Clause' a -> Bool #

length :: Clause' a -> Int #

elem :: Eq a => a -> Clause' a -> Bool #

maximum :: Ord a => Clause' a -> a #

minimum :: Ord a => Clause' a -> a #

sum :: Num a => Clause' a -> a #

product :: Num a => Clause' a -> a #

Traversable Clause' # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

traverse :: Applicative f => (a -> f b) -> Clause' a -> f (Clause' b) #

sequenceA :: Applicative f => Clause' (f a) -> f (Clause' a) #

mapM :: Monad m => (a -> m b) -> Clause' a -> m (Clause' b) #

sequence :: Monad m => Clause' (m a) -> m (Clause' a) #

AllNames Clause # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

allNames :: Clause -> Seq QName #

LHSToSpine Clause SpineClause #

Clause instance.

Instance details

Defined in Agda.Syntax.Abstract.Pattern

Reify NamedClause Clause # 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

ToAbstract Clause Clause # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

Eq lhs => Eq (Clause' lhs) # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

(==) :: Clause' lhs -> Clause' lhs -> Bool #

(/=) :: Clause' lhs -> Clause' lhs -> Bool #

Data lhs => Data (Clause' lhs) # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Clause' lhs -> c (Clause' lhs) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Clause' lhs) #

toConstr :: Clause' lhs -> Constr #

dataTypeOf :: Clause' lhs -> DataType #

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

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

gmapT :: (forall b. Data b => b -> b) -> Clause' lhs -> Clause' lhs #

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

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

gmapQ :: (forall d. Data d => d -> u) -> Clause' lhs -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Clause' lhs -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Clause' lhs -> m (Clause' lhs) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Clause' lhs -> m (Clause' lhs) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Clause' lhs -> m (Clause' lhs) #

Show lhs => Show (Clause' lhs) # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

showsPrec :: Int -> Clause' lhs -> ShowS #

show :: Clause' lhs -> String #

showList :: [Clause' lhs] -> ShowS #

KillRange a => KillRange (Clause' a) # 
Instance details

Defined in Agda.Syntax.Abstract

HasRange a => HasRange (Clause' a) # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

getRange :: Clause' a -> Range #

ExprLike a => ExprLike (Clause' a) # 
Instance details

Defined in Agda.Syntax.Abstract.Views

Methods

recurseExpr :: Applicative m => (Expr -> m Expr -> m Expr) -> Clause' a -> m (Clause' a) #

foldExpr :: Monoid m => (Expr -> m) -> Clause' a -> m #

traverseExpr :: (Applicative m, Monad m) => (Expr -> m Expr) -> Clause' a -> m (Clause' a) #

mapExpr :: (Expr -> Expr) -> Clause' a -> Clause' a #

Reify (QNamed Clause) Clause # 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

ToAbstract (QNamed Clause) Clause # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

ToConcrete a LHS => ToConcrete (Clause' a) [Declaration] # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

ToAbstract [QNamed Clause] [Clause] # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

data ProblemEq #

A user pattern together with an internal term that it should be equal to after splitting is complete. Special cases: * User pattern is a variable but internal term isn't: this will be turned into an as pattern. * User pattern is a dot pattern: this pattern won't trigger any splitting but will be checked for equality after all splitting is complete and as patterns have been bound. * User pattern is an absurd pattern: emptiness of the type will be checked after splitting is complete.

Instances
Eq ProblemEq # 
Instance details

Defined in Agda.Syntax.Abstract

Data ProblemEq # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

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

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

toConstr :: ProblemEq -> Constr #

dataTypeOf :: ProblemEq -> DataType #

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

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

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

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

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

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

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

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

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

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

Show ProblemEq # 
Instance details

Defined in Agda.Syntax.Abstract

KillRange ProblemEq # 
Instance details

Defined in Agda.Syntax.Abstract

PrettyTCM ProblemEq # 
Instance details

Defined in Agda.TypeChecking.Rules.LHS.Problem

Methods

prettyTCM :: ProblemEq -> TCM Doc #

Subst Term ProblemEq # 
Instance details

Defined in Agda.TypeChecking.Substitute

data TypedBinding #

A typed binding. Appears in dependent function spaces, typed lambdas, and telescopes. It might be tempting to simplify this to only bind a single name at a time, and translate, say, (x y : A) to (x : A)(y : A) before type-checking. However, this would be slightly problematic:

  1. We would have to typecheck the type A several times.
  2. If A contains a meta variable or hole, it would be duplicated by such a translation.

While 1. is only slightly inefficient, 2. would be an outright bug. Duplicating A could not be done naively, we would have to make sure that the metas of the copy are aliases of the metas of the original.

Constructors

TBind Range [WithHiding BindName] Expr

As in telescope (x y z : A) or type (x y z : A) -> B.

TLet Range [LetBinding]

E.g. (let x = e) or (let open M).

Instances
Eq TypedBinding # 
Instance details

Defined in Agda.Syntax.Abstract

Data TypedBinding # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

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

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

toConstr :: TypedBinding -> Constr #

dataTypeOf :: TypedBinding -> DataType #

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

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

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

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

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

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

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

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

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

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

Show TypedBinding # 
Instance details

Defined in Agda.Syntax.Abstract

KillRange TypedBinding # 
Instance details

Defined in Agda.Syntax.Abstract

HasRange TypedBinding # 
Instance details

Defined in Agda.Syntax.Abstract

SubstExpr TypedBinding # 
Instance details

Defined in Agda.Syntax.Abstract

AllNames TypedBinding # 
Instance details

Defined in Agda.Syntax.Abstract

ExprLike TypedBinding # 
Instance details

Defined in Agda.Syntax.Abstract.Views

PrettyTCM TypedBinding # 
Instance details

Defined in Agda.TypeChecking.Pretty

UniverseBi Declaration TypedBinding # 
Instance details

Defined in Agda.Syntax.Abstract

ToConcrete TypedBinding TypedBinding # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

ToAbstract TypedBinding TypedBinding # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

data TypedBindings #

Typed bindings with hiding information.

Constructors

TypedBindings Range (Arg TypedBinding)

. (xs : e) or {xs : e}

Instances
Eq TypedBindings # 
Instance details

Defined in Agda.Syntax.Abstract

Data TypedBindings # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

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

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

toConstr :: TypedBindings -> Constr #

dataTypeOf :: TypedBindings -> DataType #

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

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

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

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

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

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

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

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

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

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

Show TypedBindings # 
Instance details

Defined in Agda.Syntax.Abstract

KillRange TypedBindings # 
Instance details

Defined in Agda.Syntax.Abstract

HasRange TypedBindings # 
Instance details

Defined in Agda.Syntax.Abstract

LensHiding TypedBindings # 
Instance details

Defined in Agda.Syntax.Abstract

SubstExpr TypedBindings # 
Instance details

Defined in Agda.Syntax.Abstract

AllNames TypedBindings # 
Instance details

Defined in Agda.Syntax.Abstract

ExprLike TypedBindings # 
Instance details

Defined in Agda.Syntax.Abstract.Views

Reify Telescope Telescope # 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

ToAbstract TypedBindings TypedBindings # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToConcrete TypedBindings [TypedBindings] # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

ToAbstract r Expr => ToAbstract (Dom r, Name) TypedBindings # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

data LamBinding #

A lambda binding is either domain free or typed.

Constructors

DomainFree ArgInfo BindName

. x or {x} or .x or .{x}

DomainFull TypedBindings

. (xs:e) or {xs:e} or (let Ds)

Instances
Eq LamBinding # 
Instance details

Defined in Agda.Syntax.Abstract

Data LamBinding # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

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

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

toConstr :: LamBinding -> Constr #

dataTypeOf :: LamBinding -> DataType #

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

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

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

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

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

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

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

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

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

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

Show LamBinding # 
Instance details

Defined in Agda.Syntax.Abstract

KillRange LamBinding # 
Instance details

Defined in Agda.Syntax.Abstract

HasRange LamBinding # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

getRange :: LamBinding -> Range #

LensHiding LamBinding # 
Instance details

Defined in Agda.Syntax.Abstract

AllNames LamBinding # 
Instance details

Defined in Agda.Syntax.Abstract

ExprLike LamBinding # 
Instance details

Defined in Agda.Syntax.Abstract.Views

Methods

recurseExpr :: Applicative m => (Expr -> m Expr -> m Expr) -> LamBinding -> m LamBinding #

foldExpr :: Monoid m => (Expr -> m) -> LamBinding -> m #

traverseExpr :: (Applicative m, Monad m) => (Expr -> m Expr) -> LamBinding -> m LamBinding #

mapExpr :: (Expr -> Expr) -> LamBinding -> LamBinding #

UniverseBi Declaration LamBinding # 
Instance details

Defined in Agda.Syntax.Abstract

ToAbstract LamBinding LamBinding # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToConcrete LamBinding [LamBinding] # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

data LetBinding #

Bindings that are valid in a let.

Constructors

LetBind LetInfo ArgInfo BindName Expr Expr
LetBind info rel name type defn
LetPatBind LetInfo Pattern Expr

Irrefutable pattern binding.

LetApply ModuleInfo ModuleName ModuleApplication ScopeCopyInfo ImportDirective

LetApply mi newM (oldM args) renamings dir. The ImportDirective is for highlighting purposes.

LetOpen ModuleInfo ModuleName ImportDirective

only for highlighting and abstractToConcrete

LetDeclaredVariable BindName

Only used for highlighting. Refers to the first occurrence of x in let x : A; x = e.

Instances
Eq LetBinding # 
Instance details

Defined in Agda.Syntax.Abstract

Data LetBinding # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

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

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

toConstr :: LetBinding -> Constr #

dataTypeOf :: LetBinding -> DataType #

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

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

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

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

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

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

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

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

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

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

Show LetBinding # 
Instance details

Defined in Agda.Syntax.Abstract

KillRange LetBinding # 
Instance details

Defined in Agda.Syntax.Abstract

HasRange LetBinding # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

getRange :: LetBinding -> Range #

SubstExpr LetBinding # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

substExpr :: [(Name, Expr)] -> LetBinding -> LetBinding #

AllNames LetBinding # 
Instance details

Defined in Agda.Syntax.Abstract

ExprLike LetBinding # 
Instance details

Defined in Agda.Syntax.Abstract.Views

Methods

recurseExpr :: Applicative m => (Expr -> m Expr -> m Expr) -> LetBinding -> m LetBinding #

foldExpr :: Monoid m => (Expr -> m) -> LetBinding -> m #

traverseExpr :: (Applicative m, Monad m) => (Expr -> m Expr) -> LetBinding -> m LetBinding #

mapExpr :: (Expr -> Expr) -> LetBinding -> LetBinding #

UniverseBi Declaration LetBinding # 
Instance details

Defined in Agda.Syntax.Abstract

ToConcrete LetBinding [Declaration] # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

ToAbstract LetDef [LetBinding] # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract LetDefs [LetBinding] # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract ModuleAssignment (ModuleName, [LetBinding]) # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

data Pragma #

Constructors

OptionsPragma [String] 
BuiltinPragma String ResolvedName

ResolvedName is not UnknownName. Name can be ambiguous e.g. for built-in constructors.

BuiltinNoDefPragma String QName

Builtins that do not come with a definition, but declare a name for an Agda concept.

RewritePragma QName 
CompilePragma String QName String 
CompiledPragma QName String 
CompiledExportPragma QName String 
CompiledTypePragma QName String 
CompiledDataPragma QName String [String] 
CompiledJSPragma QName String 
CompiledUHCPragma QName String 
CompiledDataUHCPragma QName String [String] 
StaticPragma QName 
EtaPragma QName

For coinductive records, use pragma instead of regular eta-equality definition (as it is might make Agda loop).

InjectivePragma QName 
InlinePragma Bool QName 
DisplayPragma QName [NamedArg Pattern] Expr 
Instances
Eq Pragma # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

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

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

Data Pragma # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

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

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

toConstr :: Pragma -> Constr #

dataTypeOf :: Pragma -> DataType #

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

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

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

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

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

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

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

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

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

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

Show Pragma # 
Instance details

Defined in Agda.Syntax.Abstract

ExprLike Pragma # 
Instance details

Defined in Agda.Syntax.Abstract.Views

Methods

recurseExpr :: Applicative m => (Expr -> m Expr -> m Expr) -> Pragma -> m Pragma #

foldExpr :: Monoid m => (Expr -> m) -> Pragma -> m #

traverseExpr :: (Applicative m, Monad m) => (Expr -> m Expr) -> Pragma -> m Pragma #

mapExpr :: (Expr -> Expr) -> Pragma -> Pragma #

ToAbstract Pragma [Pragma] # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

data ModuleApplication #

Constructors

SectionApp Telescope ModuleName [NamedArg Expr]

tel. M args: applies M to args and abstracts tel.

RecordModuleIFS ModuleName
M {{...}}
Instances
Eq ModuleApplication # 
Instance details

Defined in Agda.Syntax.Abstract

Data ModuleApplication # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

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

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

toConstr :: ModuleApplication -> Constr #

dataTypeOf :: ModuleApplication -> DataType #

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

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

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

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

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

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

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

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

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

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

Show ModuleApplication # 
Instance details

Defined in Agda.Syntax.Abstract

KillRange ModuleApplication # 
Instance details

Defined in Agda.Syntax.Abstract

AllNames ModuleApplication # 
Instance details

Defined in Agda.Syntax.Abstract

ExprLike ModuleApplication # 
Instance details

Defined in Agda.Syntax.Abstract.Views

ToConcrete ModuleApplication ModuleApplication # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

class GetDefInfo a where #

Minimal complete definition

getDefInfo

Methods

getDefInfo :: a -> Maybe DefInfo #

Instances
GetDefInfo Declaration # 
Instance details

Defined in Agda.Syntax.Abstract

data Declaration #

Constructors

Axiom Axiom DefInfo ArgInfo (Maybe [Occurrence]) QName Expr

Type signature (can be irrelevant, but not hidden).

The fourth argument contains an optional assignment of polarities to arguments.

Field DefInfo QName (Arg Expr)

record field

Primitive DefInfo QName Expr

primitive function

Mutual MutualInfo [Declaration]

a bunch of mutually recursive definitions

Section ModuleInfo ModuleName [TypedBindings] [Declaration] 
Apply ModuleInfo ModuleName ModuleApplication ScopeCopyInfo ImportDirective

The ImportDirective is for highlighting purposes.

Import ModuleInfo ModuleName ImportDirective

The ImportDirective is for highlighting purposes.

Pragma Range Pragma 
Open ModuleInfo ModuleName ImportDirective

only retained for highlighting purposes

FunDef DefInfo QName Delayed [Clause]

sequence of function clauses

DataSig DefInfo QName Telescope Expr

lone data signature

DataDef DefInfo QName [LamBinding] [Constructor]

the LamBindings are DomainFree and bind the parameters of the datatype.

RecSig DefInfo QName Telescope Expr

lone record signature

RecDef DefInfo QName (Maybe (Ranged Induction)) (Maybe HasEta) (Maybe QName) [LamBinding] Expr [Declaration]

The LamBindings are DomainFree and bind the parameters of the datatype. The Expr gives the constructor type telescope, (x1 : A1)..(xn : An) -> Prop, and the optional name is the constructor's name.

PatternSynDef QName [Arg Name] (Pattern' Void)

Only for highlighting purposes

UnquoteDecl MutualInfo [DefInfo] [QName] Expr 
UnquoteDef [DefInfo] [QName] Expr 
ScopedDecl ScopeInfo [Declaration]

scope annotation

Instances
Eq Declaration #

Does not compare ScopeInfo fields.

Instance details

Defined in Agda.Syntax.Abstract

Data Declaration # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

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

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

toConstr :: Declaration -> Constr #

dataTypeOf :: Declaration -> DataType #

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

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

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

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

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

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

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

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

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

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

Show Declaration # 
Instance details

Defined in Agda.Syntax.Abstract

KillRange Declaration # 
Instance details

Defined in Agda.Syntax.Abstract

HasRange Declaration # 
Instance details

Defined in Agda.Syntax.Abstract

GetDefInfo Declaration # 
Instance details

Defined in Agda.Syntax.Abstract

AnyAbstract Declaration # 
Instance details

Defined in Agda.Syntax.Abstract

AllNames Declaration # 
Instance details

Defined in Agda.Syntax.Abstract

ExprLike Declaration # 
Instance details

Defined in Agda.Syntax.Abstract.Views

Methods

recurseExpr :: Applicative m => (Expr -> m Expr -> m Expr) -> Declaration -> m Declaration #

foldExpr :: Monoid m => (Expr -> m) -> Declaration -> m #

traverseExpr :: (Applicative m, Monad m) => (Expr -> m Expr) -> Declaration -> m Declaration #

mapExpr :: (Expr -> Expr) -> Declaration -> Declaration #

ShowHead Declaration # 
Instance details

Defined in Agda.TypeChecking.Rules.Decl

UniverseBi Declaration RString # 
Instance details

Defined in Agda.Syntax.Abstract

UniverseBi Declaration AmbiguousQName # 
Instance details

Defined in Agda.Syntax.Abstract

UniverseBi Declaration ModuleName # 
Instance details

Defined in Agda.Syntax.Abstract

UniverseBi Declaration QName # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

universeBi :: Declaration -> [QName] #

UniverseBi Declaration ModuleInfo # 
Instance details

Defined in Agda.Syntax.Abstract

UniverseBi Declaration Pattern # 
Instance details

Defined in Agda.Syntax.Abstract

UniverseBi Declaration TypedBinding # 
Instance details

Defined in Agda.Syntax.Abstract

UniverseBi Declaration LamBinding # 
Instance details

Defined in Agda.Syntax.Abstract

UniverseBi Declaration LetBinding # 
Instance details

Defined in Agda.Syntax.Abstract

UniverseBi Declaration Declaration # 
Instance details

Defined in Agda.Syntax.Abstract

UniverseBi Declaration Expr # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

universeBi :: Declaration -> [Expr] #

ToAbstract NiceDeclaration Declaration # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

UniverseBi Declaration (Pattern' Void) # 
Instance details

Defined in Agda.Syntax.Abstract

ToConcrete Declaration [Declaration] # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

ToConcrete (Constr Constructor) Declaration # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

ToAbstract [Declaration] [Declaration] # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

data ScopeCopyInfo #

Instances
Eq ScopeCopyInfo # 
Instance details

Defined in Agda.Syntax.Abstract

Data ScopeCopyInfo # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

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

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

toConstr :: ScopeCopyInfo -> Constr #

dataTypeOf :: ScopeCopyInfo -> DataType #

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

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

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

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

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

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

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

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

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

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

Show ScopeCopyInfo # 
Instance details

Defined in Agda.Syntax.Abstract

Pretty ScopeCopyInfo # 
Instance details

Defined in Agda.Syntax.Abstract

KillRange ScopeCopyInfo # 
Instance details

Defined in Agda.Syntax.Abstract

type Ren a = [(a, a)] #

Renaming (generic).

data Axiom #

Is a type signature a postulate or a function signature?

Constructors

FunSig

A function signature.

NoFunSig

Not a function signature, i.e., a postulate (in user input) or another (e.g. data/record) type signature (internally).

Instances
Eq Axiom # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

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

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

Data Axiom # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

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

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

toConstr :: Axiom -> Constr #

dataTypeOf :: Axiom -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord Axiom # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

compare :: Axiom -> Axiom -> Ordering #

(<) :: Axiom -> Axiom -> Bool #

(<=) :: Axiom -> Axiom -> Bool #

(>) :: Axiom -> Axiom -> Bool #

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

max :: Axiom -> Axiom -> Axiom #

min :: Axiom -> Axiom -> Axiom #

Show Axiom # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

showsPrec :: Int -> Axiom -> ShowS #

show :: Axiom -> String #

showList :: [Axiom] -> ShowS #

type Assigns = [Assign] #

type Assign = FieldAssignment' Expr #

Record field assignment f = e.

data Expr #

Expressions after scope checking (operators parsed, names resolved).

Constructors

Var Name

Bound variable.

Def QName

Constant: axiom, function, data or record type.

Proj ProjOrigin AmbiguousQName

Projection (overloaded).

Con AmbiguousQName

Constructor (overloaded).

PatternSyn AmbiguousQName

Pattern synonym.

Macro QName

Macro.

Lit Literal

Literal.

QuestionMark MetaInfo InteractionId

Meta variable for interaction. The InteractionId is usually identical with the metaNumber of MetaInfo. However, if you want to print an interaction meta as just ? instead of ?n, you should set the metaNumber to Nothing while keeping the InteractionId.

Underscore MetaInfo

Meta variable for hidden argument (must be inferred locally).

Dot ExprInfo Expr

.e, for postfix projection.

App AppInfo Expr (NamedArg Expr)

Ordinary (binary) application.

WithApp ExprInfo Expr [Expr]

With application.

Lam ExprInfo LamBinding Expr

λ bs → e.

AbsurdLam ExprInfo Hiding

λ() or λ{}.

ExtendedLam ExprInfo DefInfo QName [Clause] 
Pi ExprInfo Telescope Expr

Dependent function space Γ → A.

Fun ExprInfo (Arg Expr) Expr

Non-dependent function space.

Set ExprInfo Integer

Set, Set1, Set2, ...

Prop ExprInfo

Prop (no longer supported, used as dummy type).

Let ExprInfo [LetBinding] Expr

let bs in e.

ETel Telescope

Only used when printing telescopes.

Rec ExprInfo RecordAssigns

Record construction.

RecUpdate ExprInfo Expr Assigns

Record update.

ScopedExpr ScopeInfo Expr

Scope annotation.

QuoteGoal ExprInfo Name Expr

Binds Name to current type in Expr.

QuoteContext ExprInfo

Returns the current context.

Quote ExprInfo

Quote an identifier QName.

QuoteTerm ExprInfo

Quote a term.

Unquote ExprInfo

The splicing construct: unquote ...

Tactic ExprInfo Expr [NamedArg Expr] [NamedArg Expr]
tactic e x1 .. xn | y1 | .. | yn
DontCare Expr

For printing DontCare from Syntax.Internal.

Instances
Eq Expr #

Does not compare ScopeInfo fields. Does not distinguish between prefix and postfix projections.

Instance details

Defined in Agda.Syntax.Abstract

Methods

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

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

Data Expr # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

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

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

toConstr :: Expr -> Constr #

dataTypeOf :: Expr -> DataType #

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

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

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

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

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

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

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

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

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

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

Show Expr # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

showsPrec :: Int -> Expr -> ShowS #

show :: Expr -> String #

showList :: [Expr] -> ShowS #

KillRange Expr # 
Instance details

Defined in Agda.Syntax.Abstract

HasRange Expr # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

getRange :: Expr -> Range #

Underscore Expr # 
Instance details

Defined in Agda.Syntax.Abstract

IsProjP Expr # 
Instance details

Defined in Agda.Syntax.Abstract

SubstExpr Assign # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

substExpr :: [(Name, Expr)] -> Assign -> Assign #

SubstExpr Expr # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

substExpr :: [(Name, Expr)] -> Expr -> Expr #

AllNames Expr # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

allNames :: Expr -> Seq QName #

ExprLike Expr # 
Instance details

Defined in Agda.Syntax.Abstract.Views

Methods

recurseExpr :: Applicative m => (Expr -> m Expr -> m Expr) -> Expr -> m Expr #

foldExpr :: Monoid m => (Expr -> m) -> Expr -> m #

traverseExpr :: (Applicative m, Monad m) => (Expr -> m Expr) -> Expr -> m Expr #

mapExpr :: (Expr -> Expr) -> Expr -> Expr #

MapNamedArgPattern NAP # 
Instance details

Defined in Agda.Syntax.Abstract.Pattern

Methods

mapNamedArgPattern :: (NAP -> NAP) -> NAP -> NAP #

PrettyTCM Expr # 
Instance details

Defined in Agda.TypeChecking.Pretty

Methods

prettyTCM :: Expr -> TCM Doc #

IsFlexiblePattern Pattern # 
Instance details

Defined in Agda.TypeChecking.Rules.LHS

UniverseBi Declaration Pattern # 
Instance details

Defined in Agda.Syntax.Abstract

UniverseBi Declaration Expr # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

universeBi :: Declaration -> [Expr] #

ToConcrete Pattern Pattern # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

ToConcrete LHSCore Pattern # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

ToConcrete Expr Expr # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

Reify MetaId Expr # 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

Methods

reify :: MetaId -> TCM Expr #

reifyWhen :: Bool -> MetaId -> TCM Expr #

Reify Literal Expr # 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

Reify Level Expr # 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

Methods

reify :: Level -> TCM Expr #

reifyWhen :: Bool -> Level -> TCM Expr #

Reify Sort Expr # 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

Methods

reify :: Sort -> TCM Expr #

reifyWhen :: Bool -> Sort -> TCM Expr #

Reify Type Expr # 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

Methods

reify :: Type -> TCM Expr #

reifyWhen :: Bool -> Type -> TCM Expr #

Reify Term Expr # 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

Methods

reify :: Term -> TCM Expr #

reifyWhen :: Bool -> Term -> TCM Expr #

Reify Expr Expr # 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

Methods

reify :: Expr -> TCM Expr #

reifyWhen :: Bool -> Expr -> TCM Expr #

Reify DisplayTerm Expr # 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

ToAbstract Literal Expr # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

ToAbstract Sort Expr # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

ToAbstract Term Expr # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

ToAbstract HoleContent HoleContent #

Content of interaction hole.

Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract Expr Expr # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract OldQName Expr # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

Reify ProblemConstraint (Closure (OutputForm Expr Expr)) # 
Instance details

Defined in Agda.Interaction.BasicOps

Reify Constraint (OutputConstraint Expr Expr) # 
Instance details

Defined in Agda.Interaction.BasicOps

ToAbstract Pattern (Names, Pattern) # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

ToAbstract [Arg Term] [NamedArg Expr] # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

ToAbstract (Pattern' Expr) (Pattern' Expr) # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract (LHSCore' Expr) (LHSCore' Expr) # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract (Expr, Elims) Expr # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

ToAbstract (Expr, Elim) Expr # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

type Args = [NamedArg Expr] #

newtype BindName #

Constructors

BindName 

Fields

Instances
Eq BindName # 
Instance details

Defined in Agda.Syntax.Abstract

Data BindName # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

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

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

toConstr :: BindName -> Constr #

dataTypeOf :: BindName -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord BindName # 
Instance details

Defined in Agda.Syntax.Abstract

Show BindName # 
Instance details

Defined in Agda.Syntax.Abstract

KillRange BindName # 
Instance details

Defined in Agda.Syntax.Abstract

SetRange BindName # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

setRange :: Range -> BindName -> BindName #

HasRange BindName # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

getRange :: BindName -> Range #

EmbPrj BindName # 
Instance details

Defined in Agda.TypeChecking.Serialise.Instances.Abstract

ToConcrete BindName Name # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

class SubstExpr a where #

Minimal complete definition

substExpr

Methods

substExpr :: [(Name, Expr)] -> a -> a #

Instances
SubstExpr Name # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

substExpr :: [(Name0, Expr)] -> Name -> Name #

SubstExpr ModuleName # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

substExpr :: [(Name, Expr)] -> ModuleName -> ModuleName #

SubstExpr TypedBinding # 
Instance details

Defined in Agda.Syntax.Abstract

SubstExpr TypedBindings # 
Instance details

Defined in Agda.Syntax.Abstract

SubstExpr LetBinding # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

substExpr :: [(Name, Expr)] -> LetBinding -> LetBinding #

SubstExpr Assign # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

substExpr :: [(Name, Expr)] -> Assign -> Assign #

SubstExpr Expr # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

substExpr :: [(Name, Expr)] -> Expr -> Expr #

SubstExpr a => SubstExpr [a] # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

substExpr :: [(Name, Expr)] -> [a] -> [a] #

SubstExpr a => SubstExpr (Arg a) # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

substExpr :: [(Name, Expr)] -> Arg a -> Arg a #

(SubstExpr a, SubstExpr b) => SubstExpr (Either a b) # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

substExpr :: [(Name, Expr)] -> Either a b -> Either a b #

(SubstExpr a, SubstExpr b) => SubstExpr (a, b) # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

substExpr :: [(Name, Expr)] -> (a, b) -> (a, b) #

SubstExpr a => SubstExpr (Named name a) # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

substExpr :: [(Name, Expr)] -> Named name a -> Named name a #

class NameToExpr a where #

Minimal complete definition

nameExpr

Methods

nameExpr :: a -> Expr #

Instances
NameToExpr ResolvedName #

Assumes name is not UnknownName.

Instance details

Defined in Agda.Syntax.Abstract

NameToExpr AbstractName #

Turn an AbstractName to an expression.

Instance details

Defined in Agda.Syntax.Abstract

class AnyAbstract a where #

Are we in an abstract block?

In that case some definition is abstract.

Minimal complete definition

anyAbstract

Methods

anyAbstract :: a -> Bool #

Instances
AnyAbstract Declaration # 
Instance details

Defined in Agda.Syntax.Abstract

AnyAbstract a => AnyAbstract [a] # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

anyAbstract :: [a] -> Bool #

class AllNames a where #

Extracts all the names which are declared in a Declaration. This does not include open public or let expressions, but it does include local modules, where clauses and the names of extended lambdas.

Minimal complete definition

allNames

Methods

allNames :: a -> Seq QName #

Instances
AllNames QName # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

allNames :: QName -> Seq QName #

AllNames RHS # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

allNames :: RHS -> Seq QName #

AllNames Clause # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

allNames :: Clause -> Seq QName #

AllNames WhereDeclarations # 
Instance details

Defined in Agda.Syntax.Abstract

AllNames TypedBinding # 
Instance details

Defined in Agda.Syntax.Abstract

AllNames TypedBindings # 
Instance details

Defined in Agda.Syntax.Abstract

AllNames LamBinding # 
Instance details

Defined in Agda.Syntax.Abstract

AllNames LetBinding # 
Instance details

Defined in Agda.Syntax.Abstract

AllNames ModuleApplication # 
Instance details

Defined in Agda.Syntax.Abstract

AllNames Declaration # 
Instance details

Defined in Agda.Syntax.Abstract

AllNames Expr # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

allNames :: Expr -> Seq QName #

AllNames CallInfo # 
Instance details

Defined in Agda.TypeChecking.Monad.Base

Methods

allNames :: CallInfo -> Seq QName #

AllNames CallPath # 
Instance details

Defined in Agda.Termination.Monad

Methods

allNames :: CallPath -> Seq QName #

AllNames a => AllNames [a] # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

allNames :: [a] -> Seq QName #

AllNames a => AllNames (Maybe a) # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

allNames :: Maybe a -> Seq QName #

AllNames a => AllNames (Arg a) # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

allNames :: Arg a -> Seq QName #

(AllNames a, AllNames b) => AllNames (a, b) # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

allNames :: (a, b) -> Seq QName #

AllNames a => AllNames (Named name a) # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

allNames :: Named name a -> Seq QName #

axiomName :: Declaration -> QName #

The name defined by the given axiom.

Precondition: The declaration has to be a (scoped) Axiom.

app :: Expr -> [NamedArg Expr] -> Expr #

insertImplicitPatSynArgs :: HasRange a => (Range -> a) -> Range -> [Arg Name] -> [NamedArg a] -> Maybe ([(Name, a)], [Arg Name]) #

class IsNoName a where #

Check whether a name is the empty name "_".

Minimal complete definition

isNoName

Methods

isNoName :: a -> Bool #

Instances
IsNoName String # 
Instance details

Defined in Agda.Syntax.Concrete.Name

Methods

isNoName :: String -> Bool #

IsNoName ByteString # 
Instance details

Defined in Agda.Syntax.Concrete.Name

Methods

isNoName :: ByteString -> Bool #

IsNoName QName # 
Instance details

Defined in Agda.Syntax.Concrete.Name

Methods

isNoName :: QName -> Bool #

IsNoName Name # 
Instance details

Defined in Agda.Syntax.Concrete.Name

Methods

isNoName :: Name -> Bool #

IsNoName Name #

An abstract name is empty if its concrete name is empty.

Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

isNoName :: Name -> Bool #

class MkName a where #

Make a Name from some kind of string.

Minimal complete definition

mkName

Methods

mkName :: Range -> NameId -> a -> Name #

The Range sets the definition site of the name, not the use site.

mkName_ :: NameId -> a -> Name #

Instances
MkName String # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

mkName :: Range -> NameId -> String -> Name #

mkName_ :: NameId -> String -> Name #

class IsProjP a where #

Check whether we are a projection pattern.

Minimal complete definition

isProjP

Instances
IsProjP Void # 
Instance details

Defined in Agda.Syntax.Abstract.Name

IsProjP Expr # 
Instance details

Defined in Agda.Syntax.Abstract

IsProjP a => IsProjP (Arg a) # 
Instance details

Defined in Agda.Syntax.Abstract.Name

IsProjP (Pattern' a) # 
Instance details

Defined in Agda.Syntax.Internal

IsProjP (Pattern' e) # 
Instance details

Defined in Agda.Syntax.Abstract

IsProjP a => IsProjP (Named n a) # 
Instance details

Defined in Agda.Syntax.Abstract.Name

newtype AmbiguousQName #

Ambiguous qualified names. Used for overloaded constructors.

Invariant: All the names in the list must have the same concrete, unqualified name. (This implies that they all have the same Range).

Constructors

AmbQ 
Instances
Eq AmbiguousQName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Data AmbiguousQName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

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

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

toConstr :: AmbiguousQName -> Constr #

dataTypeOf :: AmbiguousQName -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord AmbiguousQName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Show AmbiguousQName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Pretty AmbiguousQName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

KillRange AmbiguousQName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

HasRange AmbiguousQName #

The range of an AmbiguousQName is the range of any of its disambiguations (they are the same concrete name).

Instance details

Defined in Agda.Syntax.Abstract.Name

NumHoles AmbiguousQName #

We can have an instance for ambiguous names as all share a common concrete name.

Instance details

Defined in Agda.Syntax.Abstract.Name

EmbPrj AmbiguousQName # 
Instance details

Defined in Agda.TypeChecking.Serialise.Instances.Common

NamesIn AmbiguousQName # 
Instance details

Defined in Agda.Syntax.Internal.Names

UniverseBi Declaration AmbiguousQName # 
Instance details

Defined in Agda.Syntax.Abstract

newtype ModuleName #

A module name is just a qualified name.

The SetRange instance for module names sets all individual ranges to the given one.

Constructors

MName 

Fields

Instances
Eq ModuleName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Data ModuleName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

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

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

toConstr :: ModuleName -> Constr #

dataTypeOf :: ModuleName -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord ModuleName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Show ModuleName #

Only use this show function in debugging! To convert an abstract ModuleName into a string use prettyShow.

Instance details

Defined in Agda.Syntax.Abstract.Name

NFData ModuleName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

rnf :: ModuleName -> () #

Pretty ModuleName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Sized ModuleName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

size :: ModuleName -> Int #

KillRange ModuleName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

KillRange Sections # 
Instance details

Defined in Agda.TypeChecking.Monad.Base

SetRange ModuleName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

HasRange ModuleName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

getRange :: ModuleName -> Range #

SubstExpr ModuleName # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

substExpr :: [(Name, Expr)] -> ModuleName -> ModuleName #

ExprLike ModuleName # 
Instance details

Defined in Agda.Syntax.Abstract.Views

Methods

recurseExpr :: Applicative m => (Expr -> m Expr -> m Expr) -> ModuleName -> m ModuleName #

foldExpr :: Monoid m => (Expr -> m) -> ModuleName -> m #

traverseExpr :: (Applicative m, Monad m) => (Expr -> m Expr) -> ModuleName -> m ModuleName #

mapExpr :: (Expr -> Expr) -> ModuleName -> ModuleName #

EmbPrj ModuleName # 
Instance details

Defined in Agda.TypeChecking.Serialise.Instances.Common

PrettyTCM ModuleName # 
Instance details

Defined in Agda.TypeChecking.Pretty

InstantiateFull ModuleName # 
Instance details

Defined in Agda.TypeChecking.Reduce

UniverseBi Declaration ModuleName # 
Instance details

Defined in Agda.Syntax.Abstract

ToConcrete ModuleName QName # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

ToAbstract OldModuleName ModuleName # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract NewModuleQName ModuleName # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract NewModuleName ModuleName # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract ModuleAssignment (ModuleName, [LetBinding]) # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

data QNamed a #

Something preceeded by a qualified name.

Constructors

QNamed 

Fields

Instances
Functor QNamed # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

fmap :: (a -> b) -> QNamed a -> QNamed b #

(<$) :: a -> QNamed b -> QNamed a #

Foldable QNamed # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

fold :: Monoid m => QNamed m -> m #

foldMap :: Monoid m => (a -> m) -> QNamed a -> m #

foldr :: (a -> b -> b) -> b -> QNamed a -> b #

foldr' :: (a -> b -> b) -> b -> QNamed a -> b #

foldl :: (b -> a -> b) -> b -> QNamed a -> b #

foldl' :: (b -> a -> b) -> b -> QNamed a -> b #

foldr1 :: (a -> a -> a) -> QNamed a -> a #

foldl1 :: (a -> a -> a) -> QNamed a -> a #

toList :: QNamed a -> [a] #

null :: QNamed a -> Bool #

length :: QNamed a -> Int #

elem :: Eq a => a -> QNamed a -> Bool #

maximum :: Ord a => QNamed a -> a #

minimum :: Ord a => QNamed a -> a #

sum :: Num a => QNamed a -> a #

product :: Num a => QNamed a -> a #

Traversable QNamed # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

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

sequenceA :: Applicative f => QNamed (f a) -> f (QNamed a) #

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

sequence :: Monad m => QNamed (m a) -> m (QNamed a) #

Show a => Show (QNamed a) #

Use prettyShow to print names to the user.

Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

showsPrec :: Int -> QNamed a -> ShowS #

show :: QNamed a -> String #

showList :: [QNamed a] -> ShowS #

Pretty a => Pretty (QNamed a) # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

pretty :: QNamed a -> Doc #

prettyPrec :: Int -> QNamed a -> Doc #

prettyList :: [QNamed a] -> Doc #

PrettyTCM (QNamed Clause) # 
Instance details

Defined in Agda.TypeChecking.Pretty

Reify (QNamed Clause) Clause # 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

ToAbstract (QNamed Clause) Clause # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

ToAbstract [QNamed Clause] [Clause] # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

data QName #

Qualified names are non-empty lists of names. Equality on qualified names are just equality on the last name, i.e. the module part is just for show.

The SetRange instance for qualified names sets all individual ranges (including those of the module prefix) to the given one.

Constructors

QName 
Instances
Eq QName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

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

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

Data QName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

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

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

toConstr :: QName -> Constr #

dataTypeOf :: QName -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord QName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

compare :: QName -> QName -> Ordering #

(<) :: QName -> QName -> Bool #

(<=) :: QName -> QName -> Bool #

(>) :: QName -> QName -> Bool #

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

max :: QName -> QName -> QName #

min :: QName -> QName -> QName #

Show QName #

Only use this show function in debugging! To convert an abstract QName into a string use prettyShow.

Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

showsPrec :: Int -> QName -> ShowS #

show :: QName -> String #

showList :: [QName] -> ShowS #

NFData QName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

rnf :: QName -> () #

Hashable QName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

hashWithSalt :: Int -> QName -> Int #

hash :: QName -> Int #

Pretty QName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

pretty :: QName -> Doc #

prettyPrec :: Int -> QName -> Doc #

prettyList :: [QName] -> Doc #

Sized QName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

size :: QName -> Int #

KillRange QName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

KillRange RewriteRuleMap # 
Instance details

Defined in Agda.TypeChecking.Monad.Base

KillRange Definitions # 
Instance details

Defined in Agda.TypeChecking.Monad.Base

SetRange QName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

setRange :: Range -> QName -> QName #

HasRange QName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

getRange :: QName -> Range #

NumHoles QName # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

numHoles :: QName -> Int #

TermLike QName # 
Instance details

Defined in Agda.Syntax.Internal.Generic

Methods

traverseTermM :: Monad m => (Term -> m Term) -> QName -> m QName #

foldTerm :: Monoid m => (Term -> m) -> QName -> m #

AllNames QName # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

allNames :: QName -> Seq QName #

ExprLike QName # 
Instance details

Defined in Agda.Syntax.Abstract.Views

Methods

recurseExpr :: Applicative m => (Expr -> m Expr -> m Expr) -> QName -> m QName #

foldExpr :: Monoid m => (Expr -> m) -> QName -> m #

traverseExpr :: (Applicative m, Monad m) => (Expr -> m Expr) -> QName -> m QName #

mapExpr :: (Expr -> Expr) -> QName -> QName #

EmbPrj QName # 
Instance details

Defined in Agda.TypeChecking.Serialise.Instances.Common

Methods

icode :: QName -> S Int32 #

icod_ :: QName -> S Int32 #

value :: Int32 -> R QName #

PrettyTCM QName # 
Instance details

Defined in Agda.TypeChecking.Pretty

Methods

prettyTCM :: QName -> TCM Doc #

NamesIn QName # 
Instance details

Defined in Agda.Syntax.Internal.Names

Methods

namesIn :: QName -> Set QName #

InstantiateFull QName # 
Instance details

Defined in Agda.TypeChecking.Reduce

FromTerm QName # 
Instance details

Defined in Agda.TypeChecking.Primitive

ToTerm QName # 
Instance details

Defined in Agda.TypeChecking.Primitive

Methods

toTerm :: TCM (QName -> Term) #

toTermR :: TCM (QName -> ReduceM Term) #

PrimTerm QName # 
Instance details

Defined in Agda.TypeChecking.Primitive

Methods

primTerm :: QName -> TCM Term #

Occurs QName # 
Instance details

Defined in Agda.TypeChecking.MetaVars.Occurs

Unquote QName # 
Instance details

Defined in Agda.TypeChecking.Unquote

Methods

unquote :: Term -> UnquoteM QName #

UniverseBi Declaration QName # 
Instance details

Defined in Agda.Syntax.Abstract

Methods

universeBi :: Declaration -> [QName] #

Subst Term QName # 
Instance details

Defined in Agda.TypeChecking.Substitute.Class

ToConcrete QName QName # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

Conversion TOM Clause (Maybe ([Pat O], MExp O)) # 
Instance details

Defined in Agda.Auto.Convert

Methods

convert :: Clause -> TOM (Maybe ([Pat O], MExp O)) #

Conversion TOM Type (MExp O) # 
Instance details

Defined in Agda.Auto.Convert

Methods

convert :: Type -> TOM (MExp O) #

Conversion TOM Term (MExp O) # 
Instance details

Defined in Agda.Auto.Convert

Methods

convert :: Term -> TOM (MExp O) #

Conversion TOM Args (MM (ArgList O) (RefInfo O)) # 
Instance details

Defined in Agda.Auto.Convert

Methods

convert :: Args -> TOM (MM (ArgList O) (RefInfo O)) #

Conversion MOT (Exp O) Type # 
Instance details

Defined in Agda.Auto.Convert

Methods

convert :: Exp O -> MOT Type #

Conversion MOT (Exp O) Term # 
Instance details

Defined in Agda.Auto.Convert

Methods

convert :: Exp O -> MOT Term #

Conversion TOM [Clause] [([Pat O], MExp O)] # 
Instance details

Defined in Agda.Auto.Convert

Methods

convert :: [Clause] -> TOM [([Pat O], MExp O)] #

Conversion TOM (Arg Pattern) (Pat O) # 
Instance details

Defined in Agda.Auto.Convert

Methods

convert :: Arg Pattern -> TOM (Pat O) #

Conversion MOT a b => Conversion MOT (MM a (RefInfo O)) b # 
Instance details

Defined in Agda.Auto.Convert

Methods

convert :: MM a (RefInfo O) -> MOT b #

(Show a, ToQName a) => ToAbstract (OldName a) QName # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToConcrete (Maybe QName) (Maybe Name) # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

data Name #

A name is a unique identifier and a suggestion for a concrete name. The concrete name contains the source location (if any) of the name. The source location of the binding site is also recorded.

Instances
Eq Name # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

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

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

Data Name # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

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

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

toConstr :: Name -> Constr #

dataTypeOf :: Name -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord Name # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

compare :: Name -> Name -> Ordering #

(<) :: Name -> Name -> Bool #

(<=) :: Name -> Name -> Bool #

(>) :: Name -> Name -> Bool #

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

max :: Name -> Name -> Name #

min :: Name -> Name -> Name #

Show Name #

Only use this show function in debugging! To convert an abstract Name into a string use prettyShow.

Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

showsPrec :: Int -> Name -> ShowS #

show :: Name -> String #

showList :: [Name] -> ShowS #

NFData Name #

The range is not forced.

Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

rnf :: Name -> () #

Hashable Name # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

hashWithSalt :: Int -> Name -> Int #

hash :: Name -> Int #

Pretty Name # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

pretty :: Name -> Doc #

prettyPrec :: Int -> Name -> Doc #

prettyList :: [Name] -> Doc #

KillRange Name # 
Instance details

Defined in Agda.Syntax.Abstract.Name

SetRange Name # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

setRange :: Range -> Name -> Name #

HasRange Name # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

getRange :: Name -> Range #

IsNoName Name #

An abstract name is empty if its concrete name is empty.

Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

isNoName :: Name -> Bool #

NumHoles Name # 
Instance details

Defined in Agda.Syntax.Abstract.Name

Methods

numHoles :: Name -> Int #

EmbPrj Name # 
Instance details

Defined in Agda.TypeChecking.Serialise.Instances.Common

Methods

icode :: Name -> S Int32 #

icod_ :: Name -> S Int32 #

value :: Int32 -> R Name #

PrettyTCM Name # 
Instance details

Defined in Agda.TypeChecking.Pretty

Methods

prettyTCM :: Name -> TCM Doc #

AddContext Name # 
Instance details

Defined in Agda.TypeChecking.Monad.Context

Methods

addContext :: (MonadTCM tcm, MonadDebug tcm) => Name -> tcm a -> tcm a #

contextSize :: Name -> Nat #

InstantiateFull Name # 
Instance details

Defined in Agda.TypeChecking.Reduce

Subst Term Name # 
Instance details

Defined in Agda.TypeChecking.Substitute

ToConcrete Name Name # 
Instance details

Defined in Agda.Syntax.Translation.AbstractToConcrete

Reify Name Name # 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

Methods

reify :: Name -> TCM Name #

reifyWhen :: Bool -> Name -> TCM Name #

Suggest Name (Abs b) # 
Instance details

Defined in Agda.Syntax.Internal

Methods

suggest :: Name -> Abs b -> String #

ToAbstract Pattern (Names, Pattern) # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

AddContext (Dom (Name, Type)) # 
Instance details

Defined in Agda.TypeChecking.Monad.Context

Methods

addContext :: (MonadTCM tcm, MonadDebug tcm) => Dom (Name, Type) -> tcm a -> tcm a #

contextSize :: Dom (Name, Type) -> Nat #

ToAbstract (NewName Name) Name # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

ToAbstract (NewName BoundName) Name # 
Instance details

Defined in Agda.Syntax.Translation.ConcreteToAbstract

(Free i, Reify i a) => Reify (Abs i) (Name, a) # 
Instance details

Defined in Agda.Syntax.Translation.InternalToAbstract

Methods

reify :: Abs i -> TCM (Name, a) #

reifyWhen :: Bool -> Abs i -> TCM (Name, a) #

ToAbstract r a => ToAbstract (Abs r) (a, Name) # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

Methods

toAbstract :: Abs r -> WithNames (a, Name) #

AddContext ([WithHiding Name], Dom Type) # 
Instance details

Defined in Agda.TypeChecking.Monad.Context

Methods

addContext :: (MonadTCM tcm, MonadDebug tcm) => ([WithHiding Name], Dom Type) -> tcm a -> tcm a #

contextSize :: ([WithHiding Name], Dom Type) -> Nat #

AddContext ([Name], Dom Type) # 
Instance details

Defined in Agda.TypeChecking.Monad.Context

Methods

addContext :: (MonadTCM tcm, MonadDebug tcm) => ([Name], Dom Type) -> tcm a -> tcm a #

contextSize :: ([Name], Dom Type) -> Nat #

AddContext (Name, Dom Type) # 
Instance details

Defined in Agda.TypeChecking.Monad.Context

Methods

addContext :: (MonadTCM tcm, MonadDebug tcm) => (Name, Dom Type) -> tcm a -> tcm a #

contextSize :: (Name, Dom Type) -> Nat #

ToAbstract r Expr => ToAbstract (Dom r, Name) TypedBindings # 
Instance details

Defined in Agda.Syntax.Translation.ReflectedToAbstract

unambiguous :: QName -> AmbiguousQName #

A singleton "ambiguous" name.

headAmbQ :: AmbiguousQName -> QName #

Get the first of the ambiguous names.

isAmbiguous :: AmbiguousQName -> Bool #

Is a name ambiguous.

getUnambiguous :: AmbiguousQName -> Maybe QName #

Get the name if unambiguous.

isAnonymousModuleName :: ModuleName -> Bool #

A module is anonymous if the qualification path ends in an underscore.

withRangesOf :: ModuleName -> [Name] -> ModuleName #

Sets the ranges of the individual names in the module name to match those of the corresponding concrete names. If the concrete names are fewer than the number of module name name parts, then the initial name parts get the range noRange.

C.D.E `withRangesOf` [A, B] returns C.D.E but with ranges set as follows:

  • C: noRange.
  • D: the range of A.
  • E: the range of B.

Precondition: The number of module name name parts has to be at least as large as the length of the list.

withRangesOfQ :: ModuleName -> QName -> ModuleName #

Like withRangesOf, but uses the name parts (qualifier + name) of the qualified name as the list of concrete names.

qnameToConcrete :: QName -> QName #

Turn a qualified name into a concrete name. This should only be used as a fallback when looking up the right concrete name in the scope fails.

toTopLevelModuleName :: ModuleName -> TopLevelModuleName #

Computes the TopLevelModuleName corresponding to the given module name, which is assumed to represent a top-level module name.

Precondition: The module name must be well-formed.

qualify_ :: Name -> QName #

Convert a Name to a QName (add no module name).

isOperator :: QName -> Bool #

Is the name an operator?

nextName :: Name -> Name #

Get the next version of the concrete name. For instance, nextName "x" = "x₁". The name must not be a NoName.