packages feed

ghc-typelits-presburger 0.7.4.1 → 0.7.4.2

raw patch · 5 files changed

+126/−108 lines, 5 filesdep ~ghc-tcplugins-extraPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: ghc-tcplugins-extra

API changes (from Hackage documentation)

- GHC.TypeLits.Presburger.Compat: AbstractClosedSynFamilyTyCon :: FamTyConFlav
- GHC.TypeLits.Presburger.Compat: AbstractTyCon :: AlgTyConRhs
- GHC.TypeLits.Presburger.Compat: AbstractTypeFlavour :: TyConFlavour
- GHC.TypeLits.Presburger.Compat: AddrRep :: PrimRep
- GHC.TypeLits.Presburger.Compat: AnonTCB :: FunTyFlag -> TyConBndrVis
- GHC.TypeLits.Presburger.Compat: BuiltInSynFamTyCon :: BuiltInSynFamily -> FamTyConFlav
- GHC.TypeLits.Presburger.Compat: BuiltInSynFamily :: ([Type] -> Maybe (CoAxiomRule, [Type], Type)) -> ([Type] -> Type -> [TypeEqn]) -> ([Type] -> Type -> [Type] -> Type -> [TypeEqn]) -> BuiltInSynFamily
- GHC.TypeLits.Presburger.Compat: BuiltInTypeFlavour :: TyConFlavour
- GHC.TypeLits.Presburger.Compat: ClassFlavour :: TyConFlavour
- GHC.TypeLits.Presburger.Compat: ClassTyCon :: Class -> TyConRepName -> AlgTyConFlav
- GHC.TypeLits.Presburger.Compat: ClosedSynFamilyTyCon :: Maybe (CoAxiom Branched) -> FamTyConFlav
- GHC.TypeLits.Presburger.Compat: ClosedTypeFamilyFlavour :: TyConFlavour
- GHC.TypeLits.Presburger.Compat: CtLoc :: CtOrigin -> TcLclEnv -> Maybe TypeOrKind -> !SubGoalDepth -> CtLoc
- GHC.TypeLits.Presburger.Compat: DataFamInstTyCon :: CoAxiom Unbranched -> TyCon -> [Type] -> AlgTyConFlav
- GHC.TypeLits.Presburger.Compat: DataFamilyFlavour :: Maybe TyCon -> TyConFlavour
- GHC.TypeLits.Presburger.Compat: DataFamilyInst :: TyCon -> FamFlavor
- GHC.TypeLits.Presburger.Compat: DataFamilyTyCon :: TyConRepName -> FamTyConFlav
- GHC.TypeLits.Presburger.Compat: DataTyCon :: [DataCon] -> Int -> Bool -> Bool -> Bool -> AlgTyConRhs
- GHC.TypeLits.Presburger.Compat: DataTypeFlavour :: TyConFlavour
- GHC.TypeLits.Presburger.Compat: DoubleElemRep :: PrimElemRep
- GHC.TypeLits.Presburger.Compat: DoubleRep :: PrimRep
- GHC.TypeLits.Presburger.Compat: ExpandsSyn :: [(TyVar, tyco)] -> Type -> [tyco] -> ExpandSynResult tyco
- GHC.TypeLits.Presburger.Compat: FamInst :: CoAxiom Unbranched -> FamFlavor -> Name -> [RoughMatchTc] -> [TyVar] -> [CoVar] -> [Type] -> Type -> FamInst
- GHC.TypeLits.Presburger.Compat: FamInstMatch :: FamInst -> [Type] -> [Coercion] -> FamInstMatch
- GHC.TypeLits.Presburger.Compat: FloatElemRep :: PrimElemRep
- GHC.TypeLits.Presburger.Compat: FloatRep :: PrimRep
- GHC.TypeLits.Presburger.Compat: GhcBug20076 :: CtOrigin
- GHC.TypeLits.Presburger.Compat: Injective :: [Bool] -> Injectivity
- GHC.TypeLits.Presburger.Compat: InjectivityAccepted :: InjectivityCheckResult
- GHC.TypeLits.Presburger.Compat: InjectivityUnified :: CoAxBranch -> CoAxBranch -> InjectivityCheckResult
- GHC.TypeLits.Presburger.Compat: Int16ElemRep :: PrimElemRep
- GHC.TypeLits.Presburger.Compat: Int16Rep :: PrimRep
- GHC.TypeLits.Presburger.Compat: Int32ElemRep :: PrimElemRep
- GHC.TypeLits.Presburger.Compat: Int32Rep :: PrimRep
- GHC.TypeLits.Presburger.Compat: Int64ElemRep :: PrimElemRep
- GHC.TypeLits.Presburger.Compat: Int64Rep :: PrimRep
- GHC.TypeLits.Presburger.Compat: Int8ElemRep :: PrimElemRep
- GHC.TypeLits.Presburger.Compat: Int8Rep :: PrimRep
- GHC.TypeLits.Presburger.Compat: IntRep :: PrimRep
- GHC.TypeLits.Presburger.Compat: Levity :: Levity -> PromDataConInfo
- GHC.TypeLits.Presburger.Compat: LiftedRep :: PrimRep
- GHC.TypeLits.Presburger.Compat: NamedTCB :: ForAllTyFlag -> TyConBndrVis
- GHC.TypeLits.Presburger.Compat: NewTyCon :: DataCon -> Type -> ([TyVar], Type) -> CoAxiom Unbranched -> Bool -> AlgTyConRhs
- GHC.TypeLits.Presburger.Compat: NewtypeFlavour :: TyConFlavour
- GHC.TypeLits.Presburger.Compat: NoExpansion :: ExpandSynResult tyco
- GHC.TypeLits.Presburger.Compat: NoPromInfo :: PromDataConInfo
- GHC.TypeLits.Presburger.Compat: Nominal :: Role
- GHC.TypeLits.Presburger.Compat: NotInjective :: Injectivity
- GHC.TypeLits.Presburger.Compat: OpenSynFamilyTyCon :: FamTyConFlav
- GHC.TypeLits.Presburger.Compat: OpenTypeFamilyFlavour :: Maybe TyCon -> TyConFlavour
- GHC.TypeLits.Presburger.Compat: Phantom :: Role
- GHC.TypeLits.Presburger.Compat: PromotedDataConFlavour :: TyConFlavour
- GHC.TypeLits.Presburger.Compat: Representational :: Role
- GHC.TypeLits.Presburger.Compat: RuntimeRep :: ([Type] -> [PrimRep]) -> PromDataConInfo
- GHC.TypeLits.Presburger.Compat: SumFlavour :: TyConFlavour
- GHC.TypeLits.Presburger.Compat: SumTyCon :: [DataCon] -> Int -> AlgTyConRhs
- GHC.TypeLits.Presburger.Compat: SynFamilyInst :: FamFlavor
- GHC.TypeLits.Presburger.Compat: TupleFlavour :: Boxity -> TyConFlavour
- GHC.TypeLits.Presburger.Compat: TupleTyCon :: DataCon -> TupleSort -> AlgTyConRhs
- GHC.TypeLits.Presburger.Compat: TypeSynonymFlavour :: TyConFlavour
- GHC.TypeLits.Presburger.Compat: UnboxedSumTyCon :: AlgTyConFlav
- GHC.TypeLits.Presburger.Compat: UnliftedRep :: PrimRep
- GHC.TypeLits.Presburger.Compat: VanillaAlgTyCon :: TyConRepName -> AlgTyConFlav
- GHC.TypeLits.Presburger.Compat: VecCount :: Int -> PromDataConInfo
- GHC.TypeLits.Presburger.Compat: VecElem :: PrimElemRep -> PromDataConInfo
- GHC.TypeLits.Presburger.Compat: VecRep :: Int -> PrimElemRep -> PrimRep
- GHC.TypeLits.Presburger.Compat: VoidRep :: PrimRep
- GHC.TypeLits.Presburger.Compat: Word16ElemRep :: PrimElemRep
- GHC.TypeLits.Presburger.Compat: Word16Rep :: PrimRep
- GHC.TypeLits.Presburger.Compat: Word32ElemRep :: PrimElemRep
- GHC.TypeLits.Presburger.Compat: Word32Rep :: PrimRep
- GHC.TypeLits.Presburger.Compat: Word64ElemRep :: PrimElemRep
- GHC.TypeLits.Presburger.Compat: Word64Rep :: PrimRep
- GHC.TypeLits.Presburger.Compat: Word8ElemRep :: PrimElemRep
- GHC.TypeLits.Presburger.Compat: Word8Rep :: PrimRep
- GHC.TypeLits.Presburger.Compat: WordRep :: PrimRep
- GHC.TypeLits.Presburger.Compat: [ctl_depth] :: CtLoc -> !SubGoalDepth
- GHC.TypeLits.Presburger.Compat: [ctl_env] :: CtLoc -> TcLclEnv
- GHC.TypeLits.Presburger.Compat: [ctl_origin] :: CtLoc -> CtOrigin
- GHC.TypeLits.Presburger.Compat: [ctl_t_or_k] :: CtLoc -> Maybe TypeOrKind
- GHC.TypeLits.Presburger.Compat: [data_con] :: AlgTyConRhs -> DataCon
- GHC.TypeLits.Presburger.Compat: [data_cons] :: AlgTyConRhs -> [DataCon]
- GHC.TypeLits.Presburger.Compat: [data_cons_size] :: AlgTyConRhs -> Int
- GHC.TypeLits.Presburger.Compat: [data_fixed_lev] :: AlgTyConRhs -> Bool
- GHC.TypeLits.Presburger.Compat: [fi_axiom] :: FamInst -> CoAxiom Unbranched
- GHC.TypeLits.Presburger.Compat: [fi_cvs] :: FamInst -> [CoVar]
- GHC.TypeLits.Presburger.Compat: [fi_fam] :: FamInst -> Name
- GHC.TypeLits.Presburger.Compat: [fi_flavor] :: FamInst -> FamFlavor
- GHC.TypeLits.Presburger.Compat: [fi_rhs] :: FamInst -> Type
- GHC.TypeLits.Presburger.Compat: [fi_tcs] :: FamInst -> [RoughMatchTc]
- GHC.TypeLits.Presburger.Compat: [fi_tvs] :: FamInst -> [TyVar]
- GHC.TypeLits.Presburger.Compat: [fi_tys] :: FamInst -> [Type]
- GHC.TypeLits.Presburger.Compat: [fim_cos] :: FamInstMatch -> [Coercion]
- GHC.TypeLits.Presburger.Compat: [fim_instance] :: FamInstMatch -> FamInst
- GHC.TypeLits.Presburger.Compat: [fim_tys] :: FamInstMatch -> [Type]
- GHC.TypeLits.Presburger.Compat: [is_enum] :: AlgTyConRhs -> Bool
- GHC.TypeLits.Presburger.Compat: [is_type_data] :: AlgTyConRhs -> Bool
- GHC.TypeLits.Presburger.Compat: [nt_co] :: AlgTyConRhs -> CoAxiom Unbranched
- GHC.TypeLits.Presburger.Compat: [nt_etad_rhs] :: AlgTyConRhs -> ([TyVar], Type)
- GHC.TypeLits.Presburger.Compat: [nt_fixed_rep] :: AlgTyConRhs -> Bool
- GHC.TypeLits.Presburger.Compat: [nt_rhs] :: AlgTyConRhs -> Type
- GHC.TypeLits.Presburger.Compat: [sfInteractInert] :: BuiltInSynFamily -> [Type] -> Type -> [Type] -> Type -> [TypeEqn]
- GHC.TypeLits.Presburger.Compat: [sfInteractTop] :: BuiltInSynFamily -> [Type] -> Type -> [TypeEqn]
- GHC.TypeLits.Presburger.Compat: [sfMatchFam] :: BuiltInSynFamily -> [Type] -> Maybe (CoAxiomRule, [Type], Type)
- GHC.TypeLits.Presburger.Compat: [tup_sort] :: AlgTyConRhs -> TupleSort
- GHC.TypeLits.Presburger.Compat: algTcFields :: TyConDetails -> FieldLabelEnv
- GHC.TypeLits.Presburger.Compat: algTyConRhs :: TyCon -> AlgTyConRhs
- GHC.TypeLits.Presburger.Compat: apartnessCheck :: [Type] -> CoAxBranch -> Bool
- GHC.TypeLits.Presburger.Compat: compatibleBranches :: CoAxBranch -> CoAxBranch -> Bool
- GHC.TypeLits.Presburger.Compat: ctEvPred :: CtEvidence -> TcPredType
- GHC.TypeLits.Presburger.Compat: ctEvidence :: Ct -> CtEvidence
- GHC.TypeLits.Presburger.Compat: data () => AlgTyConFlav
- GHC.TypeLits.Presburger.Compat: data () => AlgTyConRhs
- GHC.TypeLits.Presburger.Compat: data () => BuiltInSynFamily
- GHC.TypeLits.Presburger.Compat: data () => Ct
- GHC.TypeLits.Presburger.Compat: data () => CtEvidence
- GHC.TypeLits.Presburger.Compat: data () => CtLoc
- GHC.TypeLits.Presburger.Compat: data () => ExpandSynResult tyco
- GHC.TypeLits.Presburger.Compat: data () => FamFlavor
- GHC.TypeLits.Presburger.Compat: data () => FamInst
- GHC.TypeLits.Presburger.Compat: data () => FamInstEnv
- GHC.TypeLits.Presburger.Compat: data () => FamInstMatch
- GHC.TypeLits.Presburger.Compat: data () => FamTyConFlav
- GHC.TypeLits.Presburger.Compat: data () => Injectivity
- GHC.TypeLits.Presburger.Compat: data () => InjectivityCheckResult
- GHC.TypeLits.Presburger.Compat: data () => PrimElemRep
- GHC.TypeLits.Presburger.Compat: data () => PrimRep
- GHC.TypeLits.Presburger.Compat: data () => PromDataConInfo
- GHC.TypeLits.Presburger.Compat: data () => Role
- GHC.TypeLits.Presburger.Compat: data () => TyCon
- GHC.TypeLits.Presburger.Compat: data () => TyConBndrVis
- GHC.TypeLits.Presburger.Compat: data () => TyConFlavour
- GHC.TypeLits.Presburger.Compat: dataFamInstRepTyCon :: FamInst -> TyCon
- GHC.TypeLits.Presburger.Compat: emptyFamInstEnv :: FamInstEnv
- GHC.TypeLits.Presburger.Compat: emptyFamInstEnvs :: (FamInstEnv, FamInstEnv)
- GHC.TypeLits.Presburger.Compat: expandSynTyCon_maybe :: TyCon -> [tyco] -> ExpandSynResult tyco
- GHC.TypeLits.Presburger.Compat: extendFamInstEnv :: FamInstEnv -> FamInst -> FamInstEnv
- GHC.TypeLits.Presburger.Compat: extendFamInstEnvList :: FamInstEnv -> [FamInst] -> FamInstEnv
- GHC.TypeLits.Presburger.Compat: famInstAxiom :: FamInst -> CoAxiom Unbranched
- GHC.TypeLits.Presburger.Compat: famInstEnvElts :: FamInstEnv -> [FamInst]
- GHC.TypeLits.Presburger.Compat: famInstEnvSize :: FamInstEnv -> Int
- GHC.TypeLits.Presburger.Compat: famInstRHS :: FamInst -> Type
- GHC.TypeLits.Presburger.Compat: famInstRepTyCon_maybe :: FamInst -> Maybe TyCon
- GHC.TypeLits.Presburger.Compat: famInstTyCon :: FamInst -> TyCon
- GHC.TypeLits.Presburger.Compat: famInstsRepTyCons :: [FamInst] -> [TyCon]
- GHC.TypeLits.Presburger.Compat: famTyConFlav_maybe :: TyCon -> Maybe FamTyConFlav
- GHC.TypeLits.Presburger.Compat: familyInstances :: (FamInstEnv, FamInstEnv) -> TyCon -> [FamInst]
- GHC.TypeLits.Presburger.Compat: familyNameInstances :: (FamInstEnv, FamInstEnv) -> Name -> [FamInst]
- GHC.TypeLits.Presburger.Compat: initialSubGoalDepth :: SubGoalDepth
- GHC.TypeLits.Presburger.Compat: injectiveBranches :: [Bool] -> CoAxBranch -> CoAxBranch -> InjectivityCheckResult
- GHC.TypeLits.Presburger.Compat: isAbstractTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isAlgTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isBoxedTupleTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isBuiltInSynFamTyCon_maybe :: TyCon -> Maybe BuiltInSynFamily
- GHC.TypeLits.Presburger.Compat: isClassTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isClosedSynFamilyTyConWithAxiom_maybe :: TyCon -> Maybe (CoAxiom Branched)
- GHC.TypeLits.Presburger.Compat: isConcreteTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isDataFamilyTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isDataKindsPromotedDataCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isDataTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isDominatedBy :: CoAxBranch -> [CoAxBranch] -> Bool
- GHC.TypeLits.Presburger.Compat: isEnumerationTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isFamFreeTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isFamInstTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isFamilyTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isForgetfulSynTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isGadtSyntaxTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isGcPtrRep :: PrimRep -> Bool
- GHC.TypeLits.Presburger.Compat: isGenInjAlgRhs :: AlgTyConRhs -> Bool
- GHC.TypeLits.Presburger.Compat: isGenerativeTyCon :: TyCon -> Role -> Bool
- GHC.TypeLits.Presburger.Compat: isImplicitTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isInjectiveTyCon :: TyCon -> Role -> Bool
- GHC.TypeLits.Presburger.Compat: isInvisibleTyConBinder :: VarBndr tv TyConBndrVis -> Bool
- GHC.TypeLits.Presburger.Compat: isKindTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isLiftedAlgTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isLiftedTypeKindTyConName :: Name -> Bool
- GHC.TypeLits.Presburger.Compat: isMonoTcTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isNamedTyConBinder :: TyConBinder -> Bool
- GHC.TypeLits.Presburger.Compat: isNewTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isNoParent :: AlgTyConFlav -> Bool
- GHC.TypeLits.Presburger.Compat: isOpenFamilyTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isOpenTypeFamilyTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isPrimTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isPromotedDataCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isPromotedDataCon_maybe :: TyCon -> Maybe DataCon
- GHC.TypeLits.Presburger.Compat: isPromotedTupleTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isTauTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isTcTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isTupleTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isTyConAssoc :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isTyConWithSrcDataCons :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isTypeDataTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isTypeFamilyTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isTypeSynonymTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isUnboxedSumTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isUnboxedTupleTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isVanillaAlgTyCon :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: isVisibleTcbVis :: TyConBndrVis -> Bool
- GHC.TypeLits.Presburger.Compat: isVisibleTyConBinder :: VarBndr tv TyConBndrVis -> Bool
- GHC.TypeLits.Presburger.Compat: isVoidRep :: PrimRep -> Bool
- GHC.TypeLits.Presburger.Compat: isWanted :: CtEvidence -> Bool
- GHC.TypeLits.Presburger.Compat: lookupFamInstEnv :: FamInstEnvs -> TyCon -> [Type] -> [FamInstMatch]
- GHC.TypeLits.Presburger.Compat: lookupFamInstEnvByTyCon :: FamInstEnvs -> TyCon -> [FamInst]
- GHC.TypeLits.Presburger.Compat: lookupFamInstEnvConflicts :: FamInstEnvs -> FamInst -> [FamInst]
- GHC.TypeLits.Presburger.Compat: lookupFamInstEnvInjectivityConflicts :: [Bool] -> FamInstEnvs -> FamInst -> [CoAxBranch]
- GHC.TypeLits.Presburger.Compat: lookupTyConFieldLabel :: FieldLabelString -> TyCon -> Maybe FieldLabel
- GHC.TypeLits.Presburger.Compat: mkAlgTyCon :: Name -> [TyConBinder] -> Kind -> [Role] -> Maybe CType -> [PredType] -> AlgTyConRhs -> AlgTyConFlav -> Bool -> TyCon
- GHC.TypeLits.Presburger.Compat: mkAnonTyConBinder :: TyVar -> TyConBinder
- GHC.TypeLits.Presburger.Compat: mkAnonTyConBinders :: [TyVar] -> [TyConBinder]
- GHC.TypeLits.Presburger.Compat: mkBranchedCoAxiom :: Name -> TyCon -> [CoAxBranch] -> CoAxiom Branched
- GHC.TypeLits.Presburger.Compat: mkClassTyCon :: Name -> [TyConBinder] -> [Role] -> AlgTyConRhs -> Class -> Name -> TyCon
- GHC.TypeLits.Presburger.Compat: mkCoAxBranch :: [TyVar] -> [TyVar] -> [CoVar] -> [Type] -> Type -> [Role] -> SrcSpan -> CoAxBranch
- GHC.TypeLits.Presburger.Compat: mkDataTyConRhs :: [DataCon] -> AlgTyConRhs
- GHC.TypeLits.Presburger.Compat: mkFamilyTyCon :: Name -> [TyConBinder] -> Kind -> Maybe Name -> FamTyConFlav -> Maybe Class -> Injectivity -> TyCon
- GHC.TypeLits.Presburger.Compat: mkImportedFamInst :: Name -> [RoughMatchTc] -> CoAxiom Unbranched -> FamInst
- GHC.TypeLits.Presburger.Compat: mkInvisAnonTyConBinder :: TyVar -> TyConBinder
- GHC.TypeLits.Presburger.Compat: mkLevPolyDataTyConRhs :: Bool -> Bool -> [DataCon] -> AlgTyConRhs
- GHC.TypeLits.Presburger.Compat: mkNamedTyConBinder :: ForAllTyFlag -> TyVar -> TyConBinder
- GHC.TypeLits.Presburger.Compat: mkNamedTyConBinders :: ForAllTyFlag -> [TyVar] -> [TyConBinder]
- GHC.TypeLits.Presburger.Compat: mkNewTypeCoAxiom :: Name -> TyCon -> [TyVar] -> [Role] -> Type -> CoAxiom Unbranched
- GHC.TypeLits.Presburger.Compat: mkPrelTyConRepName :: Name -> TyConRepName
- GHC.TypeLits.Presburger.Compat: mkPrimTyCon :: Name -> [TyConBinder] -> Kind -> [Role] -> TyCon
- GHC.TypeLits.Presburger.Compat: mkPromotedDataCon :: DataCon -> Name -> TyConRepName -> [TyConPiTyBinder] -> Kind -> [Role] -> PromDataConInfo -> TyCon
- GHC.TypeLits.Presburger.Compat: mkRequiredTyConBinder :: TyCoVarSet -> TyVar -> TyConBinder
- GHC.TypeLits.Presburger.Compat: mkSingleCoAxiom :: Role -> Name -> [TyVar] -> [TyVar] -> [CoVar] -> TyCon -> [Type] -> Type -> CoAxiom Unbranched
- GHC.TypeLits.Presburger.Compat: mkSumTyCon :: Name -> [TyConBinder] -> Kind -> [DataCon] -> AlgTyConFlav -> TyCon
- GHC.TypeLits.Presburger.Compat: mkSynonymTyCon :: Name -> [TyConBinder] -> Kind -> [Role] -> Type -> Bool -> Bool -> Bool -> TyCon
- GHC.TypeLits.Presburger.Compat: mkTcTyCon :: Name -> [TyConBinder] -> Kind -> [(Name, TcTyVar)] -> Bool -> TyConFlavour -> TyCon
- GHC.TypeLits.Presburger.Compat: mkTupleTyCon :: Name -> [TyConBinder] -> Kind -> DataCon -> TupleSort -> AlgTyConFlav -> TyCon
- GHC.TypeLits.Presburger.Compat: mkTyConKind :: [TyConBinder] -> Kind -> Kind
- GHC.TypeLits.Presburger.Compat: mkTyConTagMap :: TyCon -> NameEnv ConTag
- GHC.TypeLits.Presburger.Compat: mkTyConTy :: TyCon -> Type
- GHC.TypeLits.Presburger.Compat: mkUnbranchedCoAxiom :: Name -> TyCon -> CoAxBranch -> CoAxiom Unbranched
- GHC.TypeLits.Presburger.Compat: newTyConCo :: TyCon -> CoAxiom Unbranched
- GHC.TypeLits.Presburger.Compat: newTyConCo_maybe :: TyCon -> Maybe (CoAxiom Unbranched)
- GHC.TypeLits.Presburger.Compat: newTyConDataCon_maybe :: TyCon -> Maybe DataCon
- GHC.TypeLits.Presburger.Compat: newTyConEtadArity :: TyCon -> Int
- GHC.TypeLits.Presburger.Compat: newTyConEtadRhs :: TyCon -> ([TyVar], Type)
- GHC.TypeLits.Presburger.Compat: newTyConRhs :: TyCon -> ([TyVar], Type)
- GHC.TypeLits.Presburger.Compat: noTcTyConScopedTyVars :: [(Name, TcTyVar)]
- GHC.TypeLits.Presburger.Compat: normaliseTcApp :: FamInstEnvs -> Role -> TyCon -> [Type] -> Reduction
- GHC.TypeLits.Presburger.Compat: normaliseType :: FamInstEnvs -> Role -> Type -> Reduction
- GHC.TypeLits.Presburger.Compat: orphNamesOfFamInst :: FamInst -> NameSet
- GHC.TypeLits.Presburger.Compat: pprFamInst :: FamInst -> SDoc
- GHC.TypeLits.Presburger.Compat: pprFamInsts :: [FamInst] -> SDoc
- GHC.TypeLits.Presburger.Compat: pprPromotionQuote :: TyCon -> SDoc
- GHC.TypeLits.Presburger.Compat: primElemRepSizeB :: Platform -> PrimElemRep -> Int
- GHC.TypeLits.Presburger.Compat: primElemRepToPrimRep :: PrimElemRep -> PrimRep
- GHC.TypeLits.Presburger.Compat: primRepCompatible :: Platform -> PrimRep -> PrimRep -> Bool
- GHC.TypeLits.Presburger.Compat: primRepIsFloat :: PrimRep -> Maybe Bool
- GHC.TypeLits.Presburger.Compat: primRepIsInt :: PrimRep -> Bool
- GHC.TypeLits.Presburger.Compat: primRepIsWord :: PrimRep -> Bool
- GHC.TypeLits.Presburger.Compat: primRepSizeB :: Platform -> PrimRep -> Int
- GHC.TypeLits.Presburger.Compat: primRepsCompatible :: Platform -> [PrimRep] -> [PrimRep] -> Bool
- GHC.TypeLits.Presburger.Compat: reduceTyFamApp_maybe :: FamInstEnvs -> Role -> TyCon -> [Type] -> Maybe Reduction
- GHC.TypeLits.Presburger.Compat: setTcTyConKind :: TyCon -> Kind -> TyCon
- GHC.TypeLits.Presburger.Compat: synTyConDefn_maybe :: TyCon -> Maybe ([TyVar], Type)
- GHC.TypeLits.Presburger.Compat: synTyConRhs_maybe :: TyCon -> Maybe Type
- GHC.TypeLits.Presburger.Compat: tcFlavourIsOpen :: TyConFlavour -> Bool
- GHC.TypeLits.Presburger.Compat: tcHasFixedRuntimeRep :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: tcTyConScopedTyVars :: TyCon -> [(Name, TcTyVar)]
- GHC.TypeLits.Presburger.Compat: topNormaliseType :: FamInstEnvs -> Type -> Type
- GHC.TypeLits.Presburger.Compat: topNormaliseType_maybe :: FamInstEnvs -> Type -> Maybe Reduction
- GHC.TypeLits.Presburger.Compat: topReduceTyFamApp_maybe :: FamInstEnvs -> TyCon -> [Type] -> Maybe HetReduction
- GHC.TypeLits.Presburger.Compat: tyConATs :: TyCon -> [TyCon]
- GHC.TypeLits.Presburger.Compat: tyConAlgDataCons_maybe :: TyCon -> Maybe [DataCon]
- GHC.TypeLits.Presburger.Compat: tyConAssoc_maybe :: TyCon -> Maybe TyCon
- GHC.TypeLits.Presburger.Compat: tyConBinderForAllTyFlag :: TyConBinder -> ForAllTyFlag
- GHC.TypeLits.Presburger.Compat: tyConBndrVisForAllTyFlag :: TyConBndrVis -> ForAllTyFlag
- GHC.TypeLits.Presburger.Compat: tyConCType_maybe :: TyCon -> Maybe CType
- GHC.TypeLits.Presburger.Compat: tyConClass_maybe :: TyCon -> Maybe Class
- GHC.TypeLits.Presburger.Compat: tyConDataCons :: TyCon -> [DataCon]
- GHC.TypeLits.Presburger.Compat: tyConDataCons_maybe :: TyCon -> Maybe [DataCon]
- GHC.TypeLits.Presburger.Compat: tyConFamInstSig_maybe :: TyCon -> Maybe (TyCon, [Type], CoAxiom Unbranched)
- GHC.TypeLits.Presburger.Compat: tyConFamInst_maybe :: TyCon -> Maybe (TyCon, [Type])
- GHC.TypeLits.Presburger.Compat: tyConFamilyCoercion_maybe :: TyCon -> Maybe (CoAxiom Unbranched)
- GHC.TypeLits.Presburger.Compat: tyConFamilyResVar_maybe :: TyCon -> Maybe Name
- GHC.TypeLits.Presburger.Compat: tyConFamilySize :: TyCon -> Int
- GHC.TypeLits.Presburger.Compat: tyConFieldLabels :: TyCon -> [FieldLabel]
- GHC.TypeLits.Presburger.Compat: tyConFlavour :: TyCon -> TyConFlavour
- GHC.TypeLits.Presburger.Compat: tyConFlavourAssoc_maybe :: TyConFlavour -> Maybe TyCon
- GHC.TypeLits.Presburger.Compat: tyConInjectivityInfo :: TyCon -> Injectivity
- GHC.TypeLits.Presburger.Compat: tyConInvisTVBinders :: [TyConBinder] -> [InvisTVBinder]
- GHC.TypeLits.Presburger.Compat: tyConMustBeSaturated :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: tyConPromDataConInfo :: TyCon -> PromDataConInfo
- GHC.TypeLits.Presburger.Compat: tyConRepModOcc :: Module -> OccName -> (Module, OccName)
- GHC.TypeLits.Presburger.Compat: tyConRepName_maybe :: TyCon -> Maybe TyConRepName
- GHC.TypeLits.Presburger.Compat: tyConSingleAlgDataCon_maybe :: TyCon -> Maybe DataCon
- GHC.TypeLits.Presburger.Compat: tyConSingleDataCon :: TyCon -> DataCon
- GHC.TypeLits.Presburger.Compat: tyConSingleDataCon_maybe :: TyCon -> Maybe DataCon
- GHC.TypeLits.Presburger.Compat: tyConSkolem :: TyCon -> Bool
- GHC.TypeLits.Presburger.Compat: tyConStupidTheta :: TyCon -> [PredType]
- GHC.TypeLits.Presburger.Compat: tyConTuple_maybe :: TyCon -> Maybe TupleSort
- GHC.TypeLits.Presburger.Compat: tyConVisibleTyVars :: TyCon -> [TyVar]
- GHC.TypeLits.Presburger.Compat: type FamInstEnvs = (FamInstEnv, FamInstEnv)
- GHC.TypeLits.Presburger.Compat: type TyConBinder = VarBndr TyVar TyConBndrVis
- GHC.TypeLits.Presburger.Compat: type TyConPiTyBinder = VarBndr TyCoVar TyConBndrVis
- GHC.TypeLits.Presburger.Compat: type TyConRepName = Name
- GHC.TypeLits.Presburger.Compat: typeCharCmpTyCon :: TyCon
- GHC.TypeLits.Presburger.Compat: typeCharToNatTyCon :: TyCon
- GHC.TypeLits.Presburger.Compat: typeConsSymbolTyCon :: TyCon
- GHC.TypeLits.Presburger.Compat: typeNatAddTyCon :: TyCon
- GHC.TypeLits.Presburger.Compat: typeNatCmpTyCon :: TyCon
- GHC.TypeLits.Presburger.Compat: typeNatCoAxiomRules :: UniqFM FastString CoAxiomRule
- GHC.TypeLits.Presburger.Compat: typeNatDivTyCon :: TyCon
- GHC.TypeLits.Presburger.Compat: typeNatExpTyCon :: TyCon
- GHC.TypeLits.Presburger.Compat: typeNatLogTyCon :: TyCon
- GHC.TypeLits.Presburger.Compat: typeNatModTyCon :: TyCon
- GHC.TypeLits.Presburger.Compat: typeNatMulTyCon :: TyCon
- GHC.TypeLits.Presburger.Compat: typeNatSubTyCon :: TyCon
- GHC.TypeLits.Presburger.Compat: typeNatToCharTyCon :: TyCon
- GHC.TypeLits.Presburger.Compat: typeNatTyCons :: [TyCon]
- GHC.TypeLits.Presburger.Compat: typeSymbolAppendTyCon :: TyCon
- GHC.TypeLits.Presburger.Compat: typeSymbolCmpTyCon :: TyCon
- GHC.TypeLits.Presburger.Compat: typeUnconsSymbolTyCon :: TyCon
- GHC.TypeLits.Presburger.Compat: unionFamInstEnv :: FamInstEnv -> FamInstEnv -> FamInstEnv
- GHC.TypeLits.Presburger.Compat: unwrapNewTyConEtad_maybe :: TyCon -> Maybe ([TyVar], Type, CoAxiom Unbranched)
- GHC.TypeLits.Presburger.Compat: unwrapNewTyCon_maybe :: TyCon -> Maybe ([TyVar], Type, CoAxiom Unbranched)
- GHC.TypeLits.Presburger.Compat: visibleDataCons :: AlgTyConRhs -> [DataCon]
+ GHC.TypeLits.Presburger.Compat: ImpedanceMatching :: Id -> CtOrigin
+ GHC.TypeLits.Presburger.Compat: data Coercion
+ GHC.TypeLits.Presburger.Compat: mkUnivCo' :: UnivCoProvenance -> Role -> Type -> Type -> Coercion
- GHC.TypeLits.Presburger.Compat: data () => CtOrigin
+ GHC.TypeLits.Presburger.Compat: data CtOrigin
- GHC.TypeLits.Presburger.Compat: data () => EqRel
+ GHC.TypeLits.Presburger.Compat: data EqRel
- GHC.TypeLits.Presburger.Compat: data () => EvTerm
+ GHC.TypeLits.Presburger.Compat: data EvTerm
- GHC.TypeLits.Presburger.Compat: data () => FastString
+ GHC.TypeLits.Presburger.Compat: data FastString
- GHC.TypeLits.Presburger.Compat: data () => GenericUnitInfo srcpkgid srcpkgname uid modulename mod
+ GHC.TypeLits.Presburger.Compat: data GenericUnitInfo srcpkgid srcpkgname uid modulename mod
- GHC.TypeLits.Presburger.Compat: data () => HsModule p
+ GHC.TypeLits.Presburger.Compat: data HsModule p
- GHC.TypeLits.Presburger.Compat: data () => HsParsedModule
+ GHC.TypeLits.Presburger.Compat: data HsParsedModule
- GHC.TypeLits.Presburger.Compat: data () => Hsc a
+ GHC.TypeLits.Presburger.Compat: data Hsc a
- GHC.TypeLits.Presburger.Compat: data () => HscEnv
+ GHC.TypeLits.Presburger.Compat: data HscEnv
- GHC.TypeLits.Presburger.Compat: data () => ImportDecl pass
+ GHC.TypeLits.Presburger.Compat: data ImportDecl pass
- GHC.TypeLits.Presburger.Compat: data () => ImportDeclQualifiedStyle
+ GHC.TypeLits.Presburger.Compat: data ImportDeclQualifiedStyle
- GHC.TypeLits.Presburger.Compat: data () => IsBootInterface
+ GHC.TypeLits.Presburger.Compat: data IsBootInterface
- GHC.TypeLits.Presburger.Compat: data () => ModuleName
+ GHC.TypeLits.Presburger.Compat: data ModuleName
- GHC.TypeLits.Presburger.Compat: data () => NoExtField
+ GHC.TypeLits.Presburger.Compat: data NoExtField
- GHC.TypeLits.Presburger.Compat: data () => Plugin
+ GHC.TypeLits.Presburger.Compat: data Plugin
- GHC.TypeLits.Presburger.Compat: data () => Pred
+ GHC.TypeLits.Presburger.Compat: data Pred
- GHC.TypeLits.Presburger.Compat: data () => Subst
+ GHC.TypeLits.Presburger.Compat: data Subst
- GHC.TypeLits.Presburger.Compat: data () => TcPlugin
+ GHC.TypeLits.Presburger.Compat: data TcPlugin
- GHC.TypeLits.Presburger.Compat: data () => TcPluginM a
+ GHC.TypeLits.Presburger.Compat: data TcPluginM a
- GHC.TypeLits.Presburger.Compat: data () => TcPluginSolveResult
+ GHC.TypeLits.Presburger.Compat: data TcPluginSolveResult
- GHC.TypeLits.Presburger.Compat: data () => TyLit
+ GHC.TypeLits.Presburger.Compat: data TyLit
- GHC.TypeLits.Presburger.Compat: data () => Type
+ GHC.TypeLits.Presburger.Compat: data Type
- GHC.TypeLits.Presburger.Compat: data () => Unique
+ GHC.TypeLits.Presburger.Compat: data Unique
- GHC.TypeLits.Presburger.Compat: data () => UnitDatabase unit
+ GHC.TypeLits.Presburger.Compat: data UnitDatabase unit
- GHC.TypeLits.Presburger.Compat: data () => UnivCoProvenance
+ GHC.TypeLits.Presburger.Compat: data UnivCoProvenance
- GHC.TypeLits.Presburger.Compat: newtype () => PackageName
+ GHC.TypeLits.Presburger.Compat: newtype PackageName
- GHC.TypeLits.Presburger.Types: type Machine = MaybeT (StateT ParseEnv TcPluginM)
+ GHC.TypeLits.Presburger.Types: type Machine = MaybeT StateT ParseEnv TcPluginM

