Hi everyone,
today I stumbled upon some strange behaviour of PolyML 5.5.1 (the x86-linux version shipped with Isabelle). The behaviour also occurred with revision 1874 from the SVN (Sourceforge has problems at the moment, so I didn't test the most current version).
------------------------------------------------------ # ./poly Poly/ML 5.5.1 Release
fun f xs = (xs : ''a) val _ = (fn x => f x);
Exception- Subscript unexpectedly raised while compiling
Exception- Subscript unexpectedly raised while compiling ------------------------------------------------------
But: ------------------------------------------------------ # ./poly Poly/ML 5.5.1 Release
fun f xs = (xs : ''a); val _ = (fn x => f x);
val f = fn: ''a -> ''a ------------------------------------------------------
But: ------------------------------------------------------ # ./poly Poly/ML 5.5.1 Release
let fun f xs = (xs : ''a); val _ = (fn x => f x) in () end;
Exception- Subscript unexpectedly raised while compiling
Exception- Subscript unexpectedly raised while compiling ------------------------------------------------------
So the error vanishes, if I add a semicolon before the "val", except when I am in a "let" block. Moreover, the error seems to depend on the equality type and the dummy pattern.
Best regards, Lars