Re: [m-users.] Creating an interface module

"Sean Charles (emacstheviking)" <[email protected]>
Newsgroups gmane.comp.lang.mercury.general
Message-ID <[email protected]>
LOL! I considered reexport first! But I didn't like the two 'e'-s close together, I agree with all your other points!

> On 14 Jul 2023, at 09:14, Volker Wysk <[email protected]> wrote:
> 
> Am Freitag, dem 14.07.2023 um 09:04 +0100 schrieb Sean Charles
> (emacstheviking):
>> What about 
>> 
>> :- publish_module foo.
>> 
>> or
>> 
>> :- export_module foo.
>> 
>> 
>> This imports all the interface things from foo and literally re-exports them as though they were declared inline?
> 
> I'd call it ":- reexport_module ...". The difference is that in your
> suggestion, the reexported things become part of the reexporting module,
> whereas in my suggestion, they stay part of the reexported module. 
> 
> I'm not sure what is preferable, but I guess that my suggestion would be
> easier to implement. But then you have to cope with it not being obvious to
> which module somethings belongs...
> 
> Volker
> 
>> 
>> 
>> 
>>> On 14 Jul 2023, at 09:02, Volker Wysk <[email protected]> wrote:
>>> 
>>> Am Freitag, dem 14.07.2023 um 17:41 +1000 schrieb Peter Wang:
>>>> On Tue, 11 Jul 2023 16:59:42 +0200 Volker Wysk <[email protected]> wrote:
>>>>> Hi
>>>>> 
>>>>> In Haskell, you can import things into a first module from a second module
>>>>> and reexport them from the first one. So you can use the first module as an
>>>>> interface to things from several modules.
>>>>> 
>>>>> This doesn't seem to be possible in Mercury. You need to import all the
>>>>> modules which contain parts of what you need. 
>>>>> 
>>>>> Submodules don't seem to be the answer.
>>>>> 
>>>>> Am I missing something? What is the recommended practice when you want to
>>>>> split a library into several modules?
>>>> 
>>>> Mercury's module system is pretty basic and doesn't support
>>>> re-exporting.
>>> 
>>> I can think of a solution that looks easy to implement. In a module there
>>> could be some statement ":- import_as_well(...)", which tells the compiler
>>> to import some other modules as well, when the module with the statement is 
>>> being imported.
>>> 
>>> Cheers,
>>> Volker
>>> _______________________________________________
>>> users mailing list
>>> [email protected]
>>> https://lists.mercurylang.org/listinfo/users
>> 
> 
> _______________________________________________
> users mailing list
> [email protected]
> https://lists.mercurylang.org/listinfo/users

_______________________________________________
users mailing list
[email protected]
https://lists.mercurylang.org/listinfo/users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.