[MLton] front-end error message

Matthew Fluet fluet@cs.cornell.edu
Sat, 5 Mar 2005 17:29:23 -0500 (EST)


The Error.bug "missing flexInst" at line 1492 of elaborate/type-env.fun 
is triggered by the following program:

structure S : sig type t val f : t -> bool end =
struct
   datatype t = A of {a: int} | B of {b: int}

   fun f t = 
      case t of
	 A {x, ...} => x = 1
       | B {b, ...}  => b = 0
end

bash-2.05b$ mlton-stable -stop tc z.sml
Error: z.sml 8.3.
  Constructor applied to incorrect argument.
    expects: {...}
    but got: {[x]: _, ...}
    in: A {x, ...}
Error: z.sml 8.5.
  Unresolved ... in record pattern.
    in: {x, ...}
missing flexInst

It is definitely related to the structure signature, as removing the 
signature yields

bash-2.05b$ mlton-stable -stop tc z.sml
Error: z.sml 8.3.
  Constructor applied to incorrect argument.
    expects: {...}
    but got: {[x]: _, ...}
    in: A {x, ...}
Error: z.sml 8.5.
  Unresolved ... in record pattern.
    in: {x, ...}
compilation aborted: parseAndElaborate reported errors