[Ur] Sharing types in signatures

Saulo Araujo saulo2 at gmail.com
Fri Sep 30 21:31:24 EDT 2016


Hi Ziv,

Thanks for your comprehensive answer!

Sincerely,
Saulo

On Fri, Sep 30, 2016 at 10:17 PM, Ziv Scully <ziv at mit.edu> wrote:

> The relevant mechanism is `where`. Try something like the following.
>
> signature A = sig type t end
> signature B = sig type t end
>
> structure C = sig
>   structure A1 : A
>   structure B1 : B where type t = A.t
> end
>
> This is especially useful for relating types in the input and output
> signatures of functors:
>
> functor F(A1 : A) : B where type t = A.t
>
> You can do the same for any constructor using `where con` instead of
> `where type`, and you can use multiple `where` statements on the same
> signature one after the other.
>
>
> On Fri, Sep 30, 2016 at 8:35 PM, Saulo Araujo <saulo2 at gmail.com> wrote:
>
>> Hi,
>>
>> Does Ur/Web supports sharing types in signatures like in the code below?
>>
>> signature A = sig
>>   type t
>> end
>>
>> signature B = sig
>>   type t
>> end
>>
>> signature C = sig
>>   structure A1 : A
>>   structure B1 : B
>>   sharing type A1.t = B1.t
>> end
>>
>> In case it is not supported, is there a way to accomplish something
>> similar?
>>
>> Sincerely,
>> Saulo
>>
>> _______________________________________________
>> Ur mailing list
>> Ur at impredicative.com
>> http://www.impredicative.com/cgi-bin/mailman/listinfo/ur
>>
>>
>
> _______________________________________________
> Ur mailing list
> Ur at impredicative.com
> http://www.impredicative.com/cgi-bin/mailman/listinfo/ur
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.impredicative.com/pipermail/ur/attachments/20160930/98bb0bfb/attachment.html>


More information about the Ur mailing list