2024/08/05

2024-08-05 00:03:03 +0200oo_miguel(~Thunderbi@78.10.207.46) (Ping timeout: 252 seconds)
2024-08-05 00:04:54 +0200Midjak(~MarciZ@82.66.147.146) (Quit: Leaving)
2024-08-05 00:08:32 +0200JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-08-05 00:12:50 +0200zetef(~quassel@2a02:2f00:5202:1200:3fa2:e908:b522:fa2f)
2024-08-05 00:12:50 +0200zetef(~quassel@2a02:2f00:5202:1200:3fa2:e908:b522:fa2f) (Client Quit)
2024-08-05 00:14:23 +0200haskellbridge(~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection)
2024-08-05 00:17:35 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-08-05 00:35:34 +0200haskellbridge(~hackager@syn-024-093-192-219.res.spectrum.com)
2024-08-05 00:35:34 +0200ChanServ+v haskellbridge
2024-08-05 00:36:32 +0200haskellbridge(~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection)
2024-08-05 00:37:00 +0200haskellbridge(~hackager@syn-024-093-192-219.res.spectrum.com)
2024-08-05 00:37:00 +0200ChanServ+v haskellbridge
2024-08-05 00:37:19 +0200haskellbridge(~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection)
2024-08-05 00:37:41 +0200haskellbridge(~hackager@syn-024-093-192-219.res.spectrum.com)
2024-08-05 00:37:41 +0200ChanServ+v haskellbridge
2024-08-05 00:43:06 +0200machinedgod(~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 +0200zetef(~quassel@2a02:2f00:5202:1200:3fa2:e908:b522:fa2f)
2024-08-05 00:47:05 +0200zetef(~quassel@2a02:2f00:5202:1200:3fa2:e908:b522:fa2f) (Client Quit)
2024-08-05 00:50:40 +0200falafel(~falafel@2a0c:5a87:3104:4c01::bfe0)
2024-08-05 00:57:32 +0200hgolden(~hgolden@2603:8000:9d00:3ed1:1ee4:1b7c:94a7:8fa7) (Remote host closed the connection)
2024-08-05 01:02:24 +0200jrm(~jrm@user/jrm) (Quit: ciao)
2024-08-05 01:02:47 +0200jrm(~jrm@user/jrm)
2024-08-05 01:09:09 +0200acidjnk(~acidjnk@p200300d6e72cfb11143f363222ce679a.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2024-08-05 01:12:46 +0200ZharMeny(~user@user/ZharMeny) (Quit: ,)
2024-08-05 01:26:02 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds)
2024-08-05 01:30:23 +0200sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 265 seconds)
2024-08-05 01:31:29 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-08-05 01:54:31 +0200nunggu(~q@user/nunggu) (Ping timeout: 260 seconds)
2024-08-05 02:06:43 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 264 seconds)
2024-08-05 02:23:03 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-08-05 02:32:26 +0200califax(~califax@user/califx) (Remote host closed the connection)
2024-08-05 02:33:58 +0200califax(~califax@user/califx)
2024-08-05 03:29:17 +0200falafel(~falafel@2a0c:5a87:3104:4c01::bfe0) (Ping timeout: 265 seconds)
2024-08-05 03:48:12 +0200danza(~danza@user/danza)
2024-08-05 04:09:22 +0200Inst(~Inst@user/Inst)
2024-08-05 04:24:44 +0200tabaqui(~root@87.200.123.114) (Ping timeout: 272 seconds)
2024-08-05 04:34:15 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-08-05 04:34:54 +0200td_(~td@i5387091C.versanet.de) (Ping timeout: 276 seconds)
2024-08-05 04:35:57 +0200td_(~td@i53870916.versanet.de)
2024-08-05 04:55:31 +0200hgolden(~hgolden@2603:8000:9d00:3ed1:1ee4:1b7c:94a7:8fa7)
2024-08-05 04:58:43 +0200skyesoss(~Thunderbi@c-73-208-45-119.hsd1.il.comcast.net) (Ping timeout: 245 seconds)
2024-08-05 04:59:59 +0200danza(~danza@user/danza) (Quit: see you soon)
2024-08-05 05:07:33 +0200aforemny_(~aforemny@2001:9e8:6ce4:3600:74c:8890:60ce:f920) (Ping timeout: 248 seconds)
2024-08-05 05:07:52 +0200aforemny(~aforemny@2001:9e8:6cc5:7700:e5cf:3849:4594:a5ae)
2024-08-05 05:08:25 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
2024-08-05 05:10:30 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2024-08-05 05:34:58 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
2024-08-05 05:35:11 +0200euleritian(~euleritia@dynamic-176-006-131-200.176.6.pool.telefonica.de)
2024-08-05 05:40:51 +0200lol_(~lol@2603:3016:1e01:b980:1aa:6452:eda4:91c6)
2024-08-05 05:43:34 +0200Square(~Square@user/square)
2024-08-05 05:45:06 +0200jcarpenter2(~lol@2603:3016:1e01:b980:d79:f8af:5690:6860) (Ping timeout: 276 seconds)
2024-08-05 05:52:14 +0200krei-se-(~krei-se@p5085d903.dip0.t-ipconnect.de)
2024-08-05 05:52:34 +0200krei-se(~krei-se@p5085d225.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2024-08-05 06:25:58 +0200euleritian(~euleritia@dynamic-176-006-131-200.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-08-05 06:26:15 +0200euleritian(~euleritia@77.22.252.56)
2024-08-05 06:34:21 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2024-08-05 06:34:56 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-08-05 06:59:35 +0200rosco(~rosco@175.136.158.234)
2024-08-05 07:22:54 +0200michalz(~michalz@185.246.207.201)
2024-08-05 07:26:14 +0200rosco(~rosco@175.136.158.234) (Quit: Lost terminal)
2024-08-05 07:28:17 +0200rosco(~rosco@175.136.158.234)
2024-08-05 07:29:17 +0200euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-08-05 07:30:02 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-08-05 07:35:25 +0200euphores(~SASL_euph@user/euphores)
2024-08-05 07:37:34 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
2024-08-05 07:43:34 +0200euleritian(~euleritia@77.22.252.56) (Ping timeout: 260 seconds)
2024-08-05 07:44:30 +0200euleritian(~euleritia@dynamic-176-006-131-200.176.6.pool.telefonica.de)
2024-08-05 07:50:09 +0200CiaoSen(~Jura@2a05:5800:2e2:2100:e6b9:7aff:fe80:3d03)
2024-08-05 08:12:23 +0200hiredman(~hiredman@frontier1.downey.family)
2024-08-05 08:36:42 +0200sprout(~quassel@2a02-a448-3a80-0-2c67-11c0-6e5f-59bd.fixed6.kpn.net) (Ping timeout: 276 seconds)
2024-08-05 08:36:50 +0200smalltalkman(uid545680@id-545680.hampstead.irccloud.com)
2024-08-05 08:37:50 +0200sprout(~quassel@2a02-a448-3a80-0-4450-25ff-7ca4-4590.fixed6.kpn.net)
2024-08-05 08:40:39 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-08-05 08:55:30 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-08-05 09:00:28 +0200danse-nr3(~danse-nr3@user/danse-nr3)
2024-08-05 09:01:42 +0200acidjnk(~acidjnk@p200300d6e72cfb12697648a237574ae3.dip0.t-ipconnect.de)
2024-08-05 09:10:08 +0200euleritian(~euleritia@dynamic-176-006-131-200.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-08-05 09:10:34 +0200euleritian(~euleritia@77.22.252.56)
2024-08-05 09:23:15 +0200alexherbo2(~alexherbo@2a02-8440-320a-a642-f0fe-2631-b4f8-fe48.rev.sfr.net)
2024-08-05 09:26:06 +0200dans55440(~danse-nr3@user/danse-nr3)
2024-08-05 09:28:03 +0200alexherbo2(~alexherbo@2a02-8440-320a-a642-f0fe-2631-b4f8-fe48.rev.sfr.net) (Remote host closed the connection)
2024-08-05 09:28:21 +0200danse-nr3(~danse-nr3@user/danse-nr3) (Ping timeout: 248 seconds)
2024-08-05 09:34:20 +0200dans55440(~danse-nr3@user/danse-nr3) (Remote host closed the connection)
2024-08-05 09:34:34 +0200danse-nr3(~danse-nr3@user/danse-nr3)
2024-08-05 09:44:55 +0200igorra(~igorra@user/igorra)
2024-08-05 09:48:40 +0200goroedge1(~Thunderbi@user/Goroedge)
2024-08-05 09:52:02 +0200igorra(~igorra@user/igorra) (Quit: Client closed)
2024-08-05 09:53:40 +0200cfricke(~cfricke@user/cfricke)
2024-08-05 09:56:16 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-08-05 09:57:01 +0200igorra(~igorra@45.137.112.1)
2024-08-05 10:03:34 +0200CiaoSen(~Jura@2a05:5800:2e2:2100:e6b9:7aff:fe80:3d03) (Ping timeout: 260 seconds)
2024-08-05 10:08:23 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2)
2024-08-05 10:10:29 +0200JuanDaugherty(~juan@user/JuanDaugherty)
2024-08-05 10:10:32 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2024-08-05 10:17:04 +0200oo_miguel(~Thunderbi@78.10.207.46)
2024-08-05 10:17:18 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-08-05 10:20:27 +0200mreh(~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 +0200sord937(~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 +0200danse-nr3(~danse-nr3@user/danse-nr3) (Quit: on the move)
2024-08-05 10:25:31 +0200JuanDaugherty(~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 +0200danse-nr3(~danse-nr3@user/danse-nr3)
2024-08-05 10:44:59 +0200gmg(~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 +0200L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 252 seconds)
2024-08-05 11:02:31 +0200skyesoss(~Thunderbi@c-73-208-45-119.hsd1.il.comcast.net)
2024-08-05 11:03:48 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2024-08-05 11:06:17 +0200alexherbo2(~alexherbo@2a02-8440-320a-a642-4c63-95f2-dacb-f12b.rev.sfr.net)
2024-08-05 11:11:23 +0200skyesoss(~Thunderbi@c-73-208-45-119.hsd1.il.comcast.net) (Ping timeout: 255 seconds)
2024-08-05 11:18:56 +0200ThePenguin(~ThePengui@cust-95-80-24-166.csbnet.se) (Remote host closed the connection)
2024-08-05 11:19:31 +0200ThePenguin(~ThePengui@cust-95-80-24-166.csbnet.se)
2024-08-05 11:43:24 +0200sawilagar(~sawilagar@user/sawilagar)
2024-08-05 12:00:05 +0200igorra(~igorra@45.137.112.1) (Changing host)
2024-08-05 12:00:05 +0200igorra(~igorra@user/igorra)
2024-08-05 12:03:57 +0200alexherbo2(~alexherbo@2a02-8440-320a-a642-4c63-95f2-dacb-f12b.rev.sfr.net) (Remote host closed the connection)
2024-08-05 12:05:14 +0200econo_(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 +0200nnm-(nnm-@play.hard.go.pro.and.dont.be.a.noob.cx) (Changing host)
2024-08-05 12:13:05 +0200nnm-(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 +0200ell(~ellie@user/ellie) (Quit: Ping timeout (120 seconds))
2024-08-05 12:36:12 +0200rosco(~rosco@175.136.158.234) (Quit: Lost terminal)
2024-08-05 12:53:41 +0200acidjnk(~acidjnk@p200300d6e72cfb12697648a237574ae3.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2024-08-05 13:01:22 +0200tabaqui(~root@87.200.123.114)
2024-08-05 13:04:52 +0200euleritian(~euleritia@77.22.252.56) (Read error: Connection reset by peer)
2024-08-05 13:04:59 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-08-05 13:16:02 +0200danse-nr3(~danse-nr3@user/danse-nr3) ()
2024-08-05 13:21:11 +0200ell(~ellie@user/ellie)
2024-08-05 13:26:30 +0200ZharMeny(~user@user/ZharMeny)
2024-08-05 13:28:27 +0200igorra(~igorra@user/igorra) (Quit: Client closed)
2024-08-05 13:36:29 +0200byte(~byte@149.28.222.189) (Ping timeout: 260 seconds)
2024-08-05 13:37:06 +0200pikajude-(~jude@2001:19f0:ac01:373:5400:2ff:fe86:3274)
2024-08-05 13:37:11 +0200pikajude(~jude@149.28.207.64) (Ping timeout: 255 seconds)
2024-08-05 13:39:12 +0200byte(~byte@149.28.222.189)
2024-08-05 13:39:25 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-08-05 13:40:58 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2024-08-05 13:47:12 +0200JuanDaugherty(~juan@user/JuanDaugherty)
2024-08-05 14:03:40 +0200rosco(~rosco@175.136.158.234)
2024-08-05 14:12:46 +0200YoungFrog(~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 +0200YoungFrog(~youngfrog@2a02:a03f:c9db:fc00:40f:34b2:83e3:2019)
2024-08-05 14:18:29 +0200byte(~byte@149.28.222.189) (Ping timeout: 260 seconds)
2024-08-05 14:18:47 +0200byte(~byte@149.28.222.189)
2024-08-05 14:29:52 +0200danse-nr3(~danse-nr3@user/danse-nr3)
2024-08-05 14:30:24 +0200mreh(~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Quit: Lost terminal)
2024-08-05 14:35:29 +0200ddellacosta(~ddellacos@ool-44c73d29.dyn.optonline.net) (Ping timeout: 248 seconds)
2024-08-05 14:37:36 +0200CiaoSen(~Jura@2a05:5800:2e2:2100:e6b9:7aff:fe80:3d03)
2024-08-05 14:43:52 +0200lukec(9dfd4d094e@2a03:6000:1812:100::10e) (Remote host closed the connection)
2024-08-05 14:44:20 +0200cpli(77fc530071@2a03:6000:1812:100::252) (Remote host closed the connection)
2024-08-05 14:44:20 +0200ggb(a62ffbaf4f@2a03:6000:1812:100::3ac) (Write error: Broken pipe)
2024-08-05 14:44:20 +0200filwisher(2e6936c793@2a03:6000:1812:100::170) (Remote host closed the connection)
2024-08-05 14:44:20 +0200kuruczgy(55b66dd3ae@2a03:6000:1812:100::127f) (Write error: Broken pipe)
2024-08-05 14:44:20 +0200evanrelf(3addc196af@2a03:6000:1812:100::f0) (Write error: Broken pipe)
2024-08-05 14:44:20 +0200ursa-major(114efe6c39@2a03:6000:1812:100::11f3) (Write error: Connection reset by peer)
2024-08-05 14:44:20 +0200smiesner(b0cf5acf8c@user/smiesner) (Remote host closed the connection)
2024-08-05 14:44:20 +0200ymherklotz(cb2c9cfbdd@2a03:6000:1812:100::29a) (Write error: Broken pipe)
2024-08-05 14:44:20 +0200sm2n(ae95cb1267@user/sm2n) (Write error: Connection reset by peer)
2024-08-05 14:44:20 +0200eso(a0662dfd5e@2a03:6000:1812:100::1266) (Write error: Broken pipe)
2024-08-05 14:44:20 +0200sus(1b7af6299f@user/zeromomentum) (Remote host closed the connection)
2024-08-05 14:44:20 +0200pmk(6afe4476a1@2a03:6000:1812:100::26d) (Remote host closed the connection)
2024-08-05 14:44:20 +0200030AACUAK(7569f027cf@2a03:6000:1812:100::e4) (Write error: Broken pipe)
2024-08-05 14:44:20 +0200jakzale(6291399afa@user/jakzale) (Write error: Broken pipe)
2024-08-05 14:44:20 +0200samhh(7569f027cf@2a03:6000:1812:100::e4) (Remote host closed the connection)
2024-08-05 14:44:20 +0200tok(da65c7b04b@user/tok) (Remote host closed the connection)
2024-08-05 14:44:20 +0200b0o(0e4a0bf4c9@2a03:6000:1812:100::1bf) (Remote host closed the connection)
2024-08-05 14:44:20 +0200jmcantrell(644f1bed9a@user/jmcantrell) (Remote host closed the connection)
2024-08-05 14:44:20 +0200lucyy(228ee8f0ce@user/lucyy) (Remote host closed the connection)
2024-08-05 14:44:20 +0200shreyasminocha(51fdc93eda@user/shreyasminocha) (Remote host closed the connection)
2024-08-05 14:44:20 +0200lane(809450f172@2a03:6000:1812:100::1300) (Remote host closed the connection)
2024-08-05 14:44:20 +0200jleightcap(7bc4014b62@user/jleightcap) (Remote host closed the connection)
2024-08-05 14:44:20 +0200titibandit(e33ffbab65@user/titibandit) (Remote host closed the connection)
2024-08-05 14:44:20 +0200henrytill(e0180937c3@2a03:6000:1812:100::e8c) (Remote host closed the connection)
2024-08-05 14:44:20 +0200probie(cc0b34050a@user/probie) (Remote host closed the connection)
2024-08-05 14:44:20 +0200Ankhers(e99e97ef8e@2a03:6000:1812:100::2a2) (Remote host closed the connection)
2024-08-05 14:44:20 +0200fvr(ef3e56ca8b@2a03:6000:1812:100::3c4) (Remote host closed the connection)
2024-08-05 14:44:20 +0200duncan(c6181279e3@user/meow/duncan) (Remote host closed the connection)
2024-08-05 14:44:20 +0200JoelMcCracken(5ea8252fbb@2a03:6000:1812:100::10e3) (Remote host closed the connection)
2024-08-05 14:44:20 +0200fluffyballoon(45ce440a48@2a03:6000:1812:100::e2) (Remote host closed the connection)
2024-08-05 14:44:20 +0200bsima1(9d7e39c8ad@2a03:6000:1812:100::dd) (Write error: Broken pipe)
2024-08-05 14:44:20 +0200alethkit(23bd17ddc6@sourcehut/user/alethkit) (Remote host closed the connection)
2024-08-05 14:44:20 +0200jkoshy(99b9359beb@user/jkoshy) (Remote host closed the connection)
2024-08-05 14:44:20 +0200rselim(ce261f06ff@user/milesrout) (Remote host closed the connection)
2024-08-05 14:44:21 +0200raghavgururajan(ea769b8000@user/raghavgururajan) (Remote host closed the connection)
2024-08-05 14:44:21 +0200whereiseveryone(206ba86c98@2a03:6000:1812:100::2e4) (Remote host closed the connection)
2024-08-05 14:44:21 +0200fn_lumi(3d621153a5@2a03:6000:1812:100::df7) (Remote host closed the connection)
2024-08-05 14:44:21 +0200chaitlatte0(ea29c0bb16@user/chaitlatte0) (Remote host closed the connection)
2024-08-05 14:44:21 +0200arcadewise(52968ed80d@2a03:6000:1812:100::3df) (Remote host closed the connection)
2024-08-05 14:44:21 +0200aniketd(32aa4844cd@2a03:6000:1812:100::dcb) (Remote host closed the connection)
2024-08-05 14:44:21 +0200akspecs(00cc8321af@sourcehut/user/akspecs) (Remote host closed the connection)
2024-08-05 14:44:21 +0200fgaz_(1ff9197ed6@2a03:6000:1812:100::11ea) (Remote host closed the connection)
2024-08-05 14:44:32 +0200bsima1(9d7e39c8ad@2a03:6000:1812:100::dd)
2024-08-05 14:44:33 +0200smiesner(b0cf5acf8c@user/smiesner)
2024-08-05 14:44:33 +0200pmk(6afe4476a1@2a03:6000:1812:100::26d)
2024-08-05 14:44:34 +0200filwisher(2e6936c793@2a03:6000:1812:100::170)
2024-08-05 14:44:34 +0200lane(809450f172@2a03:6000:1812:100::1300)
2024-08-05 14:44:35 +0200ggb(a62ffbaf4f@2a03:6000:1812:100::3ac)
2024-08-05 14:44:35 +0200fgaz_(1ff9197ed6@2a03:6000:1812:100::11ea)
2024-08-05 14:44:35 +0200lukec(9dfd4d094e@2a03:6000:1812:100::10e)
2024-08-05 14:44:35 +0200kuruczgy(55b66dd3ae@2a03:6000:1812:100::127f)
2024-08-05 14:44:36 +0200jkoshy(99b9359beb@user/jkoshy)
2024-08-05 14:44:36 +0200probie(cc0b34050a@user/probie)
2024-08-05 14:44:37 +0200henrytill(e0180937c3@2a03:6000:1812:100::e8c)
2024-08-05 14:44:37 +0200eso(a0662dfd5e@2a03:6000:1812:100::1266)
2024-08-05 14:44:37 +0200whereiseveryone(206ba86c98@2a03:6000:1812:100::2e4)
2024-08-05 14:44:38 +0200evanrelf(3addc196af@2a03:6000:1812:100::f0)
2024-08-05 14:44:38 +0200Ankhers(e99e97ef8e@2a03:6000:1812:100::2a2)
2024-08-05 14:44:40 +0200arcadewise(52968ed80d@2a03:6000:1812:100::3df)
2024-08-05 14:44:41 +0200shreyasminocha(51fdc93eda@user/shreyasminocha)
2024-08-05 14:44:41 +0200chaitlatte0(ea29c0bb16@user/chaitlatte0)
2024-08-05 14:44:41 +0200ymherklotz(cb2c9cfbdd@2a03:6000:1812:100::29a)
2024-08-05 14:44:41 +0200lucyy(228ee8f0ce@user/lucyy)
2024-08-05 14:44:41 +0200fn_lumi(3d621153a5@2a03:6000:1812:100::df7)
2024-08-05 14:44:42 +0200tok(da65c7b04b@user/tok)
2024-08-05 14:44:43 +0200samhh(7569f027cf@2a03:6000:1812:100::e4)
2024-08-05 14:44:43 +0200sm2n(ae95cb1267@user/sm2n)
2024-08-05 14:44:44 +0200fvr(ef3e56ca8b@2a03:6000:1812:100::3c4)
2024-08-05 14:44:44 +0200b0o(0e4a0bf4c9@2a03:6000:1812:100::1bf)
2024-08-05 14:44:44 +0200alethkit(23bd17ddc6@sourcehut/user/alethkit)
2024-08-05 14:44:46 +0200sus(1b7af6299f@user/zeromomentum)
2024-08-05 14:44:46 +0200jleightcap(7bc4014b62@user/jleightcap)
2024-08-05 14:44:46 +0200jakzale(6291399afa@user/jakzale)
2024-08-05 14:44:46 +0200fluffyballoon(45ce440a48@2a03:6000:1812:100::e2)
2024-08-05 14:44:48 +0200jmcantrell(644f1bed9a@user/jmcantrell)
2024-08-05 14:44:48 +0200aniketd(32aa4844cd@2a03:6000:1812:100::dcb)
2024-08-05 14:44:49 +0200ursa-major(114efe6c39@2a03:6000:1812:100::11f3)
2024-08-05 14:44:50 +0200akspecs(00cc8321af@sourcehut/user/akspecs)
2024-08-05 14:44:50 +0200duncan(c6181279e3@user/meow/duncan)
2024-08-05 14:44:50 +0200JoelMcCracken(5ea8252fbb@2a03:6000:1812:100::10e3)
2024-08-05 14:44:50 +0200rselim(ce261f06ff@user/milesrout)
2024-08-05 14:44:50 +0200raghavgururajan(ea769b8000@user/raghavgururajan)
2024-08-05 14:44:50 +0200cpli(77fc530071@2a03:6000:1812:100::252)
2024-08-05 14:44:51 +0200titibandit(e33ffbab65@user/titibandit)
2024-08-05 14:46:19 +0200samhh_(7569f027cf@2a03:6000:1812:100::e4)
2024-08-05 14:51:10 +0200danse-nr3(~danse-nr3@user/danse-nr3) ()
2024-08-05 14:52:42 +0200nunggu(~q@user/nunggu)
2024-08-05 14:54:01 +0200JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-08-05 14:54:35 +0200tabaqui(~root@87.200.123.114) (Ping timeout: 255 seconds)
2024-08-05 14:57:21 +0200nunggu(~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 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2024-08-05 15:04:27 +0200mreh(~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 +0200igorra(~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 +0200danse-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 +0200igorra(~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 +0200mrehpages 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 +0200ft(~ft@p3e9bc4e7.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2024-08-05 15:22:49 +0200ft(~ft@p4fc2aa15.dip0.t-ipconnect.de)
2024-08-05 15:29:44 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
2024-08-05 15:30:21 +0200euleritian(~euleritia@dynamic-176-006-150-162.176.6.pool.telefonica.de)
2024-08-05 15:40:50 +0200ystael(~ystael@user/ystael)
2024-08-05 15:41:34 +0200spew(~spew@201.141.102.132)
2024-08-05 15:51:18 +0200spew(~spew@201.141.102.132) (Read error: Connection reset by peer)
2024-08-05 16:01:52 +0200JuanDaugherty(~juan@user/JuanDaugherty)
2024-08-05 16:04:31 +0200spew(~spew@201.141.102.132)
2024-08-05 16:06:11 +0200spew(~spew@201.141.102.132) (Client Quit)
2024-08-05 16:18:41 +0200hsw(~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 +0200hsw_(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
2024-08-05 16:18:48 +0200euleritian(~euleritia@dynamic-176-006-150-162.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-08-05 16:19:11 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-08-05 16:30:06 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 260 seconds)
2024-08-05 16:30:33 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-08-05 16:33:18 +0200danse-nr3(~danse-nr3@user/danse-nr3) ()
2024-08-05 16:38:28 +0200ZharMeny(~user@user/ZharMeny) (Remote host closed the connection)
2024-08-05 16:38:42 +0200ZharMeny(~user@user/ZharMeny)
2024-08-05 16:39:39 +0200cfricke(~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 +0200danse-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 +0200skyesoss(~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 +0200oo_miguel(~Thunderbi@78.10.207.46) (Quit: oo_miguel)
2024-08-05 16:53:18 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2024-08-05 16:54:27 +0200euleritian(~euleritia@dynamic-176-006-150-162.176.6.pool.telefonica.de)
2024-08-05 16:56:24 +0200cfricke(~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 +0200euleritian(~euleritia@dynamic-176-006-150-162.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-08-05 17:01:56 +0200euleritian(~euleritia@dynamic-176-006-150-162.176.6.pool.telefonica.de)
2024-08-05 17:02:50 +0200goroedge1(~Thunderbi@user/Goroedge) (Ping timeout: 255 seconds)
2024-08-05 17:05:14 +0200euleritian(~euleritia@dynamic-176-006-150-162.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-08-05 17:05:32 +0200euleritian(~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 +0200danse-nr3(~danse-nr3@user/danse-nr3) (Remote host closed the connection)
2024-08-05 17:10:44 +0200JuanDaughertyguesses prolly not
2024-08-05 17:10:51 +0200JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-08-05 17:10:51 +0200 <EvanR> a stream of 1
2024-08-05 17:16:29 +0200doyougnu-(~doyougnu@syn-045-046-170-068.res.spectrum.com)
2024-08-05 17:16:30 +0200doyougnu(~doyougnu@syn-045-046-170-068.res.spectrum.com) (Ping timeout: 244 seconds)
2024-08-05 17:18:39 +0200danse-nr3(~danse-nr3@user/danse-nr3)
2024-08-05 17:18:39 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-08-05 17:19:02 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-08-05 17:20:54 +0200falafel(~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 +0200dans55945(~danse-nr3@user/danse-nr3)
2024-08-05 17:28:29 +0200danse-nr3(~danse-nr3@user/danse-nr3) (Ping timeout: 252 seconds)
2024-08-05 17:31:19 +0200cfricke(~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 +0200euleritian(~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 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-08-05 17:38:46 +0200kuribas(~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 +0200abyxq(~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 +0200tt12310978324(~tt1231@2603:6010:8700:4a81:219f:50d3:618a:a6ee)
2024-08-05 17:50:41 +0200tt1231097832(~tt1231@2603:6010:8700:4a81:219f:50d3:618a:a6ee) (Ping timeout: 248 seconds)
2024-08-05 17:50:42 +0200tt12310978324tt1231097832
2024-08-05 17:54:58 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-08-05 17:55:07 +0200dans55945(~danse-nr3@user/danse-nr3) (Remote host closed the connection)
2024-08-05 17:55:22 +0200danse-nr3(~danse-nr3@user/danse-nr3)
2024-08-05 17:55:41 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-08-05 17:56:53 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2)
2024-08-05 18:05:05 +0200Inst(~Inst@user/Inst) (Ping timeout: 265 seconds)
2024-08-05 18:06:32 +0200machinedgod(~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 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2024-08-05 18:11:46 +0200euleritian(~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 +0200sefidel(~sefidel@user/sefidel) (Remote host closed the connection)
2024-08-05 18:18:16 +0200sefidel(~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 +0200JuanDaugherty(~juan@user/JuanDaugherty)
2024-08-05 18:37:18 +0200falafel(~falafel@2a0c:5a87:3104:4c01::bfe0) (Ping timeout: 276 seconds)
2024-08-05 18:38:12 +0200smalltalkman(uid545680@id-545680.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2024-08-05 18:45:21 +0200spew(~spew@201.141.102.132)
2024-08-05 18:45:45 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2024-08-05 18:48:23 +0200tabaqui(~root@87.200.123.114)
2024-08-05 18:51:36 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
2024-08-05 18:54:20 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net)
2024-08-05 18:57:35 +0200spew(~spew@201.141.102.132) (Quit: spew)
2024-08-05 18:57:48 +0200spew(~spew@201.141.102.132)
2024-08-05 19:09:37 +0200mreh(~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Ping timeout: 248 seconds)
2024-08-05 19:15:32 +0200nhar(~noah@c-73-43-99-194.hsd1.ga.comcast.net)
2024-08-05 19:18:57 +0200spew(~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 +0200tromp(~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 +0200rosco(~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 +0200abyxq(~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 +0200micro(~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 +0200micro(~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 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds)
2024-08-05 19:38:23 +0200euleritian(~euleritia@dynamic-176-006-150-162.176.6.pool.telefonica.de)
2024-08-05 19:39:13 +0200danse-nr3sales 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 +0200Ellenor(~Ellenor@invictus.wa.us.umbrellix.net) (Ping timeout: 252 seconds)
2024-08-05 19:43:45 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-08-05 19:44:48 +0200krei-se-(~krei-se@p5085d903.dip0.t-ipconnect.de) (Quit: ZNC 1.9.1 - https://znc.in)
2024-08-05 19:45:19 +0200JuanDaugherty(~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 +0200Ellenor(~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 +0200krei-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 +0200acidjnk(~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 +0200danse-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 +0200hiredman(~hiredman@frontier1.downey.family) (Quit: leaving)
2024-08-05 20:05:17 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2024-08-05 20:07:23 +0200hiredman(~hiredman@frontier1.downey.family)
2024-08-05 20:10:52 +0200target_i(~target_i@user/target-i/x-6023099)
2024-08-05 20:12:57 +0200spew(~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 +0200califax(~califax@user/califx) (Ping timeout: 260 seconds)
2024-08-05 20:31:20 +0200califax(~califax@user/califx)
2024-08-05 20:32:28 +0200danse-nr3sighs
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 +0200mreh(~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 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-08-05 20:40:14 +0200Square(~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 +0200danse-nr3(~danse-nr3@user/danse-nr3) (Quit: have a nice evening)
2024-08-05 20:49:05 +0200spew(~spew@201.141.102.132) (Read error: Connection reset by peer)
2024-08-05 20:51:39 +0200darkstardevx(~darkstard@50.53.3.2) (Remote host closed the connection)
2024-08-05 20:52:00 +0200darkstardevx(~darkstard@50.53.3.2)
2024-08-05 21:00:55 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-08-05 21:08:54 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-08-05 21:20:38 +0200qeef(~qeef@138-169-143-94.cust.centrio.cz)
2024-08-05 21:31:34 +0200rvalue(~rvalue@user/rvalue) (Read error: Connection reset by peer)
2024-08-05 21:32:11 +0200rvalue(~rvalue@user/rvalue)
2024-08-05 21:35:51 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-08-05 21:36:49 +0200cfricke(~cfricke@user/cfricke)
2024-08-05 21:37:11 +0200rvalue(~rvalue@user/rvalue) (Remote host closed the connection)
2024-08-05 21:38:56 +0200cfricke(~cfricke@user/cfricke) (Client Quit)
2024-08-05 21:42:35 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-08-05 21:44:52 +0200anttih_(~anttih@user/anttih-:66400)
2024-08-05 21:45:28 +0200rvalue(~rvalue@user/rvalue)
2024-08-05 21:45:52 +0200anttih_(~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 +0200nhar(~noah@c-73-43-99-194.hsd1.ga.comcast.net) (Quit: leaving)
2024-08-05 21:48:36 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-08-05 21:52:39 +0200sord937(~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 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds)
2024-08-05 22:04:01 +0200machinedgod(~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 +0200Kryder(~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 +0200Kryder_(~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 +0200euleritian(~euleritia@dynamic-176-006-150-162.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-08-05 22:26:46 +0200euleritian(~euleritia@ip5f5ad3cc.dynamic.kabel-deutschland.de)
2024-08-05 22:43:19 +0200euleritian(~euleritia@ip5f5ad3cc.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
2024-08-05 22:43:36 +0200euleritian(~euleritia@dynamic-176-006-150-162.176.6.pool.telefonica.de)
2024-08-05 22:44:32 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2024-08-05 22:51:42 +0200tomku(~tomku@user/tomku) (Ping timeout: 265 seconds)
2024-08-05 22:51:56 +0200tomku(~tomku@user/tomku)
2024-08-05 22:52:32 +0200falafel(~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 +0200hgolden_(~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 +0200hgolden(~hgolden@2603:8000:9d00:3ed1:1ee4:1b7c:94a7:8fa7) (Ping timeout: 252 seconds)
2024-08-05 23:13:11 +0200spew(~spew@201.141.102.132)
2024-08-05 23:34:40 +0200michalz(~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 +0200CiaoSen(~Jura@2a05:5800:2e2:2100:e6b9:7aff:fe80:3d03) (Ping timeout: 272 seconds)
2024-08-05 23:45:55 +0200target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2024-08-05 23:46:52 +0200JuanDaugherty(~juan@user/JuanDaugherty)
2024-08-05 23:48:08 +0200 <haskellbridge> <thirdofmay18081814goya> monochrom: thanks for the recommendation!
2024-08-05 23:53:44 +0200ddellacosta(~ddellacos@ool-44c73d29.dyn.optonline.net)
2024-08-05 23:54:33 +0200 <dolio> Don't accidentally buy the Java version.