From: Andreas Rossberg <rossberg@mpi-sws.org>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] coinductive data types
Date: Wed, 31 Aug 2022 20:42:32 +0200 [thread overview]
Message-ID: <7F00DA21-E7F8-45C6-A3FE-30CDB24A3528@mpi-sws.org> (raw)
In-Reply-To: <1e762c7c8645d3b697a82b4a65433fa81e92ee83.camel@clement.pm>
[-- Attachment #1: Type: text/plain, Size: 3044 bytes --]
> On 31. 8. 2022, at 17:55, Basile Clement <basile@clement.pm> wrote:
>
> Hi Andreas,
>
>> (I’ve been rather interested in this topic lately, because the semantics of type recursion has been a highly contentious issue for WebAssembly, until we settled on an iso-recursive semantics. The difference between iso-recursive and nominal becomes rather crucial once you need to compile structural source types into them – then a nominal semantics in the target language essentially breaks separate compilation/linking.)
>
> This is interesting to me, do you have a pointer to these discussions if they are public?
Hi Basile,
it is public, but scattered around numerous issues, meeting notes, and presentations in repos of the Wasm github. Not easy to point to a single place. Happy to try digging something up if you can narrow down what specifically you are interested in. (I suggest you mail me off-list, though, since it’s probably off-topic here.)
Cheers,
/Andreas
>
> Best,
> - Basile
>
>>
>> Best,
>> /Andreas
>>
>> [1] Crary, Harper, Cheng, Petersen, Stone. Transparent and Opaque Interpretations of Datatypes, 1998 (https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.8182 <https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.8182>)
>>
>>
>>> On 31. 8. 2022, at 10:46, Peter Thiemann <thiemann@informatik.uni-freiburg.de <mailto:thiemann@informatik.uni-freiburg.de>> wrote:
>>>
>>> Hi François and Andreas,
>>>
>>> this is an interesting question, which we also ran into quite recently.
>>>
>>> Algebraic datatypes seem to conflate the isomorphism for the recursive type with the injection into a sum-of-product type for the constructors.
>>> They give rise to nominal types, not structural.
>>> They are certainly not equi-recursive, because they are not equal to their unfolding.
>>>
>>> I'd also call them iso-recursive or should they be a category by themselves?
>>>
>>> Best
>>> -Peter
>>>
>>>
>>>> On 31. Aug 2022, at 10:25, François Pottier <francois.pottier@inria.fr <mailto:francois.pottier@inria.fr>> wrote:
>>>>
>>>>
>>>> Hi Andreas,
>>>>
>>>> Le 30/08/2022 à 18:45, Andreas Rossberg a écrit :
>>>>> I’m curious why you would categorise iso-recursive types as nominal. I have always considered them structural as well, since two structurally matching iso-recursive type expressions are still deemed equivalent.
>>>>
>>>> I had in mind a system with algebraic data types, which have a name, and where
>>>> two algebraic data types with distinct names can never be related by subtyping.
>>>>
>>>> In such a system, an algebraic data type is *not* equal to its unfolding, which
>>>> is why I used the word "iso-recursive".
>>>>
>>>> It is quite possible that I used the wrong word, and should not have referred
>>>> to such types as "iso-recursive".
>>>>
>>>> --
>>>> François Pottier
>>>> francois.pottier@inria.fr <mailto:francois.pottier@inria.fr>
>>>> http://cambium.inria.fr/~fpottier/
>>>
>>
>
[-- Attachment #2: Type: text/html, Size: 6044 bytes --]
prev parent reply other threads:[~2022-08-31 18:42 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-29 15:43 Aaron Gray
2022-08-30 7:24 ` François Pottier
2022-08-30 11:11 ` Xavier Leroy
2022-08-30 12:33 ` Aaron Gray
2022-08-31 1:21 ` Jacques Garrigue
[not found] ` <11E3A59A-BD33-4EC0-9FAD-711A1EACA35E@gmail.com>
2022-08-31 3:22 ` Aaron Gray
2022-09-01 12:13 ` Jacques Garrigue
2022-08-30 12:37 ` Aaron Gray
2022-08-30 13:57 ` Nate Foster
2022-08-30 15:27 ` Aaron Gray
2022-08-30 15:47 ` François Pottier
2022-08-30 16:32 ` Aaron Gray
2022-08-31 8:19 ` François Pottier
2022-08-30 16:45 ` Andreas Rossberg
2022-08-30 17:01 ` Aaron Gray
2022-08-30 18:20 ` Nate Foster
2022-08-31 8:25 ` François Pottier
2022-08-31 8:46 ` Peter Thiemann
2022-08-31 9:41 ` Andreas Rossberg
2022-08-31 13:49 ` François Pottier
2022-08-31 15:40 ` Peter Thiemann
2022-08-31 16:44 ` Andreas Rossberg
2022-08-31 15:55 ` Basile Clement
2022-08-31 18:42 ` Andreas Rossberg [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7F00DA21-E7F8-45C6-A3FE-30CDB24A3528@mpi-sws.org \
--to=rossberg@mpi-sws.org \
--cc=caml-list@inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox