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

Safe HaskellNone
LanguageHaskell2010

Agda.Syntax.Common

Contents

Description

Some common syntactic entities are defined in this module.

Synopsis

Delayed

data Delayed Source #

Used to specify whether something should be delayed.

Constructors

Delayed 
NotDelayed 

Instances

Eq Delayed Source # 

Methods

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

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

Data Delayed Source # 

Methods

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

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

toConstr :: Delayed -> Constr #

dataTypeOf :: Delayed -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord Delayed Source # 
Show Delayed Source # 
KillRange Delayed Source # 

Eta-equality

data HasEta Source #

Constructors

NoEta 
YesEta 

Instances

Eq HasEta Source # 

Methods

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

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

Data HasEta Source # 

Methods

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

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

toConstr :: HasEta -> Constr #

dataTypeOf :: HasEta -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord HasEta Source # 
Show HasEta Source # 
NFData HasEta Source # 

Methods

rnf :: HasEta -> () #

KillRange HasEta Source # 
HasRange HasEta Source # 

Induction

data Induction Source #

Constructors

Inductive 
CoInductive 

Instances

Eq Induction Source # 
Data Induction Source # 

Methods

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

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

toConstr :: Induction -> Constr #

dataTypeOf :: Induction -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord Induction Source # 
Show Induction Source # 
NFData Induction Source # 

Methods

rnf :: Induction -> () #

KillRange Induction Source # 
HasRange Induction Source # 

Hiding

data Overlappable Source #

Constructors

YesOverlap 
NoOverlap 

Instances

Eq Overlappable Source # 
Data Overlappable Source # 

Methods

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

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

toConstr :: Overlappable -> Constr #

dataTypeOf :: Overlappable -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord Overlappable Source # 
Show Overlappable Source # 
Semigroup Overlappable Source #

Just for the Hiding instance. Should never combine different overlapping.

Monoid Overlappable Source # 
NFData Overlappable Source # 

Methods

rnf :: Overlappable -> () #

data Hiding Source #

Instances

Eq Hiding Source # 

Methods

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

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

Data Hiding Source # 

Methods

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

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

toConstr :: Hiding -> Constr #

dataTypeOf :: Hiding -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord Hiding Source # 
Show Hiding Source # 
Semigroup Hiding Source #

Hiding is an idempotent partial monoid, with unit NotHidden. Instance and NotHidden are incompatible.

Monoid Hiding Source # 
NFData Hiding Source # 

Methods

rnf :: Hiding -> () #

KillRange Hiding Source # 
LensHiding Hiding Source # 
ChooseFlex Hiding Source # 
Unquote Hiding Source # 
Conversion TOM a b => Conversion TOM (Arg a) (Hiding, b) Source # 

Methods

convert :: Arg a -> TOM (Hiding, b) Source #

data WithHiding a Source #

Decorating something with Hiding information.

Constructors

WithHiding 

Fields

Instances

Functor WithHiding Source # 

Methods

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

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

Applicative WithHiding Source # 

Methods

pure :: a -> WithHiding a #

(<*>) :: WithHiding (a -> b) -> WithHiding a -> WithHiding b #

liftA2 :: (a -> b -> c) -> WithHiding a -> WithHiding b -> WithHiding c #

(*>) :: WithHiding a -> WithHiding b -> WithHiding b #

(<*) :: WithHiding a -> WithHiding b -> WithHiding a #

Foldable WithHiding Source # 

Methods

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

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

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

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

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

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

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

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

toList :: WithHiding a -> [a] #

null :: WithHiding a -> Bool #

length :: WithHiding a -> Int #

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

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

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

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

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

Traversable WithHiding Source # 

Methods

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

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

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

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

Decoration WithHiding Source # 

Methods

traverseF :: Functor m => (a -> m b) -> WithHiding a -> m (WithHiding b) Source #

distributeF :: Functor m => WithHiding (m a) -> m (WithHiding a) Source #

Eq a => Eq (WithHiding a) Source # 

Methods

(==) :: WithHiding a -> WithHiding a -> Bool #

(/=) :: WithHiding a -> WithHiding a -> Bool #

Data a => Data (WithHiding a) Source # 

Methods

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

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

toConstr :: WithHiding a -> Constr #

dataTypeOf :: WithHiding a -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord a => Ord (WithHiding a) Source # 
Show a => Show (WithHiding a) Source # 
NFData a => NFData (WithHiding a) Source # 

Methods

rnf :: WithHiding a -> () #

KillRange a => KillRange (WithHiding a) Source # 
SetRange a => SetRange (WithHiding a) Source # 
HasRange a => HasRange (WithHiding a) Source # 
LensHiding (WithHiding a) Source # 
PrettyTCM a => PrettyTCM (WithHiding a) Source # 
ToConcrete a c => ToConcrete (WithHiding a) (WithHiding c) Source # 
ToAbstract c a => ToAbstract (WithHiding c) (WithHiding a) Source # 
AddContext ([WithHiding Name], Dom Type) Source # 

Methods

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

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

class LensHiding a where Source #

A lens to access the Hiding attribute in data structures. Minimal implementation: getHiding and one of setHiding or mapHiding.

Minimal complete definition

getHiding

Methods

getHiding :: a -> Hiding Source #

setHiding :: Hiding -> a -> a Source #

mapHiding :: (Hiding -> Hiding) -> a -> a Source #

Instances

LensHiding ArgInfo Source # 
LensHiding Hiding Source # 
LensHiding TypedBindings Source # 
LensHiding LamBinding Source # 
LensHiding TypedBindings Source # 
LensHiding LamBinding Source # 
LensHiding (Dom e) Source # 

Methods

getHiding :: Dom e -> Hiding Source #

setHiding :: Hiding -> Dom e -> Dom e Source #

mapHiding :: (Hiding -> Hiding) -> Dom e -> Dom e Source #

LensHiding (Arg e) Source # 

Methods

getHiding :: Arg e -> Hiding Source #

setHiding :: Hiding -> Arg e -> Arg e Source #

mapHiding :: (Hiding -> Hiding) -> Arg e -> Arg e Source #

LensHiding (WithHiding a) Source # 
LensHiding (FlexibleVar a) Source # 

mergeHiding :: LensHiding a => WithHiding a -> a Source #

Monoidal composition of Hiding information in some data.

visible :: LensHiding a => a -> Bool Source #

NotHidden arguments are visible.

notVisible :: LensHiding a => a -> Bool Source #

Instance and Hidden arguments are notVisible.

hidden :: LensHiding a => a -> Bool Source #

Hidden arguments are hidden.

hide :: LensHiding a => a -> a Source #

sameHiding :: (LensHiding a, LensHiding b) => a -> b -> Bool Source #

Ignores Overlappable.

Modalities

data Modality Source #

We have a tuple of modalities, which might not be fully orthogonal. For instance, irrelevant stuff is also run-time irrelevant.

Constructors

Modality 

Fields

  • modRelevance :: Relevance

    Legacy irrelevance. See Pfenning, LiCS 2001; AbelVezzosiWinterhalter, ICFP 2017.

  • modQuantity :: Quantity

    Cardinality / runtime erasure. See Conor McBride, I got plenty o' nutting, Wadlerfest 2016.

Instances

Eq Modality Source # 
Data Modality Source # 

Methods

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

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

toConstr :: Modality -> Constr #

dataTypeOf :: Modality -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord Modality Source # 
Show Modality Source # 
Generic Modality Source # 

Associated Types

type Rep Modality :: * -> * #

Methods

from :: Modality -> Rep Modality x #

to :: Rep Modality x -> Modality #

Semigroup Modality Source #

Pointwise composition.

Monoid Modality Source #

Pointwise unit.

NFData Modality Source # 

Methods

rnf :: Modality -> () #

PartialOrd Modality Source #

Dominance ordering.

POMonoid Modality Source # 
POSemigroup Modality Source # 
KillRange Modality Source # 
LensRelevance Modality Source # 
LensQuantity Modality Source # 
LensModality Modality Source # 
Unquote Modality Source # 
type Rep Modality Source # 
type Rep Modality = D1 * (MetaData "Modality" "Agda.Syntax.Common" "Agda-2.5.3.20180519-9fcgArwWAGgCm0ECOSwfBe" False) (C1 * (MetaCons "Modality" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "modRelevance") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Relevance)) (S1 * (MetaSel (Just Symbol "modQuantity") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Quantity))))

Quantities

data Quantity Source #

Quantity for linearity.

Constructors

Quantity0

