<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE message PUBLIC
  "-//MLarc//DTD MLarc output files//EN"
  "../../mlarc.dtd"[
  <!ATTLIST message
    listname CDATA #REQUIRED
    title CDATA #REQUIRED
  >
]>

  <?xml-stylesheet href="../../mlarc.xsl" type="text/xsl"?>


<message 
  url="2003/12/1ae265695d331696e885c7802880495d"
  from="Tom Hawkins &lt;tom@l...&gt;"
  author="Tom Hawkins"
  date="2003-12-31T22:00:00"
  subject="[Caml-list] Invalid_argument(&quot;equal: abstract value&quot;)?"
  prev="2003/12/ec1bf64b6e330722d9e09a7d29f67188"
  next="2003/12/584aafc10b93ba8890447519001dc137"
  next-in-thread="2003/12/584aafc10b93ba8890447519001dc137"
  prev-thread="2003/12/ec1bf64b6e330722d9e09a7d29f67188"
  next-thread="2004/01/ecc92656d9f03cb998f5349794b08326"
  root="../../"
  period="month"
  listname="caml-list"
  title="Archives of the Caml mailing list">

<thread subject="[Caml-list] Invalid_argument(&quot;equal: abstract value&quot;)?">
<msg 
  url="2003/12/1ae265695d331696e885c7802880495d"
  from="Tom Hawkins &lt;tom@l...&gt;"
  author="Tom Hawkins"
  date="2003-12-31T22:00:00"
  subject="[Caml-list] Invalid_argument(&quot;equal: abstract value&quot;)?">
<msg 
  url="2003/12/584aafc10b93ba8890447519001dc137"
  from="Tom Hawkins &lt;tom@l...&gt;"
  author="Tom Hawkins"
  date="2003-12-31T22:26:01"
  subject="Re: [Caml-list] Invalid_argument(&quot;equal: abstract value&quot;)?">
<msg 
  url="2004/01/2b6a303085c5fd6aab495cf593c3e3a4"
  from="skaller &lt;skaller@o...&gt;"
  author="skaller"
  date="2004-01-01T03:18:57"
  subject="Re: [Caml-list] Invalid_argument(&quot;equal: abstract value&quot;)?">
<msg 
  url="2004/01/cedf6026d045aa9d38e1158c9d0c9d69"
  from="Damien Doligez &lt;damien.doligez@i...&gt;"
  author="Damien Doligez"
  date="2004-01-01T13:36:48"
  subject="Re: [Caml-list] Invalid_argument(&quot;equal: abstract value&quot;)?">
</msg>
</msg>
</msg>
</msg>
</thread>

<contents>
I haven't seen this error before.  Can someone provide an explanation?

I've traced the problem down to a structural comparison (=) between 
two large data structures.  I know functional comparisons are a 
no-no, but what is an "abstract value"?

The problem occurred when I added big integers (Big_int.big_int) to 
the data structures under comparison.  Suspecting big ints can't be 
structurally compared, I tried the following, but the compiler 
printed "false" as I would normally expect:

  let a = Big_int.zero_big_int = Big_int.unit_big_int in
  if a then print_string "true\n" else print_string "false\n";

Regards,
Tom

-- 
Tom Hawkins
Launchbird Design Systems, Inc.
952-200-3790
http://www.launchbird.com/

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners

</contents>

</message>

