Logs on 2025-12-04 (liberachat/#haskell)
| 00:01:14 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 00:08:03 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org )) |
| 00:09:47 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:14:35 | → | X-Scale joins (~ARM@50.65.114.89.rev.vodafone.pt) |
| 00:14:49 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 00:25:35 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:26:09 | → | szkl joins (uid110435@id-110435.uxbridge.irccloud.com) |
| 00:30:15 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 00:41:22 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:41:43 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 240 seconds) |
| 00:44:12 | → | peterbecich joins (~Thunderbi@172.222.148.214) |
| 00:46:07 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb) |
| 00:46:18 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 00:49:20 | × | xff0x quits (~xff0x@2405:6580:b080:900:9a8d:d213:9a6f:7468) (Ping timeout: 244 seconds) |
| 00:50:08 | <haskellbridge> | <Zemyla> I wish GHC would turn compile-time lists of primitive types into operations on an Addr# defined at compile time. |
| 00:50:44 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb) (Ping timeout: 265 seconds) |
| 00:51:29 | <haskellbridge> | <Zemyla> Like, [1, 3, 5, 8, 14] :: [Int32] would become unpackInt32List# 5# "[something]"#. |
| 00:51:45 | × | sam113101 quits (~sam@modemcable200.189-202-24.mc.videotron.ca) (Read error: Connection reset by peer) |
| 00:53:09 | <geekosaur> | I can't see that being any faster, and possibly slower if it needs to box the contents individually |
| 00:54:01 | → | sam113101 joins (~sam@modemcable200.189-202-24.mc.videotron.ca) |
| 00:57:10 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:58:28 | <EvanR> | the question becomes how unpackInt32List# primitive is implemented |
| 00:58:57 | <EvanR> | is it even different from normal |
| 00:59:59 | <EvanR> | also, a string? |
| 01:00:48 | × | jle` quits (~jle`@2603:8001:3b00:11:cbef:e190:cb2:e0d) (Ping timeout: 244 seconds) |
| 01:02:04 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 01:02:46 | × | peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 244 seconds) |
| 01:02:50 | → | jle` joins (~jle`@2603:8001:3b00:11:ed74:b35d:c320:7e16) |
| 01:05:10 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb) |
| 01:05:50 | <haskellbridge> | <Zemyla> If it's not faster, then why is it used that way for lists of Char? |
| 01:09:05 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 01:09:37 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb) (Ping timeout: 246 seconds) |
| 01:11:08 | → | ryanbooker joins (uid4340@id-4340.hampstead.irccloud.com) |
| 01:11:54 | <EvanR> | seems like they would coerce to the same thing |
| 01:13:43 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 01:17:20 | × | firesquidwao quits (~a@2600:3c06::f03c:93ff:fea6:ef0e) (Ping timeout: 244 seconds) |
| 01:18:13 | → | tuxpaint joins (~a@2600:3c06::f03c:93ff:fea6:ef0e) |
| 01:18:36 | → | omidmash9 joins (~omidmash@user/omidmash) |
| 01:20:51 | × | omidmash quits (~omidmash@user/omidmash) (Ping timeout: 244 seconds) |
| 01:20:51 | omidmash9 | is now known as omidmash |
| 01:24:52 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 01:28:54 | <haskellbridge> | <Zemyla> Also, it's not just about it being faster. It's also about it being a good producer and potentially having rewrite rules that straight up don't produce an intermediate list (for instance, a Vector implementation). |
| 01:29:48 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 01:29:49 | × | Tuplanolla quits (~Tuplanoll@91-152-225-194.elisa-laajakaista.fi) (Quit: Leaving.) |
| 01:35:18 | × | acidjnk quits (~acidjnk@p200300d6e71719231986af8ebf40e0fc.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 01:36:31 | × | X-Scale quits (~ARM@50.65.114.89.rev.vodafone.pt) (Ping timeout: 240 seconds) |
| 01:36:40 | → | inline__ joins (~wbooze@cgn-195-14-219-122.nc.de) |
| 01:39:43 | × | wbooze quits (~wbooze@2001-4dd7-9813-0-5961-9b55-d1ca-8eee.ipv6dyn.netcologne.de) (Ping timeout: 250 seconds) |
| 01:40:37 | → | xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 01:40:40 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 01:45:32 | × | ttybitnik quits (~ttybitnik@user/wolper) (Quit: Fading out...) |
| 01:46:38 | → | X-Scale joins (~ARM@50.65.114.89.rev.vodafone.pt) |
| 01:47:40 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 01:48:56 | × | inline__ quits (~wbooze@cgn-195-14-219-122.nc.de) (Ping timeout: 240 seconds) |
| 01:54:46 | × | arahael quits (~wetfoot@user/arahael) (Ping timeout: 256 seconds) |
| 01:55:39 | × | trickard quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Remote host closed the connection) |
| 01:58:42 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:03:35 | → | trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 02:03:53 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 02:08:25 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb) |
| 02:12:42 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb) (Ping timeout: 252 seconds) |
| 02:14:27 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:18:49 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 02:29:59 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:35:07 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 02:38:39 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 250 seconds) |
| 02:40:27 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 02:45:29 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:46:25 | trickard_ | is now known as trickard |
| 02:50:07 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 02:56:22 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb) |
| 03:01:14 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb) (Ping timeout: 265 seconds) |
| 03:01:17 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 03:06:53 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 03:09:00 | × | trickard quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 03:09:13 | → | trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 03:13:12 | × | tuxpaint quits (~a@2600:3c06::f03c:93ff:fea6:ef0e) (Ping timeout: 252 seconds) |
| 03:15:16 | → | tuxpaint joins (~a@2600:3c06::f03c:93ff:fea6:ef0e) |
| 03:17:17 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 03:20:54 | × | ryanbooker quits (uid4340@id-4340.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 03:22:18 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 03:26:21 | → | marlino joins (~marlino@96-8-193-98.block0.gvtc.com) |
| 03:28:13 | × | td_ quits (~td@i5387093E.versanet.de) (Ping timeout: 246 seconds) |
| 03:30:04 | → | td_ joins (~td@i5387090C.versanet.de) |
| 03:32:52 | × | annamalai quits (~annamalai@157.32.222.111) (Read error: Connection reset by peer) |
| 03:32:53 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 03:33:13 | → | annamalai joins (~annamalai@157.32.222.111) |
| 03:37:35 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 03:37:51 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) |
| 03:42:29 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 260 seconds) |
| 03:43:54 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine) |
| 03:44:52 | → | spew joins (~spew@user/spew) |
| 03:48:39 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 03:48:54 | × | spew quits (~spew@user/spew) (Client Quit) |
| 03:49:51 | × | omidmash quits (~omidmash@user/omidmash) (Quit: The Lounge - https://thelounge.chat) |
| 03:53:22 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 03:54:16 | → | omidmash joins (~omidmash@user/omidmash) |
| 04:04:27 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:09:20 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 04:11:02 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 04:12:59 | trickard_ | is now known as trickard |
| 04:19:52 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:21:35 | → | weary-traveler joins (~user@user/user363627) |
| 04:22:01 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) |
| 04:25:05 | → | divlamir_ joins (~divlamir@user/divlamir) |
| 04:25:31 | × | weary-traveler quits (~user@user/user363627) (Client Quit) |
| 04:25:47 | → | weary-traveler joins (~user@user/user363627) |
| 04:26:19 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 246 seconds) |
| 04:26:43 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 04:27:22 | × | divlamir quits (~divlamir@user/divlamir) (Ping timeout: 244 seconds) |
| 04:27:23 | divlamir_ | is now known as divlamir |
| 04:36:32 | × | foul_owl quits (~kerry@94.156.149.97) (Ping timeout: 240 seconds) |
| 04:37:54 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:39:04 | → | peterbecich joins (~Thunderbi@172.222.148.214) |
| 04:42:27 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 04:44:15 | × | pabs3 quits (~pabs3@user/pabs3) (Ping timeout: 240 seconds) |
| 04:47:14 | × | mehbark quits (~mehbark@user/mehbark) (Quit: insert leave message here) |
| 04:47:23 | → | mehbark joins (~mehbark@joey.luug.ece.vt.edu) |
| 04:47:44 | × | mehbark quits (~mehbark@joey.luug.ece.vt.edu) (Changing host) |
| 04:47:44 | → | mehbark joins (~mehbark@user/mehbark) |
| 04:48:40 | × | machinedgod quits (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 245 seconds) |
| 04:49:51 | ← | marlino parts (~marlino@96-8-193-98.block0.gvtc.com) (WeeChat 4.7.2) |
| 04:50:26 | → | foul_owl joins (~kerry@94.156.149.97) |
| 04:53:40 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:58:15 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 05:09:28 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:11:25 | × | weary-traveler quits (~user@user/user363627) (Quit: Konversation terminated!) |
| 05:11:39 | → | weary-traveler joins (~user@user/user363627) |
| 05:14:12 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 05:18:10 | → | Guest35 joins (~Guest35@2607:fa49:1940:8200:c958:535b:5462:796d) |
| 05:20:01 | × | Guest35 quits (~Guest35@2607:fa49:1940:8200:c958:535b:5462:796d) (Write error: Broken pipe) |
| 05:20:07 | → | pabs3 joins (~pabs3@user/pabs3) |
| 05:20:32 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 05:22:37 | → | weary-traveler joins (~user@user/user363627) |
| 05:23:20 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) |
| 05:24:13 | → | sp1ff joins (~user@2601:1c2:4c00:6820::e122) |
| 05:25:15 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:27:55 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 244 seconds) |
| 05:29:53 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 05:30:44 | <iqubic> | Hmm... cabal repl is doing weird things for me. |
| 05:35:05 | <iqubic> | So, I have a bunch of files in my src directory for doing Advent of Code. The src directory looks like this: https://dpaste.alwaysdata.org/ATNKbB9Q |
| 05:35:51 | <iqubic> | All the Day* files have their own `part1 :: String -> Int` and `part2 :: String -> Int` functions. |
| 05:36:26 | <iqubic> | When I start a cabal repl, I can do `:m *Day04` and that gives me access to the `part1` and `part2` functions from `Day04.hs` |
| 05:37:16 | <iqubic> | But when run `:r` to reload it, the repl decides to pull in the part1 and part2 functions from Day01, even though it says it's compiling Day04 for me. |
| 05:37:21 | <iqubic> | What the hell?!?!? |
| 05:41:03 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:41:19 | <iqubic> | Here's my cabal repl output: https://dpaste.alwaysdata.org/3r1Wpc4o |
| 05:43:01 | → | michalz joins (~michalz@185.246.207.203) |
| 05:45:35 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 05:47:38 | <koala_man> | wild |
| 05:55:14 | → | robobub joins (uid248673@id-248673.uxbridge.irccloud.com) |
| 05:56:15 | × | hdggxin quits (~hdggxin@223.181.46.243) (Ping timeout: 250 seconds) |
| 05:56:51 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:57:32 | <iqubic> | Why is cabal repl / GHCi doing weird things here? |
| 05:59:35 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 06:00:19 | → | Square joins (~Square@user/square) |
| 06:01:35 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 06:03:00 | → | takuan joins (~takuan@d8D86B9E9.access.telenet.be) |
| 06:04:13 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 264 seconds) |
| 06:07:06 | → | hdggxin joins (~hdggxin@2401:4900:88a9:6ec5:fd6a:959:46fd:f2a3) |
| 06:10:32 | × | marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli) |
| 06:12:37 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 06:12:45 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 06:14:29 | → | dfg joins (~dfg@user/dfg) |
| 06:14:36 | → | weary-traveler joins (~user@user/user363627) |
| 06:14:55 | × | dysfigured quits (~dfg@50.116.28.89) (Ping timeout: 240 seconds) |
| 06:17:16 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 06:28:25 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 06:33:04 | → | marinelli joins (~weechat@gateway/tor-sasl/marinelli) |
| 06:33:05 | → | Enrico63 joins (~Enrico63@host-212-171-79-170.pool212171.interbusiness.it) |
| 06:35:01 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 06:39:41 | <jreicher> | sprout: are there other languages like Egel? (untyped, pure functional) |
| 06:40:15 | → | karenw joins (~karenw@user/karenw) |
| 06:41:45 | × | Enrico63 quits (~Enrico63@host-212-171-79-170.pool212171.interbusiness.it) (Quit: Client closed) |
| 06:45:52 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) |
| 06:46:29 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 06:48:31 | × | haritz quits (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
| 06:51:20 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 06:51:45 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 06:52:39 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 260 seconds) |
| 06:53:13 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 06:55:32 | × | jreicher quits (~user@user/jreicher) (Quit: In transit) |
| 06:56:32 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 06:58:29 | × | mikess quits (~sam@user/mikess) (Ping timeout: 260 seconds) |
| 06:59:11 | → | arahael joins (~wetfoot@user/arahael) |
| 07:00:57 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 07:01:10 | × | hdggxin quits (~hdggxin@2401:4900:88a9:6ec5:fd6a:959:46fd:f2a3) (Ping timeout: 245 seconds) |
| 07:04:17 | → | hdggxin joins (~hdggxin@2401:4900:88a9:bff0:be1a:791c:4871:3d3b) |
| 07:05:23 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) |
| 07:07:32 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 07:10:09 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 265 seconds) |
| 07:12:37 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 07:23:19 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 07:25:36 | × | ft quits (~ft@p508db844.dip0.t-ipconnect.de) (Quit: leaving) |
| 07:25:48 | → | CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) |
| 07:26:29 | → | Square2 joins (~Square4@user/square) |
| 07:28:18 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 07:30:31 | × | Square quits (~Square@user/square) (Ping timeout: 240 seconds) |
| 07:37:04 | × | peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 246 seconds) |
| 07:39:07 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 07:39:40 | × | divlamir quits (~divlamir@user/divlamir) (Ping timeout: 244 seconds) |
| 07:40:16 | → | divlamir joins (~divlamir@user/divlamir) |
| 07:41:20 | <iqubic> | Anyone know why cabal repl is being weird for me? |
| 07:41:42 | → | lucabtz joins (~lucabtz@user/lucabtz) |
| 07:44:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 07:50:28 | → | tromp joins (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) |
| 07:52:00 | <arahael> | iqubic: Nobody is going to know that without any context. |
| 07:52:21 | <iqubic> | What kind of context will I need to provide? |
| 07:52:32 | <iqubic> | I'm using GHC 9.12.3 |
| 07:53:23 | <iqubic> | I'm also running NixOS, but I'm not sure that's the root cause here. |
| 07:53:33 | <arahael> | Generally a good template is "I have this... I expected to see this... But got this..." |
| 07:54:55 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 08:00:01 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 08:01:36 | <iqubic> | So, I have a project set up like this https://gist.github.com/IQubic/a9b2d200d368124993c30b4611151749. I have run cabal repl to start up a repl for my project. I can run ":m *Day04" to load Day04. When I make changes to Day04.hs, I then run :r to reload things. When I run the function part2, the repl is now calling the part2 function from Day01, instead of Day04. I'd expect it to be running the functions from Day04.hs, because I have |
| 08:01:36 | <iqubic> | actually ever loaded Day01 in this repl. |
| 08:02:00 | <iqubic> | https://gist.github.com/IQubic/ae3f1e0c3062ffd0a65035771dffdc90 |
| 08:02:50 | × | mehbark quits (~mehbark@user/mehbark) (Quit: insert leave message here) |
| 08:03:49 | → | mehbark joins (~mehbark@joey.luug.ece.vt.edu) |
| 08:04:01 | × | mehbark quits (~mehbark@joey.luug.ece.vt.edu) (Changing host) |
| 08:04:01 | → | mehbark joins (~mehbark@user/mehbark) |
| 08:06:33 | <iqubic> | Is the issue using a * in ":m *Day04"? |
| 08:09:27 | <iqubic> | If I use ":m Day04", without the *, then run ":r", it seems to load both Day01 and Day04 for some reason. |
| 08:10:36 | <iqubic> | https://dpaste.alwaysdata.org/y9NWyXCq |
| 08:10:42 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 08:10:48 | <iqubic> | Why is Day01 added automatically??!!? |
| 08:17:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 08:20:34 | → | jreicher joins (~user@user/jreicher) |
| 08:24:26 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 08:27:48 | × | annamalai quits (~annamalai@157.32.222.111) (Ping timeout: 252 seconds) |
| 08:28:16 | <sprout> | jreicher: yes, there are other untyped functional languages. many even, it's a favorite for plt people to implement |
| 08:28:38 | <sprout> | jreicher: most notorious is lisp of course |
| 08:28:56 | <sprout> | well, you know that one I guess |
| 08:29:22 | <sprout> | wasn't there some package manager language lazy, untyped, functional? |
| 08:30:23 | <sprout> | nix |
| 08:30:45 | edm | is now known as edmerry |
| 08:31:07 | <sprout> | https://nix.dev/tutorials/nix-language |
| 08:31:17 | <haskellbridge> | <iqubic (she/her)> Yeah. Nix |
| 08:31:18 | <haskellbridge> | <iqubic (she/her)> Nix is good. |
| 08:31:37 | × | marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli) |
| 08:33:08 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) |
| 08:37:42 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 252 seconds) |
| 08:37:55 | → | chele joins (~chele@user/chele) |
| 08:38:24 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 08:41:49 | × | arandombit quits (~arandombi@user/arandombit) (Ping timeout: 246 seconds) |
| 08:46:55 | × | xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 240 seconds) |
| 08:47:06 | → | kuribas joins (~user@2a02:1808:51:4205:657b:77d9:3519:9aaf) |
| 08:49:54 | × | iqubic quits (~sophia@2601:602:9203:1660:661f:14db:875e:5d74) (Remote host closed the connection) |
| 08:54:19 | × | orizuru quits (~orizuru@user/orizuru) (Quit: The Lounge - https://thelounge.chat) |
| 08:54:46 | × | weary-traveler quits (~user@user/user363627) (Quit: Konversation terminated!) |
| 08:54:53 | → | user363627 joins (~user@user/user363627) |
| 08:55:35 | × | kuribas quits (~user@2a02:1808:51:4205:657b:77d9:3519:9aaf) (Remote host closed the connection) |
| 08:55:48 | → | kuribas joins (~user@2a02:1808:51:4205:f3c0:d777:6713:bee2) |
| 08:55:59 | × | trickard quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 08:56:13 | → | trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 08:56:42 | → | orizuru joins (~orizuru@178-79-171-63.ip.linodeusercontent.com) |
| 08:57:55 | × | orizuru quits (~orizuru@178-79-171-63.ip.linodeusercontent.com) (Changing host) |
| 08:57:55 | → | orizuru joins (~orizuru@user/orizuru) |
| 08:59:32 | → | iqubic joins (~sophia@2601:602:9203:1660:d33f:96d:145c:6b4b) |
| 09:03:15 | <jreicher> | sprout: I don't consider Lisp to be a functional language. I get in trouble in Lisp channels for saying that but I expect there might be a bit more sympathy for the view here. |
| 09:06:26 | → | merijn joins (~merijn@77.242.116.146) |
| 09:07:02 | × | chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
| 09:07:23 | <jackdk> | I'm curious if you consider ocaml a functional language then, because I can see arguments in both directions. It's definitely from a functional tradition but admits mutable references like many lisps do. But I'd definitely consider it "culturally" functional in that AFAIK people write pure interfaces around mutable bits, etc |
| 09:07:44 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) |
| 09:08:08 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Remote host closed the connection) |
| 09:09:49 | <jreicher> | Lisp doesn't admit mutable references. In Lisp EVERYTHING is mutable because there's no code; only data. And all the data is mutable. And then you can direct the language to interpret one of data structures as code. In a functional language things are primarily code, and if data is admitted then it just means it's not pure. |
| 09:10:47 | <jreicher> | The only reason Lisp feels functional is an almost-coincidental side effect of "everything is data" is that functions become first class. |
| 09:13:47 | ← | kuribas parts (~user@2a02:1808:51:4205:f3c0:d777:6713:bee2) (ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.3)) |
| 09:15:19 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 264 seconds) |
| 09:16:04 | <merijn> | Also, Haskell admits mutable references too :p |
| 09:16:25 | <merijn> | They're just more principled (or making your jump through more hoops to use the unprincipled ones) |
| 09:16:59 | <merijn> | jackdk: Ocaml is clearly functional, just not pure |
| 09:23:28 | × | tromp quits (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:27:06 | <jreicher> | sprout: In case it's worth saying, I meant practical untyped functional languages; not toy languages. |
| 09:28:24 | <sprout> | well, nix then |
| 09:29:02 | <jreicher> | :) Ta. That one I already knew, but I had never heard of Egel and it's the first practical-ish one I've seen in a while. |
| 09:29:05 | <sprout> | although I don't know what you consider *practical* |
| 09:29:19 | <sprout> | mwa, pretty shitty interpreter |
| 09:29:25 | <sprout> | slow and buggy |
| 09:29:28 | → | arandombit joins (~arandombi@user/arandombit) |
| 09:29:37 | <sprout> | well, maybe not that buggy. but slow |
| 09:29:38 | → | marinelli joins (~weechat@gateway/tor-sasl/marinelli) |
| 09:29:42 | <sprout> | so not practical |
| 09:29:45 | <sprout> | cannot recommend |
| 09:29:55 | <jreicher> | As a rough and ready definition, "practical" is "can at least do IO with files, but should approach an FFI" |
| 09:30:33 | <jreicher> | I consider anything limited to stdin and sdtout to be toy. Doesn't mean it's not theoretically significant though, of course. |
| 09:31:03 | <sprout> | well, it has most IO |
| 09:31:15 | <jreicher> | Yeah, that's what stood out to me. |
| 09:31:37 | <sprout> | but it's an esolang in that it's an experiment with an operational model |
| 09:31:40 | <sprout> | > Egel is primarily about exploiting a trivialized operational model, a program (state) can be represented as a directed acyclic graph solely and program evaluation corresponds to trampolining the combinator at the root of that graph. |
| 09:31:44 | <lambdabot> | <hint>:1:67: error: parse error on input `,' |
| 09:32:15 | <sprout> | succesful experiment, mostly a failed too slow language though |
| 09:32:26 | <sprout> | it's interesting to people doing plt |
| 09:32:57 | <sprout> | like 'hey, here's a different manner of implementing a term rewriter' |
| 09:32:58 | <jreicher> | I would argue Haskell is not really so different. All the heap objects form that graph, and any differences can probably be characterised as very clever optimisations. |
| 09:33:21 | <sprout> | haskell must have a stack of redexes though |
| 09:33:35 | <jreicher> | It does. But like I said, that's an optimisation IMO. |
| 09:34:57 | <sprout> | sure. I cannot even state it's a very bright idea. just something silly I wanted to show works |
| 09:35:04 | → | dhil joins (~dhil@5.151.29.139) |
| 09:35:15 | <sprout> | and then a decade later I am still stuck with an interpreter :/ |
| 09:35:19 | <sprout> | ah well |
| 09:36:34 | <sprout> | it's interesting since it simplifies normal rather elaborate machinery for evaluation like a SECD or CAM machine |
| 09:37:02 | <sprout> | theoretically interesting |
| 09:37:13 | <sprout> | practically, not so much |
| 09:37:19 | <sprout> | well, that's what I feel |
| 09:41:54 | → | acidjnk joins (~acidjnk@p200300d6e71719824d363649e1e7df87.dip0.t-ipconnect.de) |
| 09:42:01 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 264 seconds) |
| 09:42:07 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine) |
| 09:42:35 | <jreicher> | Is Egel yours? |
| 09:42:39 | <sprout> | yah |
| 09:43:02 | <jreicher> | Like I said, it stood out. I don't think many other people have tried to do something like it. It's not toy; you've made it practical. |
| 09:43:15 | <sprout> | oh. thanks! |
| 09:43:37 | <jreicher> | That's why I was asking if you knew any others. It's rare. |
| 09:43:37 | × | img quits (~img@user/img) (Quit: ZNC 1.10.1 - https://znc.in) |
| 09:43:43 | <jreicher> | (I think) |
| 09:44:04 | <sprout> | still. cannot recommend.. |
| 09:44:11 | <sprout> | it's an esolang at heart |
| 09:44:26 | <sprout> | maybe I'll find use for it somewhere sometime |
| 09:44:39 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) |
| 09:44:51 | → | img joins (~img@user/img) |
| 09:49:24 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 260 seconds) |
| 09:52:34 | × | robobub quits (uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 09:52:34 | → | xff0x joins (~xff0x@om126158246192.30.openmobile.ne.jp) |
| 09:54:07 | trickard_ | is now known as trickard |
| 09:54:23 | × | xff0x quits (~xff0x@om126158246192.30.openmobile.ne.jp) (Read error: Connection reset by peer) |
| 09:54:56 | → | merijn joins (~merijn@77.242.116.146) |
| 09:59:24 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 09:59:45 | → | xff0x joins (~xff0x@fs98a57788.tkyc008.ap.nuro.jp) |
| 10:01:28 | → | annamalai joins (~annamalai@157.32.217.175) |
| 10:03:38 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 10:04:08 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) |
| 10:04:28 | → | inline__ joins (~wbooze@2001-4dd4-1daa-0-5961-9b55-d1ca-8eee.ipv6dyn.netcologne.de) |
| 10:05:10 | inline__ | is now known as wbooze |
| 10:10:06 | → | fp joins (~Thunderbi@130.233.70.22) |
| 10:20:27 | × | Googulator quits (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 10:20:38 | → | Googulator joins (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 10:26:07 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 246 seconds) |
| 10:29:54 | → | merijn joins (~merijn@77.242.116.146) |
| 10:29:55 | → | Jackneill_ joins (~Jackneill@94-21-15-191.pool.digikabel.hu) |
| 10:32:34 | × | Jackneill quits (~Jackneill@178-164-177-218.pool.digikabel.hu) (Ping timeout: 260 seconds) |
| 10:33:05 | → | divlamir_ joins (~divlamir@user/divlamir) |
| 10:34:32 | × | fp quits (~Thunderbi@130.233.70.22) (Remote host closed the connection) |
| 10:34:51 | → | fp joins (~Thunderbi@130.233.70.22) |
| 10:35:48 | × | divlamir quits (~divlamir@user/divlamir) (Ping timeout: 256 seconds) |
| 10:35:49 | divlamir_ | is now known as divlamir |
| 10:36:49 | → | tromp joins (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) |
| 10:44:51 | → | inline__ joins (~wbooze@cgn-195-14-220-195.nc.de) |
| 10:46:55 | × | wbooze quits (~wbooze@2001-4dd4-1daa-0-5961-9b55-d1ca-8eee.ipv6dyn.netcologne.de) (Killed (uranium.libera.chat (Nickname regained by services))) |
| 10:46:55 | inline__ | is now known as wbooze |
| 10:47:11 | × | Googulator quits (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (*.net *.split) |
| 10:48:23 | × | marinelli quits (~weechat@gateway/tor-sasl/marinelli) (*.net *.split) |
| 10:48:23 | × | chexum_ quits (~quassel@gateway/tor-sasl/chexum) (*.net *.split) |
| 10:48:23 | × | califax quits (~califax@user/califx) (*.net *.split) |
| 10:48:23 | × | gmg quits (~user@user/gehmehgeh) (*.net *.split) |
| 10:48:23 | × | ec quits (~ec@gateway/tor-sasl/ec) (*.net *.split) |
| 10:48:23 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (*.net *.split) |
| 11:04:05 | → | poscat0x04 joins (~poscat@user/poscat) |
| 11:04:13 | × | fp quits (~Thunderbi@130.233.70.22) (Ping timeout: 264 seconds) |
| 11:05:06 | × | chromoblob quits (~chromoblo@user/chromob1ot1c) (Ping timeout: 252 seconds) |
| 11:05:29 | → | chromoblob joins (~chromoblo@user/chromob1ot1c) |
| 11:05:32 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 11:05:40 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 246 seconds) |
| 11:05:45 | × | poscat quits (~poscat@user/poscat) (Ping timeout: 245 seconds) |
| 11:08:50 | × | Square2 quits (~Square4@user/square) (Quit: Leaving) |
| 11:09:53 | × | chromoblob quits (~chromoblo@user/chromob1ot1c) (Ping timeout: 260 seconds) |
| 11:16:35 | × | DetourNetworkUK quits (~DetourNet@user/DetourNetworkUK) (Ping timeout: 245 seconds) |
| 11:17:25 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 264 seconds) |
| 11:23:23 | → | fp joins (~Thunderbi@130.233.70.22) |
| 11:26:15 | → | chromoblob joins (~chromoblo@user/chromob1ot1c) |
| 11:28:49 | × | xff0x quits (~xff0x@fs98a57788.tkyc008.ap.nuro.jp) (Ping timeout: 264 seconds) |
| 11:38:59 | → | DetourNetworkUK joins (~DetourNet@user/DetourNetworkUK) |
| 11:39:51 | × | annamalai quits (~annamalai@157.32.217.175) (Ping timeout: 265 seconds) |
| 11:57:40 | × | karenw quits (~karenw@user/karenw) (Ping timeout: 255 seconds) |
| 11:59:30 | × | trickard quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 11:59:44 | → | trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 12:00:23 | × | wbooze quits (~wbooze@cgn-195-14-220-195.nc.de) (Quit: Leaving) |
| 12:02:58 | → | __monty__ joins (~toonn@user/toonn) |
| 12:05:22 | → | srazkvt joins (~sarah@user/srazkvt) |
| 12:12:30 | <lucabtz> | https://paste.tomsmeding.com/blBvVp0I does this make any sense to you? |
| 12:12:41 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 12:19:20 | → | wbooze joins (~wbooze@2001-4dd4-1daa-0-acf3-bea0-8250-a5a2.ipv6dyn.netcologne.de) |
| 12:21:10 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 245 seconds) |
| 12:24:15 | × | trickard_ quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 12:24:29 | → | trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 12:26:25 | <tomsmeding> | yes |
| 12:26:32 | <tomsmeding> | names are a little long, but that's personal :p |
| 12:26:57 | <tomsmeding> | lucabtz: with the <= bound it's impossible to hvae an "impossible" BoundedNatural |
| 12:27:06 | <tomsmeding> | so there is kind of one natural case that you cannot express |
| 12:27:18 | → | merijn joins (~merijn@77.242.116.146) |
| 12:27:29 | <tomsmeding> | this need not be a problem at all, but I find that things work a bit more nicely if you keep to the convention "lower bounds are inclusive, upper bounds are exclusive" |
| 12:27:39 | <tomsmeding> | consider changing the <= to < |
| 12:29:00 | × | PaulMartensen quits (15a119e437@2001:bc8:1210:2cd8::3bc) (Remote host closed the connection) |
| 12:29:00 | × | Ging_ quits (46fea76d80@2001:bc8:1210:2cd8::470) (Remote host closed the connection) |
| 12:29:00 | × | Typosit quits (b41a81e702@2001:bc8:1210:2cd8::494) (Remote host closed the connection) |
| 12:29:44 | × | X-Scale quits (~ARM@50.65.114.89.rev.vodafone.pt) (Ping timeout: 240 seconds) |
| 12:30:20 | → | PaulMartensen joins (2c15493d69@2001:bc8:1210:2cd8::3bc) |
| 12:30:20 | → | Ging_ joins (46fea76d80@2001:bc8:1210:2cd8::470) |
| 12:30:21 | → | Typosit joins (b41a81e702@2001:bc8:1210:2cd8::494) |
| 12:34:41 | × | Typosit quits (b41a81e702@2001:bc8:1210:2cd8::494) (Ping timeout: 244 seconds) |
| 12:35:01 | × | PaulMartensen quits (2c15493d69@2001:bc8:1210:2cd8::3bc) (Ping timeout: 255 seconds) |
| 12:35:02 | → | ljdarj1 joins (~Thunderbi@user/ljdarj) |
| 12:36:32 | × | hdggxin quits (~hdggxin@2401:4900:88a9:bff0:be1a:791c:4871:3d3b) (Remote host closed the connection) |
| 12:36:35 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 240 seconds) |
| 12:36:35 | × | Ging_ quits (46fea76d80@2001:bc8:1210:2cd8::470) (Ping timeout: 245 seconds) |
| 12:36:35 | ljdarj1 | is now known as ljdarj |
| 12:38:21 | <lucabtz> | yeah i might change to that |
| 12:39:35 | <lucabtz> | im confused on how to go from value level to type level though, if it even is possible |
| 12:39:56 | × | img quits (~img@user/img) (Quit: ZNC 1.10.1 - https://znc.in) |
| 12:41:09 | → | xff0x joins (~xff0x@2405:6580:b080:900:d454:e7ea:27f9:454f) |
| 12:41:11 | → | img joins (~img@user/img) |
| 12:46:18 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) |
| 12:47:50 | → | divya joins (divya@140.238.251.170) |
| 12:53:20 | → | Ging_ joins (46fea76d80@2001:bc8:1210:2cd8::470) |
| 12:54:05 | → | Typosit joins (b41a81e702@2001:bc8:1210:2cd8::494) |
| 12:55:20 | → | PaulMartensen joins (15a119e437@2001:bc8:1210:2cd8::3bc) |
| 12:56:09 | × | CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 250 seconds) |
| 12:56:38 | × | srazkvt quits (~sarah@user/srazkvt) (Quit: Konversation terminated!) |
| 12:58:59 | <tomsmeding> | lucabtz: what do you mean with that? |
| 12:59:07 | × | Typosit quits (b41a81e702@2001:bc8:1210:2cd8::494) (Ping timeout: 265 seconds) |
| 12:59:07 | × | Ging_ quits (46fea76d80@2001:bc8:1210:2cd8::470) (Ping timeout: 265 seconds) |
| 12:59:45 | → | X-Scale joins (~ARM@50.65.114.89.rev.vodafone.pt) |
| 13:03:03 | → | annamalai joins (~annamalai@157.32.218.49) |
| 13:03:08 | × | PaulMartensen quits (15a119e437@2001:bc8:1210:2cd8::3bc) (Ping timeout: 256 seconds) |
| 13:04:12 | → | Typosit joins (b41a81e702@2001:bc8:1210:2cd8::494) |
| 13:05:24 | <ski> | lucabtz : fwiw, i'd s/UnsafeMkBoundedNatural/PromiseBoundedNatural/, indicating that by using the constructor, you promise that the argument/component is bounded, and that by pattern-matching, you are being promised that the component is bounded |
| 13:06:16 | × | Typosit quits (b41a81e702@2001:bc8:1210:2cd8::494) (Write error: error:80000068:system library::Connection reset by peer) |
| 13:06:45 | <tomsmeding> | oh what might be even nicer is to keep UnsafeMkBoundedNatural, but provide a pattern synonym (Mk)BoundedNatural that does a dynamic check on construction |
| 13:06:48 | <ski> | (also i'd implement `fromInteger', or else i'd say that `Show' instance is incorrect) |
| 13:07:27 | <ski> | mm, yea, that would be possible |
| 13:07:50 | <lucabtz> | i will look better into it later |
| 13:09:20 | → | Square2 joins (~Square4@user/square) |
| 13:09:27 | <lucabtz> | i think mkBoundedNatural should have a different signature taking the bound into account too. it should be done with SNat |
| 13:09:29 | <ski> | (`showsPrec p (PromiseBoundedNatural n) = showParen (p > 10) $ showString "PromiseBoundedNatural " . showsPrec 11 n' is how i'd do `Show', if no `fromInteger' for `BoundedNatural bound') |
| 13:10:05 | <lucabtz> | yeah i havent studied in detail Read/Show i find them confusing |
| 13:10:17 | <lucabtz> | i just needed a way to print the stuff to the terminal |
| 13:10:23 | <tomsmeding> | lucabtz: while that is possible, bounds on the type level like that tend to make for very cumbersome interfaces |
| 13:10:55 | <tomsmeding> | https://hackage.haskell.org/package/base-4.19.0.0/docs/GHC-TypeNats.html#t:-60--61- |
| 13:12:08 | × | trickard_ quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 13:12:22 | → | trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 13:12:50 | × | fp quits (~Thunderbi@130.233.70.22) (Quit: fp) |
| 13:13:05 | <lucabtz> | i think the check has to be kept at runtime, because i need to determine the type at runtime, however i want the type to extend another typeclass which i called PartialAdditive which supports an operator +? which may fail and a zero |
| 13:13:12 | → | fp joins (~Thunderbi@2001:708:20:1406::1370) |
| 13:13:22 | <lucabtz> | and i need the bound as part of the type |
| 13:13:34 | <ski> | lucabtz : imho, (a) `Show' ought to use Haskell syntax (rather than some custom syntax format), so that its `String' output (in an appropriate environment) will evaluate to an equal value; and (b) if you also have `Read', then it ought to be able to read (finite) output generated from `Show', producing an equal value |
| 13:13:47 | <tomsmeding> | (agreed with ski) |
| 13:14:09 | <lucabtz> | if it was something like data BoundedNatural = { val :: Natural, bound :: Natural } then zero would not make sense because how do you pick a bound |
| 13:14:52 | <lucabtz> | ski yeah i realized last night when i was trying to understand Read and i saw it is so much related to haskell lexicon itself |
| 13:16:02 | <ski> | (a) means that, normally, if defining `Show' explicitly (rather than `deriving'), you'll normally define `showsPrec', to deal with precdedence and bracketing properly. do note that different `Show' instances are intended to work together (e.g. `instance Show a => Show (Maybe a)'), so that if you happen to use custom syntax for `T', you'll then get a mix of custom and Haskell syntax for (e.g.) `Maybe T', |
| 13:16:08 | <ski> | which is confusing and not that useful |
| 13:19:28 | <ski> | *if* your output will never need extra brackets, you can define `show' instead. do note that getting the brackets properly printed in `Just (-1)' relies on defining `showsPrec' for the number type, so that `Just' can tell it the precedence level (of application, being `11' for the argument expression, see example above), so that `-1' will know to wrap itself in brackets, when `showsPrec' is called on it |
| 13:20:48 | <ski> | (for your case, `Natural's can't be negative, so this issue doesn't arise there. this was just one example of why `showsPrec' is needed) |
| 13:21:16 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 13:22:32 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 240 seconds) |
| 13:23:12 | <ski> | common valid reasons for wanting to custom-define `Show' (and `Read') are (c0) you want to have an abstract data type, not exporting data constructors, so `Show' should show how to construct the value in terms of exported operations instead (and similarly for the `Read' case, parsing that). e.g. `Array',`Set',`Map' does this |
| 13:23:46 | <tomsmeding> | c0? |
| 13:23:47 | <ski> | > listArray (-3,3) [(i,i^2) | i <- range (-3,3)] |
| 13:23:51 | <lambdabot> | array (-3,3) [(-3,(-3,9)),(-2,(-2,4)),(-1,(-1,1)),(0,(0,0)),(1,(1,1)),(2,(2,... |
| 13:23:54 | <lucabtz> | it seems like this would be the case for me |
| 13:24:06 | <lucabtz> | i wouldnt export UnsafeMkBoundedInteger |
| 13:25:37 | <ski> | and (c1) you want to use `fromInteger' (or similar hooks into literal syntax for other things, e.g. overloaded string literals), and so you'd probably want `Read' to be able to parse that, and possibly want `Show' to produce it |
| 13:27:47 | <ski> | also (c2), if you have infix operator declarations for some data constructors, and you want your `Show' to omit unnecessary brackets (when showing in infix form), since iirc GHC for some reason ignores the fixities when `deriving' `Show' |
| 13:29:25 | <ski> | i not too seldom also do (c3) define a data type with record notation for some data constructors, but i don't want `Show' to use the record syntax (because it's verbose, when you're trying to read some larger output), which is what the `deriving' syntax will give you, in this case |
| 13:30:31 | <ski> | (i'd possibly still define `Read' to accept both record notation and plain data constructor with components as arguments version, though) |
| 13:30:46 | <lucabtz> | thank you |
| 13:31:01 | <lucabtz> | yeah the whole point for me is having an interface which supports partial addition, in which the sum of two numbers may not be defined. maybe im just overthinking, its for the grid based problems. i want this abstraction because i can change the grid type by changing the coordinate types, if i put bounded integers when asking for neighbours they maybe be 8 or less (because you may exit the |
| 13:31:01 | <lucabtz> | grid). on the other hand i could have a type which does addition in a modular way and get a toroidal grid. i wanted to write the code once to support both options |
| 13:31:16 | <lucabtz> | *the grid based problems in advent of code |
| 13:32:12 | <ski> | otoh, if you want some custom pretty-printing syntax, i'd suggest not using `Show' (nor `Read') for this, rather defining separate functions (or perhaps using some other type class, possibly one you defined yourself) |
| 13:32:50 | <ski> | aha |
| 13:33:27 | × | trickard_ quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 13:33:41 | → | trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 13:35:28 | <ski> | how are you detecting over- / under- flow ? |
| 13:37:14 | trickard_ | is now known as trickard |
| 13:37:17 | <ski> | lucabtz : yep, so either you could have `Show' generate a call to `mkBoundedNatural'. or, if you do the pattern synonym, you could have it generate a call to that |
| 13:38:00 | × | fp quits (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 252 seconds) |
| 13:39:16 | → | fp joins (~Thunderbi@wireless-86-50-141-176.open.aalto.fi) |
| 13:39:22 | <ski> | (oh, and the corresponding operation handling precedences, for `Read', would be `readsPrec', which you'd define in terms of `readParen',`readsPrec',`lex'. for `Show' there's also `showChar') |
| 13:39:57 | <lucabtz> | ski i have a new typeclass PartialAdditive with an operator +? |
| 13:40:17 | <lucabtz> | (:?) :: a -> a -> Maybe a |
| 13:40:30 | <ski> | mhm |
| 13:40:41 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine) |
| 13:42:12 | ski | . o O ( `(+) :: BoundedNatural m -> BoundedNatural n -> BoundedNatural (m + n)' ) |
| 13:42:27 | <ski> | (assuming you use `<' rather than `<=') |
| 13:43:04 | <ski> | (.. not too sure how useful this version would be for you .. just pondering) |
| 13:43:53 | <lucabtz> | no that version isnt what i need |
| 13:44:05 | <lucabtz> | even though i suppose it could have an use somewhere |
| 13:50:21 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 265 seconds) |
| 13:51:58 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) |
| 13:59:47 | × | Digit quits (~user@user/digit) (Read error: Connection reset by peer) |
| 14:02:34 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 14:03:15 | → | Ging_ joins (46fea76d80@2001:bc8:1210:2cd8::470) |
| 14:05:40 | × | tromp quits (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 14:06:36 | → | tromp joins (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) |
| 14:08:29 | → | pr1sm joins (~pr1sm@24.91.163.31) |
| 14:08:38 | × | pr1sm quits (~pr1sm@24.91.163.31) (Remote host closed the connection) |
| 14:10:04 | → | Digit joins (~user@user/digit) |
| 14:15:44 | → | mikess joins (~sam@user/mikess) |
| 14:22:22 | × | fp quits (~Thunderbi@wireless-86-50-141-176.open.aalto.fi) (Quit: fp) |
| 14:22:32 | → | fp1 joins (~Thunderbi@wireless-86-50-141-176.open.aalto.fi) |
| 14:23:55 | × | xff0x quits (~xff0x@2405:6580:b080:900:d454:e7ea:27f9:454f) (Ping timeout: 255 seconds) |
| 14:24:13 | × | wbooze quits (~wbooze@2001-4dd4-1daa-0-acf3-bea0-8250-a5a2.ipv6dyn.netcologne.de) (Read error: Connection reset by peer) |
| 14:24:56 | fp1 | is now known as fp |
| 14:27:41 | × | trickard quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 14:27:54 | → | trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 14:28:58 | → | divlamir_ joins (~divlamir@user/divlamir) |
| 14:29:09 | × | divlamir quits (~divlamir@user/divlamir) (Ping timeout: 252 seconds) |
| 14:29:49 | divlamir_ | is now known as divlamir |
| 14:30:52 | → | wbooze joins (~wbooze@2001-4dd4-1daa-0-dd66-75b6-3dbd-fc23.ipv6dyn.netcologne.de) |
| 14:35:07 | × | fp quits (~Thunderbi@wireless-86-50-141-176.open.aalto.fi) (Remote host closed the connection) |
| 14:46:54 | → | xff0x joins (~xff0x@2405:6580:b080:900:d454:e7ea:27f9:454f) |
| 14:52:58 | → | chiselfuse joins (~chiselfus@user/chiselfuse) |
| 14:53:57 | × | trickard_ quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 14:54:10 | → | trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 14:55:28 | → | spew joins (~spew@user/spew) |
| 14:58:38 | → | califax joins (~califax@user/califx) |
| 14:59:15 | → | gmg joins (~user@user/gehmehgeh) |
| 14:59:33 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 15:02:16 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 15:04:08 | → | Typosit joins (b41a81e702@2001:bc8:1210:2cd8::494) |
| 15:05:49 | → | marinelli joins (~weechat@gateway/tor-sasl/marinelli) |
| 15:05:58 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 15:14:09 | × | kmein quits (~weechat@user/kmein) (Quit: ciao kakao) |
| 15:14:57 | → | kmein joins (~weechat@user/kmein) |
| 15:15:55 | × | cstml3 quits (~cstml@user/cstml) (Ping timeout: 240 seconds) |
| 15:16:32 | → | cstml3 joins (~cstml@user/cstml) |
| 15:24:08 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 15:25:42 | × | mikess quits (~sam@user/mikess) (Ping timeout: 244 seconds) |
| 15:31:55 | → | sindu joins (~sindu@2.148.32.207.tmi.telenormobil.no) |
| 15:36:21 | → | fp joins (~Thunderbi@89-27-10-140.bb.dnainternet.fi) |
| 15:46:38 | × | tromp quits (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:49:20 | × | fp quits (~Thunderbi@89-27-10-140.bb.dnainternet.fi) (Remote host closed the connection) |
| 15:51:42 | → | ttybitnik joins (~ttybitnik@user/wolper) |
| 15:55:09 | × | Digit quits (~user@user/digit) (Quit: brb) |
| 15:56:12 | → | PaulMartensen joins (15a119e437@2001:bc8:1210:2cd8::3bc) |
| 15:56:58 | → | Digit joins (~user@user/digit) |
| 15:58:58 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 246 seconds) |
| 16:00:12 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 16:02:27 | → | mikess joins (~sam@user/mikess) |
| 16:03:51 | × | spew quits (~spew@user/spew) (Quit: WeeChat 4.7.2) |
| 16:05:03 | → | tromp joins (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) |
| 16:08:44 | → | __monty_1 joins (~toonn@user/toonn) |
| 16:10:21 | × | __monty__ quits (~toonn@user/toonn) (Ping timeout: 252 seconds) |
| 16:10:40 | × | trickard_ quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 16:10:54 | → | trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 16:12:02 | <lucabtz> | tomsmeding in defense of the inclusive upper bound in haskell [x..y] includes y |
| 16:12:15 | <lucabtz> | anyhow i dropped the idea for now as it was taking me too long |
| 16:12:29 | <tomsmeding> | yeah and this is why I always have to [0 .. n-1] and it's annoying :p |
| 16:12:45 | <tomsmeding> | Rust has 0 ..< n syntax |
| 16:13:40 | <lucabtz> | yeah i agree it is annoying |
| 16:13:49 | <lucabtz> | i got reminded just now so i sent that |
| 16:20:52 | × | lucabtz quits (~lucabtz@user/lucabtz) (Remote host closed the connection) |
| 16:24:05 | × | infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 245 seconds) |
| 16:32:06 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 16:32:38 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 16:32:58 | <EvanR> | clearly we need special syntax [0 .. n) |
| 16:33:03 | <EvanR> | just kidding |
| 16:33:38 | <EvanR> | I actually hate the implicitly not including the right number |
| 16:33:46 | <EvanR> | in the case of sequence of integers |
| 16:34:06 | <EvanR> | this is where C syntax wins, since it's not implicit |
| 16:34:06 | → | CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) |
| 16:35:49 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) |
| 16:36:09 | <tomsmeding> | EvanR: what about [0 ..< n]? |
| 16:36:22 | <tomsmeding> | (I'm not actually suggesting Haskell get this, we have enough special syntax as is) |
| 16:37:00 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 244 seconds) |
| 16:38:02 | <EvanR> | it's kind of lucky / good that [0 .. n-1] even works without more parentheses or something |
| 16:38:12 | <EvanR> | so you can just write that |
| 16:38:32 | <EvanR> | tell the next person who complains that IS the special syntax for that xD |
| 16:40:04 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 260 seconds) |
| 16:42:37 | × | sindu quits (~sindu@2.148.32.207.tmi.telenormobil.no) (Ping timeout: 264 seconds) |
| 16:44:36 | → | infinity0 joins (~infinity0@pwned.gg) |
| 16:57:11 | → | euphores joins (~SASL_euph@user/euphores) |
| 16:58:18 | × | euphores quits (~SASL_euph@user/euphores) (Client Quit) |
| 16:59:35 | trickard_ | is now known as trickard |
| 17:07:38 | → | AlexZenon_2 joins (~alzenon@85.174.183.177) |
| 17:07:50 | × | AlexZenon quits (~alzenon@85.174.183.177) (Ping timeout: 245 seconds) |
| 17:09:57 | → | euphores joins (~SASL_euph@user/euphores) |
| 17:10:48 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 17:11:28 | → | gmg joins (~user@user/gehmehgeh) |
| 17:12:01 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 264 seconds) |
| 17:14:21 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 17:14:36 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 17:14:42 | × | X-Scale quits (~ARM@50.65.114.89.rev.vodafone.pt) (Quit: HydraIRC -> http://www.hydrairc.com <- \o/) |
| 17:22:35 | → | wickedjargon joins (~user@207.194.126.4) |
| 17:25:11 | → | marlino joins (~marlino@96-8-193-101.block0.gvtc.com) |
| 17:26:01 | → | machinedgod joins (~machinedg@d75-159-126-101.abhsia.telus.net) |
| 17:26:44 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 260 seconds) |
| 17:34:00 | <__monty_1> | I find myself doing `fold . unfoldr` is there a combinator I'm missing that does this? My intuition from foldr->fold suggests unfold but none of those expects a Monoid constraint. Corecursive from recursion-schemes seems similar to Monoid maybe. So then it would be `hylo`? |
| 17:34:05 | __monty_1 | is now known as __monty__ |
| 17:35:47 | → | divlamir_ joins (~divlamir@user/divlamir) |
| 17:38:55 | × | divlamir quits (~divlamir@user/divlamir) (Ping timeout: 240 seconds) |
| 17:38:56 | divlamir_ | is now known as divlamir |
| 17:46:49 | × | Square2 quits (~Square4@user/square) (Ping timeout: 264 seconds) |
| 17:47:53 | → | Googulator joins (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 17:48:07 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 18:00:17 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 18:03:13 | → | sindu joins (~sindu@2.148.32.207.tmi.telenormobil.no) |
| 18:08:01 | → | lambda_gibbon joins (~lambda_gi@208.83.175.39) |
| 18:08:18 | × | wickedjargon quits (~user@207.194.126.4) (Remote host closed the connection) |
| 18:09:25 | → | ft joins (~ft@p508db844.dip0.t-ipconnect.de) |
| 18:18:52 | → | Square2 joins (~Square4@user/square) |
| 18:21:07 | <__monty__> | Hmm, `hylo` still requires passing in `fold` and `unfoldr (...)` I guess. It's also a lot slower than just `fold . unfoldr (...)` in my case for some reason. |
| 18:22:39 | → | deptype joins (~deptype@2406:b400:3a:9d2f:cc6c:ad35:cfc6:21bb) |
| 18:30:58 | <int-e> | tomsmeding: Rust has the distinction but uses .. (exclusive) and ..= (inclusive). I know a languaage (LPC) that uses ..< but there ranges are inclusive and the < means "index from the end of the array". :-P |
| 18:31:49 | → | haritz joins (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) |
| 18:31:49 | × | haritz quits (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host) |
| 18:31:49 | → | haritz joins (~hrtz@user/haritz) |
| 18:33:28 | <haskellbridge> | <loonycyborg> Haskell's notation is on the simpler side actually. Even compared to C I'd say. |
| 18:35:34 | × | annamalai quits (~annamalai@157.32.218.49) (Ping timeout: 260 seconds) |
| 18:35:55 | → | annamalai joins (~annamalai@117.246.122.240) |
| 18:37:13 | × | euphores quits (~SASL_euph@user/euphores) (Ping timeout: 264 seconds) |
| 18:38:43 | <haskellbridge> | <loonycyborg> In particular the "data" declaration, it can both replace C enum and C struct while being simpler conceptually. |
| 18:39:06 | <haskellbridge> | <loonycyborg> unless you're using record syntax, then they're mostly same :P |
| 18:39:41 | × | tromp quits (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:41:12 | <haskellbridge> | <loonycyborg> as in C |
| 18:41:39 | <mauke> | upto n = [0 .. n-1] |
| 18:43:54 | <monochrom> | [0 .. n-1] is why, for example, length :: ... -> Int instead of Word |
| 18:45:51 | → | Googulator15 joins (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 18:45:56 | <monochrom> | If you take the position that length should have an unsigned type, then you must logically take the position that we need some kind of [0..n) |
| 18:45:56 | × | Googulator quits (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 18:46:10 | <mauke> | why? |
| 18:46:45 | <monochrom> | Because [0 .. (n :: Int) - 1] and [0 .. (n :: Integer) - 1] are foot guns. |
| 18:47:07 | → | fp joins (~Thunderbi@89-27-10-140.bb.dnainternet.fi) |
| 18:47:07 | <monochrom> | Err, [0 .. (n :: Word) - 1] and [0 .. (n :: Natural) - 1] are foot guns. |
| 18:47:32 | <int-e> | monochrom: what is this "Word" you're talking about? https://www.haskell.org/onlinereport/basic.html#sect6.4 |
| 18:47:38 | <haskellbridge> | <Zemyla> filter (/= n) [0..n] |
| 18:47:52 | <monochrom> | Word is in Data.Word |
| 18:48:06 | <int-e> | monochrom: I know, and you missed the point :-P |
| 18:48:34 | <monochrom> | I don't get the point. |
| 18:48:34 | <int-e> | I just don't think your explanation why `length` doesn't return Word is supported by history. |
| 18:49:37 | <monochrom> | Oh, I revise history all the time. >:) |
| 18:50:21 | <mauke> | "upto" is the kind of [0..n) |
| 18:51:29 | <mauke> | maybe its implementation needs to be revised: upto n = takeWhile (< n) [0 ..] |
| 18:51:41 | <Square2> | first/second from Bifunctor is great for tuples. I ended up with a tuple-3 and tried to find something similar but the only thing I foudn was https://hackage.haskell.org/package/n-ary-functor-1.0 which felt a bit clumsy |
| 18:52:11 | <Square2> | Anyone know of a better trick? |
| 18:52:23 | <monochrom> | Yeah you want to avoid `n-1`. |
| 18:55:13 | → | tromp joins (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) |
| 18:55:31 | <monochrom> | You can write your own Trifunctor class. If you subclass from Bifunctor, then you just have to add the third method. :) |
| 18:56:09 | × | tromp quits (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) (Client Quit) |
| 18:56:19 | <c_wraith> | I found myself looking for how to write octal literals for the first time today. after almost 20 years using Haskell. |
| 18:56:35 | <monochrom> | heh |
| 18:57:36 | <mauke> | 0o (pronounced "uh-oh") |
| 18:57:46 | <haskellbridge> | <loonycyborg> Probably it's possible to write a function that will map on the element number in tuple that you specify as type level Natural :P |
| 18:59:02 | <mauke> | do any other programming languages (outside of Perl/Haskell) support 0o notation? |
| 19:02:03 | <int-e> | let's see.. Python 3 does it and forbids leading zeros in decimal literals on top of that |
| 19:03:29 | <mauke> | nice |
| 19:03:39 | <c_wraith> | actually, I guessed it based on the syntax provided in the binary literals extension rather than looking for a reference. at least things are consistent |
| 19:03:40 | <int-e> | Rust too. The aforementioned LPC too (at least in its modern ldmud dialect). |
| 19:05:13 | <int-e> | But not Pike (which is another branch of LPC), so I think the caveat is important. |
| 19:07:12 | ski | . o O ( `0o0.4' ) |
| 19:08:15 | <mauke> | kind of. perl supports 0o0.4p0 |
| 19:08:21 | <mauke> | but the exponent is required |
| 19:11:47 | gehmehgeh | is now known as gmg |
| 19:15:10 | <tomsmeding> | int-e: I could have _sworn_ rust had ..< |
| 19:16:18 | <tomsmeding> | int-e: Swift seems to have ..< with the meaning I had in mind |
| 19:16:55 | <tomsmeding> | got the language wrong, but at least it exists in a common language :p |
| 19:18:42 | <tomsmeding> | mauke: uh, what about C? |
| 19:19:15 | <tomsmeding> | I'd rather expect that all mentioned examples got 0o from C :p |
| 19:19:57 | <monochrom> | But C didn't have the o, you go straight to 0777 |
| 19:20:15 | <tomsmeding> | TIL |
| 19:20:19 | <tomsmeding> | or wait what |
| 19:20:33 | <tomsmeding> | 1. you're right |
| 19:20:38 | <tomsmeding> | 2. what is my brain doing |
| 19:20:51 | <tomsmeding> | (I had to pass -std=c99 -pedantic to get gcc to complain about it) |
| 19:21:00 | <monochrom> | Your brain makes sense, therefore you don't understand a poor syntax choice in C. :) |
| 19:21:05 | <tomsmeding> | :) |
| 19:25:01 | <int-e> | . o O ( it's called "revising history", I learned today ) |
| 19:26:25 | <tomsmeding> | it seems that now is really the time that I've not used C for a long enough time that I forget basic syntax like this |
| 19:27:18 | AlexZenon_2 | is now known as AlexZenon |
| 19:27:38 | <tomsmeding> | fortunately -- contrary to segfaultfizzbuzz's wishes -- history is being revised regularly :) |
| 19:27:56 | <ski> | rebased ? |
| 19:28:33 | <monochrom> | haha |
| 19:30:02 | × | xnyhps quits (~xnyhps@s.xnyhps.nl) (Remote host closed the connection) |
| 19:30:12 | <EvanR> | redacted |
| 19:30:37 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds) |
| 19:34:55 | × | Square2 quits (~Square4@user/square) (Ping timeout: 246 seconds) |
| 19:36:37 | × | dhil quits (~dhil@5.151.29.139) (Quit: Leaving) |
| 19:39:49 | × | lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 246 seconds) |
| 19:40:22 | gAy_Dragon | is now known as TypesWithAHammer |
| 19:41:05 | TypesWithAHammer | is now known as gAy_Dragon |
| 19:49:00 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 19:52:41 | × | Pixi quits (~Pixi@user/pixi) (Quit: Leaving) |
| 19:52:58 | → | Pixi joins (~Pixi@user/pixi) |
| 19:56:59 | → | peterbecich joins (~Thunderbi@172.222.148.214) |
| 19:58:44 | × | bggd quits (~bgg@2a01:e0a:fd5:f510:9b09:80f:2f26:e3ad) (Quit: std::move) |
| 20:04:00 | → | pavonia joins (~user@user/siracusa) |
| 20:04:51 | → | lambda_gibbon joins (~lambda_gi@208.83.175.39) |
| 20:05:44 | × | Googulator15 quits (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 20:05:53 | → | Googulator15 joins (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 20:09:14 | × | lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 246 seconds) |
| 20:12:31 | → | lambda_gibbon joins (~lambda_gi@208.83.175.39) |
| 20:13:46 | × | peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 246 seconds) |
| 20:17:00 | × | marlino quits (~marlino@96-8-193-101.block0.gvtc.com) (Quit: WeeChat 4.7.2) |
| 20:22:43 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 20:23:26 | → | gmg joins (~user@user/gehmehgeh) |
| 20:24:12 | × | deptype quits (~deptype@2406:b400:3a:9d2f:cc6c:ad35:cfc6:21bb) (Remote host closed the connection) |
| 20:47:25 | × | lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 264 seconds) |
| 20:47:54 | × | michalz quits (~michalz@185.246.207.203) (Remote host closed the connection) |
| 21:10:59 | → | Lycurgus joins (~juan@user/Lycurgus) |
| 21:15:54 | × | finsternis quits (~X@23.226.237.192) (Ping timeout: 244 seconds) |
| 21:16:31 | → | finsternis joins (~X@23.226.237.192) |
| 21:21:03 | × | Googulator15 quits (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 21:21:25 | → | Googulator15 joins (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 21:30:58 | → | karenw joins (~karenw@user/karenw) |
| 21:35:44 | × | Googulator15 quits (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 21:35:47 | → | Googulator58 joins (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 21:36:16 | × | takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection) |
| 22:01:04 | → | hc_ joins (~hc@mail.hce.li) |
| 22:01:10 | × | hc_ quits (~hc@mail.hce.li) (Client Quit) |
| 22:03:04 | → | Tuplanolla joins (~Tuplanoll@91-152-225-194.elisa-laajakaista.fi) |
| 22:14:37 | → | lambda_gibbon joins (~lambda_gi@208.83.175.39) |
| 22:23:15 | × | Googulator58 quits (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 22:23:34 | → | Googulator58 joins (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 22:24:52 | → | tromp joins (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) |
| 22:27:25 | × | CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 245 seconds) |
| 22:34:49 | × | karenw quits (~karenw@user/karenw) (Ping timeout: 264 seconds) |
| 22:35:34 | × | fp quits (~Thunderbi@89-27-10-140.bb.dnainternet.fi) (Ping timeout: 244 seconds) |
| 22:37:00 | → | karenw joins (~karenw@user/karenw) |
| 22:37:12 | × | target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 22:41:40 | × | sindu quits (~sindu@2.148.32.207.tmi.telenormobil.no) (Ping timeout: 244 seconds) |
| 22:42:04 | × | karenw quits (~karenw@user/karenw) (Read error: Connection reset by peer) |
| 22:47:27 | → | peterbecich joins (~Thunderbi@172.222.148.214) |
| 22:49:15 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org )) |
| 22:53:09 | × | iqubic quits (~sophia@2601:602:9203:1660:d33f:96d:145c:6b4b) (Remote host closed the connection) |
| 23:00:47 | × | omidmash quits (~omidmash@user/omidmash) (Ping timeout: 244 seconds) |
| 23:20:46 | × | peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 255 seconds) |
| 23:21:28 | × | tromp quits (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 23:30:16 | Googulator58 | is now known as Googulator |
| 23:36:38 | × | tjbc_ quits (~tjbc@user/fliife) (Quit: ZNC - https://znc.in) |
| 23:38:35 | → | omidmash joins (~omidmash@user/omidmash) |
| 23:39:03 | × | lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 265 seconds) |
| 23:39:23 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 23:39:50 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 23:42:32 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 23:44:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 23:45:19 | × | trickard quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Ping timeout: 240 seconds) |
| 23:45:47 | → | trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 23:47:48 | → | lambda_gibbon joins (~lambda_gi@208.83.175.39) |
| 23:52:49 | × | lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 264 seconds) |
| 23:55:15 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
All times are in UTC on 2025-12-04.