coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: "Soegtrop, Michael" <michael.soegtrop AT intel.com>
- To: "coq-club AT inria.fr" <coq-club AT inria.fr>
- Subject: RE: [Coq-Club] module "best practices"?
- Date: Thu, 23 Aug 2018 10:54:12 +0000
- Accept-language: de-DE, en-US
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=michael.soegtrop AT intel.com; spf=Pass smtp.mailfrom=michael.soegtrop AT intel.com; spf=None smtp.helo=postmaster AT mga06.intel.com
- Ironport-phdr: 9a23:1O2UcBwTktaqMM/XCy+O+j09IxM/srCxBDY+r6Qd2+8UIJqq85mqBkHD//Il1AaPAd2Eraocw8Pt8InYEVQa5piAtH1QOLdtbDQizfssogo7HcSeAlf6JvO5JwYzHcBFSUM3tyrjaRsdF8nxfUDdrWOv5jAOBBr/KRB1JuPoEYLOksi7ze+/94HRbglSmDaxfa55IQmrownWqsQYm5ZpJLwryhvOrHtIeuBWyn1tKFmOgRvy5dq+8YB6/ShItP0v68BPUaPhf6QlVrNYFygpM3o05MLwqxbOSxaE62YGXWUXlhpIBBXF7A3/U5zsvCb2qvZx1S+HNsDwULs6Wymt771zRRHolikJKiI5/m/UhMx+jq1boQ6uqBNwzYPPfIGVLf5zcr/Bcd8GW2ZMWNtaWSxbAoO7aosCF+QNM/tfr4bjqFsOsQG+BQ60BO/31zRGgX720rE60+s7Dw7G2AIsFM8JvXTRrdX6KKcSXvqrw6nM1znDdPRW1iny6IjUaBAhpumMUKlxccrX1UkgCQfFgk+MpoziOjOYz+IAuHWV4epnUOKgkW8nqwdprziuwMcslpfGhoYPxl/Z6yp0xps+K96gSENjfNKpHpRduzuHO4Z4Tc4uWXxktSg7x7Ect5O3YTAGxIkmyhPRcfCKfYaF7gj9WOufJTp0nm9pdbGjixqq7ESty+nxWtOq3FtKoSdJiMfAumoQ2xHQ9sSKTOZ28F271jaVzQ/T7/lJIUAqmqrfLJ4s2rswlpUJvkjfHyL6gkT2jKmKdko6/uik8fjoYrLjppOENo90jB/xMrg2l8CiD+k1PRICU3WV9OmzzrHv4EP0TbRQgvA4j6XVqJXaKt4apq69DQ9VyIEj6xOnAjej0dQXgXkHI0hbdxKDlYTpIFbOL+73DfejmVSsly9ryuvHPr3nHpXCMHzDnK39crZ67k5Q0BAzwsxH55JIFrEBJ+r+VVP2tNzBFxM2Lwi0w/v8B9hmzYMfWWePAreDP6/IsF+I4PgvI+iWa4MPtjb9Matt2/m7x3Q+gBoWebSj9ZoRcnGxWPp8aQ3Nan31x9wFDG0ivwwkTeWshkfUAhBJYHPnFZk76z4nEoW+Sc/mR4utibGFlm/vG5xdZmlLDhaXFnrna5+DQ98Nbj6fJolqlTlSBuvpcJMoyRz77Fyy8LFgNOeBonRJ56Km78B84qjorT938DV1C8qH1GTUFjN1mH8FQ3k926Ut+BUhmGfG6rBxhrljLfIW/+lAC15oNJjAwug8ANf3CFqYI4W5DW2+S9DjOgkfC9I8x9hXPBR4FNz60FbC2TanB/kekLnZXJE=
Dear Benjamin,
I just saw that my answer didn't make it through the mail server - it
contained an image and was too large.
I wanted to write something down 2016, but I ran into severe issues with my
samples with the module structure of the standard library. The example was
about maps implemented as ordered tress and using a module functor to extend
a given ordered key module with a plus and minus infinity element (and the
correspondingly extended order). This makes the specification of subtree key
ranges easier, because one can use infinity as range for the whole tree.
Doing this, I ended up rewriting half of the order modules of the standard
library.
I think it is really difficult to come up with a good module system tutorial
when the methods advocated in there are incompatible with the standard
library. But it might be that I overdid things 2 years back. If it is really
as bad as I concluded back then, I guess it would be best to rework the
standard library and make this serve as a good example.
Something I would like to discuss is an appropriate naming scheme for related
modules, module types, module functors, module type functors, aggregated
modules, module types, module functors and module type functors, modules
providing notations and those containing notations, module types requesting
functions, module types specifying such functions, modules implementing such
functions and modules showing that the specifications hold, module types just
wrapping type classes and the type class name and a few others.
My original post contained an image of how this is done in the standard
library for orders - it didn't get through I will post it somewhere and send
the link after I reviewed my rewrites of this.
Best regards,
Michael
Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Christian Lamprechter
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928
- [Coq-Club] module "best practices"?, Kevin Hamlen, 08/17/2018
- RE: [Coq-Club] module "best practices"?, Soegtrop, Michael, 08/18/2018
- Re: [Coq-Club] module "best practices"?, Samuel Gruetter, 08/18/2018
- RE: [Coq-Club] module "best practices"?, Soegtrop, Michael, 08/19/2018
- Re: [Coq-Club] module "best practices"?, Kevin Hamlen, 08/20/2018
- RE: [Coq-Club] module "best practices"?, Soegtrop, Michael, 08/20/2018
- Re: [Coq-Club] module "best practices"?, Benjamin C. Pierce, 08/20/2018
- RE: [Coq-Club] module "best practices"?, Soegtrop, Michael, 08/23/2018
- Re: [Coq-Club] module "best practices"?, Benjamin C. Pierce, 08/20/2018
- RE: [Coq-Club] module "best practices"?, Soegtrop, Michael, 08/20/2018
- Re: [Coq-Club] module "best practices"?, Kevin Hamlen, 08/20/2018
- RE: [Coq-Club] module "best practices"?, Soegtrop, Michael, 08/19/2018
- Re: [Coq-Club] module "best practices"?, Adam Chlipala, 08/21/2018
- Re: [Coq-Club] module "best practices"?, Kevin Hamlen, 08/21/2018
- Re: [Coq-Club] module "best practices"?, Samuel Gruetter, 08/22/2018
- RE: [Coq-Club] module "best practices"?, Soegtrop, Michael, 08/23/2018
- Re: [Coq-Club] module "best practices"?, David Holland, 08/23/2018
- Re: [Coq-Club] module "best practices"?, Anders Lundstedt, 08/24/2018
- RE: [Coq-Club] module "best practices"?, Soegtrop, Michael, 08/24/2018
- Re: [Coq-Club] module "best practices"?, Anders Lundstedt, 08/24/2018
- Re: [Coq-Club] module "best practices"?, David Holland, 08/23/2018
- RE: [Coq-Club] module "best practices"?, Soegtrop, Michael, 08/23/2018
- Re: [Coq-Club] module "best practices"?, Samuel Gruetter, 08/22/2018
- Re: [Coq-Club] module "best practices"?, Kevin Hamlen, 08/21/2018
Archive powered by MHonArc 2.6.18.