Safe Haskell | None |
---|
- type Matrix a = Array (Int, Int) a
- warshall :: SemiRing a => Matrix a -> Matrix a
- type AdjList node edge = Map node [(node, edge)]
- warshallG :: (SemiRing edge, Ord node) => AdjList node edge -> AdjList node edge
- data Weight
- inc :: Weight -> Int -> Weight
- data Node
- data Rigid
- type NodeId = Int
- type RigidId = Int
- type FlexId = Int
- type Scope = RigidId -> Bool
- infinite :: Rigid -> Bool
- isBelow :: Rigid -> Weight -> Rigid -> Bool
- data Constraint
- type Constraints = [Constraint]
- emptyConstraints :: [a]
- data Graph = Graph {}
- initGraph :: Graph
- type GM = State Graph
- addFlex :: FlexId -> Scope -> GM ()
- addNode :: Node -> GM Int
- addEdge :: Node -> Int -> Node -> GM ()
- addConstraint :: Constraint -> GM ()
- buildGraph :: Constraints -> Graph
- mkMatrix :: Int -> (Int -> Int -> Weight) -> Matrix Weight
- data LegendMatrix a b c = LegendMatrix {}
- type Solution = Map Int SizeExpr
- emptySolution :: Map k a
- extendSolution :: Ord k => Map k a -> k -> a -> Map k a
- data SizeExpr
- sizeRigid :: Rigid -> Int -> SizeExpr
- solve :: Constraints -> Maybe Solution
- genGraph :: Ord node => Float -> Gen edge -> [node] -> Gen (AdjList node edge)
- newtype Distance = Dist Nat
- genGraph_ :: Nat -> Gen (AdjList Nat Distance)
- lookupEdge :: Ord n => n -> n -> AdjList n e -> Maybe e
- edges :: Ord n => AdjList n e -> [(n, n, e)]
- prop_smaller :: Nat -> Property
- newEdge :: Ord k => k -> t -> t1 -> Map k [(t, t1)] -> Map k [(t, t1)]
- genPath :: Nat -> Nat -> Nat -> AdjList Nat Distance -> Gen (AdjList Nat Distance)
- prop_path :: Nat -> Property
- mapNodes :: (Ord node, Ord node') => (node -> node') -> AdjList node edge -> AdjList node' edge
- prop_disjoint :: Nat -> Property
- prop_stable :: Nat -> Property
- tests :: IO Bool
Documentation
flexible variables (with identifiers drawn from Int),
rigid variables (also identified by Ints), or
constants (like 0, infinity, or anything between)
type Constraints = [Constraint]Source
emptyConstraints :: [a]Source
addConstraint :: Constraint -> GM ()Source
buildGraph :: Constraints -> GraphSource
data LegendMatrix a b c Source
(Show a, Show b, Show c) => Show (LegendMatrix a b c) |
emptySolution :: Map k aSource
extendSolution :: Ord k => Map k a -> k -> a -> Map k aSource
solve :: Constraints -> Maybe SolutionSource
lookupEdge :: Ord n => n -> n -> AdjList n e -> Maybe eSource
prop_smaller :: Nat -> PropertySource
Check that no edges get longer when completing a graph.
mapNodes :: (Ord node, Ord node') => (node -> node') -> AdjList node edge -> AdjList node' edgeSource
prop_disjoint :: Nat -> PropertySource
Check that no edges are added between components.
prop_stable :: Nat -> PropertySource