Perplexing type error.

Michael Jones (Michael.Jones@cl.cam.ac.uk)
Wed, 12 Jun 1996 11:31:25 +0200

To: caml-list@pauillac.inria.fr
Subject: Perplexing type error.
Date: Wed, 12 Jun 1996 11:31:25 +0200
From: Michael Jones <Michael.Jones@cl.cam.ac.uk>
Message-Id: <E0uTnCw-00060C-00@heaton.cl.cam.ac.uk>

Tres petit(e) abstract en Francais:
Il y a une "type error" que je ne comprende pas.

While tweaking a preterm parser for type expressions in a proof assistant
written in caml, I came across the following perplexing type error. At first,
it looked like a type inference problem so I specified the types in the
generic function definitions and got a new error:

#Toplevel input:
> and parse_pretypepred src = P_APPLY Pred (parse_preterm) src
> ^^^^^^^^^^^^^
This expression has type lexcode list -> preterm * lexcode list,
but is used with type lexcode list -> preterm * lexcode list.
# _

So. Any ideas why this is an error and how I can fix it? I'm stumped. The
line with the error in it is part of a larger mutualy recursive function. I
am using caml-light-0.71 on a sun workstation and didn't see anything similar
in the known bugs file.

Some more detail about the line of code: P_APPLY is a parser combinater that
takes a function (Pred in this case) and applies it to the parser result.
Pred is a type constructor for making pretypes out of preterms. parse_preterm
is the parser and src is the output of the lex. analyzer.

regards,
mike.