2024-08-05 00:03:03 +0200 | oo_miguel | (~Thunderbi@78.10.207.46) (Ping timeout: 252 seconds) |
2024-08-05 00:04:54 +0200 | Midjak | (~MarciZ@82.66.147.146) (Quit: Leaving) |
2024-08-05 00:08:32 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-08-05 00:12:50 +0200 | zetef | (~quassel@2a02:2f00:5202:1200:3fa2:e908:b522:fa2f) |
2024-08-05 00:12:50 +0200 | zetef | (~quassel@2a02:2f00:5202:1200:3fa2:e908:b522:fa2f) (Client Quit) |
2024-08-05 00:14:23 +0200 | haskellbridge | (~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection) |
2024-08-05 00:17:35 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-08-05 00:35:34 +0200 | haskellbridge | (~hackager@syn-024-093-192-219.res.spectrum.com) |
2024-08-05 00:35:34 +0200 | ChanServ | +v haskellbridge |
2024-08-05 00:36:32 +0200 | haskellbridge | (~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection) |
2024-08-05 00:37:00 +0200 | haskellbridge | (~hackager@syn-024-093-192-219.res.spectrum.com) |
2024-08-05 00:37:00 +0200 | ChanServ | +v haskellbridge |
2024-08-05 00:37:19 +0200 | haskellbridge | (~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection) |
2024-08-05 00:37:41 +0200 | haskellbridge | (~hackager@syn-024-093-192-219.res.spectrum.com) |
2024-08-05 00:37:41 +0200 | ChanServ | +v haskellbridge |
2024-08-05 00:43:06 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-08-05 00:44:07 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2024-08-05 00:46:35 +0200 | zetef | (~quassel@2a02:2f00:5202:1200:3fa2:e908:b522:fa2f) |
2024-08-05 00:47:05 +0200 | zetef | (~quassel@2a02:2f00:5202:1200:3fa2:e908:b522:fa2f) (Client Quit) |
2024-08-05 00:50:40 +0200 | falafel | (~falafel@2a0c:5a87:3104:4c01::bfe0) |
2024-08-05 00:57:32 +0200 | hgolden | (~hgolden@2603:8000:9d00:3ed1:1ee4:1b7c:94a7:8fa7) (Remote host closed the connection) |
2024-08-05 01:02:24 +0200 | jrm | (~jrm@user/jrm) (Quit: ciao) |
2024-08-05 01:02:47 +0200 | jrm | (~jrm@user/jrm) |
2024-08-05 01:09:09 +0200 | acidjnk | (~acidjnk@p200300d6e72cfb11143f363222ce679a.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
2024-08-05 01:12:46 +0200 | ZharMeny | (~user@user/ZharMeny) (Quit: ,) |
2024-08-05 01:26:02 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds) |
2024-08-05 01:30:23 +0200 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 265 seconds) |
2024-08-05 01:31:29 +0200 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2024-08-05 01:54:31 +0200 | nunggu | (~q@user/nunggu) (Ping timeout: 260 seconds) |
2024-08-05 02:06:43 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 264 seconds) |
2024-08-05 02:23:03 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2024-08-05 02:32:26 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-08-05 02:33:58 +0200 | califax | (~califax@user/califx) |
2024-08-05 03:29:17 +0200 | falafel | (~falafel@2a0c:5a87:3104:4c01::bfe0) (Ping timeout: 265 seconds) |
2024-08-05 03:48:12 +0200 | danza | (~danza@user/danza) |
2024-08-05 04:09:22 +0200 | Inst | (~Inst@user/Inst) |
2024-08-05 04:24:44 +0200 | tabaqui | (~root@87.200.123.114) (Ping timeout: 272 seconds) |
2024-08-05 04:34:15 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
2024-08-05 04:34:54 +0200 | td_ | (~td@i5387091C.versanet.de) (Ping timeout: 276 seconds) |
2024-08-05 04:35:57 +0200 | td_ | (~td@i53870916.versanet.de) |
2024-08-05 04:55:31 +0200 | hgolden | (~hgolden@2603:8000:9d00:3ed1:1ee4:1b7c:94a7:8fa7) |
2024-08-05 04:58:43 +0200 | skyesoss | (~Thunderbi@c-73-208-45-119.hsd1.il.comcast.net) (Ping timeout: 245 seconds) |
2024-08-05 04:59:59 +0200 | danza | (~danza@user/danza) (Quit: see you soon) |
2024-08-05 05:07:33 +0200 | aforemny_ | (~aforemny@2001:9e8:6ce4:3600:74c:8890:60ce:f920) (Ping timeout: 248 seconds) |
2024-08-05 05:07:52 +0200 | aforemny | (~aforemny@2001:9e8:6cc5:7700:e5cf:3849:4594:a5ae) |
2024-08-05 05:08:25 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds) |
2024-08-05 05:10:30 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2024-08-05 05:34:58 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds) |
2024-08-05 05:35:11 +0200 | euleritian | (~euleritia@dynamic-176-006-131-200.176.6.pool.telefonica.de) |
2024-08-05 05:40:51 +0200 | lol_ | (~lol@2603:3016:1e01:b980:1aa:6452:eda4:91c6) |
2024-08-05 05:43:34 +0200 | Square | (~Square@user/square) |
2024-08-05 05:45:06 +0200 | jcarpenter2 | (~lol@2603:3016:1e01:b980:d79:f8af:5690:6860) (Ping timeout: 276 seconds) |
2024-08-05 05:52:14 +0200 | krei-se- | (~krei-se@p5085d903.dip0.t-ipconnect.de) |
2024-08-05 05:52:34 +0200 | krei-se | (~krei-se@p5085d225.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2024-08-05 06:25:58 +0200 | euleritian | (~euleritia@dynamic-176-006-131-200.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-08-05 06:26:15 +0200 | euleritian | (~euleritia@77.22.252.56) |
2024-08-05 06:34:21 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2024-08-05 06:34:56 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2024-08-05 06:59:35 +0200 | rosco | (~rosco@175.136.158.234) |
2024-08-05 07:22:54 +0200 | michalz | (~michalz@185.246.207.201) |
2024-08-05 07:26:14 +0200 | rosco | (~rosco@175.136.158.234) (Quit: Lost terminal) |
2024-08-05 07:28:17 +0200 | rosco | (~rosco@175.136.158.234) |
2024-08-05 07:29:17 +0200 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
2024-08-05 07:30:02 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2024-08-05 07:35:25 +0200 | euphores | (~SASL_euph@user/euphores) |
2024-08-05 07:37:34 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
2024-08-05 07:43:34 +0200 | euleritian | (~euleritia@77.22.252.56) (Ping timeout: 260 seconds) |
2024-08-05 07:44:30 +0200 | euleritian | (~euleritia@dynamic-176-006-131-200.176.6.pool.telefonica.de) |
2024-08-05 07:50:09 +0200 | CiaoSen | (~Jura@2a05:5800:2e2:2100:e6b9:7aff:fe80:3d03) |
2024-08-05 08:12:23 +0200 | hiredman | (~hiredman@frontier1.downey.family) |
2024-08-05 08:36:42 +0200 | sprout | (~quassel@2a02-a448-3a80-0-2c67-11c0-6e5f-59bd.fixed6.kpn.net) (Ping timeout: 276 seconds) |
2024-08-05 08:36:50 +0200 | smalltalkman | (uid545680@id-545680.hampstead.irccloud.com) |
2024-08-05 08:37:50 +0200 | sprout | (~quassel@2a02-a448-3a80-0-4450-25ff-7ca4-4590.fixed6.kpn.net) |
2024-08-05 08:40:39 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-08-05 08:55:30 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-08-05 09:00:28 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-05 09:01:42 +0200 | acidjnk | (~acidjnk@p200300d6e72cfb12697648a237574ae3.dip0.t-ipconnect.de) |
2024-08-05 09:10:08 +0200 | euleritian | (~euleritia@dynamic-176-006-131-200.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-08-05 09:10:34 +0200 | euleritian | (~euleritia@77.22.252.56) |
2024-08-05 09:23:15 +0200 | alexherbo2 | (~alexherbo@2a02-8440-320a-a642-f0fe-2631-b4f8-fe48.rev.sfr.net) |
2024-08-05 09:26:06 +0200 | dans55440 | (~danse-nr3@user/danse-nr3) |
2024-08-05 09:28:03 +0200 | alexherbo2 | (~alexherbo@2a02-8440-320a-a642-f0fe-2631-b4f8-fe48.rev.sfr.net) (Remote host closed the connection) |
2024-08-05 09:28:21 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) (Ping timeout: 248 seconds) |
2024-08-05 09:34:20 +0200 | dans55440 | (~danse-nr3@user/danse-nr3) (Remote host closed the connection) |
2024-08-05 09:34:34 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-05 09:44:55 +0200 | igorra | (~igorra@user/igorra) |
2024-08-05 09:48:40 +0200 | goroedge1 | (~Thunderbi@user/Goroedge) |
2024-08-05 09:52:02 +0200 | igorra | (~igorra@user/igorra) (Quit: Client closed) |
2024-08-05 09:53:40 +0200 | cfricke | (~cfricke@user/cfricke) |
2024-08-05 09:56:16 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-08-05 09:57:01 +0200 | igorra | (~igorra@45.137.112.1) |
2024-08-05 10:03:34 +0200 | CiaoSen | (~Jura@2a05:5800:2e2:2100:e6b9:7aff:fe80:3d03) (Ping timeout: 260 seconds) |
2024-08-05 10:08:23 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2) |
2024-08-05 10:10:29 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) |
2024-08-05 10:10:32 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2024-08-05 10:17:04 +0200 | oo_miguel | (~Thunderbi@78.10.207.46) |
2024-08-05 10:17:18 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-08-05 10:20:27 +0200 | mreh | (~matthew@host86-160-168-12.range86-160.btcentralplus.com) |
2024-08-05 10:22:29 +0200 | <mreh> | Is there a reason why associated types don't show in haddocks? |
2024-08-05 10:23:14 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-08-05 10:23:37 +0200 | <mreh> | I guess its technically implementation, like how method bodies don't show, but it's kinda annoying |
2024-08-05 10:24:28 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) (Quit: on the move) |
2024-08-05 10:25:31 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-08-05 10:40:52 +0200 | <Axman6> | I agree, I find myself always wanting to see them |
2024-08-05 10:41:16 +0200 | <Axman6> | jumping in ghci and using :kind! Foo Int works, but is a bit annoying |
2024-08-05 10:43:38 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-05 10:44:59 +0200 | gmg | (~user@user/gehmehgeh) |
2024-08-05 10:57:39 +0200 | <jackdk> | Is this one of the reasons people declare an open type family next to the class? I'd always wondered about that |
2024-08-05 10:59:45 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 252 seconds) |
2024-08-05 11:02:31 +0200 | skyesoss | (~Thunderbi@c-73-208-45-119.hsd1.il.comcast.net) |
2024-08-05 11:03:48 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
2024-08-05 11:06:17 +0200 | alexherbo2 | (~alexherbo@2a02-8440-320a-a642-4c63-95f2-dacb-f12b.rev.sfr.net) |
2024-08-05 11:11:23 +0200 | skyesoss | (~Thunderbi@c-73-208-45-119.hsd1.il.comcast.net) (Ping timeout: 255 seconds) |
2024-08-05 11:18:56 +0200 | ThePenguin | (~ThePengui@cust-95-80-24-166.csbnet.se) (Remote host closed the connection) |
2024-08-05 11:19:31 +0200 | ThePenguin | (~ThePengui@cust-95-80-24-166.csbnet.se) |
2024-08-05 11:43:24 +0200 | sawilagar | (~sawilagar@user/sawilagar) |
2024-08-05 12:00:05 +0200 | igorra | (~igorra@45.137.112.1) (Changing host) |
2024-08-05 12:00:05 +0200 | igorra | (~igorra@user/igorra) |
2024-08-05 12:03:57 +0200 | alexherbo2 | (~alexherbo@2a02-8440-320a-a642-4c63-95f2-dacb-f12b.rev.sfr.net) (Remote host closed the connection) |
2024-08-05 12:05:14 +0200 | econo_ | (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2024-08-05 12:11:59 +0200 | <stefan-__> | what options are there to update a field of a nested record using lens without knowing its exact location? for example the title of the publication with uuid 5fe9ce10-75b3-4b5d-9f77-b1b9e0a6a169 in https://gist.github.com/dozed/f96e32e796e073abab6e29847405b0f0 .. options I could think of so far: 1) search tree for uuid, takes O(n) 2) store some kind of path 3) normalize data structure (ids instead of nested values) 4) use mutable data (not available in... |
2024-08-05 12:12:04 +0200 | <stefan-__> | ... haskell) |
2024-08-05 12:13:05 +0200 | nnm- | (nnm-@play.hard.go.pro.and.dont.be.a.noob.cx) (Changing host) |
2024-08-05 12:13:05 +0200 | nnm- | (nnm-@user/nnm-) |
2024-08-05 12:14:29 +0200 | <danse-nr3> | as interesting as the question theoretically stands ... i can't picture myself in a similar situation. I guess i'd rather have a different data structure |
2024-08-05 12:15:23 +0200 | <danse-nr3> | but maybe i would because i wouldn't expect to access nested records that way easily |
2024-08-05 12:25:02 +0200 | ell | (~ellie@user/ellie) (Quit: Ping timeout (120 seconds)) |
2024-08-05 12:36:12 +0200 | rosco | (~rosco@175.136.158.234) (Quit: Lost terminal) |
2024-08-05 12:53:41 +0200 | acidjnk | (~acidjnk@p200300d6e72cfb12697648a237574ae3.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
2024-08-05 13:01:22 +0200 | tabaqui | (~root@87.200.123.114) |
2024-08-05 13:04:52 +0200 | euleritian | (~euleritia@77.22.252.56) (Read error: Connection reset by peer) |
2024-08-05 13:04:59 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-08-05 13:16:02 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) () |
2024-08-05 13:21:11 +0200 | ell | (~ellie@user/ellie) |
2024-08-05 13:26:30 +0200 | ZharMeny | (~user@user/ZharMeny) |
2024-08-05 13:28:27 +0200 | igorra | (~igorra@user/igorra) (Quit: Client closed) |
2024-08-05 13:36:29 +0200 | byte | (~byte@149.28.222.189) (Ping timeout: 260 seconds) |
2024-08-05 13:37:06 +0200 | pikajude- | (~jude@2001:19f0:ac01:373:5400:2ff:fe86:3274) |
2024-08-05 13:37:11 +0200 | pikajude | (~jude@149.28.207.64) (Ping timeout: 255 seconds) |
2024-08-05 13:39:12 +0200 | byte | (~byte@149.28.222.189) |
2024-08-05 13:39:25 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-08-05 13:40:58 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2024-08-05 13:47:12 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) |
2024-08-05 14:03:40 +0200 | rosco | (~rosco@175.136.158.234) |
2024-08-05 14:12:46 +0200 | YoungFrog | (~youngfrog@2a02:a03f:c9db:fc00:40f:34b2:83e3:2019) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in) |
2024-08-05 14:13:07 +0200 | YoungFrog | (~youngfrog@2a02:a03f:c9db:fc00:40f:34b2:83e3:2019) |
2024-08-05 14:18:29 +0200 | byte | (~byte@149.28.222.189) (Ping timeout: 260 seconds) |
2024-08-05 14:18:47 +0200 | byte | (~byte@149.28.222.189) |
2024-08-05 14:29:52 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-05 14:30:24 +0200 | mreh | (~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Quit: Lost terminal) |
2024-08-05 14:35:29 +0200 | ddellacosta | (~ddellacos@ool-44c73d29.dyn.optonline.net) (Ping timeout: 248 seconds) |
2024-08-05 14:37:36 +0200 | CiaoSen | (~Jura@2a05:5800:2e2:2100:e6b9:7aff:fe80:3d03) |
2024-08-05 14:43:52 +0200 | lukec | (9dfd4d094e@2a03:6000:1812:100::10e) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | cpli | (77fc530071@2a03:6000:1812:100::252) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | ggb | (a62ffbaf4f@2a03:6000:1812:100::3ac) (Write error: Broken pipe) |
2024-08-05 14:44:20 +0200 | filwisher | (2e6936c793@2a03:6000:1812:100::170) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | kuruczgy | (55b66dd3ae@2a03:6000:1812:100::127f) (Write error: Broken pipe) |
2024-08-05 14:44:20 +0200 | evanrelf | (3addc196af@2a03:6000:1812:100::f0) (Write error: Broken pipe) |
2024-08-05 14:44:20 +0200 | ursa-major | (114efe6c39@2a03:6000:1812:100::11f3) (Write error: Connection reset by peer) |
2024-08-05 14:44:20 +0200 | smiesner | (b0cf5acf8c@user/smiesner) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | ymherklotz | (cb2c9cfbdd@2a03:6000:1812:100::29a) (Write error: Broken pipe) |
2024-08-05 14:44:20 +0200 | sm2n | (ae95cb1267@user/sm2n) (Write error: Connection reset by peer) |
2024-08-05 14:44:20 +0200 | eso | (a0662dfd5e@2a03:6000:1812:100::1266) (Write error: Broken pipe) |
2024-08-05 14:44:20 +0200 | sus | (1b7af6299f@user/zeromomentum) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | pmk | (6afe4476a1@2a03:6000:1812:100::26d) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | 030AACUAK | (7569f027cf@2a03:6000:1812:100::e4) (Write error: Broken pipe) |
2024-08-05 14:44:20 +0200 | jakzale | (6291399afa@user/jakzale) (Write error: Broken pipe) |
2024-08-05 14:44:20 +0200 | samhh | (7569f027cf@2a03:6000:1812:100::e4) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | tok | (da65c7b04b@user/tok) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | b0o | (0e4a0bf4c9@2a03:6000:1812:100::1bf) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | jmcantrell | (644f1bed9a@user/jmcantrell) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | lucyy | (228ee8f0ce@user/lucyy) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | shreyasminocha | (51fdc93eda@user/shreyasminocha) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | lane | (809450f172@2a03:6000:1812:100::1300) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | jleightcap | (7bc4014b62@user/jleightcap) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | titibandit | (e33ffbab65@user/titibandit) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | henrytill | (e0180937c3@2a03:6000:1812:100::e8c) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | probie | (cc0b34050a@user/probie) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | Ankhers | (e99e97ef8e@2a03:6000:1812:100::2a2) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | fvr | (ef3e56ca8b@2a03:6000:1812:100::3c4) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | duncan | (c6181279e3@user/meow/duncan) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | JoelMcCracken | (5ea8252fbb@2a03:6000:1812:100::10e3) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | fluffyballoon | (45ce440a48@2a03:6000:1812:100::e2) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | bsima1 | (9d7e39c8ad@2a03:6000:1812:100::dd) (Write error: Broken pipe) |
2024-08-05 14:44:20 +0200 | alethkit | (23bd17ddc6@sourcehut/user/alethkit) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | jkoshy | (99b9359beb@user/jkoshy) (Remote host closed the connection) |
2024-08-05 14:44:20 +0200 | rselim | (ce261f06ff@user/milesrout) (Remote host closed the connection) |
2024-08-05 14:44:21 +0200 | raghavgururajan | (ea769b8000@user/raghavgururajan) (Remote host closed the connection) |
2024-08-05 14:44:21 +0200 | whereiseveryone | (206ba86c98@2a03:6000:1812:100::2e4) (Remote host closed the connection) |
2024-08-05 14:44:21 +0200 | fn_lumi | (3d621153a5@2a03:6000:1812:100::df7) (Remote host closed the connection) |
2024-08-05 14:44:21 +0200 | chaitlatte0 | (ea29c0bb16@user/chaitlatte0) (Remote host closed the connection) |
2024-08-05 14:44:21 +0200 | arcadewise | (52968ed80d@2a03:6000:1812:100::3df) (Remote host closed the connection) |
2024-08-05 14:44:21 +0200 | aniketd | (32aa4844cd@2a03:6000:1812:100::dcb) (Remote host closed the connection) |
2024-08-05 14:44:21 +0200 | akspecs | (00cc8321af@sourcehut/user/akspecs) (Remote host closed the connection) |
2024-08-05 14:44:21 +0200 | fgaz_ | (1ff9197ed6@2a03:6000:1812:100::11ea) (Remote host closed the connection) |
2024-08-05 14:44:32 +0200 | bsima1 | (9d7e39c8ad@2a03:6000:1812:100::dd) |
2024-08-05 14:44:33 +0200 | smiesner | (b0cf5acf8c@user/smiesner) |
2024-08-05 14:44:33 +0200 | pmk | (6afe4476a1@2a03:6000:1812:100::26d) |
2024-08-05 14:44:34 +0200 | filwisher | (2e6936c793@2a03:6000:1812:100::170) |
2024-08-05 14:44:34 +0200 | lane | (809450f172@2a03:6000:1812:100::1300) |
2024-08-05 14:44:35 +0200 | ggb | (a62ffbaf4f@2a03:6000:1812:100::3ac) |
2024-08-05 14:44:35 +0200 | fgaz_ | (1ff9197ed6@2a03:6000:1812:100::11ea) |
2024-08-05 14:44:35 +0200 | lukec | (9dfd4d094e@2a03:6000:1812:100::10e) |
2024-08-05 14:44:35 +0200 | kuruczgy | (55b66dd3ae@2a03:6000:1812:100::127f) |
2024-08-05 14:44:36 +0200 | jkoshy | (99b9359beb@user/jkoshy) |
2024-08-05 14:44:36 +0200 | probie | (cc0b34050a@user/probie) |
2024-08-05 14:44:37 +0200 | henrytill | (e0180937c3@2a03:6000:1812:100::e8c) |
2024-08-05 14:44:37 +0200 | eso | (a0662dfd5e@2a03:6000:1812:100::1266) |
2024-08-05 14:44:37 +0200 | whereiseveryone | (206ba86c98@2a03:6000:1812:100::2e4) |
2024-08-05 14:44:38 +0200 | evanrelf | (3addc196af@2a03:6000:1812:100::f0) |
2024-08-05 14:44:38 +0200 | Ankhers | (e99e97ef8e@2a03:6000:1812:100::2a2) |
2024-08-05 14:44:40 +0200 | arcadewise | (52968ed80d@2a03:6000:1812:100::3df) |
2024-08-05 14:44:41 +0200 | shreyasminocha | (51fdc93eda@user/shreyasminocha) |
2024-08-05 14:44:41 +0200 | chaitlatte0 | (ea29c0bb16@user/chaitlatte0) |
2024-08-05 14:44:41 +0200 | ymherklotz | (cb2c9cfbdd@2a03:6000:1812:100::29a) |
2024-08-05 14:44:41 +0200 | lucyy | (228ee8f0ce@user/lucyy) |
2024-08-05 14:44:41 +0200 | fn_lumi | (3d621153a5@2a03:6000:1812:100::df7) |
2024-08-05 14:44:42 +0200 | tok | (da65c7b04b@user/tok) |
2024-08-05 14:44:43 +0200 | samhh | (7569f027cf@2a03:6000:1812:100::e4) |
2024-08-05 14:44:43 +0200 | sm2n | (ae95cb1267@user/sm2n) |
2024-08-05 14:44:44 +0200 | fvr | (ef3e56ca8b@2a03:6000:1812:100::3c4) |
2024-08-05 14:44:44 +0200 | b0o | (0e4a0bf4c9@2a03:6000:1812:100::1bf) |
2024-08-05 14:44:44 +0200 | alethkit | (23bd17ddc6@sourcehut/user/alethkit) |
2024-08-05 14:44:46 +0200 | sus | (1b7af6299f@user/zeromomentum) |
2024-08-05 14:44:46 +0200 | jleightcap | (7bc4014b62@user/jleightcap) |
2024-08-05 14:44:46 +0200 | jakzale | (6291399afa@user/jakzale) |
2024-08-05 14:44:46 +0200 | fluffyballoon | (45ce440a48@2a03:6000:1812:100::e2) |
2024-08-05 14:44:48 +0200 | jmcantrell | (644f1bed9a@user/jmcantrell) |
2024-08-05 14:44:48 +0200 | aniketd | (32aa4844cd@2a03:6000:1812:100::dcb) |
2024-08-05 14:44:49 +0200 | ursa-major | (114efe6c39@2a03:6000:1812:100::11f3) |
2024-08-05 14:44:50 +0200 | akspecs | (00cc8321af@sourcehut/user/akspecs) |
2024-08-05 14:44:50 +0200 | duncan | (c6181279e3@user/meow/duncan) |
2024-08-05 14:44:50 +0200 | JoelMcCracken | (5ea8252fbb@2a03:6000:1812:100::10e3) |
2024-08-05 14:44:50 +0200 | rselim | (ce261f06ff@user/milesrout) |
2024-08-05 14:44:50 +0200 | raghavgururajan | (ea769b8000@user/raghavgururajan) |
2024-08-05 14:44:50 +0200 | cpli | (77fc530071@2a03:6000:1812:100::252) |
2024-08-05 14:44:51 +0200 | titibandit | (e33ffbab65@user/titibandit) |
2024-08-05 14:46:19 +0200 | samhh_ | (7569f027cf@2a03:6000:1812:100::e4) |
2024-08-05 14:51:10 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) () |
2024-08-05 14:52:42 +0200 | nunggu | (~q@user/nunggu) |
2024-08-05 14:54:01 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-08-05 14:54:35 +0200 | tabaqui | (~root@87.200.123.114) (Ping timeout: 255 seconds) |
2024-08-05 14:57:21 +0200 | nunggu | (~q@user/nunggu) (Ping timeout: 260 seconds) |
2024-08-05 15:04:01 +0200 | <Axman6> | :t template |
2024-08-05 15:04:02 +0200 | <lambdabot> | (Data s, Applicative f, Typeable a) => (a -> f a) -> s -> f s |
2024-08-05 15:04:17 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2024-08-05 15:04:27 +0200 | mreh | (~matthew@host86-160-168-12.range86-160.btcentralplus.com) |
2024-08-05 15:05:09 +0200 | <Axman6> | > (True, "Hello" Right False :: Either Int Bool, (1,2,3,True)) & partsOf template %~ map not |
2024-08-05 15:05:11 +0200 | <lambdabot> | error: |
2024-08-05 15:05:11 +0200 | <lambdabot> | • Couldn't match expected type ‘(b0 -> Either a0 b0) |
2024-08-05 15:05:11 +0200 | <lambdabot> | -> Bool -> Either Int Bool’ |
2024-08-05 15:05:33 +0200 | <Axman6> | > (True, "Hello", Right False :: Either Int Bool, (1,2,3,True)) & partsOf template %~ map not |
2024-08-05 15:05:34 +0200 | <lambdabot> | (False,"Hello",Right True,(1,2,3,False)) |
2024-08-05 15:05:52 +0200 | <Axman6> | :t partsOf template |
2024-08-05 15:05:53 +0200 | <lambdabot> | (Functor f, Data t, Typeable a) => LensLike f t t [a] [a] |
2024-08-05 15:07:08 +0200 | <Axman6> | stefan-__: does that help at all? partsOf template is an optic that finds all a's inside a t and gives you them as a list. each corresponding a will be set from the result |
2024-08-05 15:07:22 +0200 | <Axman6> | > (True, "Hello", Right False :: Either Int Bool, (1,2,3,True)) & partsOf template . each %~ toUpper |
2024-08-05 15:07:23 +0200 | <lambdabot> | (True,"HELLO",Right False,(1,2,3,True)) |
2024-08-05 15:09:24 +0200 | <Axman6> | > (True, "Hello", Right False :: Either Int Bool, (1,2,3,True)) & partsOf template . each . filtered (<'l') %~ toUpper |
2024-08-05 15:09:25 +0200 | <lambdabot> | (True,"HEllo",Right False,(1,2,3,True)) |
2024-08-05 15:10:20 +0200 | igorra | (~igorra@45.137.112.1) |
2024-08-05 15:10:31 +0200 | <mreh> | do issues with haddock go on the top level GHC gitlab group now? |
2024-08-05 15:11:29 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-05 15:11:33 +0200 | <Axman6> | so you could do something like... exampleData & partsOf template . each . _Generic . filtered (\g -> uuid d == "5fe9ce10-75b3-4b5d-9f77-b1b9e0a6a169") . title .~ "New Title" |
2024-08-05 15:11:58 +0200 | <mreh> | I guess this got left behind in the great migration https://github.com/haskell/haddock/issues/664 |
2024-08-05 15:12:08 +0200 | igorra | (~igorra@45.137.112.1) (Client Quit) |
2024-08-05 15:16:08 +0200 | <Axman6> | s/_Generic/_Publication I guess |
2024-08-05 15:16:11 +0200 | mreh | pages the gitlab admin |
2024-08-05 15:20:57 +0200 | <Axman6> | :t elemOf _1 "Hello" |
2024-08-05 15:20:58 +0200 | <lambdabot> | Field1 s s [Char] [Char] => s -> Bool |
2024-08-05 15:21:08 +0200 | ft | (~ft@p3e9bc4e7.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
2024-08-05 15:22:49 +0200 | ft | (~ft@p4fc2aa15.dip0.t-ipconnect.de) |
2024-08-05 15:29:44 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds) |
2024-08-05 15:30:21 +0200 | euleritian | (~euleritia@dynamic-176-006-150-162.176.6.pool.telefonica.de) |
2024-08-05 15:40:50 +0200 | ystael | (~ystael@user/ystael) |
2024-08-05 15:41:34 +0200 | spew | (~spew@201.141.102.132) |
2024-08-05 15:51:18 +0200 | spew | (~spew@201.141.102.132) (Read error: Connection reset by peer) |
2024-08-05 16:01:52 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) |
2024-08-05 16:04:31 +0200 | spew | (~spew@201.141.102.132) |
2024-08-05 16:06:11 +0200 | spew | (~spew@201.141.102.132) (Client Quit) |
2024-08-05 16:18:41 +0200 | hsw | (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Read error: Connection reset by peer) |
2024-08-05 16:18:44 +0200 | hsw_ | (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) |
2024-08-05 16:18:48 +0200 | euleritian | (~euleritia@dynamic-176-006-150-162.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-08-05 16:19:11 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-08-05 16:30:06 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 260 seconds) |
2024-08-05 16:30:33 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2024-08-05 16:33:18 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) () |
2024-08-05 16:38:28 +0200 | ZharMeny | (~user@user/ZharMeny) (Remote host closed the connection) |
2024-08-05 16:38:42 +0200 | ZharMeny | (~user@user/ZharMeny) |
2024-08-05 16:39:39 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 252 seconds) |
2024-08-05 16:41:28 +0200 | <stefan-__> | Axman6: yep, that would be O(n) |
2024-08-05 16:42:49 +0200 | <stefan-__> | otherwise that seems a nice way to do the traversal :) |
2024-08-05 16:47:55 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-05 16:48:27 +0200 | <stefan-__> | Axman6: this does it: tpData & template @_ @Publication . filteredBy (uuid . only [mkUuid|79015baa-c1ed-4343-9e18-78ab0e3f786a|]) . title .~ "Foo" |
2024-08-05 16:49:23 +0200 | <stefan-__> | danse-nr3: thanks for the thoughts, I might need to re-arrange the data, e.g. normalize it (as in relational databases), to avoid O(n) |
2024-08-05 16:49:29 +0200 | skyesoss | (~Thunderbi@128.135.204.35) |
2024-08-05 16:50:15 +0200 | <danse-nr3> | huh... probably wrong nick? |
2024-08-05 16:50:45 +0200 | <danse-nr3> | oh i see... sorry some time has passed :P |
2024-08-05 16:51:46 +0200 | <stefan-__> | :) |
2024-08-05 16:53:03 +0200 | oo_miguel | (~Thunderbi@78.10.207.46) (Quit: oo_miguel) |
2024-08-05 16:53:18 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
2024-08-05 16:54:27 +0200 | euleritian | (~euleritia@dynamic-176-006-150-162.176.6.pool.telefonica.de) |
2024-08-05 16:56:24 +0200 | cfricke | (~cfricke@user/cfricke) |
2024-08-05 16:56:31 +0200 | <Inst> | is it worth it to default to streaming? |
2024-08-05 17:01:23 +0200 | euleritian | (~euleritia@dynamic-176-006-150-162.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-08-05 17:01:56 +0200 | euleritian | (~euleritia@dynamic-176-006-150-162.176.6.pool.telefonica.de) |
2024-08-05 17:02:50 +0200 | goroedge1 | (~Thunderbi@user/Goroedge) (Ping timeout: 255 seconds) |
2024-08-05 17:05:14 +0200 | euleritian | (~euleritia@dynamic-176-006-150-162.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-08-05 17:05:32 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-08-05 17:07:06 +0200 | <haskellbridge> | <mauke> we're all streaming down here |
2024-08-05 17:09:04 +0200 | <Inst> | sorry, tbh, i'm just haskrastinating (looking up new concepts / libraries, or coding for fun instead of doing what you're supposed to be doing) |
2024-08-05 17:09:18 +0200 | <Inst> | I never quite mastered streaming libraries, made a run for streamly (which is higher performance than streaming) |
2024-08-05 17:10:04 +0200 | <Inst> | i'm just curious if using streaming for everything, even when you're not streaming, is valid |
2024-08-05 17:10:18 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) (Remote host closed the connection) |
2024-08-05 17:10:44 +0200 | JuanDaugherty | guesses prolly not |
2024-08-05 17:10:51 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-08-05 17:10:51 +0200 | <EvanR> | a stream of 1 |
2024-08-05 17:16:29 +0200 | doyougnu- | (~doyougnu@syn-045-046-170-068.res.spectrum.com) |
2024-08-05 17:16:30 +0200 | doyougnu | (~doyougnu@syn-045-046-170-068.res.spectrum.com) (Ping timeout: 244 seconds) |
2024-08-05 17:18:39 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-05 17:18:39 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-08-05 17:19:02 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-08-05 17:20:54 +0200 | falafel | (~falafel@2a0c:5a87:3104:4c01::bfe0) |
2024-08-05 17:21:32 +0200 | <Inst> | S.repeat 1 :: Stream (Of Int) [] () |
2024-08-05 17:26:18 +0200 | dans55945 | (~danse-nr3@user/danse-nr3) |
2024-08-05 17:28:29 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) (Ping timeout: 252 seconds) |
2024-08-05 17:31:19 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 264 seconds) |
2024-08-05 17:32:07 +0200 | <monochrom> | Ironically I say yes because if you ask that question then your "everything" has an unsaid boundary that allows using streaming. |
2024-08-05 17:32:36 +0200 | <monochrom> | The same way "can I use Turing machines for everything?" the answer is yes for your limited imagination of "everything". |
2024-08-05 17:32:54 +0200 | <monochrom> | You can also use Haskell for everything. >:D |
2024-08-05 17:33:24 +0200 | <Inst> | technically if you believe in using everything in C, you can just inline-C everything provided you're willing to pay the Haskell RTS penalty |
2024-08-05 17:33:28 +0200 | <c_wraith> | objection! you can't use turing machines for programs that receive input at run time! |
2024-08-05 17:33:56 +0200 | <Inst> | /s/using everything in C/using C for everything |
2024-08-05 17:34:02 +0200 | <monochrom> | That was heresy until even Knuth's time. >:) |
2024-08-05 17:35:14 +0200 | <Inst> | Why do streaming libraries provide functions to use streams as list substitutes? |
2024-08-05 17:35:22 +0200 | <dolio> | c_wraith: You can use type-2 Turing machines. |
2024-08-05 17:36:01 +0200 | <c_wraith> | yeah, there are lots of extensions to Turing machines that can be tweaked until what they do is indistinguishable from taking input at run time |
2024-08-05 17:36:29 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-08-05 17:36:39 +0200 | <dolio> | You can do it with regular Turing machines, too. You just have to change your protocol for using them. |
2024-08-05 17:37:14 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-08-05 17:38:46 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
2024-08-05 17:39:54 +0200 | <Inst> | i guess the real question is, are there use cases (besides microprojects) wherein using System.IO lazy IO functions is superior to using a streaming library for IO actions? |
2024-08-05 17:41:07 +0200 | <dolio> | Any project where most of the work isn't reading a giant amount of data, and you don't want to deal with a baroque streaming library. |
2024-08-05 17:41:27 +0200 | <dolio> | Like, you don't need to use a streaming library to parse your config file. |
2024-08-05 17:42:34 +0200 | <dans55945> | streaming and functional reactive fit quite well within haskell's abstractions anyways so that shouldn't be a dilemma |
2024-08-05 17:43:34 +0200 | <dans55945> | a lot of logic can probably be ported eventually without many changes |
2024-08-05 17:43:35 +0200 | <dolio> | I don't think any streaming library is even close to being as nice as just `readFile` and associated stuff if the latter gets the job done. |
2024-08-05 17:43:50 +0200 | <Inst> | why readFile over readFile'? |
2024-08-05 17:43:52 +0200 | abyxq | (~abyxq@user/abyxq) |
2024-08-05 17:44:10 +0200 | <Inst> | other than not having to import System.IO (readFile') and typing the extra apostrophe? |
2024-08-05 17:45:00 +0200 | <dans55945> | that's like asking ... why strict rather than non-strict. As about streaming, it depends |
2024-08-05 17:46:49 +0200 | <Inst> | in the trivial readFile config case, it implies that you're valuing minimizing headaches, in which case having to consider that the handle could remain open and block a second use is a headache |
2024-08-05 17:47:19 +0200 | <dolio> | Second use of what? |
2024-08-05 17:47:49 +0200 | <Inst> | of the config file |
2024-08-05 17:47:49 +0200 | <dans55945> | on the other hand if the file is huge and you find what you need at the beginning, you saved yourself a lot of memory and time |
2024-08-05 17:48:24 +0200 | <dolio> | When is this actually a headache? |
2024-08-05 17:50:28 +0200 | tt12310978324 | (~tt1231@2603:6010:8700:4a81:219f:50d3:618a:a6ee) |
2024-08-05 17:50:41 +0200 | tt1231097832 | (~tt1231@2603:6010:8700:4a81:219f:50d3:618a:a6ee) (Ping timeout: 248 seconds) |
2024-08-05 17:50:42 +0200 | tt12310978324 | tt1231097832 |
2024-08-05 17:54:58 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-08-05 17:55:07 +0200 | dans55945 | (~danse-nr3@user/danse-nr3) (Remote host closed the connection) |
2024-08-05 17:55:22 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-05 17:55:41 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-08-05 17:56:53 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2) |
2024-08-05 18:05:05 +0200 | Inst | (~Inst@user/Inst) (Ping timeout: 265 seconds) |
2024-08-05 18:06:32 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 265 seconds) |
2024-08-05 18:10:52 +0200 | <monochrom> | Perhaps it was my fault bringing up "limited imagination". :) |
2024-08-05 18:11:01 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
2024-08-05 18:11:46 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-08-05 18:14:41 +0200 | <monochrom> | Limited imagination is aka focus. Focus is a good thing. |
2024-08-05 18:16:28 +0200 | sefidel | (~sefidel@user/sefidel) (Remote host closed the connection) |
2024-08-05 18:18:16 +0200 | sefidel | (~sefidel@user/sefidel) |
2024-08-05 18:26:47 +0200 | <dolio> | My point is, having a lot of code has nothing to do with this issue. The reasons why something like readFile might be adequate and preferred if you're just writing something quick could easily hold for an individual piece of a project with 1 billion lines of code. |
2024-08-05 18:27:10 +0200 | <danse-nr3> | agreed |
2024-08-05 18:27:50 +0200 | <dolio> | You have to consider what particular thing you're doing at the moment, not whether you're a 'big project' or not. |
2024-08-05 18:28:37 +0200 | <danse-nr3> | in fact these days i hoped to work on a small experiment that yet needed streaming |
2024-08-05 18:28:47 +0200 | <dolio> | Yeah, that can happen, too. |
2024-08-05 18:29:02 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) |
2024-08-05 18:37:18 +0200 | falafel | (~falafel@2a0c:5a87:3104:4c01::bfe0) (Ping timeout: 276 seconds) |
2024-08-05 18:38:12 +0200 | smalltalkman | (uid545680@id-545680.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2024-08-05 18:45:21 +0200 | spew | (~spew@201.141.102.132) |
2024-08-05 18:45:45 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2024-08-05 18:48:23 +0200 | tabaqui | (~root@87.200.123.114) |
2024-08-05 18:51:36 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
2024-08-05 18:54:20 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
2024-08-05 18:57:35 +0200 | spew | (~spew@201.141.102.132) (Quit: spew) |
2024-08-05 18:57:48 +0200 | spew | (~spew@201.141.102.132) |
2024-08-05 19:09:37 +0200 | mreh | (~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Ping timeout: 248 seconds) |
2024-08-05 19:15:32 +0200 | nhar | (~noah@c-73-43-99-194.hsd1.ga.comcast.net) |
2024-08-05 19:18:57 +0200 | spew | (~spew@201.141.102.132) (Quit: spew) |
2024-08-05 19:19:44 +0200 | <nhar> | so I've implemented a hindley-milner type system...now I need to test it. Does anyone have any recommendations on how to test a type system implementation? (specificially HM?) |
2024-08-05 19:20:12 +0200 | <dolio> | Write some programs. |
2024-08-05 19:20:50 +0200 | <ncf> | write a hindler-milner type checker inside your hindley-milner type checker |
2024-08-05 19:21:18 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-08-05 19:22:19 +0200 | <nhar> | @ncf - could you expand on this? I'm new to type systems in general... |
2024-08-05 19:22:19 +0200 | <lambdabot> | Maybe you meant: unpf rc bf |
2024-08-05 19:24:12 +0200 | <danse-nr3> | you embarked on an ambitious task nhar |
2024-08-05 19:24:42 +0200 | <mauke> | :t let f0 x = \f -> f x; f1 x = f0 (f0 x); f2 x = f1 (f1 x); f3 x = f2 (f2 x); f4 x = f3 (f3 x) in f4 |
2024-08-05 19:24:43 +0200 | <lambdabot> | t1 -> (((((((((((((((((((((((((((((((t1 -> t2) -> t2) -> t3) -> t3) -> t4) -> t4) -> t5) -> t5) -> t6) -> t6) -> t7) -> t7) -> t8) -> t8) -> t9) -> t9) -> t10) -> t10) -> t11) -> t11) -> t12) -> t12) |
2024-08-05 19:24:43 +0200 | <lambdabot> | -> t13) -> t13) -> t14) -> t14) -> t15) -> t15) -> t16) -> t16) -> t17) -> t17 |
2024-08-05 19:25:12 +0200 | <danse-nr3> | ghosh mauke you wanted to make ASCII art? |
2024-08-05 19:25:19 +0200 | <nhar> | @danse-nr3 Thanks! Using an effect system and recursion-schemes made the implementation a bit easier |
2024-08-05 19:25:20 +0200 | <lambdabot> | Unknown command, try @list |
2024-08-05 19:25:37 +0200 | <danse-nr3> | no need for @ in IRC nhar, that causes the errors |
2024-08-05 19:25:59 +0200 | <nhar> | cool - is there any other std? |
2024-08-05 19:26:44 +0200 | <danse-nr3> | huh... i bet you get your nick highlighted when i just type it without prefixes or postfixes. Ask in #libera if you are new to this |
2024-08-05 19:27:07 +0200 | <glguy> | nhar, just use normal writing conventions when you're addressing someone. |
2024-08-05 19:28:40 +0200 | rosco | (~rosco@175.136.158.234) (Quit: Lost terminal) |
2024-08-05 19:29:35 +0200 | <nhar> | thanks! |
2024-08-05 19:30:42 +0200 | <nhar> | so..about testing HM...I'm a bit confused by ncf's comment... |
2024-08-05 19:31:33 +0200 | <glguy> | What about it? |
2024-08-05 19:32:11 +0200 | abyxq | (~abyxq@user/abyxq) (Quit: leaving) |
2024-08-05 19:32:35 +0200 | <nhar> | what does it mean to write a type checker inside a type checker? |
2024-08-05 19:32:51 +0200 | <glguy> | Type checkers type check programs. a program you could write is a typechecker. |
2024-08-05 19:33:13 +0200 | <glguy> | To test your type checker you'll need to write some programs to run it on |
2024-08-05 19:33:29 +0200 | micro | (~micro@user/micro) (Ping timeout: 260 seconds) |
2024-08-05 19:33:31 +0200 | <nhar> | oh...what if my target language doesn't support recursion? |
2024-08-05 19:33:46 +0200 | <glguy> | then don't write programs that need recusion when you test it |
2024-08-05 19:34:34 +0200 | <nhar> | ah, so I would just write a bunch of adhoc ASTs where I know the type and then make sure the infered type matches the type I know? |
2024-08-05 19:35:18 +0200 | micro | (~micro@user/micro) |
2024-08-05 19:35:22 +0200 | <nhar> | if that's the case is there a "cleaner" way? |
2024-08-05 19:35:51 +0200 | <ncf> | alternative trollish answer: don't test it, prove it correct |
2024-08-05 19:36:56 +0200 | <danse-nr3> | =D |
2024-08-05 19:37:04 +0200 | <nhar> | ncf, could you point me to some resources on how to do that? The wikipedia page is a bit dense for me |
2024-08-05 19:37:54 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds) |
2024-08-05 19:38:23 +0200 | euleritian | (~euleritia@dynamic-176-006-150-162.176.6.pool.telefonica.de) |
2024-08-05 19:39:13 +0200 | danse-nr3 | sales face |
2024-08-05 19:39:44 +0200 | <danse-nr3> | why getting that many headhaches nhar, when you could simply be using Haskell! =D |
2024-08-05 19:41:54 +0200 | <nhar> | I am! lol! :D |
2024-08-05 19:42:31 +0200 | <danse-nr3> | but you don't want to use its typesystem |
2024-08-05 19:43:25 +0200 | Ellenor | (~Ellenor@invictus.wa.us.umbrellix.net) (Ping timeout: 252 seconds) |
2024-08-05 19:43:45 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-08-05 19:44:48 +0200 | krei-se- | (~krei-se@p5085d903.dip0.t-ipconnect.de) (Quit: ZNC 1.9.1 - https://znc.in) |
2024-08-05 19:45:19 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-08-05 19:46:57 +0200 | <nhar> | I don't follow, danse-nr3...are you implying that I use HOAS? |
2024-08-05 19:48:48 +0200 | <haskellbridge> | <thirdofmay18081814goya> any book on writing compilers in haskell? |
2024-08-05 19:49:28 +0200 | <danse-nr3> | oh don't mind me nhar, i am not that knowledgeable in type systems, was trying to figure the context of the problem |
2024-08-05 19:50:10 +0200 | Ellenor | (~Ellenor@invictus.wa.us.umbrellix.net) |
2024-08-05 19:50:52 +0200 | <nhar> | Ah! Well I would be happy to give it! I'm creating a new language (for fun) and I want to learn the HM type system. I've implemented the HM type inference algorithm and now I'm ready to write tests for it |
2024-08-05 19:51:49 +0200 | <danse-nr3> | makes sense. Did you consider property tests? |
2024-08-05 19:51:59 +0200 | <nhar> | And I don't want to write a bunch of random programs to test the inference algorithm because that doesn't seem to be a very all-encompassing way to catch bugs |
2024-08-05 19:52:12 +0200 | <nhar> | I have started to (using Hedgehog) |
2024-08-05 19:52:47 +0200 | <nhar> | the properties I'm writing correspond to those listed in the formal specification for the inference algorithm |
2024-08-05 19:52:47 +0200 | krei-se | (~krei-se@p5085d903.dip0.t-ipconnect.de) |
2024-08-05 19:53:04 +0200 | <ncf> | the nature of testing is coming up with a bunch of random test cases |
2024-08-05 19:53:26 +0200 | <ncf> | or having a computer do that for you |
2024-08-05 19:54:19 +0200 | <danse-nr3> | well, being a bit more informed helps keeping (specific) case testing sane, but yeah some randomicity helps |
2024-08-05 19:55:55 +0200 | <nhar> | yeah, i've gone down that trail. Where I am getting stuck is in generating terms and their corresponding types |
2024-08-05 19:57:15 +0200 | <nhar> | my first approach was to use GHC.Generics to generate random types and then inhabit them, infer the term and check that a substitution exists between the infered type and the generated type |
2024-08-05 19:57:46 +0200 | <nhar> | but inhabiting random types (especially lambda terms) seemed like a lot of extra work |
2024-08-05 19:58:42 +0200 | <danse-nr3> | stupid question: did you peek at how GHC does that? |
2024-08-05 19:59:51 +0200 | <nhar> | oh gorsh did I try...that codebase is...well, huge... |
2024-08-05 19:59:53 +0200 | <ncf> | you could look at something like djinn https://hackage.haskell.org/package/djinn |
2024-08-05 20:00:33 +0200 | acidjnk | (~acidjnk@p200300d6e72cfb12697648a237574ae3.dip0.t-ipconnect.de) |
2024-08-05 20:02:07 +0200 | <geekosaur> | djinn's a bit too simple-minded. https://github.com/lspitzner/exference maybe |
2024-08-05 20:02:41 +0200 | danse-nr3 | [always found philip glass somewhat recursive philipglass.bandcamp.com/album/philip-glass-the-complete-piano-etudes] |
2024-08-05 20:03:26 +0200 | <nhar> | thanks geekosaur!...and ncf! |
2024-08-05 20:04:44 +0200 | hiredman | (~hiredman@frontier1.downey.family) (Quit: leaving) |
2024-08-05 20:05:17 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2024-08-05 20:07:23 +0200 | hiredman | (~hiredman@frontier1.downey.family) |
2024-08-05 20:10:52 +0200 | target_i | (~target_i@user/target-i/x-6023099) |
2024-08-05 20:12:57 +0200 | spew | (~spew@201.141.102.132) |
2024-08-05 20:14:29 +0200 | <monochrom> | GHC uses something like OutsideIn(X), which is way ahead of HM. |
2024-08-05 20:17:42 +0200 | <monochrom> | (\f g x -> f (g x)) (\f g x -> f (g x)) (\f g x -> f (g x)) is always a fun example. :) |
2024-08-05 20:18:26 +0200 | <danse-nr3> | that the y combinator? |
2024-08-05 20:18:42 +0200 | <monochrom> | If you have let-generalization, then "let c = (\f g x -> f (g x)) in c c c" |
2024-08-05 20:18:48 +0200 | <dolio> | (.) (.) (.) |
2024-08-05 20:19:26 +0200 | <monochrom> | Maybe I'll put it on the exam! |
2024-08-05 20:19:42 +0200 | <danse-nr3> | sshhht |
2024-08-05 20:20:15 +0200 | <nhar> | monochrom which university do you teach at? |
2024-08-05 20:20:27 +0200 | <monochrom> | U of Toronto Scarborough |
2024-08-05 20:21:58 +0200 | <monochrom> | My question 2 in https://www.cs.utoronto.ca/~trebla/CSCC24-2024-Summer/a3/cscc24-2024-5-a3.pdf is also a good example if your system supports the list type and recursive let. |
2024-08-05 20:23:59 +0200 | <nhar> | thanks! I used your post on type inference you sent me to write my implementation (and a heavy borrow from typing haskell in haskell by Jones) |
2024-08-05 20:24:21 +0200 | <monochrom> | I think I borrowd much from typing haskell in haskell, too. |
2024-08-05 20:25:57 +0200 | <nhar> | nice, I used recursion-schemes to simplify/optimize his algorithm ...it's a pretty fun exercise! |
2024-08-05 20:31:01 +0200 | califax | (~califax@user/califx) (Ping timeout: 260 seconds) |
2024-08-05 20:31:20 +0200 | califax | (~califax@user/califx) |
2024-08-05 20:32:28 +0200 | danse-nr3 | sighs |
2024-08-05 20:32:46 +0200 | <danse-nr3> | i'm so behind in haskell exercises |
2024-08-05 20:33:23 +0200 | <danse-nr3> | wanted to experiment with list fusion but it's been stalling for months |
2024-08-05 20:33:45 +0200 | <nhar> | what kind of fusion are you looking at? |
2024-08-05 20:34:17 +0200 | <c_wraith> | Pretty sure that's Z, not Y |
2024-08-05 20:34:33 +0200 | <monochrom> | Don't worry, it took me forever to learn GHC.Generics, Yoneda lemma, or induction in Lean. :) (Recursion is truly a rabbit hole, you know...) |
2024-08-05 20:34:54 +0200 | <c_wraith> | I still don't know the yoneda lemma. I just know the coyoneda type. |
2024-08-05 20:34:57 +0200 | <danse-nr3> | "list fusion"? I only know one kind. It's interesting to experiment with it, had fun starting but didn't have time to finalise... i am hopeful winter will help, who knows |
2024-08-05 20:36:08 +0200 | <haskellbridge> | <Bowuigi> There are like 3 kinds: Deforestation, hylomorphism fusion and law application |
2024-08-05 20:36:15 +0200 | mreh | (~matthew@host86-160-168-12.range86-160.btcentralplus.com) |
2024-08-05 20:36:17 +0200 | <danse-nr3> | oops |
2024-08-05 20:36:22 +0200 | <haskellbridge> | <Bowuigi> The last two are way more general tho AFAIK |
2024-08-05 20:36:52 +0200 | <monochrom> | In the Haskell version, the Yoneda lemma just says that (forall x. (A -> x) -> F x) is in bijection with F A, where F is a functor. IIRC the yoneda type is the LHS, (forall x. (A -> x) -> F x). |
2024-08-05 20:38:12 +0200 | <monochrom> | as opposed to the coyoneda type which is existential instead. |
2024-08-05 20:40:05 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-08-05 20:40:14 +0200 | Square | (~Square@user/square) (Ping timeout: 265 seconds) |
2024-08-05 20:43:39 +0200 | <nhar> | what's really fun is to see how the Yoneda is related to Kan extensions in Haskell. |
2024-08-05 20:43:52 +0200 | <nhar> | took me forever to grok Yoneda though... |
2024-08-05 20:43:59 +0200 | <nhar> | and kan extensions... |
2024-08-05 20:45:31 +0200 | <nhar> | monochrom, I'm curious...what does the academic landscape look like nowadays w.r.t Functional Programming and Category Theory? I looked at graduate programs a while back but couldn't find enough motivation to commit - that and I couldn't think of a reasonable research topic |
2024-08-05 20:49:02 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) (Quit: have a nice evening) |
2024-08-05 20:49:05 +0200 | spew | (~spew@201.141.102.132) (Read error: Connection reset by peer) |
2024-08-05 20:51:39 +0200 | darkstardevx | (~darkstard@50.53.3.2) (Remote host closed the connection) |
2024-08-05 20:52:00 +0200 | darkstardevx | (~darkstard@50.53.3.2) |
2024-08-05 21:00:55 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-08-05 21:08:54 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-08-05 21:20:38 +0200 | qeef | (~qeef@138-169-143-94.cust.centrio.cz) |
2024-08-05 21:31:34 +0200 | rvalue | (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
2024-08-05 21:32:11 +0200 | rvalue | (~rvalue@user/rvalue) |
2024-08-05 21:35:51 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-08-05 21:36:49 +0200 | cfricke | (~cfricke@user/cfricke) |
2024-08-05 21:37:11 +0200 | rvalue | (~rvalue@user/rvalue) (Remote host closed the connection) |
2024-08-05 21:38:56 +0200 | cfricke | (~cfricke@user/cfricke) (Client Quit) |
2024-08-05 21:42:35 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-08-05 21:44:52 +0200 | anttih_ | (~anttih@user/anttih-:66400) |
2024-08-05 21:45:28 +0200 | rvalue | (~rvalue@user/rvalue) |
2024-08-05 21:45:52 +0200 | anttih_ | (~anttih@user/anttih-:66400) (Quit: The Lounge - https://thelounge.chat) |
2024-08-05 21:48:18 +0200 | <nhar> | :q |
2024-08-05 21:48:20 +0200 | nhar | (~noah@c-73-43-99-194.hsd1.ga.comcast.net) (Quit: leaving) |
2024-08-05 21:48:36 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
2024-08-05 21:52:39 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2024-08-05 21:56:13 +0200 | <monochrom> | They are still a niche. |
2024-08-05 21:59:50 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds) |
2024-08-05 22:04:01 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 248 seconds) |
2024-08-05 22:06:13 +0200 | <Franciman> | monochrom: maybe where you live lol |
2024-08-05 22:06:31 +0200 | <Franciman> | also still? |
2024-08-05 22:06:46 +0200 | <Franciman> | It is not so accurate, the thing is that nowadays most energies are poured in artificial intelligence |
2024-08-05 22:06:57 +0200 | <Franciman> | which ate everything else |
2024-08-05 22:07:25 +0200 | <monochrom> | I have not seen a year when there was no fad eating everything else. |
2024-08-05 22:07:55 +0200 | <monochrom> | In my grad school days it was automatic parallelization. |
2024-08-05 22:08:16 +0200 | <c_wraith> | at least we got some cool stuff like data-parallel languages out of that |
2024-08-05 22:08:16 +0200 | <Rembane> | monochrom: Sounds fun, I suppose it didn't work? |
2024-08-05 22:09:21 +0200 | <darkling> | I'm sure there's useful bits of it knocking around in GPU implementations. and the like. |
2024-08-05 22:10:14 +0200 | <monochrom> | The empirical outcome was it didn't work. But I am wondering whether the reason is it fundamentally must not work or the incidental kind of people who went into the fad did not learn formal methods. |
2024-08-05 22:10:46 +0200 | <monochrom> | But empirically they only did relatively naive things if you ask someone in formal methods. |
2024-08-05 22:12:46 +0200 | <Rembane> | Oh well. I hope they didn't put too much time into it. |
2024-08-05 22:14:23 +0200 | <monochrom> | Oh you know how academia works. They put a lot of time into it, but they got their rewards: a paper mill industry that propelled the lot of them into publication stardom. |
2024-08-05 22:15:49 +0200 | <Franciman> | monochrom: lol sure why not |
2024-08-05 22:16:07 +0200 | <Franciman> | anyways re: automatic parallelization |
2024-08-05 22:16:19 +0200 | <Franciman> | have you checked papadumitriou's work on chain logic programs? |
2024-08-05 22:16:22 +0200 | <Franciman> | it's quite damn neat! |
2024-08-05 22:16:42 +0200 | <Franciman> | they find a nifty characterization of which logic chain programs are parallelizable and which are not |
2024-08-05 22:16:53 +0200 | <Franciman> | also re: automatic parallelization. AGAIN you are talking about your very local experience |
2024-08-05 22:17:03 +0200 | Kryder | (~Kryder@90.201.223.82) |
2024-08-05 22:17:05 +0200 | <EvanR> | neat. damn neat. And statistics |
2024-08-05 22:17:14 +0200 | <Franciman> | wait |
2024-08-05 22:17:50 +0200 | <Franciman> | https://dl.acm.org/doi/abs/10.1145/153724.153752 |
2024-08-05 22:17:52 +0200 | <Franciman> | here it is |
2024-08-05 22:20:05 +0200 | Kryder_ | (~Kryder@90.201.223.82) (Ping timeout: 248 seconds) |
2024-08-05 22:21:33 +0200 | <Rembane> | \o/ Evening reading! \o/ |
2024-08-05 22:26:28 +0200 | euleritian | (~euleritia@dynamic-176-006-150-162.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-08-05 22:26:46 +0200 | euleritian | (~euleritia@ip5f5ad3cc.dynamic.kabel-deutschland.de) |
2024-08-05 22:43:19 +0200 | euleritian | (~euleritia@ip5f5ad3cc.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds) |
2024-08-05 22:43:36 +0200 | euleritian | (~euleritia@dynamic-176-006-150-162.176.6.pool.telefonica.de) |
2024-08-05 22:44:32 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2024-08-05 22:51:42 +0200 | tomku | (~tomku@user/tomku) (Ping timeout: 265 seconds) |
2024-08-05 22:51:56 +0200 | tomku | (~tomku@user/tomku) |
2024-08-05 22:52:32 +0200 | falafel | (~falafel@2a0c:5a87:3104:4c01::bfe0) |
2024-08-05 22:55:29 +0200 | <haskellbridge> | <thirdofmay18081814goya> any material on writing compilers in haskell? |
2024-08-05 23:02:06 +0200 | hgolden_ | (~hgolden@2603:8000:9d00:3ed1:1ee4:1b7c:94a7:8fa7) |
2024-08-05 23:02:21 +0200 | <Franciman> | EvanR: have you checked the paper? |
2024-08-05 23:04:39 +0200 | hgolden | (~hgolden@2603:8000:9d00:3ed1:1ee4:1b7c:94a7:8fa7) (Ping timeout: 252 seconds) |
2024-08-05 23:13:11 +0200 | spew | (~spew@201.141.102.132) |
2024-08-05 23:34:40 +0200 | michalz | (~michalz@185.246.207.201) (Remote host closed the connection) |
2024-08-05 23:36:19 +0200 | <monochrom> | I think Appel's "modern compiler implementation in ML" is close enough to doing it in Haskell. |
2024-08-05 23:39:35 +0200 | <mauke> | it gets easier if your source language is brainfuck |
2024-08-05 23:41:12 +0200 | CiaoSen | (~Jura@2a05:5800:2e2:2100:e6b9:7aff:fe80:3d03) (Ping timeout: 272 seconds) |
2024-08-05 23:45:55 +0200 | target_i | (~target_i@user/target-i/x-6023099) (Quit: leaving) |
2024-08-05 23:46:52 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) |
2024-08-05 23:48:08 +0200 | <haskellbridge> | <thirdofmay18081814goya> monochrom: thanks for the recommendation! |
2024-08-05 23:53:44 +0200 | ddellacosta | (~ddellacos@ool-44c73d29.dyn.optonline.net) |
2024-08-05 23:54:33 +0200 | <dolio> | Don't accidentally buy the Java version. |