coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Jeremy Dawson <Jeremy.Dawson AT anu.edu.au>
- To: coq-club AT inria.fr
- Subject: Re: [Coq-Club] option to disable partially qualified Require Imports
- Date: Sat, 19 Sep 2020 12:31:29 +1000
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=anu.edu.au; dmarc=pass action=none header.from=anu.edu.au; dkim=pass header.d=anu.edu.au; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=I8aZgkqfhJLEDL2qLW1TFkszjZz/cS7vJb+xS5GcpKg=; b=aOMw3ApoNbZZFbczBhRCC5XOdvoaCwrdBeRGui+g4ehSNSvgIXeOfDcSjxwauO3xexkb0QSn6q6HW87qL1jJrva1ctwQPEgxCVu9Gk/GMZRjDc8EimdhHPTRIjwlARQ6wHM1WzrAKJNZ9VR7TTPEDLJmg4B7XqW5aRt5RTkDcjtDFnD0c1ro+o6rFXJa4S5Zt9L5qYJ2oY9DFv4biQArHTU6sYYudLUc+l1b9SSxJUUfRJB9iqQxGMoDe64zNHaAUScF5z/8YK6RWTui4GJf48E3hQnNSi4kXSd9rHsNfzz1yg3kP6d+84PuQHOu1ojxIW8wIJH5B+Thm0AKUNsy9Q==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HJgEXh3zbKKJ5iOoZvxjGdjZB4NsaxeHscVEsNbqLzKkD2Xf4Cqt7HbcxtaH0hJSnzpO3ehnaZgrybALeA2ImEGVaaLdKC9XArwLnuEmKwGlw27xcQh0AgCzZdF1WVXrnk++p0su7pLUul8eKfD+M+GWna55oqJor4Pv6VF49YdbRQsFcH+6DbddHG4I7jESeLIUx7f1k0BPYyWTpj049dYIBsdbEzhbqp9SEY241C98wewle7R5pjX64989dp+qMiyQBbcfMdGlR9jBdmRmT+eAThf7NoT+PNNFfUm/zHuibTsyHNVb1BvMjH5iR/ufTpodFZmzr3U02iJTiBQNUw==
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=Jeremy.Dawson AT anu.edu.au; spf=Pass smtp.mailfrom=Jeremy.Dawson AT anu.edu.au; spf=Pass smtp.helo=postmaster AT AUS01-ME1-obe.outbound.protection.outlook.com
- Ironport-phdr: 9a23:easa8R8z8vb2Hf9uRHKM819IXTAuvvDOBiVQ1KB20ekcTK2v8tzYMVDF4r011RmVBNqds60P1rqe8/i5HzBZv9DZ6DFKWacPfidNsd8RkQ0kDZzNImzAB9muURYHGt9fXkRu5XCxPBsdMs//Y1rPvi/6tmZKSV3wOgVvO+v6BJPZgdip2OCu4Z3TZBhDiCagbb9oIxi6sAfcutMKjYZgJao8yhjEqWZMd+hK2G9kP12ekwv968uq4JJv7yFcsO89+sBdVqn3Y742RqFCAjQ8NGA16szrtR3dQgaK+3ARTGYYnAdWDgbc9B31UYv/vSX8tupmxSmVJtb2QqwuWTSj9KhkVhnlgzoaOjEj8WHXjstwjL9HoB+kuhdyzZLYbJ2TOfFjeK7WYNEUSndbXstJSiJPHI28YYsMAeQPM+lXrZXyqVQBohu/HgSsGODixyVUinPq06A30eIsGhzG0gw6GNIOtWzZotHrO6cIT++1yanJxijNYfxM1zb984/IchY8qvyLWbx/b9DRxlcqFwLFlFmep5bqPj2O1uQKtWiW9PBvVeSyi2I9tQ5+vyWvyt02hYnUn48YzE3P+iplzogvP9K4VFJ7bsC+EJtWryyXOIR4T98iTW11pSo3xLMLt5C4cSYF1Zkq2xHSZ+GGfoWM7BzuVuicLDVkiX57Zr6ygxS//Ei8x+P8VsS501lHoyxYmdfPrnAAzxPe5tSdRvdg4kus2yyD2x3d5+xFO0w5kajWJ4Y8zrIuipYfq1nPEyzslEnqlqObdEEp9+614Or9eLrmvIWTN4pshwH+LKsunsu/DPwkPwcAQmaX5fmw2KTk80P2XblGl/o2nbLHv5zAIsQbu7K5DBRS0oY+7RawEi2q0MwCnXkAMFJKZg6Ij5ToO1HJJvD0F/C/g0mwkDdvwPDGOb7hDo/RIXjElbftZbd960hCxwov1d1S6I5YBqscLP7vWEL9rsHUAxE4PgCux+vqCs1x1oYEVmKOBq+ZPrnSsViN5u83J+eDepUVtyj4K/kl/fLgg2U2mFEGfamu25sac2q3HvJ7I0mDf3Xjn8oBHX0QsQojVODqkkGNUSZPZ3auWKIx/i00CIW/DYvaWo+thKGB0zygE51NZmFGD0iMHm3ye4WFXfcMciOSLdV7njwKT7jyA7MmgBqprUrxz6dtBuvS4CwR85z5h/Zv4OiGtxwo+DllR+iUzHqKSSkgvG4SSjonmox2vld6zH+K17U+jvBFU9VOsaAaGjwmPILRmrQpQ+v5XRjMK4/QFASWB+6+CDR0deofhscUah8nSdykk1bO0zfsCqJHz+XaVqxxybrV2j3KH+g4zn/H0Kc7iFx/GJlGM3Dgi6JisQHOVdeQzhep0p2yfKFZ5xbjsWeOyW3S4xNxbTUoCODgcClaYUHb69Pk+knFUrmiT6w9NRdMwtKDLa0MbcD1iVJBR7HoP9GMOm8=
On 19/9/20 1:01 am, Guillaume Melquiond wrote:
Le 18/09/2020 à 16:46, Ralf Jung a écrit :
(Probably theThe reason is the standard library of Coq. It is important to understand
language designer had a good reason and this was solving a concrete problem,
but
putting the blame on the library is just unfair. And you haven't argued for
why
Coq's semantics make any sense, either.)
how painful it would be to use if Imports had to be fully qualified.
Here is a quiz for you. Which of the following are correct?
1.a Require Coq.List.List.
1.b Require Coq.Lists.List.
If the Coq module system really were based to a significant extent on the SML module system, surely the answer would be both are correct, with a trivial amount of extra code. I think the code would look something like this
structure Coq = struct
structure List = struct
<the stuff in List>
end ; (* structure List *)
structure Lists = List ;
(* or, if that does more than you want
structure Lists = struct
structure List = List.List ;
end ; (* structure Lists *)
end ; (* structure Coq *)
One of the problems, as I understood it (accepting that it seems so bizarre that I might well be mistaken) is that to compile a Coq source file, you have to know where in the logical hierarchy of logical paths it is going to be used. Which is certainly not something I've experienced in 25 years using SML (though this, admittedly, would potentially vary between SML implementations).
Jeremy
- Re: [Coq-Club] option to disable partially qualified Require Imports, (continued)
- Re: [Coq-Club] option to disable partially qualified Require Imports, Abhishek Anand, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Ralf Jung, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Andrew Appel, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Andrew Appel, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Ralf Jung, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Gaëtan Gilbert, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Guillaume Melquiond, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Ralf Jung, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Guillaume Melquiond, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, jonikelee AT gmail.com, 09/18/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Jeremy Dawson, 09/19/2020
- Re: [Coq-Club] option to disable partially qualified Require Imports, Théo Zimmermann, 09/19/2020
Archive powered by MHonArc 2.6.19+.