Hello there,


While compiling some source code of mine, containing
the following lines (line numbers included):

321
322  > minCycleLength :: Vertex -> (MarcMap Vertex (MarcMap Vertex v)) -> Maybe Int
323  > minCycleLength v g
324  >   = mcl ws g''
325  >   where ws  = mapDom (rdMap g v)
326  >         g'  = mapMap (\wrs -> mapMap (\_ -> Nothing) wrs) g
327  >         g'' = foldr (\w g' -> wrMap (rdMap g' w) v (Just (w,1))) g' ws
328  >         mcl [] _
329  >             = Nothing
330  >

Line 329 was the last line of the definition of minCycleLength (under construction).

The following error message was returned by ghc-3.01

Search.lhs:327:
    Occurs check: cannot construct the infinite type:
            a1Lv = MarcMap a1Lt a1Lv
    Expected: MarcMap a1Lz (MarcMap a1Lz a1Lv)
    Inferred: MarcMap a1Lz a1Lv
    In the first argument of `MarcMap.rdMap', namely `g'
    In the first argument of `MarcMap.wrMap', namely
        `(MarcMap.rdMap g w)'

It seems as if the quote symbol in the fragment
       (rdMap g' w)
in line 327 has been omitted somehow. The two nearest occurences of
the regular expression "rdMap[ ]+g[ ]+w" are more than 100 lines before
and 30 lines after line 327.

If needed, I can provide the source-code from which this was generated.


Regards,


Marc

Reply via email to