Received: via tmail-4.1(11) (invoked by user schoepf) for schoepf; Wed, 27 Sep 2000 17:25:14 +0200 (MEST) Received: from mailgate2.zdv.Uni-Mainz.DE (mailgate2.zdv.Uni-Mainz.DE [134.93.8.57]) by mail.Uni-Mainz.DE (8.9.3/8.9.3) with ESMTP id RAA11173 for ; Wed, 27 Sep 2000 17:25:14 +0200 (MEST) MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C02897.21E1E900" Received: from mail.listserv.gmd.de (mail.listserv.gmd.de [192.88.97.5]) by mailgate2.zdv.Uni-Mainz.DE (8.11.0/8.10.2) with ESMTP id e8RFPDd24317 for ; Wed, 27 Sep 2000 17:25:13 +0200 (MET DST) Received: from mail.listserv.gmd.de (192.88.97.5) by mail.listserv.gmd.de (LSMTP for OpenVMS v1.1a) with SMTP id <4.5BD9D03B@mail.listserv.gmd.de>; Wed, 27 Sep 2000 17:25:13 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.5 Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 471821 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 27 Sep 2000 17:25:11 +0200 Received: from ix.urz.uni-heidelberg.de (mail.urz.uni-heidelberg.de [129.206.119.234]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id RAA17869 for ; Wed, 27 Sep 2000 17:25:10 +0200 (MET DST) Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by ix.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id RAA24548 for ; Wed, 27 Sep 2000 17:25:10 +0200 Received: from hromeo.algonet.se (hromeo.algonet.se [194.213.74.51]) by relay.uni-heidelberg.de (8.9.3+Sun/8.9.3) with SMTP id RAA16075 for ; Wed, 27 Sep 2000 17:24:54 +0200 (MET DST) Received: (qmail 4845 invoked from network); 27 Sep 2000 17:24:40 +0200 Received: from garibaldi.tninet.se (HELO algonet.se) (195.100.94.103) by hromeo.algonet.se with SMTP; 27 Sep 2000 17:24:40 +0200 Received: from [195.100.226.150] (du132-226.ppp.su-anst.tninet.se [195.100.226.132]) by garibaldi.tninet.se (BLUETAIL Mail Robustifier 2.2.1) with ESMTP id 763783.68278.970garibaldi-s2 for ; Wed, 27 Sep 2000 17:24:38 +0200 Return-Path: X-Sender: haberg@pop.matematik.su.se Content-class: urn:content-classes:message Subject: Modules Date: Wed, 27 Sep 2000 16:23:19 +0100 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: From: "Hans Aberg" Sender: "Mailing list for the LaTeX3 project" To: "Multiple recipients of list LATEX-L" Reply-To: "Mailing list for the LaTeX3 project" Status: R X-Status: X-Keywords: X-UID: 3614 This is a multi-part message in MIME format. ------_=_NextPart_001_01C02897.21E1E900 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable What has happened with the modules in LaTeX? There is a simple module system that could implemented in TeX; the idea = I got from Haskell . The following targets the idea = of a module as a name separator, so that names do not clash. One can also = think of modules bringing about logical connections, which is not so much = present here (even though a name-space can help bringing about such logical structure). Names defined within the module gets names ".", ".", ... Then one can define \export{}{, , ...} for the names that are deemed to become of frequently used by the user = of the module. A user can later write \import{} in which case the names , , ... can be used instead of ., ., ... -- To this one will have to add a = system resolving name conflicts in case more than one module is imported, and = the imports have name conflicts. Hans Aberg ------_=_NextPart_001_01C02897.21E1E900 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Modules

What has happened with the modules in LaTeX?

There is a simple module system that could implemented = in TeX; the idea I
got from Haskell <http://haskell.org/>. The following = targets the idea of a
module as a name separator, so that names do not = clash. One can also think
of modules bringing about logical connections, which = is not so much present
here (even though a name-space can help bringing = about such logical
structure).

Names defined within the module <mod> gets names = "<mod>.<name1>",
"<mod>.<name2>", ... Then one = can define
   \export{<mod>}{<name1>, = <name2>, ...}
for the names that are deemed to become of frequently = used by the user of
the module.

A user can later write
   \import{<mod>}
in which case the names <name1>, <name2>, = ... can be used instead of
<mod>.<name1>, <mod>.<name2>, = ... -- To this one will have to add a system
resolving name conflicts in case more than one module = is imported, and the
imports have name conflicts.

  Hans Aberg

------_=_NextPart_001_01C02897.21E1E900--