Timothy Bourke
Wed, 27 Aug 2008 22:34:51 -0700
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