[Haskell-cafe] Pattern match failure, then inconsistent function

Adam Wyner adam at wyner.info
Mon Aug 22 10:31:24 EDT 2005


Hi,

I am getting a "pattern match failure", and then subsequent functions
which worked right work wrong.  I am using Hugs and Trex.  While most of
the other functions work fine, the function "findCoordinatesUtil"
generates an error, then misbehaves; it takes a record and searches a
list of records to find other records in a specified relationship with
the input function.  In the first example, it works fine:

LexicalSemantics03> findCoordinatesUtil (giveActionFromLabel "Action6"
  testLexActions03) testLexActions03

[(label="Action7", xcond=["prop1","prop7","prop5"], ycond=["prop3","pr
op4","neg-prop6"]),(label="Action08", xcond=["prop1","prop7","prop5"],
  ycond=["prop3","neg-prop6","prop5"]),(label="Action09", xcond=["prop1
","prop7","prop5"], ycond=["prop3","neg-prop6","neg-prop1"])]

However, when I run the function on a larger list of records (here
testList01), it generates an error message.

LexicalSemantics03> findCoordinatesUtil (giveActionFromLabel "Action33
" testList01) testList01

Program error: pattern match failure: map_v780 (instEq_v20 instEq_v11
Eq_== "neg-prop2") map_v780
INTERNAL ERROR: Error in graph

Moreover, when I subsequently run the function, I get a different (and
wrong) result -- label-"Action08" is missing.

LexicalSemantics03> findCoordinatesUtil (giveActionFromLabel "Action6"
  testLexActions03) testLexActions03

[(label="Action7", xcond=["prop1","prop7","prop5"], ycond=["prop3","pr
op4","neg-prop6"]),(label="Action09", xcond=["prop1","prop7","prop5"],
  ycond=["prop3","neg-prop6","neg-prop1"])]

When I reload the module, it correctly works again.

LexicalSemantics03> :r
LexicalSemantics03> findCoordinatesUtil (giveActionFromLabel "Action6"
  testLexActions03) testLexActions03

[(label="Action7", xcond=["prop1","prop7","prop5"], ycond=["prop3","pr
op4","neg-prop6"]),(label="Action08", xcond=["prop1","prop7","prop5"],
  ycond=["prop3","neg-prop6","prop5"]),(label="Action09", xcond=["prop1
","prop7","prop5"], ycond=["prop3","neg-prop6","neg-prop1"])]

I don't understand the pattern match failure or how to correct it.  What
is this error message telling me?

Thanks,
Adam Wyner



More information about the Haskell-Cafe mailing list