Top-1.7: Constraint solving framework employed by the Helium Compiler.

Safe HaskellSafe-Infered

Top.Implementation.TypeGraph.ClassMonadic

Description

 

Documentation

class (HasBasic m info, HasTI m info, HasQual m info, HasTG m info, MonadWriter LogEntries m, Show info) => HasTypeGraph m info | m -> infoSource

Instances

(HasBasic m info, HasTI m info, HasQual m info, HasTG m info, MonadWriter LogEntries m, Show info) => HasTypeGraph m info 

class Monad m => HasTG m info | m -> info whereSource

Methods

withTypeGraph :: (forall graph. TypeGraph graph info => graph -> (a, graph)) -> m aSource

Instances

(Monad m, Embedded ClassSubst (s (StateFixT s m)) t, HasTG (Select t (StateFixT s m)) info) => HasTG (StateFixT s m) info 
(MonadState s m, Embedded ClassSubst s (TypeGraphState info)) => HasTG (Select (TypeGraphState info) m) info 

useTypeGraph :: HasTG m info => (forall graph. TypeGraph graph info => graph -> a) -> m aSource

changeTypeGraph :: HasTG m info => (forall graph. TypeGraph graph info => graph -> graph) -> m ()Source

addEdge :: HasTypeGraph m info => EdgeId -> info -> m ()Source

addNewEdge :: HasTypeGraph m info => (VertexId, VertexId) -> info -> m ()Source

edgesFrom :: HasTypeGraph m info => VertexId -> m [(EdgeId, info)]Source

theUnifyTerms :: HasTypeGraph m info => info -> Tp -> Tp -> m ()Source