A type signature is more polymorphic than the inferred type
Can't for-all the type variable(s) `v'
in the type `[Edge v]'
- When checking the type signature for `reversed_edges'
- In an equation for function `stronglyConnComp':
- stronglyConnComp es vs
- = snd (span_tree (new_range reversed_edges)
- ([], ([]))
- (snd (dfs (... ...) (..., ...) vs)))
- where
- span_tree r (vs, ns) [] = (vs, (ns))
- span_tree r (vs, ns) (x : xs)
- | x elem vs = span_tree r (vs, (ns)) xs
- | otherwise = span_tree r (vs', ((x : ns') : ns)) xs
- where
- (vs', ns') = dfs r (x : vs, ([])) (r x)
- new_range [] w = []
- new_range ((x, y) : xys) w
- = if x == w then
- (y : (new_range xys w))
- else
- (new_range xys w)
- swap (x, y) = (y, (x))
- reversed_edges :: _forall_ [v] (PrelBase.Eq v) => [Edge v]
- reversed_edges = map swap es
+ When checking the type signature for `reversed_edges'
+ In an equation for function `stronglyConnComp':
+ stronglyConnComp es vs
+ = snd (span_tree (new_range reversed_edges)
+ ([], ([]))
+ (snd (dfs (new_range es) ([], ([])) vs)))
+ where
+ span_tree r (vs, ns) [] = (vs, (ns))
+ span_tree r (vs, ns) (x : xs)
+ | x elem vs = span_tree r (vs, (ns)) xs
+ | otherwise = span_tree r (vs', ((x : ns') : ns)) xs
+ where
+ (vs', ns') = dfs r (x : vs, ([])) (r x)
+ new_range [] w = []
+ new_range ((x, y) : xys) w
+ = if x == w then
+ (y : (new_range xys w))
+ else
+ (new_range xys w)
+ swap (x, y) = (y, (x))
+ reversed_edges :: _forall_ [v] (PrelBase.Eq v) => [Edge v]
+ reversed_edges = map swap es
Compilation had errors