Files

Changelog.md view
@@ -1,9 +1,5 @@ # Changelog -## 0.7.4.1--* Supports GHC 9.8.4- ## 0.7.4.0  * Supports GHC 9.10
examples/simple-arith-core.hs view
@@ -1,34 +1,31 @@ {-# LANGUAGE CPP #-}-{-# LANGUAGE TypeApplications #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE EmptyCase #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE LambdaCase #-}+{-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-}-{-# LANGUAGE NoStarIsType #-}-{-# LANGUAGE NoStarIsType #-}-{-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE ViewPatterns #-}+{-# LANGUAGE NoStarIsType #-} {-# OPTIONS_GHC -dcore-lint #-}-{-# OPTIONS_GHC -fplugin GHC.TypeLits.Presburger #-} {-# OPTIONS_GHC -ddump-tc-trace -ddump-to-file #-}-+{-# OPTIONS_GHC -fplugin GHC.TypeLits.Presburger #-}  module Main where -import Unsafe.Coerce import Data.Proxy-import Numeric.Natural import Data.Type.Equality-import GHC.TypeLits hiding (SNat) import Data.Void+import GHC.TypeLits hiding (SNat)+import Numeric.Natural import Proof.Propositional (Empty (..), IsTrue (Witness), withEmpty)+import Unsafe.Coerce #if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 902 import qualified Data.Type.Ord as DTO #endif@@ -42,7 +39,7 @@ type n <=! m = IsTrue (n <=? m)  infix 4 <=!-{- + type family Length (as :: [k]) where   Length '[] = 0   Length (x ': xs) = 1 + Length xs@@ -69,13 +66,13 @@ minusLeq :: (n <= m) => proxy (n :: Nat) -> proxy m -> IsTrue ((m - n) + n <=? m) minusLeq _ _ = Witness -absurdTrueFalse :: ( 'True :~: 'False) -> a+absurdTrueFalse :: ('True :~: 'False) -> a absurdTrueFalse = \case {}  hoge :: proxy n -> IsTrue (n + 1 <=? n) -> a hoge _ Witness = absurdTrueFalse Refl -bar :: (2 * (n + 1)) ~ (2 * n + 2) => proxy n -> ()+bar :: ((2 * (n + 1)) ~ (2 * n + 2)) => proxy n -> () bar _ = ()  barResult :: ()@@ -87,12 +84,12 @@ eqv :: proxy n -> proxy m -> (n <=? m) :~: ((n + 1) <=? (m + 1)) eqv _ _ = Refl -predSuccBool :: forall proxy n. (n <=? 0) ~ 'False => proxy n -> IsTrue (n + 1 <=? 2 * n)+predSuccBool :: forall proxy n. ((n <=? 0) ~ 'False) => proxy n -> IsTrue (n + 1 <=? 2 * n) predSuccBool _ = Witness- -}-predSuccProp :: forall proxy n. Empty (n <=! 0) => proxy n -> IsTrue (n + 1 <=? 2 * n)++predSuccProp :: forall proxy n. (Empty (n <=! 0)) => proxy n -> IsTrue (n + 1 <=? 2 * n) predSuccProp _ = Witness-{- + succLEqLTSucc :: pxy m -> CmpNat 0 (m + 1) :~: 'LT succLEqLTSucc _ = Refl @@ -192,10 +189,10 @@     then unsafeCoerce IsZero     else unsafeCoerce (SNat (n - 1)) -pattern Zero :: forall n. () => n ~ 0 => SNat n+pattern Zero :: forall n. () => (n ~ 0) => SNat n pattern Zero <- (viewNat -> IsZero) -pattern Succ :: forall n. () => forall n1. n ~ Succ n1 => SNat n1 -> SNat n+pattern Succ :: forall n. () => forall n1. (n ~ Succ n1) => SNat n1 -> SNat n pattern Succ n <- (viewNat -> IsSucc n)  {-# COMPLETE Zero, Succ #-}@@ -207,4 +204,3 @@ boolToPropLeq Zero m = ZeroLeq m boolToPropLeq (Succ n) (Succ m) = SuccLeqSucc $ boolToPropLeq n m boolToPropLeq (Succ n) Zero = absurd $ succLeqZeroAbsurd n Witness- -}
ghc-typelits-presburger.cabal view
@@ -1,39 +1,38 @@-cabal-version: 1.12---- This file has been generated from package.yaml by hpack version 0.36.0.------ see: https://github.com/sol/hpack------ hash: f62c6305d38380eb4cc8063c8e4c4b0056c9bcb01d01075789915680436a7263+cabal-version: 3.4+name: ghc-typelits-presburger+version: 0.7.4.2+synopsis: Presburger Arithmetic Solver for GHC Type-level natural numbers.+description:+  @ghc-typelits-presburger@ augments GHC type-system with Presburger+  Arithmetic Solver for Type-level natural numbers.+  This plugin only work with GHC builtin operations.+  To work with those of @singletons@ package, use @ghc-typelits-meta@ and/or @ghc-typelits-presburger@ instead.+  .+  Since 0.3.0.0, integration with <https://hackage.haskell.org/package/singletons singletons> package moves to <https://hackage.haskell.org/package/singletons-presburger singletons-presburger>.+  .+  You can use by adding this package to @build-depends@ and add the following pragma+  to the head of .hs files:+  .+  .+  > OPTIONS_GHC -fplugin GHC.TypeLits.Presburger -name:          ghc-typelits-presburger-version:       0.7.4.1-synopsis:      Presburger Arithmetic Solver for GHC Type-level natural numbers.-description:   @ghc-typelits-presburger@ augments GHC type-system with Presburger-               Arithmetic Solver for Type-level natural numbers.-               This plugin only work with GHC builtin operations.-               To work with those of @singletons@ package, use @ghc-typelits-meta@ and/or @ghc-typelits-presburger@ instead.-               .-               Since 0.3.0.0, integration with <https://hackage.haskell.org/package/singletons singletons> package moves to <https://hackage.haskell.org/package/singletons-presburger singletons-presburger>.-               .-               You can use by adding this package to @build-depends@ and add the following pragma-               to the head of .hs files:-               .-               .-               > OPTIONS_GHC -fplugin GHC.TypeLits.Presburger-category:      Math, Type System-homepage:      https://github.com/konn/ghc-typelits-presburger#readme-bug-reports:   https://github.com/konn/ghc-typelits-presburger/issues-author:        Hiromi ISHII-maintainer:    konn.jinro _at_ gmail.com-copyright:     2015 (c) Hiromi ISHII-license:       BSD3-license-file:  LICENSE+category: Math, Type System+homepage: https://github.com/konn/ghc-typelits-presburger#readme+bug-reports: https://github.com/konn/ghc-typelits-presburger/issues+author: Hiromi ISHII+maintainer: konn.jinro _at_ gmail.com+copyright: 2015-2025 (c) Hiromi ISHII+license: BSD-3-Clause+license-file: LICENSE+build-type: Simple tested-with:-    GHC==9.2.8 GHC==9.4.8 GHC==9.6.5 GHC==9.8.4 GHC==9.10.1+  ghc ==9.6.7+  ghc ==9.8.4+  ghc ==9.10.2+  ghc ==9.12.2+ extra-source-files:-    Changelog.md-build-type:    Simple+  Changelog.md  source-repository head   type: git@@ -44,66 +43,76 @@   manual: False   default: False +common defaults+  autogen-modules: Paths_ghc_typelits_presburger+  other-modules: Paths_ghc_typelits_presburger+  default-language: Haskell2010+  ghc-options:+    -Wall+    -Wcompat+    -Widentities+    -Wincomplete-record-updates+    -Wincomplete-uni-patterns+    -Wmissing-export-lists+    -Wmissing-home-modules+    -Wpartial-fields+    -Wredundant-constraints+    -Wunused-packages+ library+  import: defaults+  hs-source-dirs: src   exposed-modules:-      GHC.TypeLits.Presburger.Types-      GHC.TypeLits.Presburger-      GHC.TypeLits.Presburger.Compat+    GHC.TypeLits.Presburger+    GHC.TypeLits.Presburger.Compat+    GHC.TypeLits.Presburger.Types+   other-modules:-      Data.Integer.SAT-      GHC.TypeLits.Presburger.Flags-      Paths_ghc_typelits_presburger-  hs-source-dirs:-      src-  ghc-options: -Wall -Wno-dodgy-imports+    Data.Integer.SAT+    GHC.TypeLits.Presburger.Flags+   build-depends:-      base >=4.7 && <5-    , containers-    , ghc <9.13-    , ghc-tcplugins-extra >=0.2 && <0.5-    , mtl-    , pretty-    , reflection-    , syb-    , transformers-  default-language: Haskell2010+    base >=4.7 && <5,+    containers,+    ghc <9.13,+    ghc-tcplugins-extra >=0.2 && <0.6,+    mtl,+    pretty,+    reflection,+    syb,+    transformers,  executable simple-arith-core+  import: defaults   main-is: simple-arith-core.hs-  other-modules:-      Paths_ghc_typelits_presburger-  hs-source-dirs:-      examples-  ghc-options: -Wall -Wno-dodgy-imports -Wno-unused-imports+  hs-source-dirs: examples   build-depends:-      base-    , equational-reasoning-    , ghc-typelits-presburger-  default-language: Haskell2010+    base,+    equational-reasoning,+    ghc-typelits-presburger,+   if !(flag(examples))     buildable: False  test-suite test-typeltis-presburger+  import: defaults   type: exitcode-stdio-1.0   main-is: test.hs+  hs-source-dirs: test+  -- cabal-gild: discover test --exclude=test/test.hs   other-modules:-      ErrorsNoPlugin-      ErrorsWithPlugin-      GHC.TypeLits.PresburgerSpec-      Shared-      Paths_ghc_typelits_presburger-  hs-source-dirs:-      test-  ghc-options: -Wall -Wno-dodgy-imports-  build-tool-depends:-      tasty-discover:tasty-discover+    ErrorsNoPlugin+    ErrorsWithPlugin+    GHC.TypeLits.PresburgerSpec+    Shared++  build-tool-depends: tasty-discover:tasty-discover   build-depends:-      base-    , equational-reasoning-    , ghc-typelits-presburger-    , tasty-    , tasty-discover-    , tasty-expected-failure-    , tasty-hunit-    , text-  default-language: Haskell2010+    base,+    equational-reasoning,+    ghc-typelits-presburger,+    tasty,+    tasty-discover,+    tasty-expected-failure,+    tasty-hunit,+    text,
src/GHC/TypeLits/Presburger/Compat.hs view
@@ -1,3 +1,5 @@+{- HLINT ignore "Use camelCase" -}+{- HLINT ignore "Move filter" -} {-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedStrings #-}@@ -25,7 +27,7 @@ import GHC.Builtin.Names (gHC_TYPENATS, gHC_TYPEERROR) #endif #endif-import GHC.Tc.Types.Constraint as GHC.TypeLits.Presburger.Compat (CtLoc (..), initialSubGoalDepth)+import GHC.Tc.Types.Constraint as GHC.TypeLits.Presburger.Compat import GHC.Tc.Types.Origin as GHC.TypeLits.Presburger.Compat (CtOrigin (..)) import GHC.TcPluginM.Extra as GHC.TypeLits.Presburger.Compat (   evByFiat,@@ -37,13 +39,17 @@ import GHC.Tc.Types as GHC.TypeLits.Presburger.Compat (TcPlugin (..), TcPluginSolveResult (..)) import GHC.Builtin.Types as GHC.TypeLits.Presburger.Compat (cTupleTyCon, cTupleDataCon) import GHC.Tc.Types.Evidence as GHC.TypeLits.Presburger.Compat (evCast)-import GHC.Plugins as GHC.TypeLits.Presburger.Compat (mkUnivCo)+import GHC.Plugins as GHC.TypeLits.Presburger.Compat (mkUnivCo, Role(..))+import GHC.Core.TyCo.Rep as GHC.TypeLits.Presburger.Compat (Coercion) import GHC.Core.TyCo.Rep as GHC.TypeLits.Presburger.Compat (UnivCoProvenance(..)) import GHC.Core.DataCon as GHC.TypeLits.Presburger.Compat (dataConWrapId) #else import GHC.Tc.Types as GHC.TypeLits.Presburger.Compat (TcPlugin (..), TcPluginResult (..)) #endif-#if MIN_VERSION_ghc(9,4,1)+#if MIN_VERSION_ghc(9,12,1)+-- mkBaseModule is not available in GHC 9.12.1++import GHC.Core.Reduction (reductionReducedType)+#elif MIN_VERSION_ghc(9,4,1) import GHC.Builtin.Names as GHC.TypeLits.Presburger.Compat (mkBaseModule) import GHC.Core.Reduction (reductionReducedType) #else@@ -74,7 +80,9 @@ import GHC.Unit.Types as GHC.TypeLits.Presburger.Compat (mkModule) #if MIN_VERSION_ghc(9,2,0) import GHC.Driver.Env.Types as GHC.TypeLits.Presburger.Compat (HscEnv (hsc_dflags))+#if !MIN_VERSION_ghc(9,12,1) import GHC.Builtin.Names (mkBaseModule)+#endif #else import GHC.Driver.Types as GHC.TypeLits.Presburger.Compat (HscEnv (hsc_dflags)) import GHC.Driver.Session (unitState, unitDatabases)@@ -182,6 +190,15 @@  #if !MIN_VERSION_ghc(9,4,1) type TcPluginSolveResult = TcPluginResult+#endif++-- mkUnivCo API compatibility+#if MIN_VERSION_ghc(9,12,1)+mkUnivCo' :: UnivCoProvenance -> Role -> Type -> Type -> Coercion  +mkUnivCo' prov role ty1 ty2 = mkUnivCo prov [] role ty1 ty2+#else+mkUnivCo' :: UnivCoProvenance -> Role -> Type -> Type -> Coercion  +mkUnivCo' = mkUnivCo #endif  #if MIN_VERSION_ghc(9,10,1)
src/GHC/TypeLits/Presburger/Types.hs view
@@ -362,7 +362,7 @@   | Just (con, lastN 2 -> [_, _]) <- splitTyConApp_maybe prd   , con `elem` assertTy given =      Just $ GHC.Var (dataConWrapId $ cTupleDataCon 0) `evCast`-      mkUnivCo+      mkUnivCo'       (PluginProv $ "ghc-typelits-presburger: extractProof")       Representational       (mkTyConTy (cTupleTyCon 0))