Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data SystemF m p
- data SystemFErr c v t
- = SFNotKnownErr (NotKnownErr c v t)
- | SFSimpleTypeErr (SimpleTypeErr t)
- | SFSubsErr (SubsErr Gr t (PolyType t))
- data SystemFContext c v t p = SystemFContext {
- _polyctx :: SubsContext t p
- _stlcctx :: SimpleTypingContext c v t
- stlcctx :: forall c v t p c v. Lens (SystemFContext c v t p) (SystemFContext c v t p) (SimpleTypingContext c v t) (SimpleTypingContext c v t)
- polyctx :: forall c v t p p. Lens (SystemFContext c v t p) (SystemFContext c v t p) (SubsContext t p) (SubsContext t p)
Documentation
An implementation of System-F, similar to haskell's own typesystems but without type-level functions beyond (→)
Bifunctor SystemF Source # | |
Bitraversable SystemF Source # | |
Bifoldable SystemF Source # | |
(Eq m, Eq p) => Eq (SystemF m p) Source # | |
(Data m, Data p) => Data (SystemF m p) Source # | |
(Ord m, Ord p) => Ord (SystemF m p) Source # | |
(Ord m, Ord p, Show m, Show p) => Show (SystemF m p) Source # | |
(Lift m0, Lift p0) => Lift (SystemF m0 p0) Source # | |
(Ord m, Ord p, Arbitrary m, Data m, Arbitrary p, Data p) => Arbitrary (SystemF m p) Source # | |
(Ord m, Ord p) => SimpleType (SystemF m p) Source # | |
(Ord m, Ord p) => Polymorphic (SystemF m p) Source # | |
(Ord c, Ord v, Ord m, Ord p) => Typecheckable (LambdaTerm c v) (SystemF m p) Source # | |
type MonoType (SystemF m p) Source # | |
type PolyType (SystemF m p) Source # | |
type TypingContext (LambdaTerm c v) (SystemF m p) Source # | |
type TypeError (LambdaTerm c v) (SystemF m p) Source # | |
data SystemFErr c v t Source #
Error sum not within Eithers because those (GHC) type errors are messy.
SFNotKnownErr (NotKnownErr c v t) | |
SFSimpleTypeErr (SimpleTypeErr t) | |
SFSubsErr (SubsErr Gr t (PolyType t)) |
(Polymorphic t, Eq v, Eq c) => Eq (SystemFErr c v t) Source # | |
(Polymorphic t, Show v, Show c, Show t, Show (PolyType t)) => Show (SystemFErr c v t) Source # | |
data SystemFContext c v t p Source #
SystemFContext | |
|
stlcctx :: forall c v t p c v. Lens (SystemFContext c v t p) (SystemFContext c v t p) (SimpleTypingContext c v t) (SimpleTypingContext c v t) Source #
polyctx :: forall c v t p p. Lens (SystemFContext c v t p) (SystemFContext c v t p) (SubsContext t p) (SubsContext t p) Source #