Agda-2.5.2.20170816: 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 # 

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 => ([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.

Relevance

data Big Source #

An constructor argument is big if the sort of its type is bigger than the sort of the data type. Only parameters (and maybe forced arguments) are allowed to be big. List : Set -> Set nil : (A : Set) -> List A A is big in constructor nil as the sort Set1 of its type Set is bigger than the sort Set of the data type List.

Constructors

Big 
Small 

Instances

Bounded Big Source # 

Methods

minBound :: Big #

maxBound :: Big #

Enum Big Source # 

Methods

succ :: Big -> Big #

pred :: Big -> Big #

toEnum :: Int -> Big #

fromEnum :: Big -> Int #

enumFrom :: Big -> [Big] #

enumFromThen :: Big -> Big -> [Big] #

enumFromTo :: Big -> Big -> [Big] #

enumFromThenTo :: Big -> Big -> Big -> [Big] #

Eq Big Source # 

Methods

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

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

Data Big Source # 

Methods

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

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

toConstr :: Big -> Constr #

dataTypeOf :: Big -> DataType #

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

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

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

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

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

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

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

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

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

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

Ord Big Source # 

Methods

compare :: Big -> Big -> Ordering #

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

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

(>) :: Big -> Big -> Bool #

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

max :: Big -> Big -> Big #

min :: Big -> Big -> Big #

Show Big Source # 

Methods

showsPrec :: Int -> Big -> ShowS #

show :: Big -> String #

showList :: [Big] -> ShowS #

NFData Big Source # 

Methods

rnf :: Big -> () #

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.

Forced Big

The argument can be skipped during equality checking because its value is already determined by the type. If a constructor argument is big, it has to be regarded absent, otherwise we get into paradoxes.

Instances

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 # 
Show Relevance Source # 
NFData Relevance Source # 

Methods

rnf :: Relevance -> () #

KillRange Relevance Source # 
LensRelevance Relevance Source # 
PrettyTCM Relevance Source # 
Unquote Relevance Source # 

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

Information ordering. Relevant `moreRelevant` Forced `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).

ignoreForced :: Relevance -> Relevance Source #

For comparing Relevance ignoring Forced.

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 #

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 #

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 # 
LensOrigin ArgInfo Source # 
LensRelevance 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 #

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 # 

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 # 
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 # 
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 # 
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 #

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 #

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 :: 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

NamesIn a => NamesIn (Arg a) Source # 

Methods

namesIn :: Arg a -> Set QName Source #

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

Methods

prettyTCM :: Arg a -> TCM Doc 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 #

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 #

ComputeOccurrences a => ComputeOccurrences (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 #

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 #

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 # 
AddContext Telescope Source # 

Methods

addContext :: MonadTCM tcm => Telescope -> tcm a -> tcm a Source #

contextSize :: Telescope -> Nat Source #

PrettyTCM Telescope Source # 
Reduce Telescope Source # 
Instantiate Telescope Source # 
DropArgs Telescope Source #

NOTE: This creates telescopes with unbound de Bruijn indices.

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

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 # 
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 # 
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 # 
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

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 => Dom (String, Type) -> tcm a -> tcm a Source #

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

AddContext (Dom (Name, Type)) Source # 

Methods

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

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

AddContext (Dom Type) Source # 

Methods

addContext :: MonadTCM tcm => Dom Type -> tcm a -> tcm a Source #

contextSize :: Dom Type -> Nat Source #

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

Methods

prettyTCM :: Dom a -> TCM Doc 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 #

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 #

ComputeOccurrences a => ComputeOccurrences (Dom a) 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 => ([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 => ([Name], Dom Type) -> tcm a -> tcm a Source #

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

AddContext (String, Dom Type) Source # 

Methods

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

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

AddContext (Name, Dom Type) Source # 

Methods

addContext :: MonadTCM 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 => (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 # 
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 # 
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 #

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 :: 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 # 
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 #

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 # 
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).

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.2.20170816-GHenzADqKzt4ualJbaFRMq" 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 # 
UnFreezeMeta MetaId Source # 

Methods

unfreezeMeta :: MetaId -> TCM () Source #

IsInstantiatedMeta MetaId Source # 
PrettyTCM 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).