| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Mikan.TypeChecking.Coverage.Errors
Synopsis
- data SplitError
- = NotADatatype (Closure Type)
- | BlockedType Blocker (Closure Type)
- | CoinductiveDatatype (Closure Type)
- | UnificationStuck { }
- | CosplitNoTarget
- | CosplitNoRecordType (Closure Type)
- | CannotCreateMissingClause QName (Telescope, [NamedArg DeBruijnPattern]) Doc (Closure (Abs Type))
- | CannotEliminateWithPattern (Maybe Blocker) (NamedArg Pattern) Type
- | CannotEliminateWithProjection { }
- | SortOfSplitVarError (Maybe Blocker) Doc
- | SplitOnCoinductive
- | SplitOnNonVariable Term Type
- | SplitOnNonEtaRecord QName
- | SplitOnAbstract QName
- | SplitOnUnchecked QName
- | SplitOnPartial (Dom Type)
- | SplitInProp DataOrRecordE
- | GenericSplitError String
- data WrongProjectionName
- data WhyWrongProj
- data UnificationFailure
Documentation
data SplitError Source #
Error when splitting a pattern variable into possible constructor patterns.
Constructors
| NotADatatype (Closure Type) | Neither data type nor record. |
| BlockedType Blocker (Closure Type) | Type could not be sufficiently reduced. |
| CoinductiveDatatype (Closure Type) | Split on codata not allowed. UNUSED, but keep! -- | NoRecordConstructor Type -- ^ record type, but no constructor |
| UnificationStuck | |
Fields
| |
| CosplitNoTarget | We do not know the target type of the clause. |
| CosplitNoRecordType (Closure Type) | Target type is not a record type. |
| CannotCreateMissingClause QName (Telescope, [NamedArg DeBruijnPattern]) Doc (Closure (Abs Type)) | |
| CannotEliminateWithPattern (Maybe Blocker) (NamedArg Pattern) Type | |
| CannotEliminateWithProjection | |
Fields
| |
| SortOfSplitVarError (Maybe Blocker) Doc | the meta is what we might be blocked on. |
| SplitOnCoinductive | |
| SplitOnNonVariable Term Type | |
| SplitOnNonEtaRecord QName | |
| SplitOnAbstract QName | |
| SplitOnUnchecked QName | |
| SplitOnPartial (Dom Type) | |
| SplitInProp DataOrRecordE | |
| GenericSplitError String | |
Instances
data WrongProjectionName Source #
A name to be reported in a failure of projection disambiguation.
Constructors
| UnambWrongProj !QName | We do not know what internal name the user meant; print this name without semantics. |
| AmbWrongProj !QName | We know exactly what internal name was meant; print it exactly. |
Instances
| PrettyTCM WrongProjectionName Source # | |||||
Defined in Mikan.TypeChecking.Coverage.Errors Methods prettyTCM :: MonadPretty m => WrongProjectionName -> m Doc Source # | |||||
| NFData WrongProjectionName Source # | |||||
Defined in Mikan.TypeChecking.Coverage.Errors Methods rnf :: WrongProjectionName -> () # | |||||
| Generic WrongProjectionName Source # | |||||
Defined in Mikan.TypeChecking.Coverage.Errors Associated Types
Methods from :: WrongProjectionName -> Rep WrongProjectionName x # to :: Rep WrongProjectionName x -> WrongProjectionName # | |||||
| Show WrongProjectionName Source # | |||||
Defined in Mikan.TypeChecking.Coverage.Errors Methods showsPrec :: Int -> WrongProjectionName -> ShowS # show :: WrongProjectionName -> String # showList :: [WrongProjectionName] -> ShowS # | |||||
| type Rep WrongProjectionName Source # | |||||
Defined in Mikan.TypeChecking.Coverage.Errors type Rep WrongProjectionName = D1 ('MetaData "WrongProjectionName" "Mikan.TypeChecking.Coverage.Errors" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "UnambWrongProj" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 QName)) :+: C1 ('MetaCons "AmbWrongProj" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 QName))) | |||||
data WhyWrongProj Source #
Why did projection disambiguation fail at this position?
Constructors
| BecauseNotRecord (Maybe Doc) | The type is not a record type.
The |
| BecauseNotProj | Because the name is not a (proper) projection. |
| BecauseAlreadyApplied Type | Because even though the name is a copy of a proper projection,
it has lost all of its lambdas, so it no longer has a function
type. The |
| BecauseNotField [Dom QName] | Because the name is not one of the fields of the record, which must be one of the given list. |
Instances
| NFData WhyWrongProj Source # | |||||
Defined in Mikan.TypeChecking.Coverage.Errors Methods rnf :: WhyWrongProj -> () # | |||||
| Generic WhyWrongProj Source # | |||||
Defined in Mikan.TypeChecking.Coverage.Errors Associated Types
| |||||
| Show WhyWrongProj Source # | |||||
Defined in Mikan.TypeChecking.Coverage.Errors Methods showsPrec :: Int -> WhyWrongProj -> ShowS # show :: WhyWrongProj -> String # showList :: [WhyWrongProj] -> ShowS # | |||||
| type Rep WhyWrongProj Source # | |||||
Defined in Mikan.TypeChecking.Coverage.Errors type Rep WhyWrongProj = D1 ('MetaData "WhyWrongProj" "Mikan.TypeChecking.Coverage.Errors" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) ((C1 ('MetaCons "BecauseNotRecord" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Doc))) :+: C1 ('MetaCons "BecauseNotProj" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "BecauseAlreadyApplied" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "BecauseNotField" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dom QName])))) | |||||
data UnificationFailure Source #
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
| PrettyTCM UnificationFailure Source # | |||||
Defined in Mikan.TypeChecking.Coverage.Errors Methods prettyTCM :: MonadPretty m => UnificationFailure -> m Doc Source # | |||||
| NFData UnificationFailure Source # | |||||
Defined in Mikan.TypeChecking.Coverage.Errors Methods rnf :: UnificationFailure -> () # | |||||
| Generic UnificationFailure Source # | |||||
Defined in Mikan.TypeChecking.Coverage.Errors Associated Types
Methods from :: UnificationFailure -> Rep UnificationFailure x # to :: Rep UnificationFailure x -> UnificationFailure # | |||||
| Show UnificationFailure Source # | |||||
Defined in Mikan.TypeChecking.Coverage.Errors Methods showsPrec :: Int -> UnificationFailure -> ShowS # show :: UnificationFailure -> String # showList :: [UnificationFailure] -> ShowS # | |||||
| type Rep UnificationFailure Source # | |||||
Defined in Mikan.TypeChecking.Coverage.Errors type Rep UnificationFailure = D1 ('MetaData "UnificationFailure" "Mikan.TypeChecking.Coverage.Errors" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "UnifyIndicesNotVars" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Telescope) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Term) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Term) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Args)))) :+: (C1 ('MetaCons "UnifyRecursiveEq" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Telescope) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Term))) :+: C1 ('MetaCons "UnifyReflexiveEq" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Telescope) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Term))))) | |||||