Logs: liberachat/#haskell
| 2025-10-25 06:56:31 | <Unicorn_Princes> | oh dear |
| 2025-10-25 06:59:28 | → | CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) |
| 2025-10-25 06:59:39 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 2025-10-25 07:06:55 | → | peterbecich joins (~Thunderbi@172.222.148.214) |
| 2025-10-25 07:15:48 | → | Googulator17 joins (~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu) |
| 2025-10-25 07:15:48 | × | Googulator25 quits (~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-10-25 07:16:14 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 2025-10-25 07:19:52 | <[exa]> | Unicorn_Princes: any actual usecase for that? (mostly curious) |
| 2025-10-25 07:27:40 | <Unicorn_Princes> | yep - making kind of a custom prelude (for a specific usecase). imagine i have System.Directory.setCurrentDirectory, and Conversion.Audio.toMp3, and i want to make a single MyPrelude module, where with just import qualified MyPrelude, I can do MyPrelude.setCurrentDirectory (since it's a commonly used function it's top-level) and MyPrelude.Audio.toMp3 (less commonly used, so more nesting) |
| 2025-10-25 07:29:01 | <Unicorn_Princes> | basically this: https://doc.rust-lang.org/book/ch14-02-publishing-to-crates-io.html#exporting-a-convenient-public-api-with-pub-use |
| 2025-10-25 07:29:39 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-10-25 07:35:31 | → | zeenk joins (~zeenk@82.78.233.217) |
| 2025-10-25 07:38:11 | × | jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 256 seconds) |
| 2025-10-25 07:39:49 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 255 seconds) |
| 2025-10-25 07:40:01 | × | peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 244 seconds) |
| 2025-10-25 07:40:56 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-25 07:45:42 | × | CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 240 seconds) |
| 2025-10-25 07:45:48 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 2025-10-25 07:46:28 | → | gmg joins (~user@user/gehmehgeh) |
| 2025-10-25 07:50:46 | × | olivial quits (~benjaminl@user/benjaminl) (Read error: Connection reset by peer) |
| 2025-10-25 07:51:02 | → | olivial joins (~benjaminl@user/benjaminl) |
| 2025-10-25 07:58:29 | × | trickard quits (~trickard@cpe-55-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-10-25 07:58:42 | → | trickard joins (~trickard@cpe-55-98-47-163.wireline.com.au) |
| 2025-10-25 07:58:43 | → | Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
| 2025-10-25 08:01:56 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 2025-10-25 08:03:42 | × | Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 256 seconds) |
| 2025-10-25 08:08:39 | <[exa]> | Unicorn_Princes: so essentially "import qualified MyPrelude.Audio" would be almost there, except you don't want to write the qualified import yourself? |
| 2025-10-25 08:10:24 | <Unicorn_Princes> | yes, and "import qualified MyPrelude.Audio as Audio" is all the way there |
| 2025-10-25 08:10:57 | <Unicorn_Princes> | only right now that's in an init file that is ran at runtime so doesn't get any compile-time checking. which honestly isn't a big deal since it's super small |
| 2025-10-25 08:11:42 | <[exa]> | yeah I'd vote for init file approach too |
| 2025-10-25 08:13:31 | → | Tuplanolla joins (~Tuplanoll@91-159-187-167.elisa-laajakaista.fi) |
| 2025-10-25 08:13:39 | <[exa]> | doing autoimports in any other way gets a bit hairy, in rust it might be OK but here you also have small module-related things that change on the import (mainly instances) which could probably mess up stuff if done too automagically |
| 2025-10-25 08:14:34 | <[exa]> | btw why have audio in prelude? |
| 2025-10-25 08:15:04 | <Unicorn_Princes> | just so i can do Audio.stuff instead of MyProject.Audio.stuff |
| 2025-10-25 08:16:13 | <Unicorn_Princes> | i dunno, maybe i shouldn't nest everything under MyProject... |
| 2025-10-25 08:17:28 | <Unicorn_Princes> | (to be clear this is not meant as a general purpose prelude) |
| 2025-10-25 08:22:01 | → | LainIwakura joins (~LainIwaku@user/LainIwakura) |
| 2025-10-25 08:22:51 | <haskellbridge> | <doc> ...if you just want the experience of typing Audio.stuff maybe you could fake it with OverloadedRecordDot + NoFieldSelectors and a top-level record value named "audio" containing all the "exported functions".. the only difference now is that audio is lowercase |
| 2025-10-25 08:24:26 | <haskellbridge> | <doc> (this would be extremely funny, to be clear, and uncertain whether advisable) |
| 2025-10-25 08:24:43 | <Unicorn_Princes> | ye no sounds too dirty for me :S |
| 2025-10-25 08:33:10 | → | tromp joins (~textual@2001:1c00:3487:1b00:d88f:2255:14bf:ec80) |
| 2025-10-25 08:46:03 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2025-10-25 08:56:31 | → | notzmv joins (~umar@user/notzmv) |
| 2025-10-25 08:56:49 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-25 08:58:23 | <[exa]> | +1 for not over-nesting |
| 2025-10-25 08:59:48 | <[exa]> | Unicorn_Princes: to be super safe you might call your Audio with some project-specific prefix (MPAudio). Gives a safe default and people can import it nicely (as A) |
| 2025-10-25 09:01:10 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2025-10-25 09:01:42 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-10-25 09:02:36 | <Unicorn_Princes> | but then isn't MyProject.Audio just that project-specific prefix? |
| 2025-10-25 09:08:36 | → | acidjnk joins (~acidjnk@p200300d6e71719145522d7c0b030ad0e.dip0.t-ipconnect.de) |
| 2025-10-25 09:10:31 | × | trickard quits (~trickard@cpe-55-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-10-25 09:10:44 | → | trickard_ joins (~trickard@cpe-55-98-47-163.wireline.com.au) |
| 2025-10-25 09:12:52 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-25 09:17:40 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-10-25 09:22:25 | → | califax_ joins (~califax@user/califx) |
| 2025-10-25 09:23:02 | × | califax quits (~califax@user/califx) (Ping timeout: 272 seconds) |
| 2025-10-25 09:23:40 | califax_ | is now known as califax |
| 2025-10-25 09:28:40 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-25 09:34:25 | × | trickard_ quits (~trickard@cpe-55-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-10-25 09:34:40 | → | trickard_ joins (~trickard@cpe-55-98-47-163.wireline.com.au) |
| 2025-10-25 09:42:08 | × | Jackneill_ quits (~Jackneill@94-21-95-10.pool.digikabel.hu) (Remote host closed the connection) |
| 2025-10-25 09:45:38 | × | Googulator17 quits (~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-10-25 09:45:40 | → | Googulator71 joins (~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu) |
| 2025-10-25 09:53:18 | × | trickard_ quits (~trickard@cpe-55-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-10-25 09:53:31 | → | trickard_ joins (~trickard@cpe-55-98-47-163.wireline.com.au) |
| 2025-10-25 10:05:06 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 2025-10-25 10:08:42 | → | __monty__ joins (~toonn@user/toonn) |
| 2025-10-25 10:12:04 | trickard_ | is now known as trickard |
| 2025-10-25 10:24:12 | → | tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
| 2025-10-25 10:28:27 | → | paul_j joins (~user@8.190.187.81.in-addr.arpa) |
| 2025-10-25 10:35:32 | × | Googulator71 quits (~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-10-25 10:35:45 | → | Googulator71 joins (~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu) |
| 2025-10-25 10:37:32 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 2025-10-25 10:42:34 | <tomsmeding> | yes but it's longer |
| 2025-10-25 10:46:13 | × | simplystuart quits (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 264 seconds) |
| 2025-10-25 10:46:23 | → | simplystuart joins (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) |
| 2025-10-25 10:48:18 | <[exa]> | well, probably |
| 2025-10-25 10:51:22 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-10-25 11:02:30 | <Unicorn_Princes> | well in principle only longer by one '.' - i could rename MyProject to MP :) |
| 2025-10-25 11:10:23 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 2025-10-25 11:20:40 | <[exa]> | Unicorn_Princes: like, the only thing that can go wrong there is naming conflict with some other library, but since this is some kinda usecase-specific Prelude I guess that isn't a huge issue, right? |
| 2025-10-25 11:23:39 | × | Leary quits (~Leary@user/Leary/x-0910699) (Remote host closed the connection) |
| 2025-10-25 11:24:33 | <Unicorn_Princes> | you may be right. hm |
| 2025-10-25 11:28:01 | <Unicorn_Princes> | so say i have a top-lvl module named CommonName (so not nested as MyProject.CommonName), and i find the name is already taken by some (possibly standard) library i want to also use (or someone else wants to use both).. what are one's options in that case? |
| 2025-10-25 11:28:44 | <Unicorn_Princes> | or what is the idiomatic way to avoid/deal with this |
| 2025-10-25 11:30:32 | × | Square2 quits (~Square@user/square) (Ping timeout: 256 seconds) |
| 2025-10-25 11:34:07 | → | Leary joins (~Leary@user/Leary/x-0910699) |
| 2025-10-25 11:38:43 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 244 seconds) |
| 2025-10-25 11:39:08 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 2025-10-25 11:46:33 | → | gustrb joins (~gustrb@191.243.134.87) |
| 2025-10-25 11:47:40 | × | gustrb quits (~gustrb@191.243.134.87) (Client Quit) |
| 2025-10-25 11:47:54 | → | gustrb joins (~gustrb@191.243.134.87) |
| 2025-10-25 11:54:56 | → | ft joins (~ft@mue-88-130-106-235.dsl.tropolys.de) |
| 2025-10-25 11:55:54 | ← | L29Ah parts (~L29Ah@wikipedia/L29Ah) () |
| 2025-10-25 11:56:02 | × | gustrb quits (~gustrb@191.243.134.87) (Quit: gustrb) |
| 2025-10-25 11:56:42 | → | gustrb joins (~gustrb@191.243.134.87) |
| 2025-10-25 12:12:10 | × | trickard quits (~trickard@cpe-55-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-10-25 12:12:23 | → | trickard joins (~trickard@cpe-55-98-47-163.wireline.com.au) |
| 2025-10-25 12:18:55 | → | Square2 joins (~Square@user/square) |
| 2025-10-25 12:20:38 | × | Googulator71 quits (~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu) (Quit: Client closed) |
All times are in UTC.