hypertypes-0.2.2: Typed ASTs
Safe HaskellSafe-Inferred
LanguageHaskell2010

Hyper.Unify.Error

Description

A type for unification errors

Synopsis

Documentation

data UnifyError t h Source #

An error that occurred during unification

Constructors

SkolemUnified (h :# t) (h :# t)

A universally quantified variable was unified with a different type

SkolemEscape (h :# t)

A universally quantified variable escapes its scope

ConstraintsViolation (t h) (TypeConstraintsOf t)

A term violates constraints that should apply to it

Occurs (t h) (t h)

Infinite type encountered. A type occurs within itself

Mismatch (t h) (t h)

Unification between two mismatching type structures

Instances

Instances details
HFoldable t => HFoldable (UnifyError t) Source # 
Instance details

Defined in Hyper.Unify.Error

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (UnifyError t) n -> (p # n) -> a) -> (UnifyError t # p) -> a Source #

HFunctor t => HFunctor (UnifyError t) Source # 
Instance details

Defined in Hyper.Unify.Error

Methods

hmap :: (forall (n :: HyperType). HWitness (UnifyError t) n -> (p # n) -> q # n) -> (UnifyError t # p) -> UnifyError t # q Source #

HNodes t => HNodes (UnifyError t) Source # 
Instance details

Defined in Hyper.Unify.Error

Associated Types

type HNodesConstraint (UnifyError t) c Source #

type HWitnessType (UnifyError t) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (UnifyError t) c => HWitness (UnifyError t) n -> Proxy c -> (c n => r) -> r Source #

HTraversable t => HTraversable (UnifyError t) Source # 
Instance details

Defined in Hyper.Unify.Error

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (UnifyError t # ContainedH f p) -> f (UnifyError t # p) Source #

Generic (UnifyError t h) Source # 
Instance details

Defined in Hyper.Unify.Error

Associated Types

type Rep (UnifyError t h) :: Type -> Type #

Methods

from :: UnifyError t h -> Rep (UnifyError t h) x #

to :: Rep (UnifyError t h) x -> UnifyError t h #

Constraints (UnifyError t h) Show => Show (UnifyError t h) Source # 
Instance details

Defined in Hyper.Unify.Error

Methods

showsPrec :: Int -> UnifyError t h -> ShowS #

show :: UnifyError t h -> String #

showList :: [UnifyError t h] -> ShowS #

Constraints (UnifyError t h) Binary => Binary (UnifyError t h) Source # 
Instance details

Defined in Hyper.Unify.Error

Methods

put :: UnifyError t h -> Put #

get :: Get (UnifyError t h) #

putList :: [UnifyError t h] -> Put #

Constraints (UnifyError t h) NFData => NFData (UnifyError t h) Source # 
Instance details

Defined in Hyper.Unify.Error

Methods

rnf :: UnifyError t h -> () #

Constraints (UnifyError t h) Eq => Eq (UnifyError t h) Source # 
Instance details

Defined in Hyper.Unify.Error

Methods

(==) :: UnifyError t h -> UnifyError t h -> Bool #

(/=) :: UnifyError t h -> UnifyError t h -> Bool #

Constraints (UnifyError t h) Ord => Ord (UnifyError t h) Source # 
Instance details

Defined in Hyper.Unify.Error

Methods

compare :: UnifyError t h -> UnifyError t h -> Ordering #

(<) :: UnifyError t h -> UnifyError t h -> Bool #

(<=) :: UnifyError t h -> UnifyError t h -> Bool #

(>) :: UnifyError t h -> UnifyError t h -> Bool #

(>=) :: UnifyError t h -> UnifyError t h -> Bool #

max :: UnifyError t h -> UnifyError t h -> UnifyError t h #

min :: UnifyError t h -> UnifyError t h -> UnifyError t h #

Constraints (UnifyError t h) Pretty => Pretty (UnifyError t h) Source # 
Instance details

Defined in Hyper.Unify.Error

type HWitnessType (UnifyError t) Source # 
Instance details

Defined in Hyper.Unify.Error

type HNodesConstraint (UnifyError t) constraint Source # 
Instance details

Defined in Hyper.Unify.Error

type HNodesConstraint (UnifyError t) constraint = (HNodesConstraint t constraint, constraint t)
type Rep (UnifyError t h) Source # 
Instance details

Defined in Hyper.Unify.Error

_SkolemUnified :: forall t h. Prism' (UnifyError t h) ((:#) h t, (:#) h t) Source #

_SkolemEscape :: forall t h. Prism' (UnifyError t h) ((:#) h t) Source #

_Occurs :: forall t h. Prism' (UnifyError t h) (t h, t h) Source #

_Mismatch :: forall t h. Prism' (UnifyError t h) (t h, t h) Source #