[MLton-user] More Extended Basis Library
Geoffrey Alan Washburn
geoffw at cis.upenn.edu
Sat Mar 3 17:15:11 PST 2007
Geoffrey Alan Washburn wrote:
> Another bit of code I have that might make sense in the extended basis
> is my »ListTriple« signature and structure. Is it basically just »zip«
> and »unzip« for triples instead of pairs, but could be extended to match
> »ListPair«. However, maybe it would be better to write a »ZIP«
> signature for sequences based upon »Fold« and the »PRODUCT« signature.
Somewhat tangentially related, do you think there would be much interest
in signatures that talk about properties of a non-parameterized
datatype? For example, one could write a signature
signature HAS_PRODUCTS
type u
include PRODUCT_TYPE where ('a, 'b) t = u
end
but that isn't really what you would like. In this situation you would
like something more like
signature HAS_PRODUCTS
type t
val fromTuple2 : t * t -> t
...
end
However, I'm not sure offhand where there is a reasonable way to unify a
»HAS_PRODUCTS« signature with the »PRODUCT_TYPE« signature without
duplication. »HAS_PRODUCTS« also seems more like a »concept« signature
than a »data« signature. Perhaps someone with more experience making
clever use of the module system might have an idea.
In any event, go forward from there it would probably be useful to
define signatures like HAS_UNIT and IS_CARTESIAN, etc.
More information about the MLton-user
mailing list