[MLton] Patch ready
Wesley W. Terpstra
wesley at terpstra.ca
Sun Feb 11 12:20:35 PST 2007
On Feb 11, 2007, at 8:35 PM, Matthew Fluet wrote:
> The Basis specifies that String.string is equivalent to
> CharVector.vector.
Of course, and WideString.string = WideCharVector.vector.
> I think that the Basis would technically have CharVector.vector as
> an abstract type (since in most implementations it won't be
> equivalent to char vector).
Yes, this is what I mean. Monomorphic vectors are not supposed to be
equivalent to their polymorphic brethren. eg: char vector !=
CharVector.vector.
> I seem to recall some reason that MLton has for exposing the
> equivalence, but I can't recall it at the present time.
It's surely convenient in a number of applications, but IMO it is an
extension to the standard.
I think this would be a good use of the mlb system. The strict
basis.mlb should not expose the equivalence, but the mlton.mlb could
do so.
It's a minor point. I only noticed it b/c in error messages
WideString.string is reported as WideChar.char vector.
More information about the MLton
mailing list