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

Safe HaskellSafe-Infered

Top.Implementation.TypeGraph.Heuristic

Description

 

Documentation

type PathHeuristics info = Path (EdgeId, info) -> [Heuristic info]Source

newtype Heuristic info Source

Constructors

Heuristic (forall m. HasTypeGraph m info => HComponent m info) 

data Selector m info Source

Constructors

Selector (String, (EdgeId, info) -> m (Maybe (Int, String, [EdgeId], info))) 
SelectorList (String, [(EdgeId, info)] -> m (Maybe (Int, String, [EdgeId], info))) 

data HComponent m info Source

Constructors

Filter String ([(EdgeId, info)] -> m [(EdgeId, info)]) 
Voting [Selector m info] 

resultsEdgeFilter :: (Eq a, Monad m) => ([a] -> a) -> String -> ((EdgeId, info) -> m a) -> HComponent m infoSource

maximalEdgeFilter :: (Ord a, Monad m) => String -> ((EdgeId, info) -> m a) -> HComponent m infoSource

minimalEdgeFilter :: (Ord a, Monad m) => String -> ((EdgeId, info) -> m a) -> HComponent m infoSource

edgeFilter :: Monad m => String -> ((EdgeId, info) -> m Bool) -> HComponent m infoSource

doWithoutEdges :: HasTypeGraph m info => [(EdgeId, info)] -> m result -> m resultSource

doWithoutEdge :: HasTypeGraph m info => (EdgeId, info) -> m result -> m resultSource

eqInfo2 :: (EdgeId, info) -> (EdgeId, info) -> BoolSource

class HasTwoTypes a whereSource

Methods

getTwoTypes :: a -> (Tp, Tp)Source