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