Zero uses, erased at runtime. TODO: | Quantity1 -- ^ Linear use (could be updated destructively). (needs postponable constraints between quantities to compute uses).

Quantityω

Unrestricted use.

Instances

Bounded Quantity Source # 
Enum Quantity Source # 
Eq Quantity Source # 
Data Quantity Source # 

Methods

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

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

toConstr :: Quantity -> Constr #

dataTypeOf :: Quantity -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord Quantity Source #

Note that the order is ω ≤ 0, more relevant is smaller.

Show Quantity Source # 
Generic Quantity Source # 

Associated Types

type Rep Quantity :: * -> * #

Methods

from :: Quantity -> Rep Quantity x #

to :: Rep Quantity x -> Quantity #

Semigroup Quantity Source #

Composition of quantities (multiplication).

Quantity0 is dominant.

Monoid Quantity Source #

In the absense of finite quantities besides 0, ω is the unit.

NFData Quantity Source # 

Methods

rnf :: Quantity -> () #

PartialOrd Quantity Source # 
POMonoid Quantity Source # 
POSemigroup Quantity Source # 
KillRange Quantity Source # 
LensQuantity Quantity Source # 
type Rep Quantity Source # 
type Rep Quantity = D1 * (MetaData "Quantity" "Agda.Syntax.Common" "Agda-2.5.3.20180519-9fcgArwWAGgCm0ECOSwfBe" False) ((:+:) * (C1 * (MetaCons "Quantity0" PrefixI False) (U1 *)) (C1 * (MetaCons "Quantity\969" PrefixI False) (U1 *)))

Relevance

data Relevance Source #

A function argument can be relevant or irrelevant. See Agda.TypeChecking.Irrelevance.

Constructors

Relevant

The argument is (possibly) relevant at compile-time.

NonStrict

The argument may never flow into evaluation position. Therefore, it is irrelevant at run-time. It is treated relevantly during equality checking.

Irrelevant

The argument is irrelevant at compile- and runtime.

Instances

Bounded Relevance Source # 
Enum Relevance Source # 
Eq Relevance Source # 
Data Relevance Source # 

Methods

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

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

toConstr :: Relevance -> Constr #

dataTypeOf :: Relevance -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord Relevance Source #

More relevant is smaller.

Show Relevance Source # 
Generic Relevance Source # 

Associated Types

type Rep Relevance :: * -> * #

Semigroup Relevance Source #

Relevance forms a semigroup under composition.

Monoid Relevance Source #

Relevant is the unit.

NFData Relevance Source # 

Methods

rnf :: Relevance -> () #

PartialOrd Relevance Source #

More relevant is smaller.

LeftClosedPOMonoid Relevance Source # 
POMonoid Relevance Source # 
POSemigroup Relevance Source # 
KillRange Relevance Source # 
LensRelevance Relevance Source # 
PrettyTCM Relevance Source # 
Unquote Relevance Source # 
type Rep Relevance Source # 
type Rep Relevance = D1 * (MetaData "Relevance" "Agda.Syntax.Common" "Agda-2.5.3.20180519-9fcgArwWAGgCm0ECOSwfBe" False) ((:+:) * (C1 * (MetaCons "Relevant" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "NonStrict" PrefixI False) (U1 *)) (C1 * (MetaCons "Irrelevant" PrefixI False) (U1 *))))

class LensRelevance a where Source #

A lens to access the Relevance attribute in data structures. Minimal implementation: getRelevance and one of setRelevance or mapRelevance.

Minimal complete definition

getRelevance

Instances

LensRelevance ArgInfo Source # 
LensRelevance Relevance Source # 
LensRelevance Modality Source # 
LensRelevance TypedBindings Source # 
LensRelevance VarOcc Source # 
LensRelevance (Dom e) Source # 
LensRelevance (Arg e) Source # 

moreRelevant :: Relevance -> Relevance -> Bool Source #

Information ordering. Relevant `moreRelevant` NonStrict `moreRelevant` Irrelevant

unusableRelevance :: LensRelevance a => a -> Bool Source #

unusableRelevance rel == True iff we cannot use a variable of rel.

composeRelevance :: Relevance -> Relevance -> Relevance Source #

Relevance composition. Irrelevant is dominant, Relevant is neutral.

inverseComposeRelevance :: Relevance -> Relevance -> Relevance Source #

inverseComposeRelevance r x returns the most irrelevant y such that forall x, y we have x `moreRelevant` (r `composeRelevance` y) iff (r `inverseComposeRelevance` x) `moreRelevant` y (Galois connection).

irrToNonStrict :: Relevance -> Relevance Source #

Irrelevant function arguments may appear non-strictly in the codomain type.

nonStrictToRel :: Relevance -> Relevance Source #

Applied when working on types (unless --experimental-irrelevance).

Origin of arguments (user-written, inserted or reflected)

data Origin Source #

Origin of arguments.

Constructors

UserWritten

From the source file / user input. (Preserve!)

Inserted

E.g. inserted hidden arguments.

Reflected

Produced by the reflection machinery.

CaseSplit

Produced by an interactive case split.

Instances

Eq Origin Source # 

Methods

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

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

Data Origin Source # 

Methods

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

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

toConstr :: Origin -> Constr #

dataTypeOf :: Origin -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord Origin Source # 
Show Origin Source # 
NFData Origin Source # 

Methods

rnf :: Origin -> () #

KillRange Origin Source # 
LensOrigin Origin Source # 
ChooseFlex Origin Source # 

data WithOrigin a Source #

Decorating something with Origin information.

Constructors

WithOrigin 

Fields

Instances

Functor WithOrigin Source # 

Methods

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

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

Foldable WithOrigin Source # 

Methods

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

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

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

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

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

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

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

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

toList :: WithOrigin a -> [a] #

null :: WithOrigin a -> Bool #

length :: WithOrigin a -> Int #

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

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

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

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

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

Traversable WithOrigin Source # 

Methods

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

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

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

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

Decoration WithOrigin Source # 

Methods

traverseF :: Functor m => (a -> m b) -> WithOrigin a -> m (WithOrigin b) Source #

distributeF :: Functor m => WithOrigin (m a) -> m (WithOrigin a) Source #

Eq a => Eq (WithOrigin a) Source # 

Methods

(==) :: WithOrigin a -> WithOrigin a -> Bool #

(/=) :: WithOrigin a -> WithOrigin a -> Bool #

Data a => Data (WithOrigin a) Source # 

Methods

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

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

toConstr :: WithOrigin a -> Constr #

dataTypeOf :: WithOrigin a -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord a => Ord (WithOrigin a) Source # 
Show a => Show (WithOrigin a) Source # 
NFData a => NFData (WithOrigin a) Source # 

Methods

rnf :: WithOrigin a -> () #

KillRange a => KillRange (WithOrigin a) Source # 
SetRange a => SetRange (WithOrigin a) Source # 
HasRange a => HasRange (WithOrigin a) Source # 
LensOrigin (WithOrigin a) Source # 

class LensOrigin a where Source #

A lens to access the Origin attribute in data structures. Minimal implementation: getOrigin and one of setOrigin or mapOrigin.

Minimal complete definition

getOrigin

Methods

getOrigin :: a -> Origin Source #

setOrigin :: Origin -> a -> a Source #

mapOrigin :: (Origin -> Origin) -> a -> a Source #

Instances

LensOrigin ArgInfo Source # 
LensOrigin Origin Source # 
LensOrigin AppInfo Source # 
LensOrigin (Dom e) Source # 

Methods

getOrigin :: Dom e -> Origin Source #

setOrigin :: Origin -> Dom e -> Dom e Source #

mapOrigin :: (Origin -> Origin) -> Dom e -> Dom e Source #

LensOrigin (Arg e) Source # 

Methods

getOrigin :: Arg e -> Origin Source #

setOrigin :: Origin -> Arg e -> Arg e Source #

mapOrigin :: (Origin -> Origin) -> Arg e -> Arg e Source #

