On 20/08/2012 23:56, Phil Clayton wrote:
I have to say, if find it surprising that compilers even allow Word.word to match the equivalent size Word<N>.word given the specification in the Basis Library http://www.standardml.org/Basis/word.html
structure Word :> WORD where type word = word structure Word<N> :> WORD (* OPTIONAL *)
which uses opaque signature matching and has no 'where type' clause for Word<N>.
This seems to be a bit of a mess as far as I can see. I don't understand how to deal with the sentence that says: If LargeWord is not the same as Word, then there must be a structure WordN equal to LargeWord. But LargeWord is required while WordN is optional. And what does "equal to" mean for structures?
David