Even if we are not stuck on a meta during reduction we can fail to reduce a definition by pattern matching for another reason.
Constructors
StuckOn (Elim' t)The
Elimis neutral and blocks a pattern match.UnderappliedNot enough arguments were supplied to complete the matching.
AbsurdMatchWe matched an absurd clause, results in a neutral
Def.MissingClauses QNameWe ran out of clauses for QName, all considered clauses produced an actual mismatch. This can happen when try to reduce a function application but we are still missing some function clauses. See Agda.TypeChecking.Patterns.Match.
ReallyNotBlockedReduction was not blocked, we reached a whnf which can be anything but a stuck
.Def
Instances9Eq, EmbPrj, Show, Generic, Semigroup, Monoid, …
Eq NotBlockedDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphanEmbPrj NotBlockedDefined in Agda-2.7.0.1 · Agda.TypeChecking.Serialise.Instances.Internal · orphanShow t => Show (NotBlocked' t)Defined in Agda-2.7.0.1 · Agda.Syntax.Internal.BlockersGeneric (NotBlocked' t)Defined in Agda-2.7.0.1 · Agda.Syntax.Internal.BlockersSemigroup (NotBlocked' t)Defined in Agda-2.7.0.1 · Agda.Syntax.Internal.BlockersReallyNotBlocked is the unit. MissingClauses is dominant.
StuckOn{}should be propagated, if tied, we take the left.Monoid (NotBlocked' t)Defined in Agda-2.7.0.1 · Agda.Syntax.Internal.BlockersNFData t => NFData (NotBlocked' t)Defined in Agda-2.7.0.1 · Agda.Syntax.Internal.BlockersPretty t => Pretty (NotBlocked' t)Defined in Agda-2.7.0.1 · Agda.Syntax.Internal.Blockerstype Rep (NotBlocked' t) = D1 ('MetaDataDefined in Agda-2.7.0.1 · Agda.Syntax.Internal.Blockers"NotBlocked'"
"Agda.Syntax.Internal.Blockers"
"Agda-2.7.0.1-DbbZpETDDF1KkwuzEZvfn8"
'False) ((C1 ('MetaCons"StuckOn"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Elim' t))) :+: C1 ('MetaCons"Underapplied"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"AbsurdMatch"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"MissingClauses"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 QName)) :+: C1 ('MetaCons"ReallyNotBlocked"
'PrefixI 'False) U1)))