[MLton] combining signatures
    Michael Norrish 
    Michael.Norrish at nicta.com.au
       
    Sun Jun  5 17:28:14 PDT 2011
    
    
  
If I have
 signature One =
 sig
   eqtype foo
   val op1 : foo -> ...
   val op2 :
   val op3 :
 end
 signature Two =
 sig
   eqtype foo
   type bar
   val op4 : bar -> foo
   val op5 : ...
 end
is it possible to create a signature that merges One and Two without retyping all of the bindings?
It'd be nice to be able to do
  signature Combined =
  sig
    include One
    include Two
  end
but, reasonably, there is a complaint about duplicate bindings of foo.
In my situation, it would be OK to have a combined signature where a particular instance of foo was already decided on, but
  signature Combined =
  sig
    include One where type foo = int
    include Two where type foo = int
  end
is also rejected.
I know I can do
  signature Combined =
  sig
    structure One : One
    structure Two : Two where type foo = One.foo
  end
but this isn't quite the same.  Is there any way of lifting the internal One and Two bindings out to the top-level to create the signature I really want?
If there's some not-too-destructive way of rewriting the One and Two signatures to make subsequent combination work, I'd be on for that too.
Michael.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 554 bytes
Desc: OpenPGP digital signature
Url : http://mlton.org/pipermail/mlton/attachments/20110606/88ea413a/signature.pgp
    
    
More information about the MLton
mailing list