| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Agda.TypeChecking.Monad.Base
Contents
Synopsis
- data TCState = TCSt {}
- class Monad m => ReadTCState m where
- data PreScopeState = PreScopeState {
- stPreTokens :: !CompressedFile
- stPreImports :: !Signature
- stPreImportedModules :: !(Set ModuleName)
- stPreModuleToSource :: !ModuleToSource
- stPreVisitedModules :: !VisitedModules
- stPreScope :: !ScopeInfo
- stPrePatternSyns :: !PatternSynDefns
- stPrePatternSynImports :: !PatternSynDefns
- stPrePragmaOptions :: !PragmaOptions
- stPreImportedBuiltins :: !(BuiltinThings PrimFun)
- stPreImportedDisplayForms :: !DisplayForms
- stPreImportedInstanceDefs :: !InstanceTable
- stPreForeignCode :: !(Map BackendName [ForeignCode])
- stPreFreshInteractionId :: !InteractionId
- stPreUserWarnings :: !(Map QName String)
- type DisambiguatedNames = IntMap QName
- data PostScopeState = PostScopeState {
- stPostSyntaxInfo :: !CompressedFile
- stPostDisambiguatedNames :: !DisambiguatedNames
- stPostMetaStore :: !MetaStore
- stPostInteractionPoints :: !InteractionPoints
- stPostAwakeConstraints :: !Constraints
- stPostSleepingConstraints :: !Constraints
- stPostDirty :: !Bool
- stPostOccursCheckDefs :: !(Set QName)
- stPostSignature :: !Signature
- stPostModuleCheckpoints :: !(Map ModuleName CheckpointId)
- stPostImportsDisplayForms :: !DisplayForms
- stPostCurrentModule :: !(Maybe ModuleName)
- stPostInstanceDefs :: !TempInstanceTable
- stPostStatistics :: !Statistics
- stPostTCWarnings :: ![TCWarning]
- stPostMutualBlocks :: !(Map MutualId MutualBlock)
- stPostLocalBuiltins :: !(BuiltinThings PrimFun)
- stPostFreshMetaId :: !MetaId
- stPostFreshMutualId :: !MutualId
- stPostFreshProblemId :: !ProblemId
- stPostFreshCheckpointId :: !CheckpointId
- stPostFreshInt :: !Int
- stPostFreshNameId :: !NameId
- stPostAreWeCaching :: !Bool
- data MutualBlock = MutualBlock {}
- data PersistentTCState = PersistentTCSt {}
- data LoadedFileCache = LoadedFileCache {}
- type CachedTypeCheckLog = [(TypeCheckAction, PostScopeState)]
- type CurrentTypeCheckLog = [(TypeCheckAction, PostScopeState)]
- data TypeCheckAction
- initPersistentState :: PersistentTCState
- initPreScopeState :: PreScopeState
- initPostScopeState :: PostScopeState
- initState :: TCState
- stTokens :: Lens' CompressedFile TCState
- stImports :: Lens' Signature TCState
- stImportedModules :: Lens' (Set ModuleName) TCState
- stModuleToSource :: Lens' ModuleToSource TCState
- stVisitedModules :: Lens' VisitedModules TCState
- stScope :: Lens' ScopeInfo TCState
- stPatternSyns :: Lens' PatternSynDefns TCState
- stPatternSynImports :: Lens' PatternSynDefns TCState
- stPragmaOptions :: Lens' PragmaOptions TCState
- stImportedBuiltins :: Lens' (BuiltinThings PrimFun) TCState
- stForeignCode :: Lens' (Map BackendName [ForeignCode]) TCState
- stFreshInteractionId :: Lens' InteractionId TCState
- stUserWarnings :: Lens' (Map QName String) TCState
- stBackends :: Lens' [Backend] TCState
- stFreshNameId :: Lens' NameId TCState
- stSyntaxInfo :: Lens' CompressedFile TCState
- stDisambiguatedNames :: Lens' DisambiguatedNames TCState
- stMetaStore :: Lens' MetaStore TCState
- stInteractionPoints :: Lens' InteractionPoints TCState
- stAwakeConstraints :: Lens' Constraints TCState
- stSleepingConstraints :: Lens' Constraints TCState
- stDirty :: Lens' Bool TCState
- stOccursCheckDefs :: Lens' (Set QName) TCState
- stSignature :: Lens' Signature TCState
- stModuleCheckpoints :: Lens' (Map ModuleName CheckpointId) TCState
- stImportsDisplayForms :: Lens' DisplayForms TCState
- stImportedDisplayForms :: Lens' DisplayForms TCState
- stCurrentModule :: Lens' (Maybe ModuleName) TCState
- stImportedInstanceDefs :: Lens' InstanceTable TCState
- stInstanceDefs :: Lens' TempInstanceTable TCState
- stStatistics :: Lens' Statistics TCState
- stTCWarnings :: Lens' [TCWarning] TCState
- stMutualBlocks :: Lens' (Map MutualId MutualBlock) TCState
- stLocalBuiltins :: Lens' (BuiltinThings PrimFun) TCState
- stFreshMetaId :: Lens' MetaId TCState
- stFreshMutualId :: Lens' MutualId TCState
- stFreshProblemId :: Lens' ProblemId TCState
- stFreshCheckpointId :: Lens' CheckpointId TCState
- stFreshInt :: Lens' Int TCState
- stAreWeCaching :: Lens' Bool TCState
- stBuiltinThings :: TCState -> BuiltinThings PrimFun
- class Enum i => HasFresh i where
- nextFresh :: HasFresh i => TCState -> (i, TCState)
- fresh :: (HasFresh i, MonadState TCState m) => m i
- newtype ProblemId = ProblemId Nat
- newtype CheckpointId = CheckpointId Int
- freshName :: MonadState TCState m => Range -> String -> m Name
- freshNoName :: MonadState TCState m => Range -> m Name
- freshNoName_ :: MonadState TCState m => m Name
- class FreshName a where
- type ModuleToSource = Map TopLevelModuleName AbsolutePath
- type SourceToModule = Map AbsolutePath TopLevelModuleName
- sourceToModule :: TCM SourceToModule
- lookupModuleFromSource :: AbsolutePath -> TCM (Maybe TopLevelModuleName)
- data ModuleInfo = ModuleInfo {}
- type VisitedModules = Map TopLevelModuleName ModuleInfo
- type DecodedModules = Map TopLevelModuleName Interface
- data ForeignCode = ForeignCode Range String
- data Interface = Interface {
- iSourceHash :: Hash
- iImportedModules :: [(ModuleName, Hash)]
- iModuleName :: ModuleName
- iScope :: Map ModuleName Scope
- iInsideScope :: ScopeInfo
- iSignature :: Signature
- iDisplayForms :: DisplayForms
- iUserWarnings :: Map QName String
- iBuiltin :: BuiltinThings (String, QName)
- iForeignCode :: Map BackendName [ForeignCode]
- iHighlighting :: HighlightingInfo
- iPragmaOptions :: [OptionsPragma]
- iPatternSyns :: PatternSynDefns
- iWarnings :: [TCWarning]
- iFullHash :: Interface -> Hash
- data Closure a = Closure {}
- buildClosure :: a -> TCM (Closure a)
- type Constraints = [ProblemConstraint]
- data ProblemConstraint = PConstr {}
- data Constraint
- = ValueCmp Comparison Type Term Term
- | ElimCmp [Polarity] [IsForced] Type Term [Elim] [Elim]
- | TypeCmp Comparison Type Type
- | TelCmp Type Type Comparison Telescope Telescope
- | SortCmp Comparison Sort Sort
- | LevelCmp Comparison Level Level
- | HasBiggerSort Sort
- | HasPTSRule Sort (Abs Sort)
- | UnBlock MetaId
- | Guarded Constraint ProblemId
- | IsEmpty Range Type
- | CheckSizeLtSat Term
- | FindInScope MetaId (Maybe MetaId) (Maybe [Candidate])
- | CheckFunDef Delayed DefInfo QName [Clause]
- data Comparison
- data CompareDirection
- fromCmp :: Comparison -> CompareDirection
- flipCmp :: CompareDirection -> CompareDirection
- dirToCmp :: (Comparison -> a -> a -> c) -> CompareDirection -> a -> a -> c
- data Open a = OpenThing {}
- data Judgement a
- data MetaVariable = MetaVar {}
- data Listener
- data Frozen
- data MetaInstantiation
- data CheckedTarget
- data TypeCheckingProblem
- newtype MetaPriority = MetaPriority Int
- data RunMetaOccursCheck
- data MetaInfo = MetaInfo {}
- type MetaNameSuggestion = String
- data NamedMeta = NamedMeta {}
- type MetaStore = Map MetaId MetaVariable
- normalMetaPriority :: MetaPriority
- lowMetaPriority :: MetaPriority
- highMetaPriority :: MetaPriority
- getMetaInfo :: MetaVariable -> Closure Range
- getMetaScope :: MetaVariable -> ScopeInfo
- getMetaEnv :: MetaVariable -> TCEnv
- getMetaSig :: MetaVariable -> Signature
- getMetaRelevance :: MetaVariable -> Relevance
- data InteractionPoint = InteractionPoint {}
- type InteractionPoints = Map InteractionId InteractionPoint
- data IPClause
- = IPClause { }
- | IPNoClause
- data Signature = Sig {}
- sigSections :: Lens' Sections Signature
- sigDefinitions :: Lens' Definitions Signature
- sigRewriteRules :: Lens' RewriteRuleMap Signature
- type Sections = Map ModuleName Section
- type Definitions = HashMap QName Definition
- type RewriteRuleMap = HashMap QName RewriteRules
- type DisplayForms = HashMap QName [LocalDisplayForm]
- newtype Section = Section {}
- secTelescope :: Lens' Telescope Section
- emptySignature :: Signature
- data DisplayForm = Display {
- dfFreeVars :: Nat
- dfPats :: Elims
- dfRHS :: DisplayTerm
- type LocalDisplayForm = Open DisplayForm
- data DisplayTerm
- = DWithApp DisplayTerm [DisplayTerm] Elims
- | DCon ConHead ConInfo [Arg DisplayTerm]
- | DDef QName [Elim' DisplayTerm]
- | DDot Term
- | DTerm Term
- defaultDisplayForm :: QName -> [LocalDisplayForm]
- defRelevance :: Definition -> Relevance
- data NLPat
- type PElims = [Elim' NLPat]
- data NLPType = NLPType {}
- type RewriteRules = [RewriteRule]
- data RewriteRule = RewriteRule {}
- data Definition = Defn {}
- theDefLens :: Lens' Defn Definition
- defaultDefn :: ArgInfo -> QName -> Type -> Defn -> Definition
- data Polarity
- data IsForced
- data CompilerPragma = CompilerPragma Range String
- type BackendName = String
- jsBackendName :: BackendName
- ghcBackendName :: BackendName
- uhcBackendName :: BackendName
- type CompiledRepresentation = Map BackendName [CompilerPragma]
- noCompiledRep :: CompiledRepresentation
- data ExtLamInfo = ExtLamInfo {}
- data Projection = Projection {}
- newtype ProjLams = ProjLams {
- getProjLams :: [Arg ArgName]
- projDropPars :: Projection -> ProjOrigin -> Term
- projArgInfo :: Projection -> ArgInfo
- data EtaEquality
- = Specified {
- theEtaEquality :: !HasEta
- | Inferred {
- theEtaEquality :: !HasEta
- = Specified {
- setEtaEquality :: EtaEquality -> HasEta -> EtaEquality
- data FunctionFlag
- data Defn
- = Axiom
- | AbstractDefn Defn
- | Function {
- funClauses :: [Clause]
- funCompiled :: Maybe CompiledClauses
- funTreeless :: Maybe Compiled
- funInv :: FunctionInverse
- funMutual :: Maybe [QName]
- funAbstr :: IsAbstract
- funDelayed :: Delayed
- funProjection :: Maybe Projection
- funFlags :: Set FunctionFlag
- funTerminates :: Maybe Bool
- funExtLam :: Maybe ExtLamInfo
- funWith :: Maybe QName
- funCopatternLHS :: Bool
- | Datatype {
- dataPars :: Nat
- dataIxs :: Nat
- dataInduction :: Induction
- dataClause :: Maybe Clause
- dataCons :: [QName]
- dataSort :: Sort
- dataMutual :: Maybe [QName]
- dataAbstr :: IsAbstract
- | Record {
- recPars :: Nat
- recClause :: Maybe Clause
- recConHead :: ConHead
- recNamedCon :: Bool
- recFields :: [Arg QName]
- recTel :: Telescope
- recMutual :: Maybe [QName]
- recEtaEquality' :: EtaEquality
- recInduction :: Maybe Induction
- recAbstr :: IsAbstract
- | Constructor { }
- | Primitive { }
- recRecursive :: Defn -> Bool
- recEtaEquality :: Defn -> HasEta
- emptyFunction :: Defn
- funFlag :: FunctionFlag -> Lens' Bool Defn
- funStatic :: Lens' Bool Defn
- funInline :: Lens' Bool Defn
- funMacro :: Lens' Bool Defn
- isMacro :: Defn -> Bool
- isEmptyFunction :: Defn -> Bool
- isCopatternLHS :: [Clause] -> Bool
- recCon :: Defn -> QName
- defIsRecord :: Defn -> Bool
- defIsDataOrRecord :: Defn -> Bool
- defConstructors :: Defn -> [QName]
- newtype Fields = Fields [(Name, Type)]
- data Simplification
- data Reduced no yes
- = NoReduction no
- | YesReduction Simplification yes
- data IsReduced
- = NotReduced
- | Reduced (Blocked ())
- data MaybeReduced a = MaybeRed {
- isReduced :: IsReduced
- ignoreReduced :: a
- type MaybeReducedArgs = [MaybeReduced (Arg Term)]
- type MaybeReducedElims = [MaybeReduced Elim]
- notReduced :: a -> MaybeReduced a
- reduced :: Blocked (Arg Term) -> MaybeReduced (Arg Term)
- data AllowedReduction
- type AllowedReductions = [AllowedReduction]
- allReductions :: AllowedReductions
- data PrimFun = PrimFun {
- primFunName :: QName
- primFunArity :: Arity
- primFunImplementation :: [Arg Term] -> ReduceM (Reduced MaybeReducedArgs Term)
- defClauses :: Definition -> [Clause]
- defCompiled :: Definition -> Maybe CompiledClauses
- defParameters :: Definition -> Maybe Nat
- defInverse :: Definition -> FunctionInverse
- defCompilerPragmas :: BackendName -> Definition -> [CompilerPragma]
- defDelayed :: Definition -> Delayed
- defNonterminating :: Definition -> Bool
- defTerminationUnconfirmed :: Definition -> Bool
- defAbstract :: Definition -> IsAbstract
- defForced :: Definition -> [IsForced]
- type FunctionInverse = FunctionInverse' Clause
- type InversionMap c = Map TermHead [c]
- data FunctionInverse' c
- = NotInjective
- | Inverse (InversionMap c)
- data TermHead
- newtype MutualId = MutId Int32
- type Statistics = Map String Integer
- data Call
- = CheckClause Type SpineClause
- | CheckPattern Pattern Telescope Type
- | CheckLetBinding LetBinding
- | InferExpr Expr
- | CheckExprCall Expr Type
- | CheckDotPattern Expr Term
- | CheckPatternShadowing SpineClause
- | CheckProjection Range QName Type
- | IsTypeCall Expr Sort
- | IsType_ Expr
- | InferVar Name
- | InferDef QName
- | CheckArguments Range [NamedArg Expr] Type (Maybe Type)
- | CheckTargetType Range Type Type
- | CheckDataDef Range Name [LamBinding] [Constructor]
- | CheckRecDef Range Name [LamBinding] [Constructor]
- | CheckConstructor QName Telescope Sort Constructor
- | CheckFunDefCall Range Name [Clause]
- | CheckPragma Range Pragma
- | CheckPrimitive Range Name Expr
- | CheckIsEmpty Range Type
- | CheckWithFunctionType Expr
- | CheckSectionApplication Range ModuleName ModuleApplication
- | CheckNamedWhere ModuleName
- | ScopeCheckExpr Expr
- | ScopeCheckDeclaration NiceDeclaration
- | ScopeCheckLHS QName Pattern
- | NoHighlighting
- | ModuleContents
- | SetRange Range
- type InstanceTable = Map QName (Set QName)
- type TempInstanceTable = (InstanceTable, Set QName)
- data BuiltinDescriptor
- = BuiltinData (TCM Type) [String]
- | BuiltinDataCons (TCM Type)
- | BuiltinPrim String (Term -> TCM ())
- | BuiltinPostulate Relevance (TCM Type)
- | BuiltinUnknown (Maybe (TCM Type)) (Term -> Type -> TCM ())
- data BuiltinInfo = BuiltinInfo {}
- type BuiltinThings pf = Map String (Builtin pf)
- data Builtin pf
- data HighlightingLevel
- data HighlightingMethod
- ifTopLevelAndHighlightingLevelIsOr :: MonadTCM tcm => HighlightingLevel -> Bool -> tcm () -> tcm ()
- ifTopLevelAndHighlightingLevelIs :: MonadTCM tcm => HighlightingLevel -> tcm () -> tcm ()
- data TCEnv = TCEnv {
- envContext :: Context
- envLetBindings :: LetBindings
- envCurrentModule :: ModuleName
- envCurrentPath :: Maybe AbsolutePath
- envAnonymousModules :: [(ModuleName, Nat)]
- envImportPath :: [TopLevelModuleName]
- envMutualBlock :: Maybe MutualId
- envTerminationCheck :: TerminationCheck ()
- envSolvingConstraints :: Bool
- envCheckingWhere :: Bool
- envWorkingOnTypes :: Bool
- envAssignMetas :: Bool
- envActiveProblems :: Set ProblemId
- envAbstractMode :: AbstractMode
- envRelevance :: Relevance
- envDisplayFormsEnabled :: Bool
- envRange :: Range
- envHighlightingRange :: Range
- envClause :: IPClause
- envCall :: Maybe (Closure Call)
- envHighlightingLevel :: HighlightingLevel
- envHighlightingMethod :: HighlightingMethod
- envModuleNestingLevel :: !Int
- envAllowDestructiveUpdate :: Bool
- envExpandLast :: ExpandHidden
- envAppDef :: Maybe QName
- envSimplification :: Simplification
- envAllowedReductions :: AllowedReductions
- envInjectivityDepth :: Int
- envCompareBlocked :: Bool
- envPrintDomainFreePi :: Bool
- envPrintMetasBare :: Bool
- envInsideDotPattern :: Bool
- envUnquoteFlags :: UnquoteFlags
- envInstanceDepth :: !Int
- envIsDebugPrinting :: Bool
- envPrintingPatternLambdas :: [QName]
- envCallByNeed :: Bool
- envCurrentCheckpoint :: CheckpointId
- envCheckpoints :: Map CheckpointId Substitution
- initEnv :: TCEnv
- disableDestructiveUpdate :: TCM a -> TCM a
- data UnquoteFlags = UnquoteFlags {}
- defaultUnquoteFlags :: UnquoteFlags
- unquoteNormalise :: Lens' Bool UnquoteFlags
- eUnquoteNormalise :: Lens' Bool TCEnv
- eContext :: Lens' Context TCEnv
- eLetBindings :: Lens' LetBindings TCEnv
- eCurrentModule :: Lens' ModuleName TCEnv
- eCurrentPath :: Lens' (Maybe AbsolutePath) TCEnv
- eAnonymousModules :: Lens' [(ModuleName, Nat)] TCEnv
- eImportPath :: Lens' [TopLevelModuleName] TCEnv
- eMutualBlock :: Lens' (Maybe MutualId) TCEnv
- eTerminationCheck :: Lens' (TerminationCheck ()) TCEnv
- eSolvingConstraints :: Lens' Bool TCEnv
- eCheckingWhere :: Lens' Bool TCEnv
- eWorkingOnTypes :: Lens' Bool TCEnv
- eAssignMetas :: Lens' Bool TCEnv
- eActiveProblems :: Lens' (Set ProblemId) TCEnv
- eAbstractMode :: Lens' AbstractMode TCEnv
- eRelevance :: Lens' Relevance TCEnv
- eDisplayFormsEnabled :: Lens' Bool TCEnv
- eRange :: Lens' Range TCEnv
- eHighlightingRange :: Lens' Range TCEnv
- eCall :: Lens' (Maybe (Closure Call)) TCEnv
- eHighlightingLevel :: Lens' HighlightingLevel TCEnv
- eHighlightingMethod :: Lens' HighlightingMethod TCEnv
- eModuleNestingLevel :: Lens' Int TCEnv
- eAllowDestructiveUpdate :: Lens' Bool TCEnv
- eExpandLast :: Lens' ExpandHidden TCEnv
- eAppDef :: Lens' (Maybe QName) TCEnv
- eSimplification :: Lens' Simplification TCEnv
- eAllowedReductions :: Lens' AllowedReductions TCEnv
- eInjectivityDepth :: Lens' Int TCEnv
- eCompareBlocked :: Lens' Bool TCEnv
- ePrintDomainFreePi :: Lens' Bool TCEnv
- eInsideDotPattern :: Lens' Bool TCEnv
- eUnquoteFlags :: Lens' UnquoteFlags TCEnv
- eInstanceDepth :: Lens' Int TCEnv
- eIsDebugPrinting :: Lens' Bool TCEnv
- ePrintingPatternLambdas :: Lens' [QName] TCEnv
- eCallByNeed :: Lens' Bool TCEnv
- eCurrentCheckpoint :: Lens' CheckpointId TCEnv
- eCheckpoints :: Lens' (Map CheckpointId Substitution) TCEnv
- type Context = [ContextEntry]
- type ContextEntry = Dom (Name, Type)
- type LetBindings = Map Name (Open (Term, Dom Type))
- data AbstractMode
- aDefToMode :: IsAbstract -> AbstractMode
- aModeToDef :: AbstractMode -> IsAbstract
- data ExpandHidden
- data ExplicitToInstance
- data Candidate = Candidate {}
- data Warning
- = NicifierIssue DeclarationWarning
- | TerminationIssue [TerminationError]
- | UnreachableClauses QName [[NamedArg DeBruijnPattern]]
- | CoverageIssue QName [(Telescope, [NamedArg DeBruijnPattern])]
- | CoverageNoExactSplit QName [Clause]
- | NotStrictlyPositive QName OccursWhere
- | UnsolvedMetaVariables [Range]
- | UnsolvedInteractionMetas [Range]
- | UnsolvedConstraints Constraints
- | OldBuiltin String String
- | EmptyRewritePragma
- | UselessPublic
- | UselessInline QName
- | InversionDepthReached QName
- | GenericWarning Doc
- | GenericNonFatalError Doc
- | SafeFlagPostulate Name
- | SafeFlagPragma [String]
- | SafeFlagNonTerminating
- | SafeFlagTerminating
- | SafeFlagPrimTrustMe
- | SafeFlagNoPositivityCheck
- | SafeFlagPolarity
- | ParseWarning ParseWarning
- | DeprecationWarning String String String
- | UserWarning String
- warningName :: Warning -> WarningName
- data TCWarning = TCWarning {}
- tcWarningOrigin :: TCWarning -> SrcFile
- equalHeadConstructors :: Warning -> Warning -> Bool
- getPartialDefs :: ReadTCState tcm => tcm [QName]
- data CallInfo = CallInfo {}
- data TerminationError = TerminationError {
- termErrFunctions :: [QName]
- termErrCalls :: [CallInfo]
- data SplitError
- data NegativeUnification
- data UnificationFailure
- data UnquoteError
- data TypeError
- = InternalError String
- | NotImplemented String
- | NotSupported String
- | CompilationError String
- | TerminationCheckFailed [TerminationError]
- | PropMustBeSingleton
- | DataMustEndInSort Term
- | ShouldEndInApplicationOfTheDatatype Type
- | ShouldBeAppliedToTheDatatypeParameters Term Term
- | ShouldBeApplicationOf Type QName
- | ConstructorPatternInWrongDatatype QName QName
- | CantResolveOverloadedConstructorsTargetingSameDatatype QName [QName]
- | DoesNotConstructAnElementOf QName Type
- | DifferentArities
- | WrongHidingInLHS
- | WrongHidingInLambda Type
- | WrongHidingInApplication Type
- | WrongNamedArgument (NamedArg Expr)
- | WrongIrrelevanceInLambda
- | WrongInstanceDeclaration
- | HidingMismatch Hiding Hiding
- | RelevanceMismatch Relevance Relevance
- | UninstantiatedDotPattern Expr
- | ForcedConstructorNotInstantiated Pattern
- | IlltypedPattern Pattern Type
- | IllformedProjectionPattern Pattern
- | CannotEliminateWithPattern (NamedArg Pattern) Type
- | WrongNumberOfConstructorArguments QName Nat Nat
- | ShouldBeEmpty Type [DeBruijnPattern]
- | ShouldBeASort Type
- | ShouldBePi Type
- | ShouldBeRecordType Type
- | ShouldBeRecordPattern DeBruijnPattern
- | NotAProjectionPattern (NamedArg Pattern)
- | NotAProperTerm
- | SetOmegaNotValidType
- | InvalidTypeSort Sort
- | InvalidType Term
- | FunctionTypeInSizeUniv Term
- | SplitOnIrrelevant (Dom Type)
- | SplitOnNonVariable Term Type
- | DefinitionIsIrrelevant QName
- | VariableIsIrrelevant Name
- | UnequalTerms Comparison Term Term Type
- | UnequalTypes Comparison Type Type
- | UnequalRelevance Comparison Term Term
- | UnequalHiding Term Term
- | UnequalSorts Sort Sort
- | UnequalBecauseOfUniverseConflict Comparison Term Term
- | NotLeqSort Sort Sort
- | MetaCannotDependOn MetaId [Nat] Nat
- | MetaOccursInItself MetaId
- | MetaIrrelevantSolution MetaId Term
- | GenericError String
- | GenericDocError Doc
- | BuiltinMustBeConstructor String Expr
- | NoSuchBuiltinName String
- | DuplicateBuiltinBinding String Term Term
- | NoBindingForBuiltin String
- | NoSuchPrimitiveFunction String
- | ShadowedModule Name [ModuleName]
- | BuiltinInParameterisedModule String
- | IllegalLetInTelescope TypedBinding
- | NoRHSRequiresAbsurdPattern [NamedArg Pattern]
- | AbsurdPatternRequiresNoRHS [NamedArg Pattern]
- | TooFewFields QName [Name]
- | TooManyFields QName [Name]
- | DuplicateFields [Name]
- | DuplicateConstructors [Name]
- | WithOnFreeVariable Expr Term
- | UnexpectedWithPatterns [Pattern]
- | WithClausePatternMismatch Pattern (NamedArg DeBruijnPattern)
- | FieldOutsideRecord
- | ModuleArityMismatch ModuleName Telescope [NamedArg Expr]
- | SplitError SplitError
- | ImpossibleConstructor QName NegativeUnification
- | TooManyPolarities QName Int
- | LocalVsImportedModuleClash ModuleName
- | SolvedButOpenHoles
- | CyclicModuleDependency [TopLevelModuleName]
- | FileNotFound TopLevelModuleName [AbsolutePath]
- | OverlappingProjects AbsolutePath TopLevelModuleName TopLevelModuleName
- | AmbiguousTopLevelModuleName TopLevelModuleName [AbsolutePath]
- | ModuleNameUnexpected TopLevelModuleName TopLevelModuleName
- | ModuleNameDoesntMatchFileName TopLevelModuleName [AbsolutePath]
- | ClashingFileNamesFor ModuleName [AbsolutePath]
- | ModuleDefinedInOtherFile TopLevelModuleName AbsolutePath AbsolutePath
- | BothWithAndRHS
- | AbstractConstructorNotInScope QName
- | NotInScope [QName]
- | NoSuchModule QName
- | AmbiguousName QName (NonemptyList QName)
- | AmbiguousModule QName (NonemptyList ModuleName)
- | UninstantiatedModule QName
- | ClashingDefinition QName QName
- | ClashingModule ModuleName ModuleName
- | ClashingImport Name QName
- | ClashingModuleImport Name ModuleName
- | PatternShadowsConstructor Name QName
- | ModuleDoesntExport QName [ImportedName]
- | DuplicateImports QName [ImportedName]
- | InvalidPattern Pattern
- | RepeatedVariablesInPattern [Name]
- | NotAModuleExpr Expr
- | NotAnExpression Expr
- | NotAValidLetBinding NiceDeclaration
- | NotValidBeforeField NiceDeclaration
- | NothingAppliedToHiddenArg Expr
- | NothingAppliedToInstanceArg Expr
- | BadArgumentsToPatternSynonym AmbiguousQName
- | TooFewArgumentsToPatternSynonym AmbiguousQName
- | CannotResolveAmbiguousPatternSynonym (NonemptyList (QName, PatternSynDefn))
- | UnusedVariableInPatternSynonym
- | NoParseForApplication [Expr]
- | AmbiguousParseForApplication [Expr] [Expr]
- | NoParseForLHS LHSOrPatSyn Pattern
- | AmbiguousParseForLHS LHSOrPatSyn Pattern [Pattern]
- | OperatorInformation [NotationSection] TypeError
- | IFSNoCandidateInScope Type
- | UnquoteFailed UnquoteError
- | DeBruijnIndexOutOfScope Nat Telescope [Name]
- | NeedOptionCopatterns
- | NeedOptionRewriting
- | NonFatalErrors [TCWarning]
- | InstanceSearchDepthExhausted Term Type Int
- data LHSOrPatSyn
- data TCErr
- class (Functor m, Applicative m, Monad m) => HasOptions m where
- data ReduceEnv = ReduceEnv {}
- mapRedEnv :: (TCEnv -> TCEnv) -> ReduceEnv -> ReduceEnv
- mapRedSt :: (TCState -> TCState) -> ReduceEnv -> ReduceEnv
- mapRedEnvSt :: (TCEnv -> TCEnv) -> (TCState -> TCState) -> ReduceEnv -> ReduceEnv
- reduceEnv :: Lens' TCEnv ReduceEnv
- reduceSt :: Lens' TCState ReduceEnv
- newtype ReduceM a = ReduceM {}
- onReduceEnv :: (ReduceEnv -> ReduceEnv) -> ReduceM a -> ReduceM a
- fmapReduce :: (a -> b) -> ReduceM a -> ReduceM b
- apReduce :: ReduceM (a -> b) -> ReduceM a -> ReduceM b
- bindReduce :: ReduceM a -> (a -> ReduceM b) -> ReduceM b
- runReduceM :: ReduceM a -> TCM a
- runReduceF :: (a -> ReduceM b) -> TCM (a -> b)
- newtype TCMT m a = TCM {}
- type TCM = TCMT IO
- class (Applicative tcm, MonadIO tcm, MonadReader TCEnv tcm, MonadState TCState tcm, HasOptions tcm) => MonadTCM tcm where
- type IM = TCMT (InputT IO)
- runIM :: IM a -> TCM a
- catchError_ :: TCM a -> (TCErr -> TCM a) -> TCM a
- finally_ :: TCM a -> TCM b -> TCM a
- mapTCMT :: (forall a. m a -> n a) -> TCMT m a -> TCMT n a
- pureTCM :: MonadIO m => (TCState -> TCEnv -> a) -> TCMT m a
- returnTCMT :: MonadIO m => a -> TCMT m a
- bindTCMT :: MonadIO m => TCMT m a -> (a -> TCMT m b) -> TCMT m b
- thenTCMT :: MonadIO m => TCMT m a -> TCMT m b -> TCMT m b
- fmapTCMT :: MonadIO m => (a -> b) -> TCMT m a -> TCMT m b
- apTCMT :: MonadIO m => TCMT m (a -> b) -> TCMT m a -> TCMT m b
- patternViolation :: TCM a
- internalError :: MonadTCM tcm => String -> tcm a
- genericError :: MonadTCM tcm => String -> tcm a
- genericDocError :: MonadTCM tcm => Doc -> tcm a
- typeError :: MonadTCM tcm => TypeError -> tcm a
- typeError_ :: MonadTCM tcm => TypeError -> tcm TCErr
- runTCM :: MonadIO m => TCEnv -> TCState -> TCMT m a -> m (a, TCState)
- runTCMTop :: TCM a -> IO (Either TCErr a)
- runTCMTop' :: MonadIO m => TCMT m a -> m a
- runSafeTCM :: TCM a -> TCState -> IO (a, TCState)
- forkTCM :: TCM a -> TCM ()
- extendedLambdaName :: String
- absurdLambdaName :: String
- isAbsurdLambdaName :: QName -> Bool
Type checking state
Constructors
| TCSt | |
Fields
| |
Instances
class Monad m => ReadTCState m where #
Minimal complete definition
Methods
getTCState :: m TCState #
Instances
| ReadTCState ReduceM # | |
Defined in Agda.TypeChecking.Monad.Base Methods | |
| MonadIO m => ReadTCState (TCMT m) # | |
Defined in Agda.TypeChecking.Monad.Base Methods getTCState :: TCMT m TCState # | |
data PreScopeState #
Constructors
| PreScopeState | |
Fields
| |
type DisambiguatedNames = IntMap QName #
data PostScopeState #
Constructors
| PostScopeState | |
Fields
| |
data MutualBlock #
A mutual block of names in the signature.
Constructors
| MutualBlock | |
Fields
| |
Instances
| Eq MutualBlock # | |
Defined in Agda.TypeChecking.Monad.Base | |
| Show MutualBlock # | |
Defined in Agda.TypeChecking.Monad.Base Methods showsPrec :: Int -> MutualBlock -> ShowS # show :: MutualBlock -> String # showList :: [MutualBlock] -> ShowS # | |
| Null MutualBlock # | |
Defined in Agda.TypeChecking.Monad.Base | |
data PersistentTCState #
A part of the state which is not reverted when an error is thrown or the state is reset.
Constructors
| PersistentTCSt | |
Fields
| |
Instances
data LoadedFileCache #
Constructors
| LoadedFileCache | |
Fields | |
type CachedTypeCheckLog = [(TypeCheckAction, PostScopeState)] #
A log of what the type checker does and states after the action is completed. The cached version is stored first executed action first.
type CurrentTypeCheckLog = [(TypeCheckAction, PostScopeState)] #
Like CachedTypeCheckLog, but storing the log for an ongoing type
checking of a module. Stored in reverse order (last performed action
first).
data TypeCheckAction #
A complete log for a module will look like this:
PragmasEnterSection, entering the main module.- 'Decl'/'EnterSection'/'LeaveSection', for declarations and nested modules
LeaveSection, leaving the main module.
Constructors
| EnterSection !ModuleInfo !ModuleName ![TypedBindings] | |
| LeaveSection !ModuleName | |
| Decl !Declaration | Never a Section or ScopeDecl |
| Pragmas !PragmaOptions |
initPersistentState :: PersistentTCState #
Empty persistent state.
initPreScopeState :: PreScopeState #
Empty state of type checker.
st-prefixed lenses
stForeignCode :: Lens' (Map BackendName [ForeignCode]) TCState #
stBackends :: Lens' [Backend] TCState #
stTCWarnings :: Lens' [TCWarning] TCState #
stFreshInt :: Lens' Int TCState #
Fresh things
class Enum i => HasFresh i where #
Minimal complete definition
Instances
| HasFresh Int # | |
Defined in Agda.TypeChecking.Monad.Base | |
| HasFresh InteractionId # | |
Defined in Agda.TypeChecking.Monad.Base | |
| HasFresh MetaId # | |
Defined in Agda.TypeChecking.Monad.Base | |
| HasFresh NameId # | |
Defined in Agda.TypeChecking.Monad.Base | |
| HasFresh MutualId # | |
Defined in Agda.TypeChecking.Monad.Base | |
| HasFresh CheckpointId # | |
Defined in Agda.TypeChecking.Monad.Base | |
| HasFresh ProblemId # | |
Defined in Agda.TypeChecking.Monad.Base | |
fresh :: (HasFresh i, MonadState TCState m) => m i #
Instances
newtype CheckpointId #
Constructors
| CheckpointId Int |
Instances
freshNoName :: MonadState TCState m => Range -> m Name #
freshNoName_ :: MonadState TCState m => m Name #
Create a fresh name from a.
Minimal complete definition
Methods
freshName_ :: MonadState TCState m => a -> m Name #
Instances
| FreshName () # | |
Defined in Agda.TypeChecking.Monad.Base Methods freshName_ :: MonadState TCState m => () -> m Name # | |
| FreshName String # | |
Defined in Agda.TypeChecking.Monad.Base Methods freshName_ :: MonadState TCState m => String -> m Name # | |
| FreshName Range # | |
Defined in Agda.TypeChecking.Monad.Base Methods freshName_ :: MonadState TCState m => Range -> m Name # | |
| FreshName (Range, String) # | |
Defined in Agda.TypeChecking.Monad.Base Methods freshName_ :: MonadState TCState m => (Range, String) -> m Name # | |
Managing file names
type ModuleToSource = Map TopLevelModuleName AbsolutePath #
Maps top-level module names to the corresponding source file names.
type SourceToModule = Map AbsolutePath TopLevelModuleName #
Maps source file names to the corresponding top-level module names.
sourceToModule :: TCM SourceToModule #
Creates a SourceToModule map based on stModuleToSource.
O(n log n).
For a single reverse lookup in stModuleToSource,
rather use lookupModuleFromSourse.
lookupModuleFromSource :: AbsolutePath -> TCM (Maybe TopLevelModuleName) #
Lookup an AbsolutePath in sourceToModule.
O(n).
Interface
data ModuleInfo #
Constructors
| ModuleInfo | |
Fields
| |
data ForeignCode #
Constructors
| ForeignCode Range String |
Instances
| Show ForeignCode # | |
Defined in Agda.TypeChecking.Monad.Base Methods showsPrec :: Int -> ForeignCode -> ShowS # show :: ForeignCode -> String # showList :: [ForeignCode] -> ShowS # | |
| EmbPrj ForeignCode # | |
Defined in Agda.TypeChecking.Serialise.Instances.Compilers Methods icode :: ForeignCode -> S Int32 # icod_ :: ForeignCode -> S Int32 # value :: Int32 -> R ForeignCode # | |
Constructors
| Interface | |
Fields
| |
Instances
| Show Interface # | |
| Pretty Interface # | |
Defined in Agda.TypeChecking.Monad.Base | |
| EmbPrj Interface # | |
| InstantiateFull Interface # | |
Defined in Agda.TypeChecking.Reduce Methods | |
iFullHash :: Interface -> Hash #
Combines the source hash and the (full) hashes of the imported modules.
Closure
Constructors
| Closure | |
Fields
| |
Instances
| Functor Closure # | |
| Foldable Closure # | |
Defined in Agda.TypeChecking.Monad.Base Methods fold :: Monoid m => Closure m -> m # foldMap :: Monoid m => (a -> m) -> Closure a -> m # foldr :: (a -> b -> b) -> b -> Closure a -> b # foldr' :: (a -> b -> b) -> b -> Closure a -> b # foldl :: (b -> a -> b) -> b -> Closure a -> b # foldl' :: (b -> a -> b) -> b -> Closure a -> b # foldr1 :: (a -> a -> a) -> Closure a -> a # foldl1 :: (a -> a -> a) -> Closure a -> a # elem :: Eq a => a -> Closure a -> Bool # maximum :: Ord a => Closure a -> a # minimum :: Ord a => Closure a -> a # | |
| Reify ProblemConstraint (Closure (OutputForm Expr Expr)) # | |
Defined in Agda.Interaction.BasicOps Methods reify :: ProblemConstraint -> TCM (Closure (OutputForm Expr Expr)) # reifyWhen :: Bool -> ProblemConstraint -> TCM (Closure (OutputForm Expr Expr)) # | |
| Data a => Data (Closure a) # | |
Defined in Agda.TypeChecking.Monad.Base Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Closure a -> c (Closure a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Closure a) # toConstr :: Closure a -> Constr # dataTypeOf :: Closure a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Closure a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Closure a)) # gmapT :: (forall b. Data b => b -> b) -> Closure a -> Closure a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Closure a -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Closure a -> r # gmapQ :: (forall d. Data d => d -> u) -> Closure a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Closure a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Closure a -> m (Closure a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Closure a -> m (Closure a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Closure a -> m (Closure a) # | |
| Show a => Show (Closure a) # | |
| HasRange a => HasRange (Closure a) # | |
Defined in Agda.TypeChecking.Monad.Base | |
| PrettyTCM a => PrettyTCM (Closure a) # | |
| MentionsMeta a => MentionsMeta (Closure a) # | |
Defined in Agda.TypeChecking.MetaVars.Mention Methods mentionsMeta :: MetaId -> Closure a -> Bool # | |
| InstantiateFull a => InstantiateFull (Closure a) # | |
Defined in Agda.TypeChecking.Reduce Methods instantiateFull' :: Closure a -> ReduceM (Closure a) # | |
| Normalise a => Normalise (Closure a) # | |
Defined in Agda.TypeChecking.Reduce Methods normalise' :: Closure a -> ReduceM (Closure a) # | |
| Simplify a => Simplify (Closure a) # | |
| Reduce a => Reduce (Closure a) # | |
| Instantiate a => Instantiate (Closure a) # | |
Defined in Agda.TypeChecking.Reduce Methods instantiate' :: Closure a -> ReduceM (Closure a) # | |
buildClosure :: a -> TCM (Closure a) #
Constraints
type Constraints = [ProblemConstraint] #
data ProblemConstraint #
Constructors
| PConstr | |
Fields | |
Instances
data Constraint #
Constructors
| ValueCmp Comparison Type Term Term | |
| ElimCmp [Polarity] [IsForced] Type Term [Elim] [Elim] | |
| TypeCmp Comparison Type Type | |
| TelCmp Type Type Comparison Telescope Telescope | the two types are for the error message only |
| SortCmp Comparison Sort Sort | |
| LevelCmp Comparison Level Level | |
| HasBiggerSort Sort | |
| HasPTSRule Sort (Abs Sort) | |
| UnBlock MetaId | |
| Guarded Constraint ProblemId | |
| IsEmpty Range Type | The range is the one of the absurd pattern. |
| CheckSizeLtSat Term | Check that the |
| FindInScope MetaId (Maybe MetaId) (Maybe [Candidate]) | the first argument is the instance argument, the second one is the meta on which the constraint may be blocked on and the third one is the list of candidates (or Nothing if we haven’t determined the list of candidates yet) |
| CheckFunDef Delayed DefInfo QName [Clause] |
Instances
data Comparison #
Instances
| Eq Comparison # | |
Defined in Agda.TypeChecking.Monad.Base | |
| Data Comparison # | |
Defined in Agda.TypeChecking.Monad.Base Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Comparison -> c Comparison # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Comparison # toConstr :: Comparison -> Constr # dataTypeOf :: Comparison -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Comparison) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Comparison) # gmapT :: (forall b. Data b => b -> b) -> Comparison -> Comparison # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Comparison -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Comparison -> r # gmapQ :: (forall d. Data d => d -> u) -> Comparison -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Comparison -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Comparison -> m Comparison # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Comparison -> m Comparison # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Comparison -> m Comparison # | |
| Show Comparison # | |
Defined in Agda.TypeChecking.Monad.Base Methods showsPrec :: Int -> Comparison -> ShowS # show :: Comparison -> String # showList :: [Comparison] -> ShowS # | |
| Pretty Comparison # | |
Defined in Agda.TypeChecking.Monad.Base Methods pretty :: Comparison -> Doc # prettyPrec :: Int -> Comparison -> Doc # prettyList :: [Comparison] -> Doc # | |
| PrettyTCM Comparison # | |
Defined in Agda.TypeChecking.Pretty Methods prettyTCM :: Comparison -> TCM Doc # | |
data CompareDirection #
An extension of Comparison to >=.
Instances
| Eq CompareDirection # | |
Defined in Agda.TypeChecking.Monad.Base Methods (==) :: CompareDirection -> CompareDirection -> Bool # (/=) :: CompareDirection -> CompareDirection -> Bool # | |
| Show CompareDirection # | |
Defined in Agda.TypeChecking.Monad.Base Methods showsPrec :: Int -> CompareDirection -> ShowS # show :: CompareDirection -> String # showList :: [CompareDirection] -> ShowS # | |
| Pretty CompareDirection # | |
Defined in Agda.TypeChecking.Monad.Base Methods pretty :: CompareDirection -> Doc # prettyPrec :: Int -> CompareDirection -> Doc # prettyList :: [CompareDirection] -> Doc # | |
fromCmp :: Comparison -> CompareDirection #
Embed Comparison into CompareDirection.
flipCmp :: CompareDirection -> CompareDirection #
Flip the direction of comparison.
dirToCmp :: (Comparison -> a -> a -> c) -> CompareDirection -> a -> a -> c #
Turn a Comparison function into a CompareDirection function.
Property: dirToCmp f (fromCmp cmp) = f cmp
Open things
A thing tagged with the context it came from.
Constructors
| OpenThing | |
Fields
| |
Instances
| Functor Open # | |
| Foldable Open # | |
Defined in Agda.TypeChecking.Monad.Base Methods fold :: Monoid m => Open m -> m # foldMap :: Monoid m => (a -> m) -> Open a -> m # foldr :: (a -> b -> b) -> b -> Open a -> b # foldr' :: (a -> b -> b) -> b -> Open a -> b # foldl :: (b -> a -> b) -> b -> Open a -> b # foldl' :: (b -> a -> b) -> b -> Open a -> b # foldr1 :: (a -> a -> a) -> Open a -> a # foldl1 :: (a -> a -> a) -> Open a -> a # elem :: Eq a => a -> Open a -> Bool # maximum :: Ord a => Open a -> a # | |
| Traversable Open # | |
| Decoration Open # | |
| Data a => Data (Open a) # | |
Defined in Agda.TypeChecking.Monad.Base Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Open a -> c (Open a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Open a) # toConstr :: Open a -> Constr # dataTypeOf :: Open a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Open a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Open a)) # gmapT :: (forall b. Data b => b -> b) -> Open a -> Open a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Open a -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Open a -> r # gmapQ :: (forall d. Data d => d -> u) -> Open a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Open a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Open a -> m (Open a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Open a -> m (Open a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Open a -> m (Open a) # | |
| Show a => Show (Open a) # | |
| KillRange a => KillRange (Open a) # | |
Defined in Agda.TypeChecking.Monad.Base Methods killRange :: KillRangeT (Open a) # | |
| EmbPrj a => EmbPrj (Open a) # | |
| NamesIn a => NamesIn (Open a) # | |
| InstantiateFull a => InstantiateFull (Open a) # | |
Defined in Agda.TypeChecking.Reduce Methods instantiateFull' :: Open a -> ReduceM (Open a) # | |
Judgements
Parametrized since it is used without MetaId when creating a new meta.
Meta variables
data MetaVariable #
Constructors
| MetaVar | |
Fields
| |
Instances
| SetRange MetaVariable # | |
Defined in Agda.TypeChecking.Monad.Base Methods setRange :: Range -> MetaVariable -> MetaVariable # | |
| HasRange MetaVariable # | |
Defined in Agda.TypeChecking.Monad.Base Methods getRange :: MetaVariable -> Range # | |
Constructors
| EtaExpand MetaId | |
| CheckConstraint Nat ProblemConstraint |
Frozen meta variable cannot be instantiated by unification. This serves to prevent the completion of a definition by its use outside of the current block. (See issues 118, 288, 399).
Constructors
| Frozen | Do not instantiate. |
| Instantiable |
data MetaInstantiation #
Constructors
| InstV [Arg String] Term | solved by term (abstracted over some free variables) |
| Open | unsolved |
| OpenIFS | open, to be instantiated as "implicit from scope" |
| BlockedConst Term | solution blocked by unsolved constraints |
| PostponedTypeCheckingProblem (Closure TypeCheckingProblem) (TCM Bool) |
Instances
| Show MetaInstantiation # | |
Defined in Agda.TypeChecking.Monad.Base Methods showsPrec :: Int -> MetaInstantiation -> ShowS # show :: MetaInstantiation -> String # showList :: [MetaInstantiation] -> ShowS # | |
data CheckedTarget #
Solving a CheckArgs constraint may or may not check the target type. If
it did, it returns a handle to any unsolved constraints.
Constructors
| CheckedTarget (Maybe ProblemId) | |
| NotCheckedTarget |
data TypeCheckingProblem #
Constructors
| CheckExpr Expr Type | |
| CheckArgs ExpandHidden Range [NamedArg Expr] Type Type (Elims -> Type -> CheckedTarget -> TCM Term) | |
| CheckLambda (Arg ([WithHiding Name], Maybe Type)) Expr Type |
|
| UnquoteTactic Term Term Type | First argument is computation and the others are hole and goal type |
Instances
| PrettyTCM TypeCheckingProblem # | |
Defined in Agda.TypeChecking.Pretty Methods prettyTCM :: TypeCheckingProblem -> TCM Doc # | |
newtype MetaPriority #
Meta variable priority: When we have an equation between meta-variables, which one should be instantiated?
Higher value means higher priority to be instantiated.
Constructors
| MetaPriority Int |
Instances
| Eq MetaPriority # | |
Defined in Agda.TypeChecking.Monad.Base | |
| Ord MetaPriority # | |
Defined in Agda.TypeChecking.Monad.Base Methods compare :: MetaPriority -> MetaPriority -> Ordering # (<) :: MetaPriority -> MetaPriority -> Bool # (<=) :: MetaPriority -> MetaPriority -> Bool # (>) :: MetaPriority -> MetaPriority -> Bool # (>=) :: MetaPriority -> MetaPriority -> Bool # max :: MetaPriority -> MetaPriority -> MetaPriority # min :: MetaPriority -> MetaPriority -> MetaPriority # | |
| Show MetaPriority # | |
Defined in Agda.TypeChecking.Monad.Base Methods showsPrec :: Int -> MetaPriority -> ShowS # show :: MetaPriority -> String # showList :: [MetaPriority] -> ShowS # | |
data RunMetaOccursCheck #
Constructors
| RunMetaOccursCheck | |
| DontRunMetaOccursCheck |
Instances
| Eq RunMetaOccursCheck # | |
Defined in Agda.TypeChecking.Monad.Base Methods (==) :: RunMetaOccursCheck -> RunMetaOccursCheck -> Bool # (/=) :: RunMetaOccursCheck -> RunMetaOccursCheck -> Bool # | |
| Ord RunMetaOccursCheck # | |
Defined in Agda.TypeChecking.Monad.Base Methods compare :: RunMetaOccursCheck -> RunMetaOccursCheck -> Ordering # (<) :: RunMetaOccursCheck -> RunMetaOccursCheck -> Bool # (<=) :: RunMetaOccursCheck -> RunMetaOccursCheck -> Bool # (>) :: RunMetaOccursCheck -> RunMetaOccursCheck -> Bool # (>=) :: RunMetaOccursCheck -> RunMetaOccursCheck -> Bool # max :: RunMetaOccursCheck -> RunMetaOccursCheck -> RunMetaOccursCheck # min :: RunMetaOccursCheck -> RunMetaOccursCheck -> RunMetaOccursCheck # | |
| Show RunMetaOccursCheck # | |
Defined in Agda.TypeChecking.Monad.Base Methods showsPrec :: Int -> RunMetaOccursCheck -> ShowS # show :: RunMetaOccursCheck -> String # showList :: [RunMetaOccursCheck] -> ShowS # | |
MetaInfo is cloned from one meta to the next during pruning.
Constructors
| MetaInfo | |
Fields
| |
type MetaNameSuggestion = String #
Name suggestion for meta variable. Empty string means no suggestion.
For printing, we couple a meta with its name suggestion.
Constructors
| NamedMeta | |
Fields | |
Instances
| Pretty NamedMeta # | |
Defined in Agda.TypeChecking.Monad.Base | |
| ToConcrete NamedMeta Expr # | |
Defined in Agda.Syntax.Translation.AbstractToConcrete | |
type MetaStore = Map MetaId MetaVariable #
getMetaInfo :: MetaVariable -> Closure Range #
getMetaScope :: MetaVariable -> ScopeInfo #
getMetaEnv :: MetaVariable -> TCEnv #
getMetaSig :: MetaVariable -> Signature #
Interaction meta variables
data InteractionPoint #
Interaction points are created by the scope checker who sets the range. The meta variable is created by the type checker and then hooked up to the interaction point.
Constructors
| InteractionPoint | |
Instances
| Eq InteractionPoint # | |
Defined in Agda.TypeChecking.Monad.Base Methods (==) :: InteractionPoint -> InteractionPoint -> Bool # (/=) :: InteractionPoint -> InteractionPoint -> Bool # | |
type InteractionPoints = Map InteractionId InteractionPoint #
Data structure managing the interaction points.
We never remove interaction points from this map, only set their
ipSolved to True. (Issue #2368)
Which clause is an interaction point located in?
Constructors
| IPClause | |
| IPNoClause | The interaction point is not in the rhs of a clause. |
Instances
| Eq IPClause # | |
| Data IPClause # | |
Defined in Agda.TypeChecking.Monad.Base Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> IPClause -> c IPClause # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c IPClause # toConstr :: IPClause -> Constr # dataTypeOf :: IPClause -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c IPClause) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c IPClause) # gmapT :: (forall b. Data b => b -> b) -> IPClause -> IPClause # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> IPClause -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> IPClause -> r # gmapQ :: (forall d. Data d => d -> u) -> IPClause -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> IPClause -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> IPClause -> m IPClause # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> IPClause -> m IPClause # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> IPClause -> m IPClause # | |
Signature
Constructors
| Sig | |
Fields
| |
Instances
| Data Signature # | |
Defined in Agda.TypeChecking.Monad.Base Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Signature -> c Signature # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Signature # toConstr :: Signature -> Constr # dataTypeOf :: Signature -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Signature) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Signature) # gmapT :: (forall b. Data b => b -> b) -> Signature -> Signature # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Signature -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Signature -> r # gmapQ :: (forall d. Data d => d -> u) -> Signature -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Signature -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Signature -> m Signature # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Signature -> m Signature # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Signature -> m Signature # | |
| Show Signature # | |
| KillRange Signature # | |
Defined in Agda.TypeChecking.Monad.Base Methods | |
| EmbPrj Signature # | |
| InstantiateFull Signature # | |
Defined in Agda.TypeChecking.Reduce Methods | |
type Sections = Map ModuleName Section #
type Definitions = HashMap QName Definition #
type RewriteRuleMap = HashMap QName RewriteRules #
type DisplayForms = HashMap QName [LocalDisplayForm] #
Constructors
| Section | |
Fields | |
Instances
| Eq Section # | |
| Data Section # | |
Defined in Agda.TypeChecking.Monad.Base Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Section -> c Section # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Section # toConstr :: Section -> Constr # dataTypeOf :: Section -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Section) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Section) # gmapT :: (forall b. Data b => b -> b) -> Section -> Section # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Section -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Section -> r # gmapQ :: (forall d. Data d => d -> u) -> Section -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Section -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Section -> m Section # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Section -> m Section # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Section -> m Section # | |
| Show Section # | |
| Pretty Section # | |
Defined in Agda.TypeChecking.Monad.Base | |
| KillRange Section # | |
Defined in Agda.TypeChecking.Monad.Base Methods | |
| KillRange Sections # | |
Defined in Agda.TypeChecking.Monad.Base Methods | |
| EmbPrj Section # | |
| InstantiateFull Section # | |
Defined in Agda.TypeChecking.Reduce Methods instantiateFull' :: Section -> ReduceM Section # | |
data DisplayForm #
A DisplayForm is in essence a rewrite rule
q ts --> dt
for a defined symbol (could be a constructor as well) q.
The right hand side is a DisplayTerm which is used to
reify to a more readable Syntax.
The patterns ts are just terms, but var 0 is interpreted
as a hole. Each occurrence of var 0 is a new hole (pattern var).
For each *occurrence* of var0 the rhs dt has a free variable.
These are instantiated when matching a display form against a
term q vs succeeds.
Constructors
| Display | |
Fields
| |
Instances
type LocalDisplayForm = Open DisplayForm #
data DisplayTerm #
Constructors
| DWithApp DisplayTerm [DisplayTerm] Elims |
|
| DCon ConHead ConInfo [Arg DisplayTerm] |
|
| DDef QName [Elim' DisplayTerm] |
|
| DDot Term |
|
| DTerm Term |
|
Instances
defaultDisplayForm :: QName -> [LocalDisplayForm] #
By default, we have no display form.
defRelevance :: Definition -> Relevance #
Non-linear (non-constructor) first-order pattern.
Constructors
| PVar !Int [Arg Int] | Matches anything (modulo non-linearity) that only contains bound variables that occur in the given arguments. |
| PWild | Matches anything (e.g. irrelevant terms). |
| PDef QName PElims | Matches |
| PLam ArgInfo (Abs NLPat) | Matches |
| PPi (Dom NLPType) (Abs NLPType) | Matches |
| PBoundVar !Int PElims | Matches |
| PTerm Term | Matches the term modulo β (ideally βη). |
Instances
Constructors
| NLPType | |
Fields
| |
Instances
| Data NLPType # | |
Defined in Agda.TypeChecking.Monad.Base Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NLPType -> c NLPType # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NLPType # toConstr :: NLPType -> Constr # dataTypeOf :: NLPType -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c NLPType) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NLPType) # gmapT :: (forall b. Data b => b -> b) -> NLPType -> NLPType # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NLPType -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NLPType -> r # gmapQ :: (forall d. Data d => d -> u) -> NLPType -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> NLPType -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> NLPType -> m NLPType # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NLPType -> m NLPType # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NLPType -> m NLPType # | |
| Show NLPType # | |
| KillRange NLPType # | |
Defined in Agda.TypeChecking.Monad.Base Methods | |
| Free NLPType # | |
| EmbPrj NLPType # | |
| PrettyTCM NLPType # | |
| InstantiateFull NLPType # | |
Defined in Agda.TypeChecking.Reduce Methods instantiateFull' :: NLPType -> ReduceM NLPType # | |
| NLPatVars NLPType # | |
Defined in Agda.TypeChecking.Rewriting | |
| Subst NLPat NLPType # | |
Defined in Agda.TypeChecking.Substitute Methods applySubst :: Substitution' NLPat -> NLPType -> NLPType # | |
| Match NLPType Type # | |
| PatternFrom Type NLPType # | |
Defined in Agda.TypeChecking.Rewriting.NonLinMatch | |
type RewriteRules = [RewriteRule] #
data RewriteRule #
Rewrite rules can be added independently from function clauses.
Constructors
| RewriteRule | |
Instances
data Definition #
Constructors
| Defn | |
Fields
| |
Instances
defaultDefn :: ArgInfo -> QName -> Type -> Defn -> Definition #
Create a definition with sensible defaults.
Polarity for equality and subtype checking.
Constructors
| Covariant | monotone |
| Contravariant | antitone |
| Invariant | no information (mixed variance) |
| Nonvariant | constant |
Instances
| Eq Polarity # | |
| Data Polarity # | |
Defined in Agda.TypeChecking.Monad.Base Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Polarity -> c Polarity # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Polarity # toConstr :: Polarity -> Constr # dataTypeOf :: Polarity -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Polarity) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Polarity) # gmapT :: (forall b. Data b => b -> b) -> Polarity -> Polarity # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Polarity -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Polarity -> r # gmapQ :: (forall d. Data d => d -> u) -> Polarity -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Polarity -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Polarity -> m Polarity # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Polarity -> m Polarity # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Polarity -> m Polarity # | |
| Show Polarity # | |
| Pretty Polarity # | |
Defined in Agda.TypeChecking.Monad.Base | |
| KillRange Polarity # | |
Defined in Agda.TypeChecking.Monad.Base Methods | |
| EmbPrj Polarity # | |
| PrettyTCM Polarity # | |
| Abstract [Polarity] # | |
| Apply [Polarity] # | |
Information about whether an argument is forced by the type of a function.
Instances
| Eq IsForced # | |
| Data IsForced # | |
Defined in Agda.TypeChecking.Monad.Base Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> IsForced -> c IsForced # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c IsForced # toConstr :: IsForced -> Constr # dataTypeOf :: IsForced -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c IsForced) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c IsForced) # gmapT :: (forall b. Data b => b -> b) -> IsForced -> IsForced # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> IsForced -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> IsForced -> r # gmapQ :: (forall d. Data d => d -> u) -> IsForced -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> IsForced -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> IsForced -> m IsForced # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> IsForced -> m IsForced # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> IsForced -> m IsForced # | |
| Show IsForced # | |
| KillRange IsForced # | |
Defined in Agda.TypeChecking.Monad.Base Methods | |
| EmbPrj IsForced # | |
| PrettyTCM IsForced # | |
data CompilerPragma #
The backends are responsible for parsing their own pragmas.
Constructors
| CompilerPragma Range String |
Instances
type BackendName = String #
type CompiledRepresentation = Map BackendName [CompilerPragma] #
data ExtLamInfo #
Additional information for extended lambdas.
Constructors
| ExtLamInfo | |
Fields
| |
Instances
data Projection #
Additional information for projection Functions.
Constructors
| Projection | |
Fields
| |
Instances
Abstractions to build projection function (dropping parameters).
Constructors
| ProjLams | |
Fields
| |
Instances
| Data ProjLams # | |
Defined in Agda.TypeChecking.Monad.Base Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ProjLams -> c ProjLams # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ProjLams # toConstr :: ProjLams -> Constr # dataTypeOf :: ProjLams -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ProjLams) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ProjLams) # gmapT :: (forall b. Data b => b -> b) -> ProjLams -> ProjLams # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ProjLams -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ProjLams -> r # gmapQ :: (forall d. Data d => d -> u) -> ProjLams -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ProjLams -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ProjLams -> m ProjLams # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ProjLams -> m ProjLams # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ProjLams -> m ProjLams # | |
| Show ProjLams # | |
| Null ProjLams # | |
| KillRange ProjLams # | |
Defined in Agda.TypeChecking.Monad.Base Methods | |
| Abstract ProjLams # | |
| Apply ProjLams # | |
| EmbPrj ProjLams # | |
projDropPars :: Projection -> ProjOrigin -> Term #
Building the projection function (which drops the parameters).
projArgInfo :: Projection -> ArgInfo #
The info of the principal (record) argument.
data EtaEquality #
Should a record type admit eta-equality?
Constructors
| Specified | User specifed 'eta-equality' or 'no-eta-equality'. |
Fields
| |
| Inferred | Positivity checker inferred whether eta is safe. |
Fields
| |
Instances
setEtaEquality :: EtaEquality -> HasEta -> EtaEquality #
Make sure we do not overwrite a user specification.
data FunctionFlag #
Constructors
| FunStatic | Should calls to this function be normalised at compile-time? |
| FunInline | Should calls to this function be inlined by the compiler? |
| FunMacro | Is this function a macro? |
Instances
Constructors
| Axiom | Postulate. |
| AbstractDefn Defn | Returned by |
| Function | |
Fields
| |
| Datatype | |
Fields
| |
| Record | |
Fields
| |
| Constructor | |
Fields
| |
| Primitive | Primitive or builtin functions. |
Fields
| |
Instances
| Data Defn # | |
Defined in Agda.TypeChecking.Monad.Base Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Defn -> c Defn # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Defn # dataTypeOf :: Defn -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Defn) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Defn) # gmapT :: (forall b. Data b => b -> b) -> Defn -> Defn # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Defn -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Defn -> r # gmapQ :: (forall d. Data d => d -> u) -> Defn -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Defn -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Defn -> m Defn # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Defn -> m Defn # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Defn -> m Defn # | |
| Show Defn # | |
| Pretty Defn # | |
Defined in Agda.TypeChecking.Monad.Base | |
| KillRange Defn # | |
Defined in Agda.TypeChecking.Monad.Base Methods killRange :: KillRangeT Defn # | |
| Abstract Defn # | |
| Apply Defn # | |
| EmbPrj Defn # | |
| NamesIn Defn # | |
| InstantiateFull Defn # | |
Defined in Agda.TypeChecking.Reduce Methods instantiateFull' :: Defn -> ReduceM Defn # | |
| Occurs Defn # | |
Defined in Agda.TypeChecking.MetaVars.Occurs | |
recRecursive :: Defn -> Bool #
Is the record type recursive?
recEtaEquality :: Defn -> HasEta #
emptyFunction :: Defn #
A template for creating Function definitions, with sensible defaults.
isEmptyFunction :: Defn -> Bool #
Checking whether we are dealing with a function yet to be defined.
isCopatternLHS :: [Clause] -> Bool #
defIsRecord :: Defn -> Bool #
defIsDataOrRecord :: Defn -> Bool #
defConstructors :: Defn -> [QName] #
data Simplification #
Did we encounter a simplifying reduction? In terms of CIC, that would be a iota-reduction. In terms of Agda, this is a constructor or literal pattern that matched. Just beta-reduction (substitution) or delta-reduction (unfolding of definitions) does not count as simplifying?
Constructors
| YesSimplification | |
| NoSimplification |
Instances
Constructors
| NoReduction no | |
| YesReduction Simplification yes |
Three cases: 1. not reduced, 2. reduced, but blocked, 3. reduced, not blocked.
Constructors
| NotReduced | |
| Reduced (Blocked ()) |
data MaybeReduced a #
Constructors
| MaybeRed | |
Fields
| |
Instances
| Functor MaybeReduced # | |
Defined in Agda.TypeChecking.Monad.Base Methods fmap :: (a -> b) -> MaybeReduced a -> MaybeReduced b # (<$) :: a -> MaybeReduced b -> MaybeReduced a # | |
| IsProjElim e => IsProjElim (MaybeReduced e) # | |
Defined in Agda.TypeChecking.Monad.Base Methods isProjElim :: MaybeReduced e -> Maybe (ProjOrigin, QName) # | |
| PrettyTCM a => PrettyTCM (MaybeReduced a) # | |
Defined in Agda.TypeChecking.Pretty Methods prettyTCM :: MaybeReduced a -> TCM Doc # | |
type MaybeReducedArgs = [MaybeReduced (Arg Term)] #
type MaybeReducedElims = [MaybeReduced Elim] #
notReduced :: a -> MaybeReduced a #
data AllowedReduction #
Controlling reduce.
Constructors
| ProjectionReductions | (Projection and) projection-like functions may be reduced. |
| InlineReductions | Functions marked INLINE may be reduced. |
| CopatternReductions | Copattern definitions may be reduced. |
| FunctionReductions | Non-recursive functions and primitives may be reduced. |
| RecursiveReductions | Even recursive functions may be reduced. |
| LevelReductions | Reduce |
| UnconfirmedReductions | Functions whose termination has not (yet) been confirmed. |
| NonTerminatingReductions | Functions that have failed termination checking. |
Instances
type AllowedReductions = [AllowedReduction] #
allReductions :: AllowedReductions #
Not quite all reductions (skip non-terminating reductions)
Constructors
| PrimFun | |
Fields
| |
defClauses :: Definition -> [Clause] #
defParameters :: Definition -> Maybe Nat #
defInverse :: Definition -> FunctionInverse #
defCompilerPragmas :: BackendName -> Definition -> [CompilerPragma] #
defDelayed :: Definition -> Delayed #
Are the clauses of this definition delayed?
defNonterminating :: Definition -> Bool #
Has the definition failed the termination checker?
defTerminationUnconfirmed :: Definition -> Bool #
Has the definition not termination checked or did the check fail?
defAbstract :: Definition -> IsAbstract #
defForced :: Definition -> [IsForced] #
Injectivity
type FunctionInverse = FunctionInverse' Clause #
type InversionMap c = Map TermHead [c] #
data FunctionInverse' c #
Constructors
| NotInjective | |
| Inverse (InversionMap c) |
Instances
Instances
| Eq TermHead # | |
| Data TermHead # | |
Defined in Agda.TypeChecking.Monad.Base Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TermHead -> c TermHead # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TermHead # toConstr :: TermHead -> Constr # dataTypeOf :: TermHead -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TermHead) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TermHead) # gmapT :: (forall b. Data b => b -> b) -> TermHead -> TermHead # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TermHead -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TermHead -> r # gmapQ :: (forall d. Data d => d -> u) -> TermHead -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> TermHead -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> TermHead -> m TermHead # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TermHead -> m TermHead # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TermHead -> m TermHead # | |
| Ord TermHead # | |
Defined in Agda.TypeChecking.Monad.Base | |
| Show TermHead # | |
| Pretty TermHead # | |
Defined in Agda.TypeChecking.Monad.Base | |
| KillRange TermHead # | |
Defined in Agda.TypeChecking.Monad.Base Methods | |
| EmbPrj TermHead # | |
Mutual blocks
Instances
| Enum MutualId # | |
Defined in Agda.TypeChecking.Monad.Base | |
| Eq MutualId # | |
| Data MutualId # | |
Defined in Agda.TypeChecking.Monad.Base Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> MutualId -> c MutualId # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c MutualId # toConstr :: MutualId -> Constr # dataTypeOf :: MutualId -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c MutualId) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c MutualId) # gmapT :: (forall b. Data b => b -> b) -> MutualId -> MutualId # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> MutualId -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> MutualId -> r # gmapQ :: (forall d. Data d => d -> u) -> MutualId -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> MutualId -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> MutualId -> m MutualId # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> MutualId -> m MutualId # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> MutualId -> m MutualId # | |
| Num MutualId # | |
| Ord MutualId # | |
Defined in Agda.TypeChecking.Monad.Base | |
| Show MutualId # | |
| KillRange MutualId # | |
Defined in Agda.TypeChecking.Monad.Base Methods | |
| HasFresh MutualId # | |
Defined in Agda.TypeChecking.Monad.Base | |
| EmbPrj MutualId # | |
Statistics
type Statistics = Map String Integer #
Trace
Constructors
Instances
| Data Call # | |
Defined in Agda.TypeChecking.Monad.Base Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Call -> c Call # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Call # dataTypeOf :: Call -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Call) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Call) # gmapT :: (forall b. Data b => b -> b) -> Call -> Call # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Call -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Call -> r # gmapQ :: (forall d. Data d => d -> u) -> Call -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Call -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Call -> m Call # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Call -> m Call # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Call -> m Call # | |
| Pretty Call # | |
Defined in Agda.TypeChecking.Monad.Base | |
| HasRange Call # | |
Defined in Agda.TypeChecking.Monad.Base | |
| PrettyTCM Call # | |
Instance table
type InstanceTable = Map QName (Set QName) #
The instance table is a Map associating to every name of
recorddata typepostulate its list of instances
type TempInstanceTable = (InstanceTable, Set QName) #
When typechecking something of the following form:
instance x : _ x = y
it's not yet known where to add x, so we add it to a list of
unresolved instances and we'll deal with it later.
Builtin things
data BuiltinDescriptor #
Constructors
| BuiltinData (TCM Type) [String] | |
| BuiltinDataCons (TCM Type) | |
| BuiltinPrim String (Term -> TCM ()) | |
| BuiltinPostulate Relevance (TCM Type) | |
| BuiltinUnknown (Maybe (TCM Type)) (Term -> Type -> TCM ()) | Builtin of any kind.
Type can be checked ( |
data BuiltinInfo #
Constructors
| BuiltinInfo | |
Fields | |
type BuiltinThings pf = Map String (Builtin pf) #
Instances
| Functor Builtin # | |
| Foldable Builtin # | |
Defined in Agda.TypeChecking.Monad.Base Methods fold :: Monoid m => Builtin m -> m # foldMap :: Monoid m => (a -> m) -> Builtin a -> m # foldr :: (a -> b -> b) -> b -> Builtin a -> b # foldr' :: (a -> b -> b) -> b -> Builtin a -> b # foldl :: (b -> a -> b) -> b -> Builtin a -> b # foldl' :: (b -> a -> b) -> b -> Builtin a -> b # foldr1 :: (a -> a -> a) -> Builtin a -> a # foldl1 :: (a -> a -> a) -> Builtin a -> a # elem :: Eq a => a -> Builtin a -> Bool # maximum :: Ord a => Builtin a -> a # minimum :: Ord a => Builtin a -> a # | |
| Traversable Builtin # | |
| Show pf => Show (Builtin pf) # | |
| EmbPrj a => EmbPrj (Builtin a) # | |
| InstantiateFull a => InstantiateFull (Builtin a) # | |
Defined in Agda.TypeChecking.Reduce Methods instantiateFull' :: Builtin a -> ReduceM (Builtin a) # | |
Highlighting levels
data HighlightingLevel #
How much highlighting should be sent to the user interface?
Constructors
| None | |
| NonInteractive | |
| Interactive | This includes both non-interactive highlighting and interactive highlighting of the expression that is currently being type-checked. |
Instances
data HighlightingMethod #
How should highlighting be sent to the user interface?
Instances
ifTopLevelAndHighlightingLevelIsOr :: MonadTCM tcm => HighlightingLevel -> Bool -> tcm () -> tcm () #
ifTopLevelAndHighlightingLevelIs l b m runs m when we're
type-checking the top-level module and either the highlighting
level is at least l or b is True.
ifTopLevelAndHighlightingLevelIs :: MonadTCM tcm => HighlightingLevel -> tcm () -> tcm () #
ifTopLevelAndHighlightingLevelIs l m runs m when we're
type-checking the top-level module and the highlighting level is
at least l.
Type checking environment
Constructors
| TCEnv | |
Fields
| |
Instances
| Data TCEnv # | |
Defined in Agda.TypeChecking.Monad.Base Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TCEnv -> c TCEnv # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TCEnv # dataTypeOf :: TCEnv -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TCEnv) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TCEnv) # gmapT :: (forall b. Data b => b -> b) -> TCEnv -> TCEnv # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TCEnv -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TCEnv -> r # gmapQ :: (forall d. Data d => d -> u) -> TCEnv -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> TCEnv -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> TCEnv -> m TCEnv # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TCEnv -> m TCEnv # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TCEnv -> m TCEnv # | |
| MonadReader TCEnv ReduceM # | |
| MonadReader TCEnv TerM # | |
| MonadIO m => MonadReader TCEnv (TCMT m) # | |
disableDestructiveUpdate :: TCM a -> TCM a #
data UnquoteFlags #
Constructors
| UnquoteFlags | |
Fields | |
Instances
| Data UnquoteFlags # | |
Defined in Agda.TypeChecking.Monad.Base Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UnquoteFlags -> c UnquoteFlags # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c UnquoteFlags # toConstr :: UnquoteFlags -> Constr # dataTypeOf :: UnquoteFlags -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c UnquoteFlags) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c UnquoteFlags) # gmapT :: (forall b. Data b => b -> b) -> UnquoteFlags -> UnquoteFlags # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UnquoteFlags -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UnquoteFlags -> r # gmapQ :: (forall d. Data d => d -> u) -> UnquoteFlags -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> UnquoteFlags -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> UnquoteFlags -> m UnquoteFlags # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UnquoteFlags -> m UnquoteFlags # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UnquoteFlags -> m UnquoteFlags # | |
e-prefixed lenses
eCurrentPath :: Lens' (Maybe AbsolutePath) TCEnv #
eAnonymousModules :: Lens' [(ModuleName, Nat)] TCEnv #
eTerminationCheck :: Lens' (TerminationCheck ()) TCEnv #
eAssignMetas :: Lens' Bool TCEnv #
eInstanceDepth :: Lens' Int TCEnv #
eCallByNeed :: Lens' Bool TCEnv #
Context
type Context = [ContextEntry] #
The Context is a stack of ContextEntrys.
type ContextEntry = Dom (Name, Type) #
Let bindings
Abstract mode
data AbstractMode #
Constructors
| AbstractMode | Abstract things in the current module can be accessed. |
| ConcreteMode | No abstract things can be accessed. |
| IgnoreAbstractMode | All abstract things can be accessed. |
Instances
| Eq AbstractMode # | |
Defined in Agda.TypeChecking.Monad.Base | |
| Data AbstractMode # | |
Defined in Agda.TypeChecking.Monad.Base Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AbstractMode -> c AbstractMode # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AbstractMode # toConstr :: AbstractMode -> Constr # dataTypeOf :: AbstractMode -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AbstractMode) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AbstractMode) # gmapT :: (forall b. Data b => b -> b) -> AbstractMode -> AbstractMode # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AbstractMode -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AbstractMode -> r # gmapQ :: (forall d. Data d => d -> u) -> AbstractMode -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> AbstractMode -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> AbstractMode -> m AbstractMode # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AbstractMode -> m AbstractMode # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AbstractMode -> m AbstractMode # | |
| Show AbstractMode # | |
Defined in Agda.TypeChecking.Monad.Base Methods showsPrec :: Int -> AbstractMode -> ShowS # show :: AbstractMode -> String # showList :: [AbstractMode] -> ShowS # | |
aDefToMode :: IsAbstract -> AbstractMode #
aModeToDef :: AbstractMode -> IsAbstract #
Insertion of implicit arguments
data ExpandHidden #
Constructors
| ExpandLast | Add implicit arguments in the end until type is no longer hidden |
| DontExpandLast | Do not append implicit arguments. |
Instances
| Eq ExpandHidden # | |
Defined in Agda.TypeChecking.Monad.Base | |
| Data ExpandHidden # | |
Defined in Agda.TypeChecking.Monad.Base Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ExpandHidden -> c ExpandHidden # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ExpandHidden # toConstr :: ExpandHidden -> Constr # dataTypeOf :: ExpandHidden -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ExpandHidden) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ExpandHidden) # gmapT :: (forall b. Data b => b -> b) -> ExpandHidden -> ExpandHidden # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ExpandHidden -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ExpandHidden -> r # gmapQ :: (forall d. Data d => d -> u) -> ExpandHidden -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ExpandHidden -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ExpandHidden -> m ExpandHidden # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ExpandHidden -> m ExpandHidden # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ExpandHidden -> m ExpandHidden # | |
data ExplicitToInstance #
Constructors
| ExplicitToInstance | Explicit arguments are considered as instance arguments |
| ExplicitStayExplicit |
Instances
A candidate solution for an instance meta is a term with its type. It may be the case that the candidate is not fully applied yet or of the wrong type, hence the need for the type.
Constructors
| Candidate | |
Fields | |
Instances
| Eq Candidate # | |
| Data Candidate # | |
Defined in Agda.TypeChecking.Monad.Base Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Candidate -> c Candidate # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Candidate # toConstr :: Candidate -> Constr # dataTypeOf :: Candidate -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Candidate) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Candidate) # gmapT :: (forall b. Data b => b -> b) -> Candidate -> Candidate # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Candidate -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Candidate -> r # gmapQ :: (forall d. Data d => d -> u) -> Candidate -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Candidate -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Candidate -> m Candidate # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Candidate -> m Candidate # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Candidate -> m Candidate # | |
| Show Candidate # | |
| Free Candidate # | |
| InstantiateFull Candidate # | |
Defined in Agda.TypeChecking.Reduce Methods | |
| Normalise Candidate # | |
Defined in Agda.TypeChecking.Reduce Methods normalise' :: Candidate -> ReduceM Candidate # | |
| Simplify Candidate # | |
| Reduce Candidate # | |
| Instantiate Candidate # | |
Defined in Agda.TypeChecking.Reduce Methods instantiate' :: Candidate -> ReduceM Candidate # | |
| Subst Term Candidate # | |
Defined in Agda.TypeChecking.Substitute Methods applySubst :: Substitution' Term -> Candidate -> Candidate # | |
Type checking warnings (aka non-fatal errors)
A non-fatal error is an error which does not prevent us from checking the document further and interacting with the user.
Constructors
| NicifierIssue DeclarationWarning | |
| TerminationIssue [TerminationError] | |
| UnreachableClauses QName [[NamedArg DeBruijnPattern]] | |
| CoverageIssue QName [(Telescope, [NamedArg DeBruijnPattern])] | `CoverageIssue f pss` means that |
| CoverageNoExactSplit QName [Clause] | |
| NotStrictlyPositive QName OccursWhere | |
| UnsolvedMetaVariables [Range] | Do not use directly with |
| UnsolvedInteractionMetas [Range] | Do not use directly with |
| UnsolvedConstraints Constraints | Do not use directly with |
| OldBuiltin String String | In `OldBuiltin old new`, the BUILTIN old has been replaced by new |
| EmptyRewritePragma | |
| UselessPublic | If the user opens a module public before the module header. (See issue #2377.) |
| UselessInline QName | |
| InversionDepthReached QName | The --inversion-max-depth was reached. |
| GenericWarning Doc | Harmless generic warning (not an error) |
| GenericNonFatalError Doc | Generic error which doesn't abort proceedings (not a warning) Safe flag errors |
| SafeFlagPostulate Name | |
| SafeFlagPragma [String] | |
| SafeFlagNonTerminating | |
| SafeFlagTerminating | |
| SafeFlagPrimTrustMe | |
| SafeFlagNoPositivityCheck | |
| SafeFlagPolarity | |
| ParseWarning ParseWarning | |
| DeprecationWarning String String String | `DeprecationWarning old new version`:
|
| UserWarning String | User-defined warning (e.g. to mention that a name is deprecated) |
Instances
| Data Warning # | |
Defined in Agda.TypeChecking.Monad.Base Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Warning -> c Warning # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Warning # toConstr :: Warning -> Constr # dataTypeOf :: Warning -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Warning) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Warning) # gmapT :: (forall b. Data b => b -> b) -> Warning -> Warning # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Warning -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Warning -> r # gmapQ :: (forall d. Data d => d -> u) -> Warning -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Warning -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Warning -> m Warning # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Warning -> m Warning # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Warning -> m Warning # | |
| Show Warning # | |
| EmbPrj Warning # | |
| PrettyTCM Warning # | |
warningName :: Warning -> WarningName #
Constructors
| TCWarning | |
Fields
| |
tcWarningOrigin :: TCWarning -> SrcFile #
equalHeadConstructors :: Warning -> Warning -> Bool #
getPartialDefs :: ReadTCState tcm => tcm [QName] #
Type checking errors
Information about a call.
Constructors
| CallInfo | |
Fields
| |
Instances
| Data CallInfo # | |
Defined in Agda.TypeChecking.Monad.Base Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CallInfo -> c CallInfo # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CallInfo # toConstr :: CallInfo -> Constr # dataTypeOf :: CallInfo -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CallInfo) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CallInfo) # gmapT :: (forall b. Data b => b -> b) -> CallInfo -> CallInfo # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CallInfo -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CallInfo -> r # gmapQ :: (forall d. Data d => d -> u) -> CallInfo -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CallInfo -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CallInfo -> m CallInfo # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CallInfo -> m CallInfo # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CallInfo -> m CallInfo # | |
| Show CallInfo # | |
| Pretty CallInfo # | We only |
Defined in Agda.TypeChecking.Monad.Base | |
| AllNames CallInfo # | |
| PrettyTCM CallInfo # | |
data TerminationError #
Information about a mutual block which did not pass the termination checker.
Constructors
| TerminationError | |
Fields
| |
Instances
| Data TerminationError # | |
Defined in Agda.TypeChecking.Monad.Base Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TerminationError -> c TerminationError # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TerminationError # toConstr :: TerminationError -> Constr # dataTypeOf :: TerminationError -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TerminationError) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TerminationError) # gmapT :: (forall b. Data b => b -> b) -> TerminationError -> TerminationError # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TerminationError -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TerminationError -> r # gmapQ :: (forall d. Data d => d -> u) -> TerminationError -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> TerminationError -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> TerminationError -> m TerminationError # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TerminationError -> m TerminationError # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TerminationError -> m TerminationError # | |
| Show TerminationError # | |
Defined in Agda.TypeChecking.Monad.Base Methods showsPrec :: Int -> TerminationError -> ShowS # show :: TerminationError -> String # showList :: [TerminationError] -> ShowS # | |
data SplitError #
Error when splitting a pattern variable into possible constructor patterns.
Constructors
| NotADatatype (Closure Type) | Neither data type nor record. |
| IrrelevantDatatype (Closure Type) | Data type, but in irrelevant position. |
| CoinductiveDatatype (Closure Type) | Split on codata not allowed. UNUSED, but keep! -- | NoRecordConstructor Type -- ^ record type, but no constructor |
| UnificationStuck | |
Fields
| |
| GenericSplitError String | |
Instances
| Show SplitError # | |
Defined in Agda.TypeChecking.Monad.Base Methods showsPrec :: Int -> SplitError -> ShowS # show :: SplitError -> String # showList :: [SplitError] -> ShowS # | |
| PrettyTCM SplitError # | |
Defined in Agda.TypeChecking.Errors Methods prettyTCM :: SplitError -> TCM Doc # | |
data NegativeUnification #
Constructors
| UnifyConflict Telescope Term Term | |
| UnifyCycle Telescope Int Term |
Instances
| Show NegativeUnification # | |
Defined in Agda.TypeChecking.Monad.Base Methods showsPrec :: Int -> NegativeUnification -> ShowS # show :: NegativeUnification -> String # showList :: [NegativeUnification] -> ShowS # | |
| PrettyTCM NegativeUnification # | |
Defined in Agda.TypeChecking.Errors Methods prettyTCM :: NegativeUnification -> TCM Doc # | |
data UnificationFailure #
Constructors
| UnifyIndicesNotVars Telescope Type Term Term Args | Failed to apply injectivity to constructor of indexed datatype |
| UnifyRecursiveEq Telescope Type Int Term | Can't solve equation because variable occurs in (type of) lhs |
| UnifyReflexiveEq Telescope Type Term | Can't solve reflexive equation because --without-K is enabled |
Instances
| Show UnificationFailure # | |
Defined in Agda.TypeChecking.Monad.Base Methods showsPrec :: Int -> UnificationFailure -> ShowS # show :: UnificationFailure -> String # showList :: [UnificationFailure] -> ShowS # | |
| PrettyTCM UnificationFailure # | |
Defined in Agda.TypeChecking.Errors Methods prettyTCM :: UnificationFailure -> TCM Doc # | |
data UnquoteError #
Constructors
| BadVisibility String (Arg Term) | |
| ConInsteadOfDef QName String String | |
| DefInsteadOfCon QName String String | |
| NonCanonical String Term | |
| BlockedOnMeta TCState MetaId | |
| UnquotePanic String |
Instances
| Show UnquoteError # | |
Defined in Agda.TypeChecking.Monad.Base Methods showsPrec :: Int -> UnquoteError -> ShowS # show :: UnquoteError -> String # showList :: [UnquoteError] -> ShowS # | |
Constructors
data LHSOrPatSyn #
Distinguish error message when parsing lhs or pattern synonym, resp.
Instances
| Eq LHSOrPatSyn # | |
Defined in Agda.TypeChecking.Monad.Base | |
| Show LHSOrPatSyn # | |
Defined in Agda.TypeChecking.Monad.Base Methods showsPrec :: Int -> LHSOrPatSyn -> ShowS # show :: LHSOrPatSyn -> String # showList :: [LHSOrPatSyn] -> ShowS # | |
Type-checking errors.
Constructors
| TypeError | |
Fields
| |
| Exception Range Doc | |
| IOException TCState Range IOException | The first argument is the state in which the error was raised. |
| PatternErr | The exception which is usually caught.
Raised for pattern violations during unification ( |
Instances
| Show TCErr # | |
| Exception TCErr # | |
Defined in Agda.TypeChecking.Monad.Base Methods toException :: TCErr -> SomeException # fromException :: SomeException -> Maybe TCErr # displayException :: TCErr -> String # | |
| Error TCErr # | |
| HasRange TCErr # | |
Defined in Agda.TypeChecking.Monad.Base | |
| PrettyTCM TCErr # | |
| MonadError TCErr IM # | |
Defined in Agda.TypeChecking.Monad.Base | |
| MonadError TCErr TerM # | |
Defined in Agda.Termination.Monad | |
| MonadError TCErr (TCMT IO) # | |
Defined in Agda.TypeChecking.Monad.Base | |
Accessing options
class (Functor m, Applicative m, Monad m) => HasOptions m where #
Minimal complete definition
Methods
pragmaOptions :: m PragmaOptions #
Returns the pragma options which are currently in effect.
commandLineOptions :: m CommandLineOptions #
Returns the command line options which are currently in effect.
Instances
| HasOptions ReduceM # | |
Defined in Agda.TypeChecking.Reduce.Monad | |
| HasOptions TerM # | |
Defined in Agda.Termination.Monad | |
| HasOptions m => HasOptions (MaybeT m) # | |
Defined in Agda.TypeChecking.Monad.Base | |
| HasOptions m => HasOptions (ListT m) # | |
Defined in Agda.TypeChecking.Monad.Base | |
| MonadIO m => HasOptions (TCMT m) # | |
Defined in Agda.TypeChecking.Monad.Base | |
| HasOptions m => HasOptions (ExceptT e m) # | |
Defined in Agda.TypeChecking.Monad.Base Methods pragmaOptions :: ExceptT e m PragmaOptions # | |
| HasOptions m => HasOptions (StateT s m) # | |
Defined in Agda.TypeChecking.Monad.Base Methods pragmaOptions :: StateT s m PragmaOptions # | |
| (HasOptions m, Monoid w) => HasOptions (WriterT w m) # | |
Defined in Agda.TypeChecking.Monad.Base Methods pragmaOptions :: WriterT w m PragmaOptions # | |
| HasOptions m => HasOptions (ReaderT r m) # | |
Defined in Agda.TypeChecking.Monad.Base Methods pragmaOptions :: ReaderT r m PragmaOptions # | |
The reduce monad
Environment of the reduce monad.
Instances
| Monad ReduceM # | |
| Functor ReduceM # | |
| Applicative ReduceM # | |
| HasOptions ReduceM # | |
Defined in Agda.TypeChecking.Reduce.Monad | |
| ReadTCState ReduceM # | |
Defined in Agda.TypeChecking.Monad.Base Methods | |
| MonadDebug ReduceM # | |
Defined in Agda.TypeChecking.Reduce.Monad Methods displayDebugMessage :: Int -> String -> ReduceM () # traceDebugMessage :: Int -> String -> ReduceM a -> ReduceM a # formatDebugMessage :: VerboseKey -> Int -> TCM Doc -> ReduceM String # | |
| HasBuiltins ReduceM # | |
Defined in Agda.TypeChecking.Reduce.Monad | |
| HasConstInfo ReduceM # | |
Defined in Agda.TypeChecking.Reduce.Monad Methods getConstInfo :: QName -> ReduceM Definition # getConstInfo' :: QName -> ReduceM (Either SigError Definition) # | |
| MonadReader TCEnv ReduceM # | |
fmapReduce :: (a -> b) -> ReduceM a -> ReduceM b #
bindReduce :: ReduceM a -> (a -> ReduceM b) -> ReduceM b #
runReduceM :: ReduceM a -> TCM a #
runReduceF :: (a -> ReduceM b) -> TCM (a -> b) #
Type checking monad transformer
Instances
class (Applicative tcm, MonadIO tcm, MonadReader TCEnv tcm, MonadState TCState tcm, HasOptions tcm) => MonadTCM tcm where #
Minimal complete definition
Instances
| MonadTCM TerM # | |
Defined in Agda.Termination.Monad | |
| MonadTCM tcm => MonadTCM (MaybeT tcm) # | |
Defined in Agda.TypeChecking.Monad.Base | |
| MonadTCM tcm => MonadTCM (ListT tcm) # | |
Defined in Agda.TypeChecking.Monad.Base | |
| MonadIO m => MonadTCM (TCMT m) # | |
Defined in Agda.TypeChecking.Monad.Base | |
| MonadTCM tcm => MonadTCM (ExceptT err tcm) # | |
Defined in Agda.TypeChecking.Monad.Base | |
| (Monoid w, MonadTCM tcm) => MonadTCM (WriterT w tcm) # | |
Defined in Agda.TypeChecking.Monad.Base | |
finally_ :: TCM a -> TCM b -> TCM a #
Execute a finalizer even when an exception is thrown. Does not catch any errors. In case both the regular computation and the finalizer throw an exception, the one of the finalizer is propagated.
returnTCMT :: MonadIO m => a -> TCMT m a #
patternViolation :: TCM a #
internalError :: MonadTCM tcm => String -> tcm a #
genericError :: MonadTCM tcm => String -> tcm a #
genericDocError :: MonadTCM tcm => Doc -> tcm a #
typeError_ :: MonadTCM tcm => TypeError -> tcm TCErr #
runTCM :: MonadIO m => TCEnv -> TCState -> TCMT m a -> m (a, TCState) #
Running the type checking monad (most general form).
runTCMTop :: TCM a -> IO (Either TCErr a) #
Running the type checking monad on toplevel (with initial state).
runTCMTop' :: MonadIO m => TCMT m a -> m a #
runSafeTCM :: TCM a -> TCState -> IO (a, TCState) #
runSafeTCM runs a safe TCM action (a TCM action which cannot fail)
in the initial environment.
Runs the given computation in a separate thread, with a copy of the current state and environment.
Note that Agda sometimes uses actual, mutable state. If the
computation given to forkTCM tries to modify this state, then
bad things can happen, because accesses are not mutually exclusive.
The forkTCM function has been added mainly to allow the thread to
read (a snapshot of) the current state in a convenient way.
Note also that exceptions which are raised in the thread are not propagated to the parent, so the thread should not do anything important.
extendedLambdaName :: String #
Base name for extended lambda patterns
Name of absurdLambda definitions.
isAbsurdLambdaName :: QName -> Bool #
Check whether we have an definition from an absurd lambda.