hindley-milner-type-check-0.1.0.0: Type inference for Hindley-Milner based languages
Safe HaskellNone
LanguageHaskell2010

Type.Check.HM.TypeError

Description

This module contains types for structured type errors.

Synopsis

Documentation

data TypeError loc var Source #

Type errors.

Constructors

OccursErr loc (Type loc var)

error of mismatch of polymorphic constructors, infinite type. Like [a] = a

UnifyErr loc (Type loc var) (Type loc var)

Unification error

SubtypeErr loc (Type loc var) (Type loc var)

Subtype error (happens on explicit type assertions)

NotInScopeErr loc var

Missing signature in context for free-variable.

EmptyCaseExpr loc

no case alternatives in the case expression

FreshNameFound

internal error with fresh name substitution

Instances

Instances details
HasTypeVars TypeError Source # 
Instance details

Defined in Type.Check.HM.TypeError

Methods

tyVars :: Ord var => TypeError src var -> VarSet src var Source #

tyVarsInOrder :: (Eq src, Ord var) => TypeError src var -> [(var, src)] Source #

LocFunctor TypeError Source # 
Instance details

Defined in Type.Check.HM.TypeError

Methods

mapLoc :: (locA -> locB) -> TypeError locA var -> TypeError locB var Source #

CanApply TypeError Source # 
Instance details

Defined in Type.Check.HM.TypeError

Methods

apply :: Ord v => Subst loc v -> TypeError loc v -> TypeError loc v Source #

Functor (TypeError loc) Source # 
Instance details

Defined in Type.Check.HM.TypeError

Methods

fmap :: (a -> b) -> TypeError loc a -> TypeError loc b #

(<$) :: a -> TypeError loc b -> TypeError loc a #

(Eq loc, Eq var) => Eq (TypeError loc var) Source # 
Instance details

Defined in Type.Check.HM.TypeError

Methods

(==) :: TypeError loc var -> TypeError loc var -> Bool #

(/=) :: TypeError loc var -> TypeError loc var -> Bool #

(Data loc, Data var) => Data (TypeError loc var) Source # 
Instance details

Defined in Type.Check.HM.TypeError

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TypeError loc var -> c (TypeError loc var) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (TypeError loc var) #

toConstr :: TypeError loc var -> Constr #

dataTypeOf :: TypeError loc var -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (TypeError loc var)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (TypeError loc var)) #

gmapT :: (forall b. Data b => b -> b) -> TypeError loc var -> TypeError loc var #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TypeError loc var -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TypeError loc var -> r #

gmapQ :: (forall d. Data d => d -> u) -> TypeError loc var -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> TypeError loc var -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> TypeError loc var -> m (TypeError loc var) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TypeError loc var -> m (TypeError loc var) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TypeError loc var -> m (TypeError loc var) #

(Show loc, Show var) => Show (TypeError loc var) Source # 
Instance details

Defined in Type.Check.HM.TypeError

Methods

showsPrec :: Int -> TypeError loc var -> ShowS #

show :: TypeError loc var -> String #

showList :: [TypeError loc var] -> ShowS #

Generic (TypeError loc var) Source # 
Instance details

Defined in Type.Check.HM.TypeError

Associated Types

type Rep (TypeError loc var) :: Type -> Type #

Methods

from :: TypeError loc var -> Rep (TypeError loc var) x #

to :: Rep (TypeError loc var) x -> TypeError loc var #

(NFData loc, NFData var) => NFData (TypeError loc var) Source # 
Instance details

Defined in Type.Check.HM.TypeError

Methods

rnf :: TypeError loc var -> () #

type Rep (TypeError loc var) Source # 
Instance details

Defined in Type.Check.HM.TypeError

type Rep (TypeError loc var) = D1 ('MetaData "TypeError" "Type.Check.HM.TypeError" "hindley-milner-type-check-0.1.0.0-CErSyJ5qqR15R8kpU1LRYA" 'False) ((C1 ('MetaCons "OccursErr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 loc) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type loc var))) :+: (C1 ('MetaCons "UnifyErr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 loc) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type loc var)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type loc var)))) :+: C1 ('MetaCons "SubtypeErr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 loc) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type loc var)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type loc var)))))) :+: (C1 ('MetaCons "NotInScopeErr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 loc) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 var)) :+: (C1 ('MetaCons "EmptyCaseExpr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 loc)) :+: C1 ('MetaCons "FreshNameFound" 'PrefixI 'False) (U1 :: Type -> Type))))