Maybe function type (int * int -> int * int) is incompatible with object type <..>?

Kakadu


On Sat, Apr 13, 2013 at 10:50 AM, Anthony Tavener <anthony.tavener@gmail.com> wrote:
File "virtue.ml", line 462, characters 12-24:
Error: This expression has type
         int * ((int * int -> int * int) list -> exn) *
         (exn -> (int * int -> int * int) list)
       but an expression was expected of type
         int * ((< .. > as 'a) list -> exn) * (exn -> 'a list)

The code in question:

  (fun id ->
    let m = Modifier.attach id in
      [ m Cast.total'k (fun (v,b) -> (v, max 1 (b-3)))     (* <-- line 462 *)
      ; m Lab.total'k (fun (v,b) -> (v, max 1 (b-3))) ])

For reference, the signature of Modifier.attach:
  Db.key -> int * ('a list -> exn) * (exn -> 'a list) -> 'a -> Modifier.deleter

OCaml version is 4.00.0 -- I know I should upgrade. Keep meaning to, I
guess I will if I wake up and there's no helpful soul explaining what could
be wrong here. :)

Thank-you for any help. My eyes are starting to bug-out looking at this.

 -Tony