Skip to Content.
Sympa Menu

coq-club - RE: [Coq-Club] module "best practices"?

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

RE: [Coq-Club] module "best practices"?


Chronological Thread 
  • 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




Archive powered by MHonArc 2.6.18.

Top of Page