typerbole-0.0.0.5: A typeystems library with exaggerated claims

Safe HaskellNone
LanguageHaskell2010

Compiler.Typesystem.SystemFOmega

Description

System Fω is a System F that allows type operators (Set Int, List Int, Either Int Bool etc.)

Synopsis

Documentation

data SystemFOmega m p k Source #

A data type representing the components of System-Fω, with a parameterized higher-order typesystem k.

Instances

Bifunctor (SystemFOmega m0) Source # 

Methods

bimap :: (a -> b) -> (c -> d) -> SystemFOmega m0 a c -> SystemFOmega m0 b d #

first :: (a -> b) -> SystemFOmega m0 a c -> SystemFOmega m0 b c #

second :: (b -> c) -> SystemFOmega m0 a b -> SystemFOmega m0 a c #

Bitraversable (SystemFOmega m0) Source # 

Methods

bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> SystemFOmega m0 a b -> f (SystemFOmega m0 c d) #

Bifoldable (SystemFOmega m0) Source # 

Methods

bifold :: Monoid m => SystemFOmega m0 m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> SystemFOmega m0 a b -> m #

bifoldr :: (a -> c -> c) -> (b -> c -> c) -> c -> SystemFOmega m0 a b -> c #

bifoldl :: (c -> a -> c) -> (c -> b -> c) -> c -> SystemFOmega m0 a b -> c #

(Eq m, Eq p, Eq k) => Eq (SystemFOmega m p k) Source # 

Methods

(==) :: SystemFOmega m p k -> SystemFOmega m p k -> Bool #

(/=) :: SystemFOmega m p k -> SystemFOmega m p k -> Bool #

(Data m, Data p, Data k) => Data (SystemFOmega m p k) Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SystemFOmega m p k -> c (SystemFOmega m p k) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (SystemFOmega m p k) #

toConstr :: SystemFOmega m p k -> Constr #

dataTypeOf :: SystemFOmega m p k -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (SystemFOmega m p k)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (SystemFOmega m p k)) #

gmapT :: (forall b. Data b => b -> b) -> SystemFOmega m p k -> SystemFOmega m p k #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SystemFOmega m p k -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SystemFOmega m p k -> r #

gmapQ :: (forall d. Data d => d -> u) -> SystemFOmega m p k -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SystemFOmega m p k -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SystemFOmega m p k -> m (SystemFOmega m p k) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SystemFOmega m p k -> m (SystemFOmega m p k) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SystemFOmega m p k -> m (SystemFOmega m p k) #

(Ord m, Ord p, Ord k) => Ord (SystemFOmega m p k) Source # 

Methods

compare :: SystemFOmega m p k -> SystemFOmega m p k -> Ordering #

(<) :: SystemFOmega m p k -> SystemFOmega m p k -> Bool #

(<=) :: SystemFOmega m p k -> SystemFOmega m p k -> Bool #

(>) :: SystemFOmega m p k -> SystemFOmega m p k -> Bool #

(>=) :: SystemFOmega m p k -> SystemFOmega m p k -> Bool #

max :: SystemFOmega m p k -> SystemFOmega m p k -> SystemFOmega m p k #

min :: SystemFOmega m p k -> SystemFOmega m p k -> SystemFOmega m p k #

(Read m, Read p, Read k) => Read (SystemFOmega m p k) Source # 
(Show m, Show p, Show k) => Show (SystemFOmega m p k) Source # 

Methods

showsPrec :: Int -> SystemFOmega m p k -> ShowS #

show :: SystemFOmega m p k -> String #

showList :: [SystemFOmega m p k] -> ShowS #

(Lift m0, Lift p0, Lift k0) => Lift (SystemFOmega m0 p0 k0) Source # 

Methods

lift :: SystemFOmega m0 p0 k0 -> Q Exp #

(Data m, Data p, Data k, Arbitrary m, Arbitrary p, Arbitrary k) => Arbitrary (SystemFOmega m p k) Source # 

Methods

arbitrary :: Gen (SystemFOmega m p k) #

shrink :: SystemFOmega m p k -> [SystemFOmega m p k] #

(Ord m, Ord p, Ord k) => SimpleType (SystemFOmega m p (Maybe k)) Source # 

Associated Types

type MonoType (SystemFOmega m p (Maybe k)) :: * Source #

(Ord m, Ord p, Ord k, Inferable (SystemFOmega m p) k, (~) * (TypingContext (SystemFOmega m p) k) (InferenceContext (SystemFOmega m p) k)) => HigherOrder (SystemFOmega m p (Maybe k)) Source # 
(Ord m, Ord p, Ord k) => Polymorphic (SystemFOmega m p (Maybe k)) Source # 
type MonoType (SystemFOmega m p (Maybe k)) Source # 
type MonoType (SystemFOmega m p (Maybe k)) = m
type Kindsystem (SystemFOmega m p (Maybe k)) Source # 
type Kindsystem (SystemFOmega m p (Maybe k)) = k
type KindContext (SystemFOmega m p (Maybe k)) Source # 
type KindError (SystemFOmega m p (Maybe k)) Source # 
type PolyType (SystemFOmega m p (Maybe k)) Source # 
type PolyType (SystemFOmega m p (Maybe k)) = p

markAsFunctionArrow :: Eq m => m -> SystemFOmega m p k -> SystemFOmega m p k Source #

Given a function arrow representation of type m, replace all matching mono types with the function arrow.