[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