LensOrigin (WithOrigin a) Source # 
LensOrigin (Elim' a) Source #

This instance cheats on Proj, use with care. Projs are always assumed to be UserWritten, since they have no ArgInfo.

LensOrigin (FlexibleVar a) Source # 

Free variable annotations

data FreeVariables Source #

Constructors

UnknownFVs 
KnownFVs IntSet 

Instances

Eq FreeVariables Source # 
Data FreeVariables Source # 

Methods

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

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

toConstr :: FreeVariables -> Constr #

dataTypeOf :: FreeVariables -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord FreeVariables Source # 
Show FreeVariables Source # 
Semigroup FreeVariables Source # 
Monoid FreeVariables Source # 
NFData FreeVariables Source # 

Methods

rnf :: FreeVariables -> () #

LensFreeVariables FreeVariables Source # 

Argument decoration

data ArgInfo Source #

A function argument can be hidden and/or irrelevant.

Instances

Eq ArgInfo Source # 

Methods

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

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

Data ArgInfo Source # 

Methods

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

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

toConstr :: ArgInfo -> Constr #

dataTypeOf :: ArgInfo -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord ArgInfo Source # 
Show ArgInfo Source # 
NFData ArgInfo Source # 

Methods

rnf :: ArgInfo -> () #

KillRange ArgInfo Source # 
LensArgInfo ArgInfo Source # 
LensFreeVariables ArgInfo Source # 
LensOrigin ArgInfo Source # 
LensRelevance ArgInfo Source # 
LensQuantity ArgInfo Source # 
LensModality ArgInfo Source # 
LensHiding ArgInfo Source # 
SynEq ArgInfo Source # 

Methods

synEq :: ArgInfo -> ArgInfo -> SynEqM (ArgInfo, ArgInfo)

synEq' :: ArgInfo -> ArgInfo -> SynEqM (ArgInfo, ArgInfo)

ToTerm ArgInfo Source # 
Unquote ArgInfo Source # 

Arguments

data Arg e Source #

Constructors

Arg 

Fields

Instances

Functor Arg Source # 

Methods

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

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

Foldable Arg Source # 

Methods

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

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

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

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

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

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

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

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

toList :: Arg a -> [a] #

null :: Arg a -> Bool #

length :: Arg a -> Int #

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

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

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

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

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

Traversable Arg Source # 

Methods

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

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

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

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

Decoration Arg Source # 

Methods

traverseF :: Functor m => (a -> m b) -> Arg a -> m (Arg b) Source #

distributeF :: Functor m => Arg (m a) -> m (Arg a) Source #

MapNamedArgPattern NAP Source # 

Methods

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

IsPrefixOf Args Source # 
UniverseBi Args Pattern 

Methods

universeBi :: Args -> [Pattern]

UniverseBi Args Term 

Methods

universeBi :: Args -> [Term]

Conversion TOM Args (MM (ArgList O) (RefInfo O)) Source # 

Methods

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

PatternVars a (NamedArg (Pattern' a)) Source # 
PatternVars a (Arg (Pattern' a)) Source # 

Methods

patternVars :: Arg (Pattern' a) -> [Arg (Either a Term)] Source #

PatternLike a b => PatternLike a (Arg b) Source # 

Methods

foldrPattern :: Monoid m => (Pattern' a -> m -> m) -> Arg b -> m Source #

traversePatternM :: Monad m => (Pattern' a -> m (Pattern' a)) -> (Pattern' a -> m (Pattern' a)) -> Arg b -> m (Arg b) Source #

MapNamedArgPattern a (NamedArg (Pattern' a)) Source #

Modify the content of VarP, and the closest surrounding NamedArg.

Note: the mapNamedArg for Pattern' is not expressible simply by fmap or traverse etc., since ConP has NamedArg subpatterns, which are taken into account by mapNamedArg.

APatternLike a b => APatternLike a (Arg b) Source # 

Methods

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

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

Conversion TOM (Arg Pattern) (Pat O) Source # 

Methods

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

Conversion TOM a b => Conversion TOM (Arg a) (Hiding, b) Source # 

Methods

convert :: Arg a -> TOM (Hiding, b) Source #

Eq a => Eq (Arg a) Source #

Ignores Quantity, Relevance, Origin, and FreeVariables. Ignores content of argument if Irrelevant.

Methods

(==) :: Arg a -> Arg a -> Bool #

(/=) :: Arg a -> Arg a -> Bool #

Data e => Data (Arg e) Source # 

Methods

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

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

toConstr :: Arg e -> Constr #

dataTypeOf :: Arg e -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord e => Ord (Arg e) Source # 

Methods

compare :: Arg e -> Arg e -> Ordering #

(<) :: Arg e -> Arg e -> Bool #

(<=) :: Arg e -> Arg e -> Bool #

(>) :: Arg e -> Arg e -> Bool #

(>=) :: Arg e -> Arg e -> Bool #

max :: Arg e -> Arg e -> Arg e #

min :: Arg e -> Arg e -> Arg e #

Show a => Show (Arg a) Source # 

Methods

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

show :: Arg a -> String #

showList :: [Arg a] -> ShowS #

NFData e => NFData (Arg e) Source # 

Methods

rnf :: Arg e -> () #

KillRange a => KillRange (Arg a) Source # 
SetRange a => SetRange (Arg a) Source # 

Methods

setRange :: Range -> Arg a -> Arg a Source #

HasRange a => HasRange (Arg a) Source # 

Methods

getRange :: Arg a -> Range Source #

LensArgInfo (Arg a) Source # 
LensFreeVariables (Arg e) Source # 
LensOrigin (Arg e) Source # 

Methods

getOrigin :: Arg e -> Origin Source #

setOrigin :: Origin -> Arg e -> Arg e Source #

mapOrigin :: (Origin -> Origin) -> Arg e -> Arg e Source #

LensRelevance (Arg e) Source # 
LensQuantity (Arg e) Source # 
LensModality (Arg e) Source # 
LensHiding (Arg e) Source # 

Methods

getHiding :: Arg e -> Hiding Source #

setHiding :: Hiding -> Arg e -> Arg e Source #

mapHiding :: (Hiding -> Hiding) -> Arg e -> Arg e Source #

IsProjP a => IsProjP (Arg a) Source # 
CPatternLike p => CPatternLike (Arg p) Source # 

Methods

foldrCPattern :: Monoid m => (Pattern -> m -> m) -> Arg p -> m Source #

traverseCPatternA :: (Applicative m, Functor m) => (Pattern -> m Pattern -> m Pattern) -> Arg p -> m (Arg p) Source #

traverseCPatternM :: Monad m => (Pattern -> m Pattern) -> (Pattern -> m Pattern) -> Arg p -> m (Arg p) Source #

IsWithP p => IsWithP (Arg p) Source # 

Methods

isWithP :: Arg p -> Maybe (Arg p) Source #

ExprLike a => ExprLike (Arg a) Source # 

Methods

mapExpr :: (Expr -> Expr) -> Arg a -> Arg a Source #

traverseExpr :: Monad m => (Expr -> m Expr) -> Arg a -> m (Arg a) Source #

foldExpr :: Monoid m => (Expr -> m) -> Arg a -> m Source #

PrecomputeFreeVars a => PrecomputeFreeVars (Arg a) Source # 

Methods

precomputeFreeVars :: Arg a -> FV (Arg a) Source #

Free a => Free (Arg a) Source # 

Methods

freeVars' :: IsVarSet c => Arg a -> FreeM c Source #

TermLike a => TermLike (Arg a) Source # 

Methods

traverseTermM :: Monad m => (Term -> m Term) -> Arg a -> m (Arg a) Source #

foldTerm :: Monoid m => (Term -> m) -> Arg a -> m Source #

GetDefs a => GetDefs (Arg a) Source # 

Methods

getDefs :: MonadGetDefs m => Arg a -> m () Source #

MaybePostfixProjP a => MaybePostfixProjP (Arg a) Source # 
SubstExpr a => SubstExpr (Arg a) Source # 

Methods

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

AllNames a => AllNames (Arg a) Source # 

Methods

allNames :: Arg a -> Seq QName Source #

CountPatternVars a => CountPatternVars (Arg a) Source # 
ExprLike a => ExprLike (Arg a) Source # 

Methods

recurseExpr :: Applicative m => (Expr -> m Expr -> m Expr) -> Arg a -> m (Arg a) Source #

foldExpr :: Monoid m => (Expr -> m) -> Arg a -> m Source #

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

mapExpr :: (Expr -> Expr) -> Arg a -> Arg a Source #

Free a => Free (Arg a) Source # 

Methods

freeVars' :: Arg a -> FreeT

(Reify a e, ToConcrete e c, Pretty c) => PrettyTCM (Arg a) Source # 

Methods

prettyTCM :: Arg a -> TCM Doc Source #

NamesIn a => NamesIn (Arg a) Source # 

Methods

namesIn :: Arg a -> Set QName Source #

IsInstantiatedMeta a => IsInstantiatedMeta (Arg a) Source # 
ExpandPatternSynonyms a => ExpandPatternSynonyms (Arg a) Source # 
MentionsMeta t => MentionsMeta (Arg t) Source # 

Methods

mentionsMeta :: MetaId -> Arg t -> Bool Source #

InstantiateFull t => InstantiateFull (Arg t) Source # 

Methods

instantiateFull' :: Arg t -> ReduceM (Arg t) Source #

Normalise t => Normalise (Arg t) Source # 

Methods

normalise' :: Arg t -> ReduceM (Arg t) Source #

Simplify t => Simplify (Arg t) Source # 

Methods

simplify' :: Arg t -> ReduceM (Arg t) Source #

Reduce t => Reduce (Arg t) Source # 

Methods

reduce' :: Arg t -> ReduceM (Arg t) Source #

reduceB' :: Arg t -> ReduceM (Blocked (Arg t)) Source #

Instantiate t => Instantiate (Arg t) Source # 

Methods

instantiate' :: Arg t -> ReduceM (Arg t) Source #

SynEq a => SynEq (Arg a) Source # 

Methods

synEq :: Arg a -> Arg a -> SynEqM (Arg a, Arg a)

synEq' :: Arg a -> Arg a -> SynEqM (Arg a, Arg a)

SubstWithOrigin (Arg Term) Source # 
SubstWithOrigin (Arg DisplayTerm) Source # 
Match a => Match (Arg a) Source # 

Methods

match :: Arg a -> Arg a -> MaybeT TCM [WithOrigin Term] Source #

NormaliseProjP a => NormaliseProjP (Arg a) Source # 

Methods

normaliseProjP :: HasConstInfo m => Arg a -> m (Arg a) Source #

HasPolarity a => HasPolarity (Arg a) Source # 

Methods

polarities :: Nat -> Arg a -> TCM [Polarity] Source #

UsableRelevance a => UsableRelevance (Arg a) Source # 

Methods

usableRel :: Relevance -> Arg a -> TCM Bool Source #

ForcedVariables a => ForcedVariables (Arg a) Source # 

Methods

forcedVariables :: Arg a -> [(Modality, Nat)] Source #

ComputeOccurrences a => ComputeOccurrences (Arg a) Source # 
FoldRigid a => FoldRigid (Arg a) Source # 

Methods

foldRigid :: Monoid (TCM m) => (Nat -> TCM m) -> Arg a -> TCM m Source #

Occurs a => Occurs (Arg a) Source # 

Methods

occurs :: UnfoldStrategy -> OccursCtx -> MetaId -> Vars -> Arg a -> TCM (Arg a) Source #

metaOccurs :: MetaId -> Arg a -> TCM () Source #

ReduceAndEtaContract a => ReduceAndEtaContract (Arg a) Source # 

Methods

reduceAndEtaContract :: Arg a -> TCM (Arg a) Source #

NoProjectedVar a => NoProjectedVar (Arg a) Source # 
Unquote a => Unquote (Arg a) Source # 

Methods

unquote :: Term -> UnquoteM (Arg a) Source #

IsFlexiblePattern a => IsFlexiblePattern (Arg a) Source # 
AbsTerm a => AbsTerm (Arg a) Source # 

Methods

absTerm :: Term -> Arg a -> Arg a Source #

PatternVarModalities a x => PatternVarModalities (Arg a) x Source # 

Methods

patternVarModalities :: Arg a -> [(x, Modality)] Source #

ToConcrete a c => ToConcrete (Arg a) (Arg c) Source # 

Methods

toConcrete :: Arg a -> AbsToCon (Arg c) Source #

bindToConcrete :: Arg a -> (Arg c -> AbsToCon b) -> AbsToCon b Source #

TermToPattern a b => TermToPattern (Arg a) (Arg b) Source # 

Methods

termToPattern :: Arg a -> TCM (Arg b) Source #

Reify i a => Reify (Dom i) (Arg a) Source # 

Methods

reify :: Dom i -> TCM (Arg a) Source #

reifyWhen :: Bool -> Dom i -> TCM (Arg a) Source #

Reify i a => Reify (Arg i) (Arg a) Source #

Skip reification of implicit and irrelevant args if option is off.

Methods

reify :: Arg i -> TCM (Arg a) Source #

reifyWhen :: Bool -> Arg i -> TCM (Arg a) Source #

ToAbstract [Arg Term] [NamedArg Expr] Source # 
ToAbstract r a => ToAbstract (Arg r) (NamedArg a) Source # 
Match a b => Match (Arg a) (Arg b) Source # 

Methods

match :: Relevance -> Telescope -> Telescope -> Arg a -> Arg b -> NLM () Source #

PatternFrom a b => PatternFrom (Arg a) (Arg b) Source # 

Methods

patternFrom :: Relevance -> Int -> Arg a -> TCM (Arg b) Source #

ToAbstract c a => ToAbstract (Arg c) (Arg a) Source # 

Methods

toAbstract :: Arg c -> ScopeM (Arg a) Source #

LabelPatVars a b i => LabelPatVars (Arg a) (Arg b) i Source # 

Methods

labelPatVars :: Arg a -> State [i] (Arg b) Source #

unlabelPatVars :: Arg b -> Arg a Source #

withArgsFrom :: [a] -> [Arg b] -> [Arg a] Source #

xs `withArgsFrom` args translates xs into a list of Args, using the elements in args to fill in the non-unArg fields.

Precondition: The two lists should have equal length.

Names

Function type domain

data Dom e Source #

Similar to Arg, but we need to distinguish an irrelevance annotation in a function domain (the domain itself is not irrelevant!) from an irrelevant argument.

Dom is used in Pi of internal syntax, in Context and Telescope. Arg is used for actual arguments (Var, Con, Def etc.) and in Abstract syntax and other situations.

Constructors

Dom 

Fields

Instances

Functor Dom Source # 

Methods

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

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

Foldable Dom Source # 

Methods

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

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

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

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

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

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

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

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

toList :: Dom a -> [a] #

null :: Dom a -> Bool #

length :: Dom a -> Int #

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

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

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

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

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

Traversable Dom Source # 

Methods

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

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

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

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

Decoration Dom Source # 

Methods

traverseF :: Functor m => (a -> m b) -> Dom a -> m (Dom b) Source #

distributeF :: Functor m => Dom (m a) -> m (Dom a) Source #

TelToArgs ListTel Source # 
TelToArgs Telescope Source # 
TeleNoAbs ListTel Source # 

Methods

teleNoAbs :: ListTel -> Term -> Term Source #

TeleNoAbs Telescope Source # 
PrettyTCM Telescope Source # 
DropArgs Telescope Source #

NOTE: This creates telescopes with unbound de Bruijn indices.

AddContext Telescope Source # 

Methods

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

contextSize :: Telescope -> Nat Source #

Reduce Telescope Source # 
Instantiate Telescope Source # 
Reify Telescope Telescope Source # 
Eq a => Eq (Dom a) Source #

Ignores Origin and FreeVariables.

Methods

(==) :: Dom a -> Dom a -> Bool #

(/=) :: Dom a -> Dom a -> Bool #

Data e => Data (Dom e) Source # 

Methods

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

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

toConstr :: Dom e -> Constr #

dataTypeOf :: Dom e -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord e => Ord (Dom e) Source # 

Methods

compare :: Dom e -> Dom e -> Ordering #

(<) :: Dom e -> Dom e -> Bool #

(<=) :: Dom e -> Dom e -> Bool #

(>) :: Dom e -> Dom e -> Bool #

(>=) :: Dom e -> Dom e -> Bool #

max :: Dom e -> Dom e -> Dom e #

min :: Dom e -> Dom e -> Dom e #

Show a => Show (Dom a) Source # 

Methods

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

show :: Dom a -> String #

showList :: [Dom a] -> ShowS #

Pretty a => Pretty (Tele (Dom a)) Source # 

Methods

pretty :: Tele (Dom a) -> Doc Source #

prettyPrec :: Int -> Tele (Dom a) -> Doc Source #

prettyList :: [Tele (Dom a)] -> Doc Source #

KillRange a => KillRange (Dom a) Source # 
HasRange a => HasRange (Dom a) Source # 

Methods

getRange :: Dom a -> Range Source #

LensArgInfo (Dom e) Source # 
LensFreeVariables (Dom e) Source # 
LensOrigin (Dom e) Source # 

Methods

getOrigin :: Dom e -> Origin Source #

setOrigin :: Origin -> Dom e -> Dom e Source #

mapOrigin :: (Origin -> Origin) -> Dom e -> Dom e Source #

LensRelevance (Dom e) Source # 
LensQuantity (Dom e) Source # 
LensModality (Dom e) Source # 
LensHiding (Dom e) Source # 

Methods

getHiding :: Dom e -> Hiding Source #

setHiding :: Hiding -> Dom e -> Dom e Source #

mapHiding :: (Hiding -> Hiding) -> Dom e -> Dom e Source #

SgTel (Dom (ArgName, Type)) Source # 
SgTel (Dom Type) Source # 
LensSort a => LensSort (Dom a) Source # 
PrecomputeFreeVars a => PrecomputeFreeVars (Dom a) Source # 

Methods

precomputeFreeVars :: Dom a -> FV (Dom a) Source #

Free a => Free (Dom a) Source # 

Methods

freeVars' :: IsVarSet c => Dom a -> FreeM c Source #

TermLike a => TermLike (Dom a) Source # 

Methods

traverseTermM :: Monad m => (Term -> m Term) -> Dom a -> m (Dom a) Source #

foldTerm :: Monoid m => (Term -> m) -> Dom a -> m Source #

GetDefs a => GetDefs (Dom a) Source # 

Methods

getDefs :: MonadGetDefs m => Dom a -> m () Source #

Free a => Free (Dom a) Source # 

Methods

freeVars' :: Dom a -> FreeT

(Reify a e, ToConcrete e c, Pretty c) => PrettyTCM (Dom a) Source # 

Methods

prettyTCM :: Dom a -> TCM Doc Source #

NamesIn a => NamesIn (Dom a) Source # 

Methods

namesIn :: Dom a -> Set QName Source #

IsSizeType a => IsSizeType (Dom a) Source # 
AddContext (Dom (String, Type)) Source # 

Methods

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

contextSize :: Dom (String, Type) -> Nat Source #

AddContext (Dom (Name, Type)) Source # 

Methods

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

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

AddContext (Dom Type) Source # 

Methods

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

contextSize :: Dom Type -> Nat Source #

AddContext (KeepNames Telescope) Source # 
MentionsMeta t => MentionsMeta (Dom t) Source # 

Methods

mentionsMeta :: MetaId -> Dom t -> Bool Source #

InstantiateFull t => InstantiateFull (Dom t) Source # 

Methods

instantiateFull' :: Dom t -> ReduceM (Dom t) Source #

Normalise t => Normalise (Dom t) Source # 

Methods

normalise' :: Dom t -> ReduceM (Dom t) Source #

Simplify t => Simplify (Dom t) Source # 

Methods

simplify' :: Dom t -> ReduceM (Dom t) Source #

Reduce t => Reduce (Dom t) Source # 

Methods

reduce' :: Dom t -> ReduceM (Dom t) Source #

reduceB' :: Dom t -> ReduceM (Blocked (Dom t)) Source #

Instantiate t => Instantiate (Dom t) Source # 

Methods

instantiate' :: Dom t -> ReduceM (Dom t) Source #

SynEq a => SynEq (Dom a) Source # 

Methods

synEq :: Dom a -> Dom a -> SynEqM (Dom a, Dom a)

synEq' :: Dom a -> Dom a -> SynEqM (Dom a, Dom a)

HasPolarity a => HasPolarity (Dom a) Source # 

Methods

polarities :: Nat -> Dom a -> TCM [Polarity] Source #

UsableRelevance a => UsableRelevance (Dom a) Source # 

Methods

usableRel :: Relevance -> Dom a -> TCM Bool Source #

ComputeOccurrences a => ComputeOccurrences (Dom a) Source # 
FoldRigid a => FoldRigid (Dom a) Source # 

Methods

foldRigid :: Monoid (TCM m) => (Nat -> TCM m) -> Dom a -> TCM m Source #

Occurs a => Occurs (Dom a) Source # 

Methods

occurs :: UnfoldStrategy -> OccursCtx -> MetaId -> Vars -> Dom a -> TCM (Dom a) Source #

metaOccurs :: MetaId -> Dom a -> TCM () Source #

Unquote a => Unquote (Dom a) Source # 

Methods

unquote :: Term -> UnquoteM (Dom a) Source #

AbsTerm a => AbsTerm (Dom a) Source # 

Methods

absTerm :: Term -> Dom a -> Dom a Source #

Reify i a => Reify (Dom i) (Arg a) Source # 

Methods

reify :: Dom i -> TCM (Arg a) Source #

reifyWhen :: Bool -> Dom i -> TCM (Arg a) Source #

Match a b => Match (Dom a) (Dom b) Source # 

Methods

match :: Relevance -> Telescope -> Telescope -> Dom a -> Dom b -> NLM () Source #

PatternFrom a b => PatternFrom (Dom a) (Dom b) Source # 

Methods

patternFrom :: Relevance -> Int -> Dom a -> TCM (Dom b) Source #

SgTel (ArgName, Dom Type) Source # 
AddContext ([WithHiding Name], Dom Type) Source # 

Methods

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

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

AddContext ([Name], Dom Type) Source # 

Methods

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

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

AddContext (String, Dom Type) Source # 

Methods

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

contextSize :: (String, Dom Type) -> Nat Source #

AddContext (Name, Dom Type) Source # 

Methods

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

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

AddContext (KeepNames String, Dom Type) Source # 

Methods

addContext :: (MonadTCM tcm, MonadDebug tcm) => (KeepNames String, Dom Type) -> tcm a -> tcm a Source #

contextSize :: (KeepNames String, Dom Type) -> Nat Source #

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

Named arguments

data Named name a Source #

Something potentially carrying a name.

Constructors

Named 

Fields

Instances

MapNamedArgPattern NAP Source # 

Methods

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

PatternVars a (NamedArg (Pattern' a)) Source # 
MapNamedArgPattern a (NamedArg (Pattern' a)) Source #

Modify the content of VarP, and the closest surrounding NamedArg.

Note: the mapNamedArg for Pattern' is not expressible simply by fmap or traverse etc., since ConP has NamedArg subpatterns, which are taken into account by mapNamedArg.

PatternLike a b => PatternLike a (Named x b) Source # 

Methods

foldrPattern :: Monoid m => (Pattern' a -> m -> m) -> Named x b -> m Source #

traversePatternM :: Monad m => (Pattern' a -> m (Pattern' a)) -> (Pattern' a -> m (Pattern' a)) -> Named x b -> m (Named x b) Source #

APatternLike a b => APatternLike a (Named n b) Source # 

Methods

foldrAPattern :: Monoid m => (Pattern' a -> m -> m) -> Named n b -> m Source #

traverseAPatternM :: Monad m => (Pattern' a -> m (Pattern' a)) -> (Pattern' a -> m (Pattern' a)) -> Named n b -> m (Named n b) Source #

Functor (Named name) Source # 

Methods

fmap :: (a -> b) -> Named name a -> Named name b #

(<$) :: a -> Named name b -> Named name a #

Show a => Show (Named_ a) Source # 

Methods

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

show :: Named_ a -> String #

showList :: [Named_ a] -> ShowS #

Foldable (Named name) Source # 

Methods

fold :: Monoid m => Named name m -> m #

foldMap :: Monoid m => (a -> m) -> Named name a -> m #

foldr :: (a -> b -> b) -> b -> Named name a -> b #

foldr' :: (a -> b -> b) -> b -> Named name a -> b #

foldl :: (b -> a -> b) -> b -> Named name a -> b #

foldl' :: (b -> a -> b) -> b -> Named name a -> b #

foldr1 :: (a -> a -> a) -> Named name a -> a #

foldl1 :: (a -> a -> a) -> Named name a -> a #

toList :: Named name a -> [a] #

null :: Named name a -> Bool #

length :: Named name a -> Int #

elem :: Eq a => a -> Named name a -> Bool #

maximum :: Ord a => Named name a -> a #

minimum :: Ord a => Named name a -> a #

sum :: Num a => Named name a -> a #

product :: Num a => Named name a -> a #

Traversable (Named name) Source # 

Methods

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

sequenceA :: Applicative f => Named name (f a) -> f (Named name a) #

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

sequence :: Monad m => Named name (m a) -> m (Named name a) #

Decoration (Named name) Source # 

Methods

traverseF :: Functor m => (a -> m b) -> Named name a -> m (Named name b) Source #

distributeF :: Functor m => Named name (m a) -> m (Named name a) Source #

(Reify a e, ToConcrete e c, Pretty c) => PrettyTCM (Named_ a) Source # 

Methods

prettyTCM :: Named_ a -> TCM Doc Source #

NormaliseProjP a => NormaliseProjP (Named_ a) Source # 

Methods

normaliseProjP :: HasConstInfo m => Named_ a -> m (Named_ a) Source #

ToAbstract [Arg Term] [NamedArg Expr] Source # 
ToAbstract r a => ToAbstract (Arg r) (NamedArg a) Source # 
(Eq a, Eq name) => Eq (Named name a) Source # 

Methods

(==) :: Named name a -> Named name a -> Bool #

(/=) :: Named name a -> Named name a -> Bool #

(Data a, Data name) => Data (Named name a) Source # 

Methods

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

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

toConstr :: Named name a -> Constr #

dataTypeOf :: Named name a -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (Named name a)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Named name a)) #

gmapT :: (forall b. Data b => b -> b) -> Named name a -> Named name a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Named name a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Named name a -> r #

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

gmapQi :: Int -> (forall d. Data d => d -> u) -> Named name a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Named name a -> m (Named name a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Named name a -> m (Named name a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Named name a -> m (Named name a) #

(Ord a, Ord name) => Ord (Named name a) Source # 

Methods

compare :: Named name a -> Named name a -> Ordering #

(<) :: Named name a -> Named name a -> Bool #

(<=) :: Named name a -> Named name a -> Bool #

(>) :: Named name a -> Named name a -> Bool #

(>=) :: Named name a -> Named name a -> Bool #

max :: Named name a -> Named name a -> Named name a #

min :: Named name a -> Named name a -> Named name a #

(NFData name, NFData a) => NFData (Named name a) Source # 

Methods

rnf :: Named name a -> () #

(KillRange name, KillRange a) => KillRange (Named name a) Source # 

Methods

killRange :: KillRangeT (Named name a) Source #

SetRange a => SetRange (Named name a) Source # 

Methods

setRange :: Range -> Named name a -> Named name a Source #

HasRange a => HasRange (Named name a) Source # 

Methods

getRange :: Named name a -> Range Source #

IsProjP a => IsProjP (Named n a) Source # 
CPatternLike p => CPatternLike (Named n p) Source # 

Methods

foldrCPattern :: Monoid m => (Pattern -> m -> m) -> Named n p -> m Source #

traverseCPatternA :: (Applicative m, Functor m) => (Pattern -> m Pattern -> m Pattern) -> Named n p -> m (Named n p) Source #

traverseCPatternM :: Monad m => (Pattern -> m Pattern) -> (Pattern -> m Pattern) -> Named n p -> m (Named n p) Source #

IsWithP p => IsWithP (Named n p) Source # 

Methods

isWithP :: Named n p -> Maybe (Named n p) Source #

ExprLike a => ExprLike (Named name a) Source # 

Methods

mapExpr :: (Expr -> Expr) -> Named name a -> Named name a Source #

traverseExpr :: Monad m => (Expr -> m Expr) -> Named name a -> m (Named name a) Source #

foldExpr :: Monoid m => (Expr -> m) -> Named name a -> m Source #

MaybePostfixProjP a => MaybePostfixProjP (Named n a) Source # 
SubstExpr a => SubstExpr (Named name a) Source # 

Methods

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

AllNames a => AllNames (Named name a) Source # 

Methods

allNames :: Named name a -> Seq QName Source #

CountPatternVars a => CountPatternVars (Named x a) Source # 

Methods

countPatternVars :: Named x a -> Int Source #

ExprLike a => ExprLike (Named x a) Source # 

Methods

recurseExpr :: Applicative m => (Expr -> m Expr -> m Expr) -> Named x a -> m (Named x a) Source #

foldExpr :: Monoid m => (Expr -> m) -> Named x a -> m Source #

traverseExpr :: (Applicative m, Monad m) => (Expr -> m Expr) -> Named x a -> m (Named x a) Source #

mapExpr :: (Expr -> Expr) -> Named x a -> Named x a Source #

NamesIn a => NamesIn (Named n a) Source # 

Methods

namesIn :: Named n a -> Set QName Source #

ExpandPatternSynonyms a => ExpandPatternSynonyms (Named n a) Source # 

Methods

expandPatternSynonyms :: Named n a -> TCM (Named n a) Source #

InstantiateFull t => InstantiateFull (Named name t) Source # 

Methods

instantiateFull' :: Named name t -> ReduceM (Named name t) Source #

Normalise t => Normalise (Named name t) Source # 

Methods

normalise' :: Named name t -> ReduceM (Named name t) Source #

Simplify t => Simplify (Named name t) Source # 

Methods

simplify' :: Named name t -> ReduceM (Named name t) Source #

IsFlexiblePattern a => IsFlexiblePattern (Named name a) Source # 
PatternVarModalities a x => PatternVarModalities (Named s a) x Source # 

Methods

patternVarModalities :: Named s a -> [(x, Modality)] Source #

ToConcrete a c => ToConcrete (Named name a) (Named name c) Source # 

Methods

toConcrete :: Named name a -> AbsToCon (Named name c) Source #

bindToConcrete :: Named name a -> (Named name c -> AbsToCon b) -> AbsToCon b Source #

TermToPattern a b => TermToPattern (Named c a) (Named c b) Source # 

Methods

termToPattern :: Named c a -> TCM (Named c b) Source #

Reify i a => Reify (Named n i) (Named n a) Source # 

Methods

reify :: Named n i -> TCM (Named n a) Source #

reifyWhen :: Bool -> Named n i -> TCM (Named n a) Source #

ToAbstract r a => ToAbstract (Named name r) (Named name a) Source # 

Methods

toAbstract :: Named name r -> WithNames (Named name a) Source #

ToAbstract c a => ToAbstract (Named name c) (Named name a) Source # 

Methods

toAbstract :: Named name c -> ScopeM (Named name a) Source #

LabelPatVars a b i => LabelPatVars (Named x a) (Named x b) i Source # 

Methods

labelPatVars :: Named x a -> State [i] (Named x b) Source #

unlabelPatVars :: Named x b -> Named x a Source #

type Named_ = Named RString Source #

Standard naming.

unnamed :: a -> Named name a Source #

named :: name -> a -> Named name a Source #

type NamedArg a = Arg (Named_ a) Source #

Only Hidden arguments can have names.

namedArg :: NamedArg a -> a Source #

Get the content of a NamedArg.

updateNamedArg :: (a -> b) -> NamedArg a -> NamedArg b Source #

The functor instance for NamedArg would be ambiguous, so we give it another name here.

setNamedArg :: NamedArg a -> b -> NamedArg b Source #

setNamedArg a b = updateNamedArg (const b) a

Range decoration.

data Ranged a Source #

Thing with range info.

Constructors

Ranged 

Fields

Instances

Functor Ranged Source # 

Methods

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

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

Foldable Ranged Source # 

Methods

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

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

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

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

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

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

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

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

toList :: Ranged a -> [a] #

null :: Ranged a -> Bool #

length :: Ranged a -> Int #

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

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

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

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

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

Traversable Ranged Source # 

Methods

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

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

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

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

Decoration Ranged Source # 

Methods

traverseF :: Functor m => (a -> m b) -> Ranged a -> m (Ranged b) Source #

distributeF :: Functor m => Ranged (m a) -> m (Ranged a) Source #

MapNamedArgPattern NAP Source # 

Methods

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

UniverseBi Declaration RString 
PatternVars a (NamedArg (Pattern' a)) Source # 
MapNamedArgPattern a (NamedArg (Pattern' a)) Source #

Modify the content of VarP, and the closest surrounding NamedArg.

Note: the mapNamedArg for Pattern' is not expressible simply by fmap or traverse etc., since ConP has NamedArg subpatterns, which are taken into account by mapNamedArg.

Eq a => Eq (Ranged a) Source # 

Methods

(==) :: Ranged a -> Ranged a -> Bool #

(/=) :: Ranged a -> Ranged a -> Bool #

Data a => Data (Ranged a) Source # 

Methods

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

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

toConstr :: Ranged a -> Constr #

dataTypeOf :: Ranged a -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord a => Ord (Ranged a) Source # 

Methods

compare :: Ranged a -> Ranged a -> Ordering #

(<) :: Ranged a -> Ranged a -> Bool #

(<=) :: Ranged a -> Ranged a -> Bool #

(>) :: Ranged a -> Ranged a -> Bool #

(>=) :: Ranged a -> Ranged a -> Bool #

max :: Ranged a -> Ranged a -> Ranged a #

min :: Ranged a -> Ranged a -> Ranged a #

Show a => Show (Ranged a) Source # 

Methods

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

show :: Ranged a -> String #

showList :: [Ranged a] -> ShowS #

Show a => Show (Named_ a) Source # 

Methods

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

show :: Named_ a -> String #

showList :: [Named_ a] -> ShowS #

NFData a => NFData (Ranged a) Source #

Ranges are not forced.

Methods

rnf :: Ranged a -> () #

KillRange (Ranged a) Source # 
HasRange (Ranged a) Source # 

Methods

getRange :: Ranged a -> Range Source #

(Reify a e, ToConcrete e c, Pretty c) => PrettyTCM (Named_ a) Source # 

Methods

prettyTCM :: Named_ a -> TCM Doc Source #

NormaliseProjP a => NormaliseProjP (Named_ a) Source # 

Methods

normaliseProjP :: HasConstInfo m => Named_ a -> m (Named_ a) Source #

ToAbstract [Arg Term] [NamedArg Expr] Source # 
ToAbstract r a => ToAbstract (Arg r) (NamedArg a) Source # 

unranged :: a -> Ranged a Source #

Thing with no range info.

Raw names (before parsing into name parts).

type RawName = String Source #

A RawName is some sort of string.

type RString = Ranged RawName Source #

String with range info.

Further constructor and projection info

data ConOrigin Source #

Where does the ConP or Con come from?

Constructors

ConOSystem

Inserted by system or expanded from an implicit pattern.

ConOCon

User wrote a constructor (pattern).

ConORec

User wrote a record (pattern).

ConOSplit

Generated by interactive case splitting.

Instances

Bounded ConOrigin Source # 
Enum ConOrigin Source # 
Eq ConOrigin Source # 
Data ConOrigin Source # 

Methods

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

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

toConstr :: ConOrigin -> Constr #

dataTypeOf :: ConOrigin -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord ConOrigin Source # 
Show ConOrigin Source # 
KillRange ConOrigin Source # 

bestConInfo :: ConOrigin -> ConOrigin -> ConOrigin Source #

Prefer user-written over system-inserted.

data ProjOrigin Source #

Where does a projection come from?

Constructors

ProjPrefix

User wrote a prefix projection.

ProjPostfix

User wrote a postfix projection.

ProjSystem

Projection was generated by the system.

Instances

Bounded ProjOrigin Source # 
Enum ProjOrigin Source # 
Eq ProjOrigin Source # 
Data ProjOrigin Source # 

Methods

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

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

toConstr :: ProjOrigin -> Constr #

dataTypeOf :: ProjOrigin -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord ProjOrigin Source # 
Show ProjOrigin Source # 
KillRange ProjOrigin Source # 

data DataOrRecord Source #

Constructors

IsData 
IsRecord 

Instances

Eq DataOrRecord Source # 
Data DataOrRecord Source # 

Methods

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

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

toConstr :: DataOrRecord -> Constr #

dataTypeOf :: DataOrRecord -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord DataOrRecord Source # 
Show DataOrRecord Source # 

Infixity, access, abstract, etc.

data IsInfix Source #

Functions can be defined in both infix and prefix style. See LHS.

Constructors

InfixDef 
PrefixDef 

Instances

Eq IsInfix Source # 

Methods

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

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

Data IsInfix Source # 

Methods

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

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

toConstr :: IsInfix -> Constr #

dataTypeOf :: IsInfix -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord IsInfix Source # 
Show IsInfix Source # 

data Access Source #

Access modifier.

Constructors

PrivateAccess Origin

Store the Origin of the private block that lead to this qualifier. This is needed for more faithful printing of declarations.

PublicAccess 
OnlyQualified

Visible from outside, but not exported when opening the module Used for qualified constructors.

Instances

Eq Access Source # 

Methods

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

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

Data Access Source # 

Methods

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

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

toConstr :: Access -> Constr #

dataTypeOf :: Access -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord Access Source # 
Show Access Source # 
NFData Access Source # 

Methods

rnf :: Access -> () #

Pretty Access Source # 
KillRange Access Source # 
HasRange Access Source # 

data IsAbstract Source #

Abstract or concrete

Constructors

AbstractDef 
ConcreteDef 

Instances

Eq IsAbstract Source # 
Data IsAbstract Source # 

Methods

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

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

toConstr :: IsAbstract -> Constr #

dataTypeOf :: IsAbstract -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord IsAbstract Source # 
Show IsAbstract Source # 
KillRange IsAbstract Source # 

data IsInstance Source #

Is this definition eligible for instance search?

Instances

Eq IsInstance Source # 
Data IsInstance Source # 

Methods

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

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

toConstr :: IsInstance -> Constr #

dataTypeOf :: IsInstance -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord IsInstance Source # 
Show IsInstance Source # 
NFData IsInstance Source # 

Methods

rnf :: IsInstance -> () #

KillRange IsInstance Source # 
HasRange IsInstance Source # 

data IsMacro Source #

Is this a macro definition?

Constructors

MacroDef 
NotMacroDef 

Instances

Eq IsMacro Source # 

Methods

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

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

Data IsMacro Source # 

Methods

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

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

toConstr :: IsMacro -> Constr #

dataTypeOf :: IsMacro -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord IsMacro Source # 
Show IsMacro Source # 
KillRange IsMacro Source # 
HasRange IsMacro Source # 

type Nat = Int Source #

type Arity = Nat Source #

NameId

data NameId Source #

The unique identifier of a name. Second argument is the top-level module identifier.

Constructors

NameId !Word64 !Word64 

Instances

Enum NameId Source # 
Eq NameId Source # 

Methods

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

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

Data NameId Source # 

Methods

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

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

toConstr :: NameId -> Constr #

dataTypeOf :: NameId -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord NameId Source # 
Show NameId Source # 
Generic NameId Source # 

Associated Types

type Rep NameId :: * -> * #

Methods

from :: NameId -> Rep NameId x #

to :: Rep NameId x -> NameId #

NFData NameId Source # 

Methods

rnf :: NameId -> () #

Hashable NameId Source # 

Methods

hashWithSalt :: Int -> NameId -> Int

hash :: NameId -> Int

KillRange NameId Source # 
HasFresh NameId Source # 
type Rep NameId Source # 
type Rep NameId = D1 * (MetaData "NameId" "Agda.Syntax.Common" "Agda-2.5.3.20180519-9fcgArwWAGgCm0ECOSwfBe" False) (C1 * (MetaCons "NameId" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) SourceUnpack SourceStrict DecidedStrict) (Rec0 * Word64)) (S1 * (MetaSel (Nothing Symbol) SourceUnpack SourceStrict DecidedStrict) (Rec0 * Word64))))

Meta variables

newtype MetaId Source #

A meta variable identifier is just a natural number.

Constructors

MetaId 

Fields

Instances

Enum MetaId Source # 
Eq MetaId Source # 

Methods

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

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

Integral MetaId Source # 
Data MetaId Source # 

Methods

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

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

toConstr :: MetaId -> Constr #

dataTypeOf :: MetaId -> DataType #

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

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

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

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

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

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

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

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

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

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

Num MetaId Source # 
Ord MetaId Source # 
Real MetaId Source # 
Show MetaId Source #

Show non-record version of this newtype.

NFData MetaId Source # 

Methods

rnf :: MetaId -> () #

Pretty MetaId Source # 
GetDefs MetaId Source # 

Methods

getDefs :: MonadGetDefs m => MetaId -> m () Source #

HasFresh MetaId Source # 
PrettyTCM MetaId Source # 
UnFreezeMeta MetaId Source # 

Methods

unfreezeMeta :: MetaId -> TCM () Source #

IsInstantiatedMeta MetaId Source # 
FromTerm MetaId Source # 
ToTerm MetaId Source # 
PrimTerm MetaId Source # 
Unquote MetaId Source # 
Reify MetaId Expr Source # 

Placeholders (used to parse sections)

data PositionInName Source #

The position of a name part or underscore in a name.

Constructors

Beginning

The following underscore is at the beginning of the name: _foo.

Middle

The following underscore is in the middle of the name: foo_bar.

End

The following underscore is at the end of the name: foo_.

Instances

Eq PositionInName Source # 
Data PositionInName Source # 

Methods

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

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

toConstr :: PositionInName -> Constr #

dataTypeOf :: PositionInName -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord PositionInName Source # 
Show PositionInName Source # 

data MaybePlaceholder e Source #

Placeholders are used to represent the underscores in a section.

Constructors

Placeholder !PositionInName 
NoPlaceholder !(Maybe PositionInName) e

The second argument is used only (but not always) for name parts other than underscores.

Instances

Functor MaybePlaceholder Source # 

Methods

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

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

Foldable MaybePlaceholder Source # 

Methods

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

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

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

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

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

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

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

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

toList :: MaybePlaceholder a -> [a] #

null :: MaybePlaceholder a -> Bool #

length :: MaybePlaceholder a -> Int #

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

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

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

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

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

Traversable MaybePlaceholder Source # 

Methods

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

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

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

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

Eq e => Eq (MaybePlaceholder e) Source # 
Data e => Data (MaybePlaceholder e) Source # 

Methods

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

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

toConstr :: MaybePlaceholder e -> Constr #

dataTypeOf :: MaybePlaceholder e -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord e => Ord (MaybePlaceholder e) Source # 
Show e => Show (MaybePlaceholder e) Source # 
NFData a => NFData (MaybePlaceholder a) Source # 

Methods

rnf :: MaybePlaceholder a -> () #

KillRange a => KillRange (MaybePlaceholder a) Source # 
HasRange a => HasRange (MaybePlaceholder a) Source # 
ExprLike a => ExprLike (MaybePlaceholder a) Source # 

noPlaceholder :: e -> MaybePlaceholder e Source #

An abbreviation: noPlaceholder = NoPlaceholder Nothing.

Interaction meta variables

newtype InteractionId Source #

Constructors

InteractionId 

Fields

Instances

Enum InteractionId Source # 
Eq InteractionId Source # 
Integral InteractionId Source # 
Data InteractionId Source # 

Methods

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

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

toConstr :: InteractionId -> Constr #

dataTypeOf :: InteractionId -> DataType #

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

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

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

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

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

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

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

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

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

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

Num InteractionId Source # 
Ord InteractionId Source # 
Real InteractionId Source # 
Show InteractionId Source # 
KillRange InteractionId Source # 
HasFresh InteractionId Source # 
ToConcrete InteractionId Expr Source # 

Import directive

data ImportDirective' a b Source #

The things you are allowed to say when you shuffle names between name spaces (i.e. in import, namespace, or open declarations).

Constructors

ImportDirective 

Fields

Instances

(Eq b, Eq a) => Eq (ImportDirective' a b) Source # 
(Data b, Data a) => Data (ImportDirective' a b) Source # 

Methods

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

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

toConstr :: ImportDirective' a b -> Constr #

dataTypeOf :: ImportDirective' a b -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (ImportDirective' a b)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ImportDirective' a b)) #

gmapT :: (forall c. Data c => c -> c) -> ImportDirective' a b -> ImportDirective' a b #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ImportDirective' a b -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ImportDirective' a b -> r #

gmapQ :: (forall d. Data d => d -> u) -> ImportDirective' a b -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ImportDirective' a b -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ImportDirective' a b -> m (ImportDirective' a b) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ImportDirective' a b -> m (ImportDirective' a b) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ImportDirective' a b -> m (ImportDirective' a b) #

(NFData a, NFData b) => NFData (ImportDirective' a b) Source #

Ranges are not forced.

Methods

rnf :: ImportDirective' a b -> () #

(KillRange a, KillRange b) => KillRange (ImportDirective' a b) Source # 
(HasRange a, HasRange b) => HasRange (ImportDirective' a b) Source # 

data Using' a b Source #

Constructors

UseEverything 
Using [ImportedName' a b] 

Instances

(Eq b, Eq a) => Eq (Using' a b) Source # 

Methods

(==) :: Using' a b -> Using' a b -> Bool #

(/=) :: Using' a b -> Using' a b -> Bool #

(Data b, Data a) => Data (Using' a b) Source # 

Methods

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

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

toConstr :: Using' a b -> Constr #

dataTypeOf :: Using' a b -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (Using' a b)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Using' a b)) #

gmapT :: (forall c. Data c => c -> c) -> Using' a b -> Using' a b #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Using' a b -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Using' a b -> r #

gmapQ :: (forall d. Data d => d -> u) -> Using' a b -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Using' a b -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Using' a b -> m (Using' a b) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Using' a b -> m (Using' a b) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Using' a b -> m (Using' a b) #

Semigroup (Using' a b) Source # 

Methods

(<>) :: Using' a b -> Using' a b -> Using' a b #

sconcat :: NonEmpty (Using' a b) -> Using' a b #

stimes :: Integral b => b -> Using' a b -> Using' a b #

Monoid (Using' a b) Source # 

Methods

mempty :: Using' a b #

mappend :: Using' a b -> Using' a b -> Using' a b #

mconcat :: [Using' a b] -> Using' a b #

(NFData a, NFData b) => NFData (Using' a b) Source # 

Methods

rnf :: Using' a b -> () #

(KillRange a, KillRange b) => KillRange (Using' a b) Source # 
(HasRange a, HasRange b) => HasRange (Using' a b) Source # 

Methods

getRange :: Using' a b -> Range Source #

defaultImportDir :: ImportDirective' a b Source #

Default is directive is private (use everything, but do not export).

data ImportedName' a b Source #

An imported name can be a module or a defined name

Constructors

ImportedModule b 
ImportedName a 

Instances

(Eq a, Eq b) => Eq (ImportedName' a b) Source # 

Methods

(==) :: ImportedName' a b -> ImportedName' a b -> Bool #

(/=) :: ImportedName' a b -> ImportedName' a b -> Bool #

(Data b, Data a) => Data (ImportedName' a b) Source # 

Methods

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

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

toConstr :: ImportedName' a b -> Constr #

dataTypeOf :: ImportedName' a b -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (ImportedName' a b)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ImportedName' a b)) #

gmapT :: (forall c. Data c => c -> c) -> ImportedName' a b -> ImportedName' a b #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ImportedName' a b -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ImportedName' a b -> r #

gmapQ :: (forall d. Data d => d -> u) -> ImportedName' a b -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ImportedName' a b -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ImportedName' a b -> m (ImportedName' a b) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ImportedName' a b -> m (ImportedName' a b) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ImportedName' a b -> m (ImportedName' a b) #

(Ord a, Ord b) => Ord (ImportedName' a b) Source # 
(Show a, Show b) => Show (ImportedName' a b) Source # 
(NFData a, NFData b) => NFData (ImportedName' a b) Source # 

Methods

rnf :: ImportedName' a b -> () #

(KillRange a, KillRange b) => KillRange (ImportedName' a b) Source # 
(HasRange a, HasRange b) => HasRange (ImportedName' a b) Source # 

data Renaming' a b Source #

Constructors

Renaming 

Fields

Instances

(Eq b, Eq a) => Eq (Renaming' a b) Source # 

Methods

(==) :: Renaming' a b -> Renaming' a b -> Bool #

(/=) :: Renaming' a b -> Renaming' a b -> Bool #

(Data b, Data a) => Data (Renaming' a b) Source # 

Methods

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

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

toConstr :: Renaming' a b -> Constr #

dataTypeOf :: Renaming' a b -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (Renaming' a b)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Renaming' a b)) #

gmapT :: (forall c. Data c => c -> c) -> Renaming' a b -> Renaming' a b #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Renaming' a b -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Renaming' a b -> r #

gmapQ :: (forall d. Data d => d -> u) -> Renaming' a b -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Renaming' a b -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Renaming' a b -> m (Renaming' a b) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Renaming' a b -> m (Renaming' a b) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Renaming' a b -> m (Renaming' a b) #

(NFData a, NFData b) => NFData (Renaming' a b) Source #

Ranges are not forced.

Methods

rnf :: Renaming' a b -> () #

(KillRange a, KillRange b) => KillRange (Renaming' a b) Source # 
(HasRange a, HasRange b) => HasRange (Renaming' a b) Source # 

Methods

getRange :: Renaming' a b -> Range Source #

HasRange instances

KillRange instances

NFData instances

Termination

data TerminationCheck m Source #

Termination check? (Default = TerminationCheck).

Constructors

TerminationCheck

Run the termination checker.

NoTerminationCheck

Skip termination checking (unsafe).

NonTerminating

Treat as non-terminating.

Terminating

Treat as terminating (unsafe). Same effect as NoTerminationCheck.

TerminationMeasure Range m

Skip termination checking but use measure instead.

Instances

Functor TerminationCheck Source # 

Methods

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

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

Eq m => Eq (TerminationCheck m) Source # 
Data m => Data (TerminationCheck m) Source # 

Methods

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

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

toConstr :: TerminationCheck m -> Constr #

dataTypeOf :: TerminationCheck m -> DataType #

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

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

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

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

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

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

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

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

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

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

Show m => Show (TerminationCheck m) Source # 
NFData a => NFData (TerminationCheck a) Source # 

Methods

rnf :: TerminationCheck a -> () #

KillRange m => KillRange (TerminationCheck m) Source # 

Positivity

type PositivityCheck = Bool Source #

Positivity check? (Default = True).