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

Type.Check.HM.TypeError

Description

This module contains types for 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.

ConsArityMismatch

mismatch of arity in pattern-matching

EmptyCaseExpr loc

no case alternatives in the case expression

FreshNameFound

internal error with fresh name substitution. Should not normally occur if algorithm is correct.

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 -> () #

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

Defined in Type.Check.HM.Pretty

Methods

pretty :: TypeError loc var -> Doc ann #

prettyList :: [TypeError loc var] -> Doc ann #

(Pretty loc, PrettyVar var) => Pretty (FixityCtx var (TypeError loc var)) Source # 
Instance details

Defined in Type.Check.HM.Pretty

Methods

pretty :: FixityCtx var (TypeError loc var) -> Doc ann #

prettyList :: [FixityCtx var (TypeError loc var)] -> Doc ann #

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.1.0-9nmtzC9RFBTLXwkiC1uZyJ" '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 "ConsArityMismatch" 'PrefixI 'True) ((S1 ('MetaSel ('Just "consArityMismatch'loc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 loc) :*: S1 ('MetaSel ('Just "consArityMismatch'tag") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 var)) :*: (S1 ('MetaSel ('Just "consArityMismatch'expected") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just "consArityMismatch'actual") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))) :+: (C1 ('MetaCons "EmptyCaseExpr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 loc)) :+: C1 ('MetaCons "FreshNameFound" 'PrefixI 'False) (U1 :: Type -> Type))))