coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: "Benjamin C. Pierce" <bcpierce AT cis.upenn.edu>
- To: coq-club AT inria.fr
- Cc: Leonidas Lampropoulos <llamp AT seas.upenn.edu>, Zoe Paraskevopoulou <zoe.paraskevopoulou AT gmail.com>
- Subject: [Coq-Club] API documentation for Coq libraries
- Date: Wed, 27 Sep 2017 13:11:37 -0400
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=bcpierce AT cis.upenn.edu; spf=Pass smtp.mailfrom=bcpierce AT cis.upenn.edu; spf=None smtp.helo=postmaster AT hound.seas.upenn.edu
- Ironport-phdr: 9a23:ARfPHhdNeL/1QfZncEKeRTvclGMj4u6mDksu8pMizoh2WeGdxc2ybB7h7PlgxGXEQZ/co6odzbGJ4+a9ASQp2tWojjMrSNR0TRgLiMEbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpRZbIBj0NBJ0K+LpAcaSyp3vj6Hhs6HUNg5PnX+2Za54BBSwtwTY8McM0qV4LaNkgDHEpHlBfuVQjUgubWqSkgz36434qJRo6yVdofks38VBSuPnZ6k+S/pVAClwYDN939HiqRSWFVjH3XAbSGhD10MQWwU=
We have a largeish Coq development (https://github.com/QuickChick/QuickChick)
that is gaining users and deserves to be better documented.
In the OCaml world, we’d do this by making a small number of .mli files
containing just type declarations and signatures of all the externally useful
functions. Function bodies, auxiliary definitions, etc. are all hidden in
.ml files that users of the library never look at.
On the other hand, in Coq, this seems not to be the default style, even for
the standard library and thoughtfully packaged libraries like ExtLib;
instead, library writers just sprinkle coqdoc comments near the main
definitions in their .v files and nothing more — no separate interface files
collecting just the user-facing bits.
Is there agreement in the community about how a library should best be
structured so that its API is easy for users to grok, search, etc.? Are
there examples illustrating best practices?
Thanks!
- Benjamin (and Leo and Zoe)
- [Coq-Club] API documentation for Coq libraries, Benjamin C. Pierce, 09/27/2017
- Re: [Coq-Club] API documentation for Coq libraries, andré hirschowitz, 09/27/2017
Archive powered by MHonArc 2.6.18.