# HG changeset patch # User Adam Chlipala # Date 1216932072 14400 # Node ID 1e382d10e8324e818abaf313eb9d1ee5eb446e24 # Parent b4b70de488e91a116c4a35310715cc476907de68 Abstracting datatypes with signature ascription diff -r b4b70de488e9 -r 1e382d10e832 src/elaborate.sml --- a/src/elaborate.sml Thu Jul 24 16:36:41 2008 -0400 +++ b/src/elaborate.sml Thu Jul 24 16:41:12 2008 -0400 @@ -1724,6 +1724,9 @@ case sgi1 of L'.SgiConAbs (x', n1, k1) => found (x', n1, k1, NONE) | L'.SgiCon (x', n1, k1, c1) => found (x', n1, k1, SOME c1) + | L'.SgiDatatype (x', n1, _) => found (x', n1, (L'.KType, loc), NONE) + | L'.SgiDatatypeImp (x', n1, m1, ms, s) => + found (x', n1, (L'.KType, loc), SOME (L'.CModProj (m1, ms, s), loc)) | _ => NONE end) diff -r b4b70de488e9 -r 1e382d10e832 tests/datatypeMod.lac --- a/tests/datatypeMod.lac Thu Jul 24 16:36:41 2008 -0400 +++ b/tests/datatypeMod.lac Thu Jul 24 16:41:12 2008 -0400 @@ -14,3 +14,5 @@ structure M4 : sig datatype t = datatype M.t end = M val b : M3.t = M4.B + +structure Ma : sig type t end = M