I have a program that causes an InternalError in Poly/ML 5.2 on FreeBSD (but not MLton or SML/NJ). I haven't been able to test it under Linux.
It can be reduced to these declarations: type int = Int.int; signature SIG = sig datatype t1 = T1 of int datatype t2 = T2 of { f : t1 } end; functor Fun () : SIG = struct datatype t1 = T1 of int datatype t2 = T2 of { f : t1 } end; structure Str1 = Fun () (*;*) structure Str2 : SIG = struct open Str1 end; fun g (Str2.T2 {f}) = (f=f); They compile if any of various changes are made: such as adding the semi-colon suggested above, removing the type int declaration, trying to shortcut Str2, removing the T1 label. Unfortunately, the corresponding changes are either difficult to make in the original program or do not seem to fix the problem. Sorry I haven't yet had time to look at Poly/ML myself. If a solution isn't readily suggested, I'll try to look harder over the weekend. Tim.
pgpXqE4YQ3gRE.pgp
Description: PGP signature
_______________________________________________ polyml mailing list polyml@inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml