Safe Haskell | None |
---|---|
Language | Haskell98 |
- data Spec ty bndr = Spec {
- measures :: ![Measure ty bndr]
- asmSigs :: ![(LocSymbol, ty)]
- sigs :: ![(LocSymbol, ty)]
- localSigs :: ![(LocSymbol, ty)]
- reflSigs :: ![(LocSymbol, ty)]
- invariants :: ![ty]
- ialiases :: ![(ty, ty)]
- imports :: ![Symbol]
- dataDecls :: ![DataDecl]
- newtyDecls :: ![DataDecl]
- includes :: ![FilePath]
- aliases :: ![RTAlias Symbol BareType]
- ealiases :: ![RTAlias Symbol Expr]
- embeds :: !(TCEmb LocSymbol)
- qualifiers :: ![Qualifier]
- decr :: ![(LocSymbol, [Int])]
- lvars :: ![LocSymbol]
- lazy :: !(HashSet LocSymbol)
- reflects :: !(HashSet LocSymbol)
- autois :: !(HashMap LocSymbol (Maybe Int))
- hmeas :: !(HashSet LocSymbol)
- hbounds :: !(HashSet LocSymbol)
- inlines :: !(HashSet LocSymbol)
- autosize :: !(HashSet LocSymbol)
- pragmas :: ![Located String]
- cmeasures :: ![Measure ty ()]
- imeasures :: ![Measure ty bndr]
- classes :: ![RClass ty]
- termexprs :: ![(LocSymbol, [Located Expr])]
- rinstance :: ![RInstance ty]
- dvariance :: ![(LocSymbol, [Variance])]
- bounds :: !(RRBEnv ty)
- defs :: !(HashMap LocSymbol Symbol)
- axeqs :: ![AxiomEq]
- data MSpec ty ctor = MSpec {}
- type BareSpec = Spec LocBareType LocSymbol
- type BareMeasure = Measure LocBareType LocSymbol
- type SpecMeasure = Measure LocSpecType DataCon
- mkM :: LocSymbol -> ty -> [Def ty bndr] -> Measure ty bndr
- mkMSpec :: [Measure t LocSymbol] -> [Measure t ()] -> [Measure t LocSymbol] -> MSpec t LocSymbol
- mkMSpec' :: Symbolic ctor => [Measure ty ctor] -> MSpec ty ctor
- qualifySpec :: Symbol -> Spec ty bndr -> Spec ty bndr
- dataConTypes :: MSpec (RRType Reft) DataCon -> ([(Var, RRType Reft)], [(LocSymbol, RRType Reft)])
- defRefType :: Type -> Def (RRType Reft) DataCon -> RRType Reft
Specifications
Spec | |
|
Bifunctor MSpec Source # | |
Functor (MSpec ty) Source # | |
(Data ctor, Data ty) => Data (MSpec ty ctor) Source # | |
(Show ty, Show ctor, PPrint ctor, PPrint ty) => Show (MSpec ty ctor) Source # | |
Generic (MSpec ty ctor) Source # | |
Eq ctor => Monoid (MSpec ty ctor) Source # | |
(PPrint t, PPrint a) => PPrint (MSpec t a) Source # | |
type Rep (MSpec ty ctor) Source # | |
Type Aliases
type BareMeasure = Measure LocBareType LocSymbol Source #
type SpecMeasure = Measure LocSpecType DataCon Source #
Constructors
mkMSpec :: [Measure t LocSymbol] -> [Measure t ()] -> [Measure t LocSymbol] -> MSpec t LocSymbol Source #
qualifySpec :: Symbol -> Spec ty bndr -> Spec ty bndr Source #