Logs on 2026-02-25 (liberachat/#haskell)
| 00:04:13 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 00:04:16 | × | GdeVolpiano quits (~GdeVolpia@user/GdeVolpiano) (Ping timeout: 268 seconds) |
| 00:05:12 | → | Tuplanolla joins (~Tuplanoll@88-114-89-88.elisa-laajakaista.fi) |
| 00:05:55 | <Comstar> | what's materializing the tree mean? |
| 00:07:54 | <int-e> | I mean constructing a (potentially infinite) value of type `Tree S` where `data Tree s = Node s [Tree s]` from a root :: S and a branching function as above. |
| 00:08:45 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 00:11:08 | <EvanR> | lantti, going through String is probably not great, and then i/o on the Char is doing unicode stuff, and ... |
| 00:11:43 | → | GdeVolpiano joins (~GdeVolpia@user/GdeVolpiano) |
| 00:16:27 | × | peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 246 seconds) |
| 00:19:04 | <Comstar> | int-e, heard, thanks! |
| 00:19:36 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 00:20:33 | <EvanR> | materialize = have the normal form all in memory ? |
| 00:20:57 | <int-e> | EvanR: well, no; laziness will still be a factor. |
| 00:22:11 | <int-e> | EvanR: But yes, I may be abusing terminology a bit here. |
| 00:23:55 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 00:26:39 | <int-e> | EvanR: The main reason I think of it that way is that it becomes harder to ensure that you expand exactly the parts of the tree that you need and you also release them to the garbage collector once you're done with them. |
| 00:29:43 | → | robobub joins (uid248673@id-248673.uxbridge.irccloud.com) |
| 00:34:42 | <EvanR> | yes constructing an infinite value seems kind of vague operationally, so agree that makes it hard to predict the memory usage pattern |
| 00:34:58 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 00:39:20 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 00:39:39 | × | tritlo quits (sid58727@id-58727.hampstead.irccloud.com) (Server closed connection) |
| 00:39:50 | → | tritlo joins (sid58727@id-58727.hampstead.irccloud.com) |
| 00:40:59 | × | lally quits (sid388228@id-388228.uxbridge.irccloud.com) (Server closed connection) |
| 00:41:14 | → | lally joins (sid388228@id-388228.uxbridge.irccloud.com) |
| 00:46:17 | × | xff0x quits (~xff0x@ai083101.d.east.v6connect.net) (Ping timeout: 265 seconds) |
| 00:50:21 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 00:55:03 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 01:05:43 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 01:10:10 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 01:21:05 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 01:24:27 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 01:27:49 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 01:39:06 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 01:40:15 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 01:43:30 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 01:43:57 | × | Tuplanolla quits (~Tuplanoll@88-114-89-88.elisa-laajakaista.fi) (Ping timeout: 246 seconds) |
| 01:52:44 | → | wickedjargon joins (~user@2605:8d80:5430:8458:d04:837d:bf6b:e6b3) |
| 01:54:28 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 01:56:23 | × | Vizious quits (~bes@user/Vizious) (Quit: WeeChat 4.8.1) |
| 01:58:55 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 01:59:57 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 02:01:23 | × | uli-fem quits (~uli-fem@118.210.1.123) (Changing host) |
| 02:01:23 | → | uli-fem joins (~uli-fem@user/uli-fem) |
| 02:01:31 | uli-fem | is now known as ulipink |
| 02:01:32 | × | rainbyte_ quits (~rainbyte@186.22.19.214) (Quit: rainbyte_) |
| 02:08:08 | × | Googulator quits (~Googulato@2a01-036d-0106-499d-1c5a-0e4b-5795-d7e3.pool6.digikabel.hu) (Quit: Client closed) |
| 02:08:24 | → | Googulator joins (~Googulato@2a01-036d-0106-499d-1c5a-0e4b-5795-d7e3.pool6.digikabel.hu) |
| 02:09:50 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 02:14:03 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 02:25:12 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 02:29:45 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 02:33:39 | × | mstruebing quits (~mstruebin@ns343649.ip-188-165-193.eu) (Server closed connection) |
| 02:33:47 | → | mstruebing joins (~mstruebin@ns343649.ip-188-165-193.eu) |
| 02:40:33 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 02:42:59 | × | chiselfuse quits (~chiselfus@user/chiselfuse) (Server closed connection) |
| 02:43:13 | ← | abiss27 parts (~abiss27@user/abiss) () |
| 02:43:33 | → | chiselfuse joins (~chiselfus@user/chiselfuse) |
| 02:44:45 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 02:45:34 | → | philopsos1 joins (~caecilius@user/philopsos) |
| 02:48:03 | × | robobub quits (uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 02:51:11 | → | prdak joins (~Thunderbi@user/prdak) |
| 02:55:56 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 02:56:07 | × | prdak quits (~Thunderbi@user/prdak) (Ping timeout: 264 seconds) |
| 02:57:49 | → | xff0x joins (~xff0x@2405:6580:b080:900:a3f9:c0ee:35e6:d3d1) |
| 03:02:33 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 03:02:36 | → | zfnmxt joins (~m-gkkevi@209.209.10.107) |
| 03:04:59 | × | jakzale quits (6291399afa@user/jakzale) (Server closed connection) |
| 03:05:06 | → | jakzale joins (6291399afa@user/jakzale) |
| 03:13:19 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 03:14:24 | × | Fischmiep quits (~Fischmiep@user/Fischmiep) (Ping timeout: 255 seconds) |
| 03:18:03 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 03:25:56 | → | housemate joins (~housemate@202.7.248.67) |
| 03:28:40 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 03:33:32 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 03:35:41 | × | rekahsoft quits (~rekahsoft@bras-base-orllon1103w-grc-20-76-67-111-168.dsl.bell.ca) (Remote host closed the connection) |
| 03:39:39 | × | pmk quits (6afe4476a1@2a03:6000:1812:100::26d) (Server closed connection) |
| 03:39:47 | → | pmk joins (6afe4476a1@2a03:6000:1812:100::26d) |
| 03:41:50 | × | machinedgod quits (~machinedg@d172-219-48-230.abhsia.telus.net) (Ping timeout: 245 seconds) |
| 03:44:00 | → | Square2 joins (~Square4@user/square) |
| 03:44:04 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 03:47:08 | × | philopsos1 quits (~caecilius@user/philopsos) (Ping timeout: 256 seconds) |
| 03:49:07 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
| 03:51:50 | → | arandombit joins (~arandombi@2a02:2455:8656:7100:d189:bf2e:3659:938e) |
| 03:51:50 | × | arandombit quits (~arandombi@2a02:2455:8656:7100:d189:bf2e:3659:938e) (Changing host) |
| 03:51:50 | → | arandombit joins (~arandombi@user/arandombit) |
| 03:58:00 | × | wickedjargon quits (~user@2605:8d80:5430:8458:d04:837d:bf6b:e6b3) (Ping timeout: 246 seconds) |
| 03:59:27 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 04:03:57 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 04:10:10 | × | arandombit quits (~arandombi@user/arandombit) (Ping timeout: 245 seconds) |
| 04:10:18 | → | weary-traveler joins (~user@user/user363627) |
| 04:12:59 | × | ymherklotz quits (cb2c9cfbdd@2a03:6000:1812:100::29a) (Server closed connection) |
| 04:13:06 | → | ymherklotz joins (cb2c9cfbdd@2a03:6000:1812:100::29a) |
| 04:14:47 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 04:15:39 | × | akspecs quits (00cc8321af@sourcehut/user/akspecs) (Server closed connection) |
| 04:15:49 | → | akspecs joins (00cc8321af@sourcehut/user/akspecs) |
| 04:19:26 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 04:22:15 | × | ulipink quits (~uli-fem@user/uli-fem) (Ping timeout: 245 seconds) |
| 04:30:10 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 04:34:59 | × | rprospero quits (eadde01e73@user/rprospero) (Server closed connection) |
| 04:35:07 | → | rprospero joins (eadde01e73@user/rprospero) |
| 04:35:10 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 04:36:59 | × | chaitlatte0 quits (ea29c0bb16@user/chaitlatte0) (Server closed connection) |
| 04:37:08 | → | chaitlatte0 joins (ea29c0bb16@user/chaitlatte0) |
| 04:38:07 | × | emaczen quits (~user@user/emaczen) (Ping timeout: 264 seconds) |
| 04:43:30 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 04:46:13 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 04:49:30 | → | earthy joins (~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) |
| 04:50:23 | → | wickedjargon joins (~user@2605:8d80:5431:2a54:ed64:7112:3bc:303c) |
| 04:50:35 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 05:01:35 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 05:05:06 | × | jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 255 seconds) |
| 05:05:54 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 05:07:39 | × | wickedjargon quits (~user@2605:8d80:5431:2a54:ed64:7112:3bc:303c) (Ping timeout: 246 seconds) |
| 05:14:20 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 05:17:40 | × | Square2 quits (~Square4@user/square) (Ping timeout: 245 seconds) |
| 05:18:55 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 05:22:19 | → | RalphStalfos joins (~kvirc@164.sub-174-251-240.myvzw.com) |
| 05:28:19 | × | RalphStalfos quits (~kvirc@164.sub-174-251-240.myvzw.com) (Quit: Changing server...) |
| 05:29:42 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 05:30:59 | × | ajrdck quits (e0a4b72d53@user/ajrdck) (Server closed connection) |
| 05:31:08 | → | ajrdck joins (e0a4b72d53@user/ajrdck) |
| 05:33:55 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 05:34:19 | × | slondr quits (cf9f9e8f44@2a03:6000:1812:100::10b6) (Server closed connection) |
| 05:34:27 | → | slondr joins (cf9f9e8f44@2a03:6000:1812:100::10b6) |
| 05:36:26 | → | agspades joins (~agspades@2401:4900:cab9:e332:4c8e:11ae:4084:30ac) |
| 05:37:46 | × | sefidel quits (~sefidel@user/sefidel) (Remote host closed the connection) |
| 05:38:33 | → | sefidel joins (~sefidel@user/sefidel) |
| 05:38:54 | × | agspades quits (~agspades@2401:4900:cab9:e332:4c8e:11ae:4084:30ac) (Quit: Konversation terminated!) |
| 05:39:14 | → | agspades joins (~agspades@2401:4900:cab9:e332:4c8e:11ae:4084:30ac) |
| 05:40:17 | → | michalz joins (~michalz@185.246.207.218) |
| 05:40:25 | × | agspades quits (~agspades@2401:4900:cab9:e332:4c8e:11ae:4084:30ac) (Client Quit) |
| 05:43:54 | → | wickedjargon joins (~user@2605:8d80:5c40:245c:9d0a:1dbd:b59f:8c37) |
| 05:45:04 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 05:45:39 | × | rselim quits (ce261f06ff@user/milesrout) (Server closed connection) |
| 05:45:48 | → | rselim joins (ce261f06ff@user/milesrout) |
| 05:49:39 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 05:55:45 | → | filwisher joins (2e6936c793@2a03:6000:1812:100::170) |
| 06:00:36 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 06:05:10 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 06:05:54 | × | wickedjargon quits (~user@2605:8d80:5c40:245c:9d0a:1dbd:b59f:8c37) (Read error: Connection reset by peer) |
| 06:08:01 | → | wickedjargon joins (~user@2605:8d80:5c40:eae6:dd0f:ce4e:9d20:20f0) |
| 06:10:54 | → | takuan joins (~takuan@d8D86B9E9.access.telenet.be) |
| 06:11:11 | × | Googulator quits (~Googulato@2a01-036d-0106-499d-1c5a-0e4b-5795-d7e3.pool6.digikabel.hu) (Quit: Client closed) |
| 06:11:27 | → | Googulator joins (~Googulato@2a01-036d-0106-499d-1c5a-0e4b-5795-d7e3.pool6.digikabel.hu) |
| 06:15:20 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 06:18:19 | × | jkoshy quits (99b9359beb@user/jkoshy) (Server closed connection) |
| 06:18:20 | × | shr\ke quits (~shrike@user/shrke:31298) (Ping timeout: 265 seconds) |
| 06:18:28 | → | jkoshy joins (99b9359beb@user/jkoshy) |
| 06:19:27 | → | shr\ke joins (~shrike@user/paxhumana) |
| 06:19:27 | × | shr\ke quits (~shrike@user/paxhumana) (Changing host) |
| 06:19:27 | → | shr\ke joins (~shrike@user/shrke:31298) |
| 06:19:45 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 06:23:10 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 265 seconds) |
| 06:26:59 | × | bheesham quits (3aa22d8375@2a03:6000:1812:100::e40) (Server closed connection) |
| 06:27:08 | → | bheesham joins (3aa22d8375@2a03:6000:1812:100::e40) |
| 06:30:43 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 06:31:39 | × | whereiseveryone quits (206ba86c98@2a03:6000:1812:100::2e4) (Server closed connection) |
| 06:31:47 | → | whereiseveryone joins (206ba86c98@2a03:6000:1812:100::2e4) |
| 06:34:19 | × | arcadewise quits (52968ed80d@2a03:6000:1812:100::3df) (Server closed connection) |
| 06:34:27 | → | arcadewise joins (52968ed80d@2a03:6000:1812:100::3df) |
| 06:34:55 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 06:35:10 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 06:37:36 | × | wickedjargon quits (~user@2605:8d80:5c40:eae6:dd0f:ce4e:9d20:20f0) (Ping timeout: 246 seconds) |
| 06:37:39 | × | JoelMcCracken quits (5ea8252fbb@2a03:6000:1812:100::10e3) (Server closed connection) |
| 06:37:50 | → | JoelMcCracken joins (5ea8252fbb@2a03:6000:1812:100::10e3) |
| 06:38:26 | → | RussetParrotBear joins (45ce440a48@2a03:6000:1812:100::e2) |
| 06:39:39 | × | simendsjo quits (34b0550437@2a03:6000:1812:100::1441) (Server closed connection) |
| 06:39:47 | → | simendsjo joins (34b0550437@2a03:6000:1812:100::1441) |
| 06:42:17 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 06:44:19 | × | stureplan quits (22e45d5caf@user/stureplan) (Server closed connection) |
| 06:44:28 | → | stureplan joins (22e45d5caf@user/stureplan) |
| 06:44:35 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 06:46:08 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 06:46:20 | → | myxokephale joins (~myxos@174-18-44-59.tcso.qwest.net) |
| 06:46:51 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 06:47:43 | × | foul_owl quits (~kerry@94.156.149.97) (Ping timeout: 264 seconds) |
| 06:48:34 | × | myxos quits (~myxos@174-18-58-141.tcso.qwest.net) (Ping timeout: 268 seconds) |
| 06:51:00 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 06:51:39 | × | probie quits (cc0b34050a@user/probie) (Server closed connection) |
| 06:51:47 | → | probie joins (cc0b34050a@user/probie) |
| 06:52:40 | → | prdak joins (~Thunderbi@user/prdak) |
| 06:53:39 | × | lane quits (809450f172@2a03:6000:1812:100::1300) (Server closed connection) |
| 06:53:46 | → | lane joins (809450f172@2a03:6000:1812:100::1300) |
| 06:56:58 | × | prdak quits (~Thunderbi@user/prdak) (Ping timeout: 256 seconds) |
| 06:57:41 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 07:01:57 | → | foul_owl joins (~kerry@94.156.149.91) |
| 07:04:37 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
| 07:11:51 | → | agspades joins (~agspades@2401:4900:cab9:e332:4c8e:11ae:4084:30ac) |
| 07:12:06 | × | agspades quits (~agspades@2401:4900:cab9:e332:4c8e:11ae:4084:30ac) (Client Quit) |
| 07:15:33 | → | tromp joins (~textual@2001:1c00:3487:1b00:7955:9591:6018:7ef9) |
| 07:15:43 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 07:20:10 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 07:26:19 | × | mauke quits (~mauke@user/mauke) (Server closed connection) |
| 07:26:29 | → | mauke joins (~mauke@user/mauke) |
| 07:31:04 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 07:35:35 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 07:36:19 | × | preflex quits (~preflex@user/mauke/bot/preflex) (Server closed connection) |
| 07:36:31 | → | preflex joins (~preflex@user/mauke/bot/preflex) |
| 07:46:27 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 07:50:45 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 07:53:00 | → | misterfish joins (~misterfis@84.53.85.146) |
| 07:54:08 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 07:58:45 | × | misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 272 seconds) |
| 08:00:26 | → | misterfish joins (~misterfis@84.53.85.146) |
| 08:01:03 | → | Fischmiep joins (~Fischmiep@user/Fischmiep) |
| 08:01:10 | → | __monty__ joins (~toonn@user/toonn) |
| 08:01:49 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 08:06:09 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 08:06:57 | → | peterbecich joins (~Thunderbi@71.84.33.135) |
| 08:09:13 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 248 seconds) |
| 08:24:09 | × | Pozyomka quits (~pyon@user/pyon) (Ping timeout: 268 seconds) |
| 08:25:59 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 08:27:02 | → | philopsos1 joins (~caecilius@user/philopsos) |
| 08:29:43 | → | chele joins (~chele@user/chele) |
| 08:33:06 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 246 seconds) |
| 08:35:16 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 08:39:37 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 248 seconds) |
| 08:43:28 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 08:45:29 | × | emmanuelux quits (~em@user/emmanuelux) (Quit: bye) |
| 08:46:25 | × | peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 245 seconds) |
| 08:47:08 | → | merijn joins (~merijn@77.242.116.146) |
| 08:50:20 | → | oskarw joins (~user@user/oskarw) |
| 09:09:39 | × | gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (Server closed connection) |
| 09:09:55 | × | lbseale quits (~quassel@user/ep1ctetus) (Ping timeout: 265 seconds) |
| 09:09:56 | → | gabiruh joins (~gabiruh@vps19177.publiccloud.com.br) |
| 09:10:06 | × | tromp quits (~textual@2001:1c00:3487:1b00:7955:9591:6018:7ef9) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:11:37 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 09:11:58 | → | slomp_ joins (~slomp@47-158-212-88.lsan.ca.frontiernet.net) |
| 09:12:14 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 09:14:45 | × | slomp quits (~slomp@47-158-212-88.lsan.ca.frontiernet.net) (Ping timeout: 272 seconds) |
| 09:15:10 | × | philopsos1 quits (~caecilius@user/philopsos) (Ping timeout: 245 seconds) |
| 09:16:31 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 264 seconds) |
| 09:18:08 | → | fp joins (~Thunderbi@130.233.70.214) |
| 09:20:24 | → | mange joins (~mange@user/mange) |
| 09:24:09 | × | housemate quits (~housemate@202.7.248.67) (Quit: https://ineedsomeacidtocalmmedown.space/) |
| 09:29:39 | × | j0lol quits (~j0lol@132.145.17.236) (Server closed connection) |
| 09:29:53 | → | j0lol joins (~j0lol@132.145.17.236) |
| 09:37:09 | × | shr\ke quits (~shrike@user/shrke:31298) (Ping timeout: 246 seconds) |
| 09:39:40 | → | housemate joins (~housemate@202.7.248.67) |
| 09:43:36 | → | shr\ke joins (~shrike@user/paxhumana) |
| 09:43:36 | × | shr\ke quits (~shrike@user/paxhumana) (Changing host) |
| 09:43:36 | → | shr\ke joins (~shrike@user/shrke:31298) |
| 09:47:01 | × | Digit quits (~user@user/digit) (Ping timeout: 264 seconds) |
| 09:47:15 | × | fp quits (~Thunderbi@130.233.70.214) (Ping timeout: 245 seconds) |
| 09:49:37 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 09:50:34 | → | prdak joins (~Thunderbi@user/prdak) |
| 09:52:19 | × | vulpine quits (xfnw@user/meow/xfnw) (Server closed connection) |
| 09:52:39 | → | vulpine joins (xfnw@user/meow/xfnw) |
| 10:05:47 | → | Digit joins (~user@user/digit) |
| 10:06:05 | × | prdak quits (~Thunderbi@user/prdak) (Remote host closed the connection) |
| 10:06:24 | → | prdak joins (~Thunderbi@user/prdak) |
| 10:10:39 | → | prdak1 joins (~Thunderbi@user/prdak) |
| 10:10:51 | × | prdak quits (~Thunderbi@user/prdak) (Read error: Connection reset by peer) |
| 10:10:51 | prdak1 | is now known as prdak |
| 10:14:23 | → | prdak1 joins (~Thunderbi@user/prdak) |
| 10:14:34 | × | prdak quits (~Thunderbi@user/prdak) (Read error: Connection reset by peer) |
| 10:14:34 | prdak1 | is now known as prdak |
| 10:16:29 | → | prdak1 joins (~Thunderbi@user/prdak) |
| 10:19:31 | × | prdak quits (~Thunderbi@user/prdak) (Ping timeout: 264 seconds) |
| 10:19:31 | prdak1 | is now known as prdak |
| 10:23:42 | × | prdak quits (~Thunderbi@user/prdak) (Ping timeout: 246 seconds) |
| 10:26:42 | × | divlamir quits (~divlamir@user/divlamir) (Read error: Connection reset by peer) |
| 10:27:02 | × | natto17 quits (~natto@129.154.243.159) (Read error: Connection reset by peer) |
| 10:27:03 | → | divlamir joins (~divlamir@user/divlamir) |
| 10:28:18 | × | carbolymer quits (~carbolyme@delirium.systems) (Read error: Connection reset by peer) |
| 10:28:24 | → | natto17 joins (~natto@129.154.243.159) |
| 10:28:27 | → | prdak joins (~Thunderbi@user/prdak) |
| 10:28:48 | → | carbolymer joins (~carbolyme@delirium.systems) |
| 10:35:37 | × | mangoiv quits (~mangoiv@2a01:4f9:c012:6c0e::) (Changing host) |
| 10:35:37 | → | mangoiv joins (~mangoiv@user/mangoiv) |
| 10:38:21 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 10:42:28 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 252 seconds) |
| 10:42:59 | × | systemfault quits (sid267009@about/typescript/member/systemfault) (Server closed connection) |
| 10:43:14 | → | systemfault joins (sid267009@about/typescript/member/systemfault) |
| 10:50:16 | × | Arsen quits (16abab341f@gentoo/developer/managarm.dev.Arsen) (Remote host closed the connection) |
| 10:50:24 | → | Arsen joins (16abab341f@gentoo/developer/managarm.dev.Arsen) |
| 10:51:38 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 252 seconds) |
| 10:53:36 | → | fp joins (~Thunderbi@2001:708:20:1406::10c5) |
| 10:56:57 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 10:57:39 | × | PotatoGim quits (sid99505@id-99505.lymington.irccloud.com) (Server closed connection) |
| 10:58:05 | → | PotatoGim joins (sid99505@id-99505.lymington.irccloud.com) |
| 11:00:16 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 11:08:25 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 248 seconds) |
| 11:12:19 | × | Kamuela quits (sid111576@id-111576.tinside.irccloud.com) (Server closed connection) |
| 11:12:34 | → | Kamuela joins (sid111576@id-111576.tinside.irccloud.com) |
| 11:14:29 | × | prdak quits (~Thunderbi@user/prdak) (Ping timeout: 245 seconds) |
| 11:31:17 | × | housemate quits (~housemate@202.7.248.67) (Quit: https://ineedsomeacidtocalmmedown.space/) |
| 11:36:02 | → | Pozyomka joins (~pyon@user/pyon) |
| 11:40:02 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 11:43:55 | <chromoblob> | why can't the compiler itself choose the optimal representation for strings even when code uses String? |
| 11:48:04 | <probie> | Without forcing "whole program compilation" that's pretty much impossible |
| 12:01:08 | → | philopsos1 joins (~caecilius@user/philopsos) |
| 12:02:15 | → | spew joins (~spew@user/spew) |
| 12:02:15 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 255 seconds) |
| 12:04:05 | → | prdak joins (~Thunderbi@user/prdak) |
| 12:08:21 | × | prdak quits (~Thunderbi@user/prdak) (Ping timeout: 246 seconds) |
| 12:12:01 | × | p3n quits (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) (Quit: ZNC 1.10.1 - https://znc.in) |
| 12:14:49 | → | p3n joins (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) |
| 12:15:00 | × | spew quits (~spew@user/spew) (Quit: nyaa~) |
| 12:17:16 | × | mange quits (~mange@user/mange) (Quit: Zzz...) |
| 12:18:19 | × | berberman quits (~berberman@user/berberman) (Server closed connection) |
| 12:18:29 | → | berberman joins (~berberman@user/berberman) |
| 12:20:40 | → | prdak joins (~Thunderbi@user/prdak) |
| 12:24:05 | → | housemate joins (~housemate@202.7.248.67) |
| 12:32:53 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 12:34:31 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine) |
| 12:35:54 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 12:36:26 | <merijn> | chromoblob: Because "optimal" is a hard thing to define :p |
| 12:36:38 | <merijn> | chromoblob: That said, string literals aren't actually even [Char] in compiled code |
| 12:36:52 | <merijn> | String literals are compiled to dense byte blobs that get lazily converted into [Char] |
| 12:37:32 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 256 seconds) |
| 12:38:59 | × | Moyst quits (~moyst@user/moyst) (Server closed connection) |
| 12:39:48 | <chromoblob> | well, no need to perfect things, but it'd be cool if Strings were stored as a UTF-8 buffer + a thunk for the rest of string |
| 12:40:11 | <chromoblob> | yeah, Unicode complicated |
| 12:40:14 | → | Moyst joins (~moyst@user/moyst) |
| 12:40:17 | <chromoblob> | complicates * |
| 12:40:23 | × | poscat quits (~poscat@user/poscat) (Remote host closed the connection) |
| 12:40:48 | <chromoblob> | could use UTF-32 or "UTF-24" |
| 12:41:41 | <merijn> | chromoblob: That's just Text? |
| 12:41:45 | <merijn> | Rather |
| 12:41:47 | <merijn> | Lazy Text |
| 12:42:02 | → | machinedgod joins (~machinedg@d172-219-48-230.abhsia.telus.net) |
| 12:42:08 | <chromoblob> | well, the source code would be portable... |
| 12:42:11 | <merijn> | chromoblob: Basically automatically deciding optimal layout is hard, if not impossible |
| 12:42:42 | <merijn> | That's the reason why Haskell has like 5-8 string types (depending how you count :p) |
| 12:42:55 | → | tremon joins (~tremon@83.80.159.219) |
| 12:43:03 | <chromoblob> | i mean, there are almost always very easy to decide optimizations |
| 12:44:00 | → | poscat joins (~poscat@user/poscat) |
| 12:44:19 | <merijn> | chromoblob: I mean, feel free to try it :> |
| 12:44:57 | <chromoblob> | ;) |
| 12:44:59 | × | comonad quits (~comonad@p200300d02722ae00dce4ce9451b59974.dip0.t-ipconnect.de) (Server closed connection) |
| 12:45:16 | → | comonad joins (~comonad@p200300d02722ae00dce4ce9451b59974.dip0.t-ipconnect.de) |
| 12:50:04 | × | Athas quits (athas@2a01:7c8:aaac:1cf:10a0:cce8:21cf:53aa) (Quit: ZNC 1.9.1 - https://znc.in) |
| 12:50:17 | → | Athas joins (athas@2a01:7c8:aaac:1cf:5b23:7d4e:8d70:47e1) |
| 12:52:05 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 12:52:37 | <__monty__> | chromoblob: Char is analogous to UTF-32 already, no? |
| 12:53:27 | <__monty__> | So that leaves having a "buffer" instead of a list. And that just doesn't play as nice with functional idioms. |
| 12:54:15 | <chromoblob> | speed and memory is "nicer" to me than "niceness" |
| 12:55:05 | <__monty__> | That's the thing, it'd be slower for most of the code written to use String. |
| 12:56:18 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 246 seconds) |
| 12:58:34 | → | chenjf joins (~chenjf@68.64.178.54) |
| 13:02:57 | × | chenjf quits (~chenjf@68.64.178.54) (Client Quit) |
| 13:08:09 | <merijn> | hiredman: Then just use Text everywhere :P |
| 13:08:20 | <merijn> | s/hiredman/chromoblob |
| 13:08:27 | <haskellbridge> | <magic_rb> yeah Text ftw |
| 13:08:48 | <merijn> | converting Text to String is pretty efficient anyway |
| 13:11:52 | ← | oskarw parts (~user@user/oskarw) (ERC 5.6.1 (IRC client for GNU Emacs 30.2)) |
| 13:14:46 | <dminuoso> | chromoblob: Also, regarding your initial question: GHC compiles to native machine code ultimately, and we compile into object files that get turned into separate object files that are later together, but you dont even know the access pattern ahead of time. |
| 13:15:25 | <chromoblob> | yes, i got it |
| 13:17:14 | <dminuoso> | Im not entirely sure all excuses are good at the end. |
| 13:17:18 | × | housemate quits (~housemate@202.7.248.67) (Quit: https://ineedsomeacidtocalmmedown.space/) |
| 13:17:24 | <dminuoso> | I feel like String was a bad idea to begin with. |
| 13:18:43 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 13:23:14 | × | qqq quits (~qqq@185.54.22.240) (Ping timeout: 268 seconds) |
| 13:23:40 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 265 seconds) |
| 13:23:46 | → | bggd_ joins (~bgg@2a01:e0a:fd5:f510:37b0:d42d:8afb:890) |
| 13:27:13 | → | housemate joins (~housemate@202.7.248.67) |
| 13:36:20 | <probie> | I think other representations make it a headache if you're not willing to specify what a `Char` actually is |
| 13:38:55 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 13:43:31 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 264 seconds) |
| 13:59:12 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 14:01:41 | × | Pozyomka quits (~pyon@user/pyon) (Quit: brb) |
| 14:06:03 | → | Pozyomka joins (~pyon@user/pyon) |
| 14:09:43 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 268 seconds) |
| 14:11:39 | × | Wanderer quits (~wanderer@user/wanderer) (Server closed connection) |
| 14:14:35 | → | Wanderer joins (~wanderer@user/wanderer) |
| 14:16:45 | <dutchie> | is there a good way to write `lesserPresent :: Ord a => Maybe a -> Maybe a -> Maybe a` that returns the minimum? currently doing silly things with maybeToList and minimum |
| 14:17:22 | <dutchie> | `liftA2 min` is almost exactly the wrong thing |
| 14:18:13 | <dutchie> | `asum [liftA2 min mx my, mx, my]`? |
| 14:18:14 | <aka_dude> | Hey. I want to talk to mentor of https://summer.haskell.org/ideas.html#ui-layout-library-for-haskell proposal, Adrian Sieber (ad-si). Do you know where can I reach him? |
| 14:20:53 | → | lbseale joins (~quassel@user/ep1ctetus) |
| 14:23:35 | × | lbseale quits (~quassel@user/ep1ctetus) (Client Quit) |
| 14:24:19 | → | lbseale joins (~quassel@user/ep1ctetus) |
| 14:24:30 | <dminuoso> | https://hackage.haskell.org/package/base64-bytestring-1.2.1.0/docs/src/Data.ByteString.Base64.html - at the bottom there is a definition for decodePF |
| 14:24:34 | <dminuoso> | BS decodeFP _ = |
| 14:24:37 | <dminuoso> | What kind of syntax is that? |
| 14:26:12 | → | rainbyte joins (~rainbyte@186.22.19.214) |
| 14:27:54 | <__monty__> | dminuoso: CPP-aided crimes? |
| 14:28:15 | <dminuoso> | I mean PS/BS are pattern synonyms.. |
| 14:28:32 | <dminuoso> | But neither is PatternSynonyms enabled, nor are there any macros introduced in that file |
| 14:29:08 | <dminuoso> | Or rather, PS is a pattern and BS is a constructor.. |
| 14:30:49 | <mauke> | pattern matching/binding |
| 14:31:11 | <mauke> | (:) x _ = [1,2,3] |
| 14:31:20 | <__monty__> | > let [x] = ["hello"] in x |
| 14:31:21 | <lambdabot> | "hello" |
| 14:31:22 | <dminuoso> | mauke: Yeah but.. |
| 14:31:33 | <dminuoso> | % x :: Int; [x] = 1 |
| 14:31:33 | <yahb2> | <interactive>:7:17: error: [GHC-39999] ; • No instance for ‘Num [Int]’ arising from the literal ‘1’ ; • In the expression: 1 ; In a pattern binding: [x] = 1 |
| 14:31:38 | <dminuoso> | I cant do that. |
| 14:31:45 | <dminuoso> | Oh |
| 14:31:47 | <mauke> | well, that's a type error |
| 14:31:48 | <dminuoso> | % x :: Int; [x] = [1] |
| 14:31:48 | <yahb2> | <no output> |
| 14:31:50 | <dminuoso> | o.o |
| 14:31:53 | dminuoso | is baffled |
| 14:32:07 | <dminuoso> | I mean it feels obvious and nice, it just never occured to me... |
| 14:32:53 | <mauke> | (f, g) = fix (... some nonsense ...) |
| 14:33:00 | <mauke> | I'm pretty sure I've done something like this before |
| 14:33:16 | <dminuoso> | mauke: Now that you mention it, I actually recall some obscure haskell report facts about this. |
| 14:33:25 | <dminuoso> | I think they are called non-trivial pattern bindings or some such |
| 14:33:31 | <dutchie> | I've used it when writing Servant stuff |
| 14:33:43 | <__monty__> | dminuoso: As for PS, "enabled by the language extension PatternSynonyms, which is required for defining them, but not for using them." |
| 14:34:06 | <dminuoso> | __monty__: Ugh. |
| 14:34:13 | <dminuoso> | Okay, that explains that part too, then. |
| 14:35:05 | <dminuoso> | mauke: MMR does not kick in for these non-trivial bindings, and I think (f, g) was even mentioned as an example in the report. |
| 14:36:24 | <mauke> | % [foo] = [42] |
| 14:36:25 | <yahb2> | <no output> |
| 14:36:29 | <mauke> | % :t foo |
| 14:36:29 | <yahb2> | foo :: Num a => a |
| 14:38:19 | × | sttau quits (~sttau@199.180.255.81) (Server closed connection) |
| 14:38:27 | → | sttau joins (~sttau@199.180.255.81) |
| 14:40:09 | × | philopsos1 quits (~caecilius@user/philopsos) (Ping timeout: 248 seconds) |
| 14:46:03 | <dminuoso> | By the way, its striking how often the impossible happens to me. |
| 14:46:05 | <dminuoso> | ghc: panic! (the 'impossible' happened) (GHC version 9.2.8: primRepToFFIType |
| 14:49:31 | × | prdak quits (~Thunderbi@user/prdak) (Ping timeout: 264 seconds) |
| 14:51:00 | × | fp quits (~Thunderbi@2001:708:20:1406::10c5) (Ping timeout: 245 seconds) |
| 14:52:34 | → | fp joins (~Thunderbi@wireless-86-50-141-0.open.aalto.fi) |
| 14:56:07 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 15:00:35 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 245 seconds) |
| 15:08:35 | × | troydm quits (~troydm@user/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) |
| 15:12:23 | → | Psychotic1 joins (~Psychotic@2600:1007:b0aa:7216:54da:2a86:8a54:a2c4) |
| 15:12:32 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 15:14:56 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 15:16:59 | × | Hafydd quits (~Hafydd@user/hafydd) (Server closed connection) |
| 15:17:17 | → | Hafydd joins (~Hafydd@user/hafydd) |
| 15:19:21 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 255 seconds) |
| 15:20:43 | × | fp quits (~Thunderbi@wireless-86-50-141-0.open.aalto.fi) (Ping timeout: 264 seconds) |
| 15:22:21 | → | fp joins (~Thunderbi@2001:708:150:10::9d7e) |
| 15:23:39 | × | Adeon quits (sid418992@id-418992.lymington.irccloud.com) (Server closed connection) |
| 15:23:50 | → | Adeon joins (sid418992@id-418992.lymington.irccloud.com) |
| 15:25:39 | × | ProofTechnique_ quits (sid79547@id-79547.ilkley.irccloud.com) (Server closed connection) |
| 15:25:48 | → | ProofTechnique_ joins (sid79547@id-79547.ilkley.irccloud.com) |
| 15:29:00 | → | rekahsoft joins (~rekahsoft@76.67.111.168) |
| 15:32:59 | × | dunj3 quits (~dunj3@2a01:239:328:1600::1) (Server closed connection) |
| 15:33:12 | → | dunj3 joins (~dunj3@2a01:239:328:1600::1) |
| 15:34:57 | × | Psychotic1 quits (~Psychotic@2600:1007:b0aa:7216:54da:2a86:8a54:a2c4) (Quit: Leaving) |
| 15:35:31 | → | emaczen joins (~user@user/emaczen) |
| 15:36:09 | × | Katarushisu6 quits (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Ping timeout: 245 seconds) |
| 15:43:32 | × | fp quits (~Thunderbi@2001:708:150:10::9d7e) (Quit: fp) |
| 15:48:09 | → | prdak joins (~Thunderbi@user/prdak) |
| 15:48:30 | → | Psychotic1 joins (~Psychotic@65.sub-174-245-22.myvzw.com) |
| 15:49:05 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 15:52:39 | × | prdak quits (~Thunderbi@user/prdak) (Ping timeout: 255 seconds) |
| 15:52:54 | × | housemate quits (~housemate@202.7.248.67) (Quit: https://ineedsomeacidtocalmmedown.space/) |
| 15:56:43 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 264 seconds) |
| 15:57:49 | → | housemate joins (~housemate@202.7.248.67) |
| 15:59:20 | × | Psychotic1 quits (~Psychotic@65.sub-174-245-22.myvzw.com) (Ping timeout: 245 seconds) |
| 15:59:46 | → | Psychotic1 joins (~Psychotic@2600:1007:b0aa:7216:54da:2a86:8a54:a2c4) |
| 16:01:08 | → | Psychotic1_ joins (~Psychotic@2600:1007:b0aa:7216:54da:2a86:8a54:a2c4) |
| 16:01:37 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 16:01:49 | → | Psychotic1__ joins (~Psychotic@2600:1007:b0aa:7216:54da:2a86:8a54:a2c4) |
| 16:04:15 | × | Psychotic1 quits (~Psychotic@2600:1007:b0aa:7216:54da:2a86:8a54:a2c4) (Ping timeout: 246 seconds) |
| 16:05:39 | × | Psychotic1_ quits (~Psychotic@2600:1007:b0aa:7216:54da:2a86:8a54:a2c4) (Ping timeout: 246 seconds) |
| 16:07:28 | × | Psychotic1__ quits (~Psychotic@2600:1007:b0aa:7216:54da:2a86:8a54:a2c4) (Remote host closed the connection) |
| 16:11:57 | → | prdak joins (~Thunderbi@user/prdak) |
| 16:12:58 | × | prdak quits (~Thunderbi@user/prdak) (Read error: Connection reset by peer) |
| 16:13:16 | → | prdak joins (~Thunderbi@user/prdak) |
| 16:13:24 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 16:16:17 | × | prdak quits (~Thunderbi@user/prdak) (Remote host closed the connection) |
| 16:16:37 | → | prdak joins (~Thunderbi@user/prdak) |
| 16:24:59 | × | Maxdamantus quits (~Maxdamant@user/maxdamantus) (Server closed connection) |
| 16:25:15 | → | Maxdamantus joins (~Maxdamant@user/maxdamantus) |
| 16:26:19 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 16:29:44 | <EvanR> | if chromoblob goes to the oracle and comes back with a ghc which chooses the optimal implementation for String at each point in the program, and optimal conversion points. Then I want it to also work on cartesian vs polar complex numbers please |
| 16:30:11 | <EvanR> | feel free to pile on other examples |
| 16:31:28 | × | housemate quits (~housemate@202.7.248.67) (Quit: https://ineedsomeacidtocalmmedown.space/) |
| 16:33:36 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 255 seconds) |
| 16:43:02 | → | housemate joins (~housemate@202.7.248.67) |
| 16:48:54 | <ski> | @ghc |
| 16:48:54 | <lambdabot> | Can't happen |
| 16:49:10 | → | messewix joins (~jmc@user/messewix) |
| 16:49:22 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 16:49:55 | <ski> | loop@(map f) (x:xs) = f x : loop xs -- would be nice to be able to do this kind of thing |
| 16:51:16 | <ski> | (fooWith cfg)@(let cfg = defaultCfg in foo) ... = ... -- or this |
| 16:52:43 | × | st_aldini quits (~Thunderbi@136.48.46.187) (Quit: st_aldini) |
| 16:53:27 | <EvanR> | what's this @ sign |
| 16:53:36 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 246 seconds) |
| 16:54:35 | <Clint> | as-pattern |
| 16:54:59 | × | EvanR quits (~EvanR@user/evanr) (Server closed connection) |
| 16:55:24 | → | EvanR joins (~EvanR@user/evanr) |
| 16:56:29 | <ski> | > let f :: Integer -> Integer; f ?x = ?x + 1 in f (f 3) |
| 16:56:31 | <lambdabot> | <hint>:1:32: error: Expression syntax in pattern: ?x |
| 16:57:05 | <ski> | yes. the second `@' would be the generalization of and/conjunction-pattern |
| 16:58:21 | <ski> | where `let cfg = defaultCfg in foo' is a pattern that matches the input to `foo', and additionally binds `cfg' to `defaultCfg' (so that regardless of whether we use the `fooWith' or the `foo' entry point to the code, `cfg' will be in scope in the body) |
| 16:59:41 | × | fgarcia quits (~lei@user/fgarcia) (Ping timeout: 268 seconds) |
| 17:01:39 | × | misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 246 seconds) |
| 17:03:39 | × | lortabac quits (~lortabac@mx1.fracta.dev) (Server closed connection) |
| 17:03:53 | → | lortabac joins (~lortabac@mx1.fracta.dev) |
| 17:04:29 | <ski> | it would be nice to be able to say something like `(frob,barf) = (\ ?cfg -> foo,\ ?cfg -> bar) where foo :: (?cfg :: ...) => ...; foo = ..?cfg..foo..bar..; bar :: (?cfg :: ...) => ...; bar = ..?cfg..foo.bar..' (having a common "config" argument in scope, over mutual recursion, avoiding repeating it in the recursive calls) |
| 17:05:31 | <ski> | maybe there's be some version of |
| 17:05:52 | <ski> | foo@(frob cfg) = ..cfg..foo..bar.. |
| 17:06:01 | <ski> | bar@(barf cfg) = ..cfg..foo..bar.. |
| 17:06:08 | <ski> | to express this .. |
| 17:06:39 | <ski> | (issue is how to (reasonably) get both `foo' and `bar' in scope in both bodies ..) |
| 17:08:59 | × | sondr3 quits (sondr3@2a01:7e01::f03c:92ff:fe06:7664) (Server closed connection) |
| 17:09:09 | → | sondr3 joins (sondr3@2a01:7e01::f03c:92ff:fe06:7664) |
| 17:10:29 | <ski> | (for the `loop' & `map' case above, `loop' doesn't explicitly bind the `f' parameter (and so must already assume `f' already comes from somewhere), so `loop' would just be in scope in the body, and not be in scope elsewhere `map' is in scope (where `f' isn't). in the `fooWith' & `foo' case, both conjuncts does bind `cfg', so both `fooWith' and `foo' makes sense here to use in a scope where `cfg' is not bound) |
| 17:10:37 | <haskellbridge> | <ijouw> You want (f g) to implicitly use another function named g that is in scope at use site? |
| 17:11:34 | <ski> | no |
| 17:11:47 | <ski> | (this is not about dynamic scope) |
| 17:15:19 | <ski> | (it's not clear whether by `f g' you mean an expression, or a pattern, btw ..) |
| 17:16:50 | <ski> | this is about creative uses of patterns and scoping, to effect some convenience/elegance, for certain kinds of definition idioms |
| 17:18:55 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 245 seconds) |
| 17:20:59 | <ski> | (a) the `loop' and `map' case would be a way to give a *local* name for the function you're defining, applied to some prefix of the formal parameters, so that you don't need to repeat those parameters at recursive calls. this abbreviated form would naturally only be in scope inside the definition, and not elsewhere (because we would not know which value `f' would be bound to). it would be possible to use an |
| 17:21:05 | <ski> | explicit recursive call, passing some different value(s) for the prefix parameters, which would then bind the identifier (`loop') here to this *new* prefix, for that recursive call (this can e.g. be useful, if you're passing around an environment to an interpreter or type checker, mostly you want to pass along the same environment, but sometimes you want to change it) |
| 17:23:02 | <ski> | (b) sometimes you have a general version of a function, and one version specialized to passing some default value for a parameter, as exemplified by `fooWith' & `foo'. as indicated, this could be done with conjunctive patterns, and `let'-`in'-patterns |
| 17:24:14 | <haskellbridge> | <ijouw> Do you intend foo = ..?cfg..foo..bar.. to be recursive? |
| 17:25:35 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 17:25:52 | <ski> | (c) sometimes you want to do (a), but for mutually recursive functions, wanting to avoid passing around the *same* identical prefix parameters. so, i was pondering how one could possibly effect that, with a minimum of fuss. one attempt was to locally bind the respective parameters to an implicit `?cfg' (implementation detail), and then use that for the local, mutually recursive, definitions. there might be a |
| 17:25:59 | <ski> | nicer way to do it, but one would need to explain how `foo' could be in scope in the `barf' definition, and how `bar' could be in scope in the `frob' definition |
| 17:26:36 | <ski> | ijouw : yes (that's why i wrote `foo' and `bar' in `..?cfg..foo.bar..', to indicate that those three would be allowed to occur free in that body) |
| 17:27:08 | → | jmcantrell_ joins (~weechat@user/jmcantrell) |
| 17:27:37 | <haskellbridge> | <ijouw> After enabling OverloadedRecordDot my brain parses that weirdly |
| 17:27:59 | ski | prefers to pretend that extension does not exist |
| 17:30:14 | <ski> | (btw, it would perhaps look neater to say `foo where cfg = defaultCfg' in place of `let cfg = defaultCfg in foo' .. but `where' is not an expression, attaches to defining equations (and `case' branches)) |
| 17:30:17 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 248 seconds) |
| 17:34:19 | <haskellbridge> | <ijouw> Using current language, I would likely try to solve the dependency by making foo and bar a function and using liftA2 a lot and other pointfree stuff so cfg is never specified (but that will likely not make it readable). |
| 17:34:49 | <ski> | yea, that's too invasive |
| 17:35:05 | × | emaczen quits (~user@user/emaczen) (Remote host closed the connection) |
| 17:36:10 | <ski> | a somewhat related thing is the `local <decls> in <decls> end' declaration, in SML. it declares the latter declarations (between `in' and `end'), while hiding the former ones, letting them be in scope in the latter ones, but not visible elsewhere |
| 17:37:00 | <ski> | in Haskell, you often have to resort to `(foo,bar) = (myFoo,MyBar) where myFoo = ...; myBar = ...; extraDef = ...', for this, which is ugly |
| 17:37:38 | <ski> | in SML, this would be `local fun extraDef ... = ... in fun foo ... = ... and bar ... = ... end' |
| 17:38:04 | <ski> | (`fun ... and ...' is mutual recursive functions) |
| 17:38:09 | → | emaczen joins (~user@user/emaczen) |
| 17:38:19 | → | fgarcia joins (~lei@user/fgarcia) |
| 17:40:01 | <ski> | (of course, you could simply hide, not export, `extraDef', from the module in question. but it's often nice to restrict scope more, to make sure it's evident that `extraDef' isn't used elsewhere in the module. and Haskell doesn't allow nested submodules ..) |
| 17:41:22 | <EvanR> | I have to admit I'm a never nester |
| 17:41:42 | <ski> | you never define local functions in a `where' or `let' ? |
| 17:45:16 | <ski> | (.. sometimes i also want to use `if' or `case', at declaration level. `if ... then {f x = ...; g y z = ...} else {f x = ...; g y z = ...}'. having declarations as the body of the branches, conditionally defining in one of several ways (all branches have to define the same identifiers, naturally)) |
| 17:45:20 | → | tromp joins (~textual@2001:1c00:3487:1b00:7955:9591:6018:7ef9) |
| 17:45:54 | <__monty__> | I love Agda's approach to scoping, https://agda.readthedocs.io/en/latest/language/module-system.html |
| 17:47:15 | <EvanR> | ski, I do, but often it's a oneliner, and or doesn't appear indented more than 1 |
| 17:47:41 | <EvanR> | this was a joke about indentation levels rather than submodules |
| 17:48:21 | <EvanR> | putting non trivial functions inside a where clause always bites me since then I can't use it in the repl |
| 17:49:00 | <ski> | __monty__ : reminds me that in OCaml, you can not only do `M.f x (M.g y z)', but you can also say `M.(f x (g y z))', where for `M.(...)', the identifiers exported by `M' are all in scope directly in the expression `...' |
| 17:49:12 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 17:49:41 | <ski> | (iow, this is a shorter way to say `let open M in ...') |
| 17:50:42 | <ski> | EvanR : mm, yep. i recall pondering a type system that would let you access them, from an interactor / debugger |
| 17:51:25 | <haskellbridge> | <ijouw> can you do that top level? |
| 17:51:36 | <ski> | (oh, and iirc, with breakpoints in GHCi, you can access them, if you break inside such a scope) |
| 17:51:53 | <ski> | how do you mean, ijouw ? |
| 17:52:25 | <EvanR> | the power of the OOP dot |
| 17:52:26 | → | v0id_7 joins (~v0id_7@user/v0id-7:62772) |
| 17:53:00 | <ski> | well .. this is module system dot, not quite the same thing ? |
| 17:54:17 | <ski> | (typically module system have static, compile-time, resolvers. sometimes you can pass around modules at run-time, though, blurring the line a bit) |
| 17:54:59 | <ski> | (e.g. in OCaml, and Alice ML) |
| 17:56:15 | <EvanR> | it fills the same blank... single term dot stuff, which people like to latch their IDE features onto |
| 17:57:11 | <ski> | (.. i'm not too sure how common it is to be able to define (e.g. abstract) data types inside an object, with OOP, though .. which routinely happens, with modules) |
| 17:57:27 | <EvanR> | you mean inner class? |
| 17:57:42 | <EvanR> | I know you don't mean that, but that's pretty common |
| 17:59:14 | <ski> | i mean so that you can specify a functor (module function), that takes a module (with a type inside), and returns another module, with a `sharing' constraint saying that the type exported by the resulting module is the same as the type in the parameter module, so that other code can use values of one type where values of the other are expected |
| 17:59:38 | <ski> | standard module system stuff you do in the ML module system |
| 18:01:23 | <ski> | .. i'm not sure how easy it would be do express something like that, with the "module with abstract data type(s), as existentially quantified record" idiom for simulating modules, in e.g. Haskell |
| 18:02:20 | <EvanR> | unfortunate past tense did backpack have this "functor" feature? |
| 18:02:35 | <ski> | with `myFunctor :: (exists t. ..t..) -> (exists t. ..t..)', how would you ensure the two `t's are the same, *apart* from rewriting to `myFunctor :: forall t. (..t.. -> ..t..)' ? |
| 18:03:16 | <EvanR> | myFunctor :: exists t . Sig1 t -> Sig2 t |
| 18:03:17 | <EvanR> | xD |
| 18:03:24 | <EvanR> | make that forall |
| 18:03:36 | <ski> | (imagine there's a whole bunch of different abstract types, and one `t' is in a nested submodule, and perhaps the other one as well, and you'd like to not disturb all this structure, while still ensuring the two `t's are known to be equal) |
| 18:03:55 | <EvanR> | ah you called it |
| 18:04:07 | <ski> | yes |
| 18:04:59 | <ski> | (iirc, you can also add sharing constraints for whole submodules) |
| 18:05:20 | <EvanR> | so much stuff boils down to the management of scopes |
| 18:07:15 | <ski> | yea |
| 18:07:18 | <EvanR> | what's an example of a sharing constraint |
| 18:07:44 | → | wickedjargon joins (~user@208.98.208.115) |
| 18:09:08 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 18:09:22 | <__monty__> | Backpack was sold to me as bringing ML's functors to Haskell. |
| 18:11:39 | × | yahb2 quits (~yahb2@user/tomsmeding/bot/yahb2) (Server closed connection) |
| 18:12:02 | → | yahb2 joins (~yahb2@user/tomsmeding/bot/yahb2) |
| 18:12:02 | ChanServ | sets mode +v yahb2 |
| 18:12:58 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 18:13:25 | <ski> | module Set.Make : functor (Ord : OrderedType) -> S with type elt = Ord.t |
| 18:13:39 | <ski> | is one example, from OCaml, <https://ocaml.org/manual/5.4/api/Set.S.html> |
| 18:14:54 | <EvanR> | so elt is defined in ... |
| 18:15:18 | <ski> | given a parameter module `Ord', of signature `OrderedType' (equal to `sig type t val compare : t -> t -> int'), it constructs a module of signature `S' (including a type `elt' of set elements, a type `t' of sets, and various operations on sets) |
| 18:16:07 | <ski> | and the `with type elt = Ord.t' ensures that it is known to callers of `Make' that the type `elt' in the resulting module will be equal to the type `t' in the parameter module |
| 18:17:00 | <ski> | (otherwise, you would know nothing about `elt', except, perhaps, that it has a `compare' function (or any function defined in terms of that), assuming the result module exports that operation) |
| 18:17:10 | <EvanR> | ok elt is in the resulting module |
| 18:17:14 | <ski> | yes |
| 18:17:36 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 18:17:39 | <EvanR> | Set.S |
| 18:17:53 | <EvanR> | er Set |
| 18:19:55 | <ski> | here's one SML example (from lambdaProlog implementation Terzo) : |
| 18:21:00 | <ski> | functor Program (structure Lg : LOGICALS structure Lam : LAM structure Error : ERROR structure Module : MODULE structure UU : UUTILS structure IU : IU sharing type Lam.lterm = Module.lterm = IU.lterm = UU.lterm sharing type Lg.const = Module.const = Lam.const sharing type IU.tp = Lg.tp = Lam.tp = Module.tp) : PROGRAM = struct ... end |
| 18:21:29 | jmcantrell_ | is now known as jmcantrell |
| 18:21:54 | <ski> | here, the `sharing type ... = ...' constraints ensure that all the different parameter agree about the relevant types that are supposed to be the same over their interfaces/signatures |
| 18:23:30 | <ski> | EvanR : well, strictly speaking `Make(Ord)' (`Set' is a functor, a module function. `elt' is in the output/result module, constructed by this) (and the functor `Make' itself is a component of the module `Set', so `Set.Make(Ord)') .. where `Ord' is whatever parameter module you decide to use |
| 18:24:55 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 18:24:56 | → | Milan_Vanca joins (~milan@88.212.61.169) |
| 18:25:55 | <Milan_Vanca> | Hello guyz, is "let something = case of" forbiden in "do notation"? |
| 18:26:04 | <ski> | no |
| 18:26:26 | <ski> | (well, you need an expression between the `case' and `of'. assuming you just omitted that) |
| 18:26:37 | <ski> | you likely have indentation off |
| 18:27:03 | <ski> | make sure the branches after the `of' are indented more than the start of `something' |
| 18:28:01 | <Milan_Vanca> | ski: I don't know.. to me code looks good |
| 18:28:03 | <Milan_Vanca> | https://paste.tomsmeding.com/tCHM4xIg |
| 18:28:27 | <EvanR> | indent lines Left and Right more |
| 18:28:37 | <ski> | `Left' and `Right' must be indented at least three spaces more |
| 18:28:48 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 18:28:54 | <ski> | (one more than the `r' in `result') |
| 18:29:15 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 255 seconds) |
| 18:29:42 | <EvanR> | that is so much equality constraints now I'm imagining things to do with them |
| 18:29:47 | <ski> | .. also, instead of `... -> (...)', you can simply write `... -> ...' (extra brackets redundant) |
| 18:30:06 | <EvanR> | could you encode category theory |
| 18:30:14 | <Milan_Vanca> | ski: I added bracket as I thought this is root of error.. |
| 18:30:31 | <ski> | ah |
| 18:30:42 | <Milan_Vanca> | I don't understand the problem with indentation. It has one more indentaion as "let" and that should be enough |
| 18:30:48 | <ski> | no |
| 18:30:52 | <ski> | consider |
| 18:30:59 | <ski> | let result = case ... of |
| 18:31:06 | <ski> | Foo -> ... |
| 18:31:12 | <ski> | anotherResult = case ... of |
| 18:31:15 | <ski> | Foo -> ... |
| 18:31:50 | <EvanR> | Milan_Vanca, let lets you define multiple things |
| 18:31:59 | <Milan_Vanca> | At once? |
| 18:31:59 | <ski> | any line which is at the same level of indentation as `result' is assumed to start a new defining equation, inside the `let' |
| 18:32:01 | <EvanR> | yes |
| 18:32:09 | <EvanR> | let x = ... |
| 18:32:12 | <EvanR> | y = ... |
| 18:32:15 | <EvanR> | z = ... |
| 18:32:15 | <ski> | any line which is at *less* indentation than `result' ends the `let' block |
| 18:32:24 | × | PaulMartensen quits (15a119e437@2001:bc8:1210:2cd8::3bc) (Ping timeout: 245 seconds) |
| 18:32:24 | <ski> | yes |
| 18:32:46 | → | PaulMartensen joins (15a119e437@2001:bc8:1210:2cd8::3bc) |
| 18:32:59 | <ski> | for my example, you need to type |
| 18:33:05 | <ski> | let result = case ... of |
| 18:33:11 | <ski> | Foo -> ... |
| 18:33:13 | <ski> | anotherResult = case ... of |
| 18:33:15 | <ski> | Foo -> ... |
| 18:33:38 | <Milan_Vanca> | ski: :D This is ugly |
| 18:33:42 | <ski> | to make it clear when the next defining equation inside `let' starts, and then (after this), when the whole `let' block ends |
| 18:33:45 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 18:33:49 | <Milan_Vanca> | This let can define multiple things is ugly :D |
| 18:34:08 | <EvanR> | either don't try to do this case inside a let, or put the case on one line |
| 18:34:22 | <EvanR> | if you don't want to just indent more |
| 18:34:31 | × | bggd_ quits (~bgg@2a01:e0a:fd5:f510:37b0:d42d:8afb:890) (Remote host closed the connection) |
| 18:34:45 | <ski> | you *could* do |
| 18:34:48 | <ski> | let |
| 18:34:49 | <EvanR> | if you want to emphasize the case, indent all the way past the case |
| 18:34:53 | <ski> | result = case ... of |
| 18:35:00 | <ski> | Left ... -> ... |
| 18:35:04 | <ski> | Right ... -> ... |
| 18:35:27 | <__monty__> | Indentation in do-notation always trips me up. let ... in ... has no qualms with the definitions being less indented than the let. |
| 18:35:31 | <ski> | (iow, breaking line after `let', then you can indent the followin lines a little bit less) |
| 18:36:02 | <Milan_Vanca> | Yeah thy guyz now I get it. :) |
| 18:36:06 | <Milan_Vanca> | TY |
| 18:36:14 | <ski> | yea .. the block starts at the first (non-comment) token *after* the layout-introducing keyword (here `let') |
| 18:36:34 | <ski> | (in Milan_Vanca's case, the block starts at `result') |
| 18:37:20 | <ski> | (same rule holds for `of', and for `do', and `where') |
| 18:38:29 | <haskellbridge> | <ijouw> let x = y in and let x = y have same rules reguarding where x may be. Everything y must be indented more than x. |
| 18:38:39 | <probie> | If you don't want to indent, you can always just use braces |
| 18:38:40 | × | tromp quits (~textual@2001:1c00:3487:1b00:7955:9591:6018:7ef9) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:39:05 | <ski> | Milan_Vanca : btw, if you wanted to, you could factor out some common code from the two branches |
| 18:39:09 | → | wickedja` joins (~user@2605:8d80:5430:818:b927:d532:959:409c) |
| 18:39:30 | <__monty__> | But braces require semicolons, eww. |
| 18:40:58 | <probie> | Only if you want more than one thing :p |
| 18:41:03 | × | wickedjargon quits (~user@208.98.208.115) (Ping timeout: 246 seconds) |
| 18:41:39 | <ski> | let (status,result) = case eitherDecode body of |
| 18:41:59 | <Milan_Vanca> | I don't think same rules apply for where I can have where\n..something or where\n..................something |
| 18:42:02 | <ski> | Left e -> (status400,PL.pack e) |
| 18:42:15 | <ski> | Right c -> (status200,encode (increment c)) |
| 18:42:28 | <ski> | return (responseLBS status [(hContentType,hvAplicationJSON)] result) |
| 18:43:08 | <Milan_Vanca> | ski: Nicer solution.. so tuple is ok ni this case? |
| 18:43:22 | <ski> | Milan_Vanca : yes, it's same rule. `where'-block also starts at whatever column `something' is at, regardless of which column `where' is at |
| 18:43:41 | <ski> | you can always match on tuples, in `let' and `where' (and toplevel) |
| 18:44:13 | × | rncwnd quits (~quassel@2a01:4f8:221:27c6::1) (Quit: Later) |
| 18:44:33 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 18:44:49 | → | rncwnd joins (~quassel@2a01:4f8:221:27c6::1) |
| 18:45:11 | <ski> | (and on other data constructors. however, a value of tuple type can never fail to match a tuple pattern, but for data types with multiple data constructors, you can get match failure, so it's good to only match on those, in `let'/`where'/toplevel sparingly, when you're sure that they won't actually fail ..) |
| 18:45:19 | <haskellbridge> | <ijouw> counter = fmap (((s,v) -> responseLBS s [(hContentType, hvApplicationJson)] v) . ((status400,) . PL.pack ||| (status200,) . encode . increment)) . lazyRequestBody |
| 18:45:38 | <ski> | > let x:xs = [] :: [Integer] in (x,xs) |
| 18:45:40 | <lambdabot> | (*Exception: <interactive>:3:5-26: Non-exhaustive patterns in x : xs |
| 18:46:03 | <ski> | > let Nothing = Just 3 in () |
| 18:46:05 | <lambdabot> | () |
| 18:46:08 | <ski> | > let !Nothing = Just 3 in () |
| 18:46:10 | <lambdabot> | *Exception: <interactive>:3:5-21: Non-exhaustive patterns in !Nothing |
| 18:46:48 | <ski> | hah, ijouw :) |
| 18:47:05 | <haskellbridge> | <ijouw> i did not typecheck it |
| 18:47:43 | <Milan_Vanca> | ijouw do you really find this more readable? |
| 18:47:44 | <probie> | > (\xs -> let y:ys = xs in if null xs then Nothing else Just (y, ys)) [] |
| 18:47:45 | <lambdabot> | Nothing |
| 18:47:57 | <haskellbridge> | <ijouw> i usually use left to right composition |
| 18:51:18 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 18:55:45 | <haskellbridge> | <ijouw> Like so |
| 18:55:45 | <haskellbridge> | ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/ROHzIHXhlwulEzElCZCROwyR/IEURazvg-wM (5 lines) |
| 18:56:03 | <haskellbridge> | <ijouw> That prints weiredly |
| 18:56:20 | <haskellbridge> | <ijouw> Some formatting issue |
| 18:56:45 | <haskellbridge> | <ijouw> https://paste.tomsmeding.com/OUVh8TUU |
| 18:58:17 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 19:00:56 | <haskellbridge> | <ijouw> I think i messed the fmap up |
| 19:02:36 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 19:02:40 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 245 seconds) |
| 19:03:37 | → | tromp joins (~textual@2001:1c00:3487:1b00:7955:9591:6018:7ef9) |
| 19:04:07 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 19:05:06 | × | tjbc quits (~tjbc@user/fliife) (Ping timeout: 268 seconds) |
| 19:06:24 | → | tjbc joins (~tjbc@user/fliife) |
| 19:06:50 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 19:10:39 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 255 seconds) |
| 19:12:15 | × | tjbc quits (~tjbc@user/fliife) (Ping timeout: 245 seconds) |
| 19:13:43 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 19:14:20 | → | Tuplanolla joins (~Tuplanoll@88-114-89-88.elisa-laajakaista.fi) |
| 19:16:55 | → | tjbc joins (~tjbc@user/fliife) |
| 19:16:56 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 19:16:57 | × | prdak quits (~Thunderbi@user/prdak) (Ping timeout: 255 seconds) |
| 19:22:39 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 19:22:50 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 19:23:37 | → | Square3 joins (~Square@user/square) |
| 19:23:50 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 19:27:05 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 248 seconds) |
| 19:29:40 | → | Guest8708 joins (~john@user/n0w0n) |
| 19:30:27 | → | morj_away joins (~morj@user/morj) |
| 19:31:27 | × | Guest8708 quits (~john@user/n0w0n) (Client Quit) |
| 19:32:05 | → | n0w0n joins (~john@user/n0w0n) |
| 19:35:04 | → | prdak joins (~Thunderbi@user/prdak) |
| 19:39:55 | × | prdak quits (~Thunderbi@user/prdak) (Ping timeout: 264 seconds) |
| 19:43:34 | → | uli-fem joins (~uli-fem@118.210.1.123) |
| 19:47:14 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 19:47:26 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds) |
| 19:48:00 | × | uli-fem quits (~uli-fem@118.210.1.123) (Ping timeout: 255 seconds) |
| 19:49:56 | Lord_of_Life_ | is now known as Lord_of_Life |
| 19:53:50 | → | stackdroid18 joins (~stackdroi@user/stackdroid) |
| 20:08:22 | × | ctk quits (~calimero@ctkarch.org) (Changing host) |
| 20:08:22 | → | ctk joins (~calimero@user/calimeroteknik) |
| 20:11:21 | × | wickedja` quits (~user@2605:8d80:5430:818:b927:d532:959:409c) (Ping timeout: 246 seconds) |
| 20:13:15 | ctk | is now known as CalimeroTeknik |
| 20:20:10 | × | Pozyomka quits (~pyon@user/pyon) (Ping timeout: 245 seconds) |
| 20:20:35 | → | Pozyomka joins (~pyon@user/pyon) |
| 20:20:48 | × | fgarcia quits (~lei@user/fgarcia) (Ping timeout: 246 seconds) |
| 20:24:55 | × | machinedgod quits (~machinedg@d172-219-48-230.abhsia.telus.net) (Ping timeout: 264 seconds) |
| 20:31:52 | × | dtman34 quits (~dtman34@2601:447:d183:2302:b0c5:8965:1c3f:d560) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
| 20:32:13 | → | dtman34 joins (~dtman34@2601:447:d183:2302:b0c5:8965:1c3f:d560) |
| 20:36:22 | × | Square3 quits (~Square@user/square) (Ping timeout: 256 seconds) |
| 20:43:22 | → | pavonia joins (~user@user/siracusa) |
| 20:45:58 | → | Googulator88 joins (~Googulato@2a01-036d-0106-499d-5cc3-861f-fb3b-e380.pool6.digikabel.hu) |
| 20:47:34 | → | lisbeths joins (uid135845@id-135845.lymington.irccloud.com) |
| 20:50:33 | × | Googulator quits (~Googulato@2a01-036d-0106-499d-1c5a-0e4b-5795-d7e3.pool6.digikabel.hu) (Ping timeout: 272 seconds) |
| 20:53:36 | × | Milan_Vanca quits (~milan@88.212.61.169) (Quit: WeeChat 4.7.2) |
| 20:57:33 | × | takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Ping timeout: 246 seconds) |
| 20:59:44 | × | tromp quits (~textual@2001:1c00:3487:1b00:7955:9591:6018:7ef9) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:02:06 | × | kaankeskin quits (~kaankeski@user/kaankeskin) (Quit: Ping timeout (120 seconds)) |
| 21:03:09 | × | gAy_Dragon quits (A_D@libera/staff/dragon) (Quit: ZNC - https://znc.in) |
| 21:06:02 | × | morj_away quits (~morj@user/morj) (Quit: Konversation terminated!) |
| 21:06:22 | → | tromp joins (~textual@2001:1c00:3487:1b00:7955:9591:6018:7ef9) |
| 21:12:03 | → | kaankeskin joins (~kaankeski@user/kaankeskin) |
| 21:12:11 | → | A_Dragon joins (A_D@libera/staff/dragon) |
| 21:25:44 | → | misterfish joins (~misterfis@84.53.85.146) |
| 21:48:46 | × | terrorjack quits (~terrorjac@2a01:4f8:271:2d98::2) (Quit: The Lounge - https://thelounge.chat) |
| 21:50:22 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 268 seconds) |
| 21:57:17 | → | terrorjack joins (~terrorjac@static.27.101.55.162.clients.your-server.de) |
| 21:59:51 | × | tjbc quits (~tjbc@user/fliife) (Ping timeout: 255 seconds) |
| 22:02:10 | × | target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 22:07:57 | → | tjbc joins (~tjbc@user/fliife) |
| 22:23:06 | × | housemate quits (~housemate@202.7.248.67) (Quit: https://ineedsomeacidtocalmmedown.space/) |
| 22:26:31 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine) |
| 22:26:54 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 22:29:01 | × | tromp quits (~textual@2001:1c00:3487:1b00:7955:9591:6018:7ef9) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:40:09 | → | tromp joins (~textual@2001:1c00:3487:1b00:7955:9591:6018:7ef9) |
| 22:43:51 | → | wickedjargon joins (~user@208.98.208.115) |
| 22:49:54 | × | n0w0n quits (~john@user/n0w0n) (Ping timeout: 246 seconds) |
| 22:57:36 | → | arandombit joins (~arandombi@2a02:2455:8656:7100:2832:6b11:5873:83f4) |
| 22:57:36 | × | arandombit quits (~arandombi@2a02:2455:8656:7100:2832:6b11:5873:83f4) (Changing host) |
| 22:57:36 | → | arandombit joins (~arandombi@user/arandombit) |
| 22:59:36 | × | tremon quits (~tremon@83.80.159.219) (Quit: getting boxed in) |
| 22:59:41 | → | emmanuelux joins (~em@user/emmanuelux) |
| 23:03:02 | → | machinedgod joins (~machinedg@d172-219-48-230.abhsia.telus.net) |
| 23:05:37 | × | tromp quits (~textual@2001:1c00:3487:1b00:7955:9591:6018:7ef9) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 23:05:51 | → | peterbecich joins (~Thunderbi@71.84.33.135) |
| 23:06:45 | × | lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 23:07:16 | × | tjbc quits (~tjbc@user/fliife) (Quit: ZNC - https://znc.in) |
| 23:08:57 | → | tjbc joins (~tjbc@user/fliife) |
| 23:13:44 | × | wickedjargon quits (~user@208.98.208.115) (Read error: Connection reset by peer) |
| 23:16:03 | → | wickedjargon joins (~user@2605:8d80:5431:9ef7:63f8:2d43:fcf7:6716) |
| 23:19:10 | × | v0id_7 quits (~v0id_7@user/v0id-7:62772) (Quit: whatever u sick fcks) |
| 23:20:21 | × | messewix quits (~jmc@user/messewix) (Ping timeout: 246 seconds) |
| 23:20:27 | × | tjbc quits (~tjbc@user/fliife) (Quit: ZNC - https://znc.in) |
| 23:23:21 | → | tjbc joins (~tjbc@user/fliife) |
| 23:23:43 | × | tjbc quits (~tjbc@user/fliife) (Remote host closed the connection) |
| 23:24:03 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 23:26:17 | → | tjbc joins (~tjbc@user/fliife) |
| 23:27:15 | → | wickedja` joins (~user@208.98.208.115) |
| 23:28:04 | × | marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Ping timeout: 252 seconds) |
| 23:28:33 | → | marinelli joins (~weechat@gateway/tor-sasl/marinelli) |
| 23:28:45 | × | wickedjargon quits (~user@2605:8d80:5431:9ef7:63f8:2d43:fcf7:6716) (Ping timeout: 246 seconds) |
| 23:32:07 | → | Googulator12 joins (~Googulato@2a01-036d-0106-0119-3163-e164-ab4d-fc66.pool6.digikabel.hu) |
| 23:33:45 | → | tusko joins (~uwu@user/tusko) |
| 23:33:56 | <tusko> | i liek haskell |
| 23:36:29 | × | Googulator88 quits (~Googulato@2a01-036d-0106-499d-5cc3-861f-fb3b-e380.pool6.digikabel.hu) (Ping timeout: 272 seconds) |
| 23:40:58 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 23:41:06 | → | housemate joins (~housemate@202.7.248.67) |
| 23:57:59 | × | tjbc quits (~tjbc@user/fliife) (Quit: ZNC - https://znc.in) |
| 23:59:24 | → | tjbc joins (~tjbc@user/fliife) |
| 23:59:43 | × | Tuplanolla quits (~Tuplanoll@88-114-89-88.elisa-laajakaista.fi) (Quit: Leaving.) |
All times are in UTC on 2026-02-25.