Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] option to disable partially qualified Require Imports

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] option to disable partially qualified Require Imports


Chronological Thread 
  • 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 the
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.)
The reason is the standard library of Coq. It is important to understand
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




Archive powered by MHonArc 2.6.19+.

Top of Page