2021/10/28

2021-10-28 00:00:06 +0200Guest|12(~Guest|12@89.187.239.178) ()
2021-10-28 00:07:31 +0200zincy_(~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) (Remote host closed the connection)
2021-10-28 00:11:20 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
2021-10-28 00:12:09 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2021-10-28 00:17:23 +0200f-a(f2a@f2a.jujube.ircnow.org)
2021-10-28 00:22:06 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-10-28 00:22:07 +0200myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds)
2021-10-28 00:22:08 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds)
2021-10-28 00:22:31 +0200ss4(~wootehfoo@user/wootehfoot)
2021-10-28 00:24:47 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3)
2021-10-28 00:25:16 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-10-28 00:27:06 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-10-28 00:29:41 +0200myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-10-28 00:30:34 +0200Skyfire(~pyon@user/pyon)
2021-10-28 00:30:57 +0200unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 258 seconds)
2021-10-28 00:37:32 +0200dsrt^(~dsrt@wsip-68-227-92-38.mc.at.cox.net) (Ping timeout: 260 seconds)
2021-10-28 00:37:59 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-10-28 00:37:59 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-10-28 00:37:59 +0200wroathe(~wroathe@user/wroathe)
2021-10-28 00:42:14 +0200dsrt^(~dsrt@wsip-68-227-92-38.mc.at.cox.net)
2021-10-28 00:44:04 +0200 <ski> zincy : anyway .. Haskell doesn't have an `exists' keyword (a few implementations did have it as extension, but only in the "trivial" case of occuring to the left of a function arrow (possibly indirected through type synonyms, iirc)). so, in actual current Haskell (with extensions), you do need to *encode* `exists' (in one of two main ways, sometimes a third applies). nonetheless, i think it helps to think
2021-10-28 00:44:10 +0200 <ski> about it conceptually, at the level i described, with a pseudo-Haskell `exists', before delving into how to actually get code today working
2021-10-28 00:45:04 +0200f-a(f2a@f2a.jujube.ircnow.org) ()
2021-10-28 00:45:30 +0200jstolarek(~jstolarek@137.220.120.162) (Ping timeout: 260 seconds)
2021-10-28 00:52:41 +0200lavaman(~lavaman@98.38.249.169)
2021-10-28 00:53:10 +0200AlexNoo(~AlexNoo@178.34.150.219) (Read error: Connection reset by peer)
2021-10-28 00:53:53 +0200AlexNoo(~AlexNoo@178.34.150.219)
2021-10-28 00:57:07 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
2021-10-28 00:57:18 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-28 00:59:24 +0200gdd1gdd
2021-10-28 01:01:44 +0200Psybur(~Psybur@mobile-166-170-30-165.mycingular.net)
2021-10-28 01:03:33 +0200max22-(~maxime@2a01cb0883359800761b1c69d9198b7f.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2021-10-28 01:04:06 +0200chomwitt(~chomwitt@ppp-94-68-249-8.home.otenet.gr) (Remote host closed the connection)
2021-10-28 01:12:55 +0200MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-10-28 01:13:35 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
2021-10-28 01:13:53 +0200MQ-17J(~MQ-17J@8.6.144.240)
2021-10-28 01:15:23 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 264 seconds)
2021-10-28 01:21:59 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 264 seconds)
2021-10-28 01:22:59 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
2021-10-28 01:25:15 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
2021-10-28 01:25:56 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3)
2021-10-28 01:26:06 +0200michalz(~michalz@185.246.204.97) (Remote host closed the connection)
2021-10-28 01:26:10 +0200yinghua(~yinghua@2800:2121:1400:900:b457:83cc:995e:57e)
2021-10-28 01:32:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-10-28 01:35:52 +0200acidjnk_new(~acidjnk@p200300d0c7238d76b9ac87bdf676c186.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-10-28 01:38:42 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55) (Remote host closed the connection)
2021-10-28 01:44:45 +0200mvk(~mvk@2607:fea8:5cc1:300::d3fb)
2021-10-28 01:49:52 +0200sprout(~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b) (Ping timeout: 260 seconds)
2021-10-28 01:49:57 +0200Null_A(~null_a@2601:645:8700:2290:25a5:cf0c:746a:f835) (Remote host closed the connection)
2021-10-28 01:51:10 +0200Cajun(~Cajun@user/cajun) (Ping timeout: 256 seconds)
2021-10-28 01:52:35 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 260 seconds)
2021-10-28 01:52:59 +0200Null_A(~null_a@c-98-210-133-39.hsd1.ca.comcast.net)
2021-10-28 01:55:44 +0200alx741(~alx741@186.178.109.79) (Quit: alx741)
2021-10-28 01:57:04 +0200alx741(~alx741@186.178.109.79)
2021-10-28 01:57:59 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 264 seconds)
2021-10-28 02:03:52 +0200euandreh(~euandreh@2804:14c:33:9fe5:fa59:2f99:edd:cd7b) (Ping timeout: 260 seconds)
2021-10-28 02:04:28 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5)
2021-10-28 02:04:31 +0200euandreh(~euandreh@2804:14c:33:9fe5:ece1:b35e:c9b0:1b9e)
2021-10-28 02:05:15 +0200burnsidesLlama(~burnsides@dhcp168-028.wadham.ox.ac.uk) (Remote host closed the connection)
2021-10-28 02:05:56 +0200Null_A(~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
2021-10-28 02:11:47 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5) (Ping timeout: 264 seconds)
2021-10-28 02:15:13 +0200jushur(~human@user/jushur) (Quit: ¯\_(ツ)_/¯)
2021-10-28 02:15:22 +0200trog(~trog@user/trog) (Ping timeout: 252 seconds)
2021-10-28 02:16:13 +0200dajoer(~david@user/gvx)
2021-10-28 02:18:10 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
2021-10-28 02:18:11 +0200trog(~trog@user/trog)
2021-10-28 02:18:44 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-10-28 02:22:04 +0200myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds)
2021-10-28 02:32:17 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2021-10-28 02:35:25 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca)
2021-10-28 02:36:27 +0200faultline(~christian@185.65.241.21)
2021-10-28 02:39:21 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5)
2021-10-28 02:40:23 +0200Null_A(~null_a@2601:645:8700:2290:403:ec69:5129:2d3e)
2021-10-28 02:45:24 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5) (Ping timeout: 260 seconds)
2021-10-28 02:46:50 +0200myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-10-28 02:48:13 +0200lavaman(~lavaman@98.38.249.169)
2021-10-28 02:49:10 +0200Null_A(~null_a@2601:645:8700:2290:403:ec69:5129:2d3e) (Read error: Connection reset by peer)
2021-10-28 02:50:24 +0200vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2021-10-28 02:52:31 +0200trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net)
2021-10-28 02:52:36 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
2021-10-28 02:57:20 +0200trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Ping timeout: 260 seconds)
2021-10-28 03:00:01 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-10-28 03:02:21 +0200zebrag(~chris@user/zebrag)
2021-10-28 03:02:39 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 260 seconds)
2021-10-28 03:03:18 +0200obfusk_(~quassel@a82-161-150-56.adsl.xs4all.nl) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-10-28 03:03:43 +0200obfusk(~quassel@a82-161-150-56.adsl.xs4all.nl)
2021-10-28 03:04:20 +0200zebrag(~chris@user/zebrag) (Client Quit)
2021-10-28 03:14:17 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-10-28 03:18:04 +0200myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds)
2021-10-28 03:18:26 +0200mmhat(~mmh@55d4b27c.access.ecotel.net) (Ping timeout: 268 seconds)
2021-10-28 03:19:27 +0200MQ-17J(~MQ-17J@8.6.144.240) (Ping timeout: 260 seconds)
2021-10-28 03:23:29 +0200MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com)
2021-10-28 03:25:37 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5)
2021-10-28 03:25:56 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-10-28 03:27:59 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-28 03:29:47 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2021-10-28 03:30:35 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-10-28 03:30:41 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5) (Ping timeout: 264 seconds)
2021-10-28 03:31:24 +0200mmhat(~mmh@55d4b856.access.ecotel.net)
2021-10-28 03:33:25 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-10-28 03:37:22 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5)
2021-10-28 03:37:54 +0200mmhat(~mmh@55d4b856.access.ecotel.net) (Quit: WeeChat 3.3)
2021-10-28 03:39:20 +0200faultline(~christian@185.65.241.21) (Ping timeout: 260 seconds)
2021-10-28 03:41:35 +0200Psybur(~Psybur@mobile-166-170-30-165.mycingular.net) (Remote host closed the connection)
2021-10-28 03:42:23 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5) (Ping timeout: 264 seconds)
2021-10-28 03:43:13 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-10-28 03:44:53 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-10-28 03:45:56 +0200xff0x(~xff0x@2001:1a81:5218:9100:9942:dd03:d29b:2938) (Ping timeout: 245 seconds)
2021-10-28 03:48:08 +0200xff0x(~xff0x@2001:1a81:525b:da00:d10:7b28:3140:c276)
2021-10-28 03:55:41 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-10-28 03:55:42 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-10-28 03:55:42 +0200wroathe(~wroathe@user/wroathe)
2021-10-28 03:57:17 +0200alx741(~alx741@186.178.109.79) (Quit: alx741)
2021-10-28 03:57:25 +0200yinghua(~yinghua@2800:2121:1400:900:b457:83cc:995e:57e) (Quit: Leaving)
2021-10-28 03:58:53 +0200MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-10-28 03:59:20 +0200lbseale(~lbseale@user/ep1ctetus) (Quit: Leaving)
2021-10-28 04:01:06 +0200MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com)
2021-10-28 04:02:24 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-10-28 04:10:56 +0200 <zzz> i'm doing some church in js and i can't seem to make folds work. can anyone find out what the problem is? https://paste.jrvieira.com/1635385396222
2021-10-28 04:11:39 +0200 <zzz> FOLDL and FOLDR are defined at lines 66 and 73, respectively
2021-10-28 04:14:33 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 276 seconds)
2021-10-28 04:15:38 +0200 <monochrom> Ugh so there is no such thing as an empty list.
2021-10-28 04:15:59 +0200hendursaga(~weechat@user/hendursaga)
2021-10-28 04:17:16 +0200 <ski> zzz : i guess i would make the nullary continuations take an empty argument list
2021-10-28 04:17:28 +0200 <monochrom> Also I haven't checked but most fixed point combinators assume non-eager lambda calculi. JS is an eager lambda calculus.
2021-10-28 04:17:45 +0200 <ski> (otherwise you might run into executing both branches of a conditional ..)
2021-10-28 04:17:56 +0200 <ski> yes, exactly
2021-10-28 04:19:00 +0200 <ski> however, `z' is eta-expanded, so i think that would probably work out (?)
2021-10-28 04:19:10 +0200 <ski> (although i'd have eta-expanded in a different place)
2021-10-28 04:19:57 +0200 <monochrom> There is an easy way to check.
2021-10-28 04:20:06 +0200 <ski> (as it is now, you're "odd", in that `f' gets called (on one parameter), before you provide the input to the result of `z'
2021-10-28 04:20:09 +0200 <ski> )
2021-10-28 04:20:18 +0200bradparker_bradparker
2021-10-28 04:20:56 +0200 <ski> (but if `f' is `\f. \x. ..f..x..', it shouldn't matter. only if it's `\f. ..f..(\x. ..f..x..)..' or perhaps not a lambda at all)
2021-10-28 04:21:28 +0200 <monochrom> Define church numerals. Define the recursive function "f 0 = 0; f (succ n) = f n" using Z. If that works, you have much better confidence that Z doesn't go wrong.
2021-10-28 04:22:24 +0200lavaman(~lavaman@98.38.249.169)
2021-10-28 04:22:38 +0200 <monochrom> In general, it's a good idea to get peano naturals to work before you try your hands at cons lists.
2021-10-28 04:22:58 +0200 <ski> also, instead of this `ISNONE' nonsense, why don't you do a `CASELIST' ?
2021-10-28 04:23:07 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-10-28 04:23:11 +0200 <monochrom> This also holds when one day you go to grad school and do this all over again in System F.
2021-10-28 04:23:21 +0200lavaman(~lavaman@98.38.249.169)
2021-10-28 04:23:29 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-10-28 04:23:47 +0200 <monochrom> In fact I thought the point of church list is that you get foldr for free.
2021-10-28 04:24:31 +0200 <monochrom> "foldr" op z mylst = mylst op z. Or mylst z op, I don't know your favourite argument order.
2021-10-28 04:24:31 +0200 <ski> yea, you can do `FOLDLIST', if you prefer
2021-10-28 04:25:16 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds)
2021-10-28 04:25:49 +0200jkaye(~jkaye@2601:281:8300:7530:906c:9805:416e:fccf)
2021-10-28 04:34:15 +0200myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-10-28 04:39:23 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 264 seconds)
2021-10-28 04:40:58 +0200a6a45081-2b83(~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507)
2021-10-28 04:40:59 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-10-28 04:43:28 +0200myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds)
2021-10-28 04:50:00 +0200 <zzz> Z is working fine i think. see MOD, MAP, SIZE... everything is working fine except the folds
2021-10-28 04:50:32 +0200myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-10-28 04:52:07 +0200 <zzz> about the eagerness, notice that i wrap the recursive branch in (x => ...(x))
2021-10-28 04:52:25 +0200 <ski> yes, i did
2021-10-28 04:52:49 +0200 <ski> for most ordinary cases, it shouldn't matter, i think
2021-10-28 04:53:55 +0200 <zzz> i have no formal education in this, am trying to learn by myself. how do we get foldr "for free" with church lists?
2021-10-28 04:54:03 +0200lavaman(~lavaman@98.38.249.169)
2021-10-28 04:55:14 +0200td_(~td@94.134.91.76) (Ping timeout: 246 seconds)
2021-10-28 04:56:20 +0200 <zzz> oh i see
2021-10-28 04:56:37 +0200 <zzz> list z op
2021-10-28 04:57:09 +0200td_(~td@94.134.91.221)
2021-10-28 04:57:16 +0200 <ski> yep
2021-10-28 04:57:28 +0200ski's no formal education in it, either
2021-10-28 04:58:51 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
2021-10-28 05:01:07 +0200 <mjrosenb_> with lens, if I have (at foo) in the middle of the lens, the lens's target type becomes (Maybe foo). Is there a way to convert this to a lens that targets foo?
2021-10-28 05:01:32 +0200 <ski> zzz : iow, instead of building lists out of optional pairs, nested in the second component, simply use the same approach as you already used for naturals
2021-10-28 05:01:35 +0200 <mjrosenb_> err, I should probably change one of those foos to a bar.
2021-10-28 05:02:11 +0200 <mjrosenb_> (at 4 . to fromJust) doesn't do what I want, because that's only for getting, not also setting.
2021-10-28 05:03:38 +0200 <zzz> ski: i see
2021-10-28 05:04:16 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 258 seconds)
2021-10-28 05:05:01 +0200 <zzz> i found it elegand to have 'head : a' and 'tail : maybe (list a)' naturally from fst and snd
2021-10-28 05:05:32 +0200 <mjrosenb_> I can probably use lens here, assuming there's nothing in the standard library.
2021-10-28 05:05:55 +0200 <zzz> but i see why 'null | cons a (list a)' is a more interesting approach
2021-10-28 05:06:58 +0200 <zzz> but i still can't understand why my fold is not working
2021-10-28 05:07:16 +0200 <zzz> it seems simple
2021-10-28 05:07:17 +0200MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-10-28 05:08:29 +0200 <zzz> s/elegand/elegant
2021-10-28 05:09:03 +0200MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com)
2021-10-28 05:10:54 +0200a6a45081-2b83(~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507) (Remote host closed the connection)
2021-10-28 05:15:30 +0200 <zzz> and of course i meant 'head : list a -> a' and 'tail : list a -> maybe (list a)'
2021-10-28 05:16:04 +0200skididn't get as far as checking the fold
2021-10-28 05:16:52 +0200 <zzz> i also like the idea of assuming lists as non empty and using 'maybe (list a)' for possibly empty lists
2021-10-28 05:17:25 +0200 <zzz> but i'm just playing around
2021-10-28 05:18:34 +0200 <dsal> mjrosenb_: Are you looking for the _Just prism?
2021-10-28 05:21:48 +0200 <dsal> > (1, M.fromList [("a", 1)]) & _2 . at "a" . _Just .~ 5 & _2 . at "b" . _Just .~ 9 -- mjrosenb_
2021-10-28 05:21:49 +0200 <lambdabot> (1,fromList [("a",5)])
2021-10-28 05:23:47 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-10-28 05:25:52 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 268 seconds)
2021-10-28 05:26:04 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2021-10-28 05:26:52 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 260 seconds)
2021-10-28 05:27:16 +0200nrr_(sid20938@lymington.irccloud.com) (Ping timeout: 258 seconds)
2021-10-28 05:27:19 +0200carter(sid14827@helmsley.irccloud.com) (Ping timeout: 268 seconds)
2021-10-28 05:27:39 +0200NiKaN(sid385034@helmsley.irccloud.com) (Ping timeout: 258 seconds)
2021-10-28 05:27:49 +0200 <mjrosenb_> dsal: maybe? I did something that was probably unwise, and I'm passing this as an argument into a function that is explicitly expecting a (Lens' foo bar)
2021-10-28 05:28:11 +0200 <mjrosenb_> I'm guessing that using _Just means that the whole thing is a prism, and I should change the expected type of this function.
2021-10-28 05:28:23 +0200lavaman(~lavaman@98.38.249.169)
2021-10-28 05:28:25 +0200ss4(~wootehfoo@user/wootehfoot) (Ping timeout: 260 seconds)
2021-10-28 05:28:30 +0200 <mjrosenb_> looks like I can also use ix and singular
2021-10-28 05:29:03 +0200NiKaN(sid385034@id-385034.helmsley.irccloud.com)
2021-10-28 05:29:13 +0200akspecs__(~akspecs@user/akspecs) (Read error: Connection reset by peer)
2021-10-28 05:30:28 +0200carter(sid14827@id-14827.helmsley.irccloud.com)
2021-10-28 05:30:48 +0200nrr_(sid20938@id-20938.lymington.irccloud.com)
2021-10-28 05:31:22 +0200 <dsal> :t _Just
2021-10-28 05:31:23 +0200 <lambdabot> (Choice p, Applicative f) => p a (f b) -> p (Maybe a) (f (Maybe b))
2021-10-28 05:31:37 +0200 <mjrosenb_> yeah, if I try foo ^. _2 . at "a" . _Just, I get the standard error about no instance Monoid Int
2021-10-28 05:31:53 +0200 <dsal> Well, yes. That's a different question.
2021-10-28 05:32:07 +0200 <dsal> > (1, M.fromList [("a", 1)]) ^? _2 . at "a" . _Just
2021-10-28 05:32:08 +0200 <lambdabot> Just 1
2021-10-28 05:32:31 +0200 <dsal> > (1, M.fromList [("a", 1)]) ^. _2 . at "a" . _Just . to Sum
2021-10-28 05:32:33 +0200 <lambdabot> Sum {getSum = 1}
2021-10-28 05:33:01 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 258 seconds)
2021-10-28 05:34:52 +0200akspecs__(~akspecs@136-24-214-166.cab.webpass.net)
2021-10-28 05:34:52 +0200akspecs__(~akspecs@136-24-214-166.cab.webpass.net) (Changing host)
2021-10-28 05:34:52 +0200akspecs__(~akspecs@user/akspecs)
2021-10-28 05:35:48 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 276 seconds)
2021-10-28 05:36:04 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-10-28 05:37:32 +0200hendursaga(~weechat@user/hendursaga)
2021-10-28 05:38:00 +0200 <mjrosenb_> yeah, sorry, I'm definitely still wrapping my head around the terminology of these things. I'm currently using the lens with ^., and by putting (at "a") into the chain, I'm either forcing a Maybe into the type, or forcing it to be something other than a lens
2021-10-28 05:38:12 +0200 <mjrosenb_> neither of which the type that I've set up is prepared to handle.
2021-10-28 05:38:26 +0200mvk(~mvk@2607:fea8:5cc1:300::d3fb) (Ping timeout: 245 seconds)
2021-10-28 05:38:31 +0200bongobrown(~bongobrow@cpe-76-185-215-2.satx.res.rr.com) (Ping timeout: 265 seconds)
2021-10-28 05:40:44 +0200 <c_wraith> there's also a good question about *why* you're using at
2021-10-28 05:40:55 +0200 <c_wraith> And would it be appropriate to combine it with non ?
2021-10-28 05:41:24 +0200 <c_wraith> that gets you back to a straight lens, but with possibly-surprising behavior
2021-10-28 05:42:12 +0200 <c_wraith> On the other hand, sometimes that gives you *exactly* the behavior you want
2021-10-28 05:42:15 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 260 seconds)
2021-10-28 05:43:20 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-10-28 05:43:31 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-10-28 05:43:31 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-10-28 05:43:31 +0200wroathe(~wroathe@user/wroathe)
2021-10-28 05:44:18 +0200 <dsal> mjrosenb_: You have to consider a case where nothing exists. ^. will get a monoid. ^? will get you a maybe. ^?! will let you promise that it'll definitely be a Just.
2021-10-28 05:44:59 +0200 <c_wraith> and non lets you declare a value to be treated the same as if it was Nothing
2021-10-28 05:46:05 +0200 <dsal> > (1, M.fromList [("a", 1)]) ^? _2 . at "a" . non 6
2021-10-28 05:46:07 +0200 <lambdabot> Just 1
2021-10-28 05:46:08 +0200 <dsal> > (1, M.fromList [("a", 1)]) ^? _2 . at "b" . non 6
2021-10-28 05:46:09 +0200 <lambdabot> Just 6
2021-10-28 05:46:31 +0200 <mjrosenb_> oh, that is horrifying.
2021-10-28 05:46:40 +0200 <jackdk> > (1, M.fromList [("a", 1)]) ^.. _2 . at "a" . traverse
2021-10-28 05:46:42 +0200 <lambdabot> [1]
2021-10-28 05:46:51 +0200 <jackdk> > (1, M.fromList [("a", 1)]) ^.. _2 . at "b" . traverse
2021-10-28 05:46:53 +0200 <lambdabot> []
2021-10-28 05:46:56 +0200 <mjrosenb_> wait, if there's more than one thing in the map, and nothing is "b", does that just set every value to 6?
2021-10-28 05:47:06 +0200 <jackdk> > (1, M.fromList [("a", 1)]) ^.. _2 . ix "a"
2021-10-28 05:47:08 +0200 <lambdabot> [1]
2021-10-28 05:47:09 +0200 <dsal> It didn't set anything to anything.
2021-10-28 05:47:32 +0200 <c_wraith> > (1, M.fromList [("a", 1)]) & _2 . at "a" . non 6 .~ 6
2021-10-28 05:47:34 +0200 <lambdabot> (1,fromList [])
2021-10-28 05:47:53 +0200 <c_wraith> non declares the value you provide to be the same as Nothing, in *both* directions
2021-10-28 05:48:01 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 245 seconds)
2021-10-28 05:48:08 +0200 <mjrosenb_> err, no, I totally misread what the result of that expression was.
2021-10-28 05:48:32 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-10-28 05:49:06 +0200 <c_wraith> non is really nice when you're nesting data structures. a list inside a map, for instance. If you have a `non []` in there, it will remove empty lists that you insert through it
2021-10-28 05:50:35 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 260 seconds)
2021-10-28 05:52:03 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
2021-10-28 05:52:04 +0200aegon(~mike@174.127.249.180) (Remote host closed the connection)
2021-10-28 05:53:39 +0200 <mjrosenb_> so, this code used to be (ix "b"), and it *happened* to work because I was explicitly fetching a list. Now, I'm doing something else, and I only need the first element of it
2021-10-28 05:54:16 +0200 <c_wraith> But if there is no element at "b"?
2021-10-28 05:55:26 +0200 <mjrosenb_> if that happens, then this code deserves to crash.
2021-10-28 05:56:34 +0200 <c_wraith> then use ix and singular. :P
2021-10-28 05:57:22 +0200 <c_wraith> singular is lens for "this always returns a value. no, I don't feel like proving it"
2021-10-28 05:57:50 +0200 <mjrosenb_> yeah. I'm also using singular _head :-)
2021-10-28 05:58:15 +0200 <jackdk> > (1, M.fromList [("a", 1)]) ^?! _2 . at "a"
2021-10-28 05:58:17 +0200 <lambdabot> Just 1
2021-10-28 05:58:25 +0200 <jackdk> > (1, M.fromList [("a", 1)]) ^?! _2 . at "b"
2021-10-28 05:58:26 +0200 <lambdabot> Nothing
2021-10-28 05:58:33 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-28 05:58:42 +0200 <jackdk> > (1, M.fromList [("a", 1)]) ^?! _2 . ix "b" -- er, this one
2021-10-28 05:58:43 +0200 <lambdabot> *Exception: (^?!): empty Fold
2021-10-28 05:58:46 +0200 <mjrosenb_> although this code is hella buggy, so I may write my own singular that takes a String argument, and sticks that in the error message
2021-10-28 05:59:13 +0200 <jackdk> perhaps the tolerance of partial functions is not helping ;-)
2021-10-28 06:00:28 +0200jkaye(~jkaye@2601:281:8300:7530:906c:9805:416e:fccf) (Ping timeout: 260 seconds)
2021-10-28 06:01:01 +0200 <mjrosenb_> HsCompilation finished at Thu Oct 28 00:00:03
2021-10-28 06:01:06 +0200 <mjrosenb_> \o/
2021-10-28 06:01:12 +0200 <jackdk> o/
2021-10-28 06:01:20 +0200 <mjrosenb_> I should probably also do something about this function.
2021-10-28 06:01:53 +0200 <mjrosenb_> it is an abomination against man, god, and line limits.
2021-10-28 06:02:45 +0200 <jackdk> and since eighty columns was a divinely-handed-down limit, the third is a strict subset of the second
2021-10-28 06:04:38 +0200 <mjrosenb_> hah, eighty.
2021-10-28 06:04:53 +0200 <mjrosenb_> looks like this function tops out at 168 characters wide.
2021-10-28 06:07:26 +0200 <mjrosenb_> oh, it is only 92 lines long, I guess it only feels longer because I have only the vaguest clue of how it works.
2021-10-28 06:10:58 +0200harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2021-10-28 06:13:39 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-10-28 06:14:34 +0200 <kronicmage> does anyone know how to query for a fixity of some operator?
2021-10-28 06:14:47 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Ping timeout: 264 seconds)
2021-10-28 06:15:03 +0200 <jackdk> % :info $
2021-10-28 06:15:03 +0200 <yahb> jackdk: ($) :: (a -> b) -> a -> b -- Defined in `GHC.Base'; infixr 0 $
2021-10-28 06:15:05 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-10-28 06:15:13 +0200 <kronicmage> thank you jackdk!
2021-10-28 06:15:15 +0200 <jackdk> kronicmage: `:info` or `:i` in ghci
2021-10-28 06:15:20 +0200 <kronicmage> :info (*)
2021-10-28 06:15:24 +0200 <kronicmage> oops
2021-10-28 06:15:31 +0200 <kronicmage> % :info (*)
2021-10-28 06:15:31 +0200 <yahb> kronicmage: type Num :: * -> Constraint; class Num a where; ...; (*) :: a -> a -> a; ...; -- Defined in `GHC.Num'; infixl 7 *; type (*) :: GHC.Base.Nat -> GHC.Base.Nat -> GHC.Base.Nat; type family (*) a b; -- Defined in `GHC.TypeNats'; infixl 7 *
2021-10-28 06:15:32 +0200 <jackdk> prefix with `%` for yahb to see it
2021-10-28 06:17:01 +0200euandreh(~euandreh@2804:14c:33:9fe5:ece1:b35e:c9b0:1b9e) (Quit: WeeChat 3.3)
2021-10-28 06:17:23 +0200euandreh(~euandreh@2804:14c:33:9fe5:ece1:b35e:c9b0:1b9e)
2021-10-28 06:21:18 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
2021-10-28 06:22:36 +0200ss4(~wootehfoo@user/wootehfoot)
2021-10-28 06:26:56 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5)
2021-10-28 06:29:36 +0200hgolden(~hgolden2@cpe-172-114-81-123.socal.res.rr.com)
2021-10-28 06:29:49 +0200mbuf(~Shakthi@122.178.213.7)
2021-10-28 06:30:10 +0200hubvu(sid495858@user/hubvu) (Ping timeout: 260 seconds)
2021-10-28 06:30:36 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-10-28 06:31:27 +0200hubvu(sid495858@user/hubvu)
2021-10-28 06:33:13 +0200mjrosenb_mjrosenb
2021-10-28 06:33:18 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-10-28 06:34:41 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5) (Ping timeout: 245 seconds)
2021-10-28 06:38:28 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-10-28 06:41:02 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2021-10-28 06:41:55 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-10-28 06:44:56 +0200a6a45081-2b83(~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507)
2021-10-28 06:46:12 +0200dsrt^(~dsrt@wsip-68-227-92-38.mc.at.cox.net) (Ping timeout: 260 seconds)
2021-10-28 06:47:23 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5)
2021-10-28 06:48:45 +0200a6a45081-2b83(~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507) (Remote host closed the connection)
2021-10-28 06:51:59 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5) (Ping timeout: 264 seconds)
2021-10-28 07:03:45 +0200dsrt^(~dsrt@wsip-68-227-92-38.mc.at.cox.net)
2021-10-28 07:04:52 +0200myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds)
2021-10-28 07:09:10 +0200hendursaga(~weechat@user/hendursaga) (Remote host closed the connection)
2021-10-28 07:09:46 +0200hendursaga(~weechat@user/hendursaga)
2021-10-28 07:15:57 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-10-28 07:18:06 +0200MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-10-28 07:19:23 +0200MQ-17J(~MQ-17J@8.6.144.240)
2021-10-28 07:22:57 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-10-28 07:23:13 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-10-28 07:24:16 +0200kupi(uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-10-28 07:24:35 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-10-28 07:25:40 +0200ss4(~wootehfoo@user/wootehfoot) (Ping timeout: 260 seconds)
2021-10-28 07:34:25 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 260 seconds)
2021-10-28 07:35:26 +0200 <awpr> ever wished StateT supported the case where the state is an instance dictionary? gotcha covered https://replit.com/@AndrewPritchard/TartUnsungCron#main.hs
2021-10-28 07:36:10 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
2021-10-28 07:39:11 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-10-28 07:39:24 +0200Neuromancer(~Neuromanc@user/neuromancer)
2021-10-28 07:41:38 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-10-28 07:48:44 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5)
2021-10-28 07:53:52 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5) (Ping timeout: 260 seconds)
2021-10-28 08:09:59 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2021-10-28 08:13:47 +0200michalz(~michalz@185.246.204.109)
2021-10-28 08:19:33 +0200Inst__(~Inst@2601:6c4:4080:3f80:7857:9ec8:a629:d6a8)
2021-10-28 08:20:59 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5)
2021-10-28 08:22:33 +0200ss4(~wootehfoo@user/wootehfoot)
2021-10-28 08:23:15 +0200lortabac(~lortabac@atoulouse-256-1-14-70.w92-136.abo.wanadoo.fr)
2021-10-28 08:23:26 +0200Inst_(~Inst@2601:6c4:4080:3f80:9ce5:6f05:3959:43f5) (Ping timeout: 245 seconds)
2021-10-28 08:25:01 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-10-28 08:25:05 +0200fendor(~fendor@178.165.200.199.wireless.dyn.drei.com)
2021-10-28 08:25:31 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5) (Ping timeout: 245 seconds)
2021-10-28 08:26:59 +0200MQ-17J(~MQ-17J@8.6.144.240) (Ping timeout: 260 seconds)
2021-10-28 08:29:11 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-10-28 08:29:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-28 08:30:13 +0200MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com)
2021-10-28 08:32:45 +0200xff0x(~xff0x@2001:1a81:525b:da00:d10:7b28:3140:c276) (Ping timeout: 260 seconds)
2021-10-28 08:32:58 +0200_xor(~xor@72.49.199.147) (Quit: brb)
2021-10-28 08:33:20 +0200xff0x(~xff0x@2001:1a81:525b:da00:5f35:171b:1f01:7273)
2021-10-28 08:33:32 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-10-28 08:35:45 +0200Vajb(~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi)
2021-10-28 08:40:32 +0200trcc_(~trcc@users-1190.st.net.au.dk)
2021-10-28 08:41:04 +0200trcc_(~trcc@users-1190.st.net.au.dk) (Client Quit)
2021-10-28 08:45:09 +0200Skyfire(~pyon@user/pyon) (Quit: brb)
2021-10-28 08:45:41 +0200Skyfire(~pyon@user/pyon)
2021-10-28 08:49:14 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5)
2021-10-28 08:50:25 +0200v01d4lph4(~v01d4lph4@223.177.229.33)
2021-10-28 08:50:25 +0200v01d4lph4(~v01d4lph4@223.177.229.33) (Changing host)
2021-10-28 08:50:25 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-10-28 08:51:33 +0200lavaman(~lavaman@98.38.249.169)
2021-10-28 08:52:11 +0200Inst__(~Inst@2601:6c4:4080:3f80:7857:9ec8:a629:d6a8) (Ping timeout: 245 seconds)
2021-10-28 08:54:03 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5) (Ping timeout: 260 seconds)
2021-10-28 08:55:56 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
2021-10-28 08:57:18 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-10-28 09:02:37 +0200jakalx(~jakalx@base.jakalx.net)
2021-10-28 09:06:05 +0200cfricke(~cfricke@user/cfricke)
2021-10-28 09:06:49 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2021-10-28 09:08:07 +0200eruditass(uid248673@id-248673.uxbridge.irccloud.com)
2021-10-28 09:11:31 +0200nschoe(~quassel@178.251.84.79)
2021-10-28 09:14:41 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-10-28 09:15:01 +0200kawpuh(~kawpuh@66.42.81.80) (Ping timeout: 252 seconds)
2021-10-28 09:15:03 +0200kawpuh1(~kawpuh@66.42.81.80)
2021-10-28 09:15:03 +0200Skyfire(~pyon@user/pyon) (Quit: brb ffs, frickin configuration)
2021-10-28 09:15:28 +0200Skyfire(~pyon@user/pyon)
2021-10-28 09:22:01 +0200max22-(~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
2021-10-28 09:22:41 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5)
2021-10-28 09:25:48 +0200ss4(~wootehfoo@user/wootehfoot) (Ping timeout: 260 seconds)
2021-10-28 09:26:37 +0200mcglk_(~mcglk@131.191.49.120) (Read error: Connection reset by peer)
2021-10-28 09:26:38 +0200acidjnk_new(~acidjnk@p200300d0c7238d76b9ac87bdf676c186.dip0.t-ipconnect.de)
2021-10-28 09:27:04 +0200mcglk(~mcglk@131.191.49.120)
2021-10-28 09:27:41 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5) (Ping timeout: 264 seconds)
2021-10-28 09:27:46 +0200hughjfchen(~hughjfche@vmi556545.contaboserver.net) (Quit: WeeChat 2.8)
2021-10-28 09:30:45 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5)
2021-10-28 09:32:48 +0200Skyfire(~pyon@user/pyon) (Quit: brb ffs frickin configuration)
2021-10-28 09:33:47 +0200d0ku(~d0ku@178.43.15.137.ipv4.supernova.orange.pl)
2021-10-28 09:34:16 +0200Skyfire(~pyon@user/pyon)
2021-10-28 09:42:12 +0200Vajb(~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
2021-10-28 09:42:29 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-10-28 09:43:38 +0200jinsun(~quassel@user/jinsun)
2021-10-28 09:47:40 +0200 <zincy> Is the existentialQuantification just using RankNTypes under the hood for type declarations?
2021-10-28 09:54:00 +0200chele(~chele@user/chele)
2021-10-28 09:57:04 +0200cads(~cads@ip-64-72-99-234.lasvegas.net) (Remote host closed the connection)
2021-10-28 09:57:19 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-10-28 09:57:25 +0200cads(~cads@ip-64-72-99-234.lasvegas.net)
2021-10-28 09:59:41 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Client Quit)
2021-10-28 10:01:07 +0200nschoe(~quassel@178.251.84.79) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-10-28 10:02:39 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-10-28 10:03:04 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
2021-10-28 10:05:17 +0200hendursa1(~weechat@user/hendursaga)
2021-10-28 10:08:09 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 276 seconds)
2021-10-28 10:13:05 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Ping timeout: 260 seconds)
2021-10-28 10:14:36 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2021-10-28 10:17:34 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-10-28 10:17:34 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-10-28 10:17:37 +0200allbery_bgeekosaur
2021-10-28 10:20:20 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-10-28 10:22:36 +0200ss4(~wootehfoo@user/wootehfoot)
2021-10-28 10:22:45 +0200jstolarek(~jstolarek@137.220.120.162)
2021-10-28 10:22:48 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca) (Remote host closed the connection)
2021-10-28 10:25:18 +0200hughjfchen(~hughjfche@vmi556545.contaboserver.net)
2021-10-28 10:30:18 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2021-10-28 10:30:23 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Ping timeout: 264 seconds)
2021-10-28 10:32:47 +0200xff0x(~xff0x@2001:1a81:525b:da00:5f35:171b:1f01:7273) (Ping timeout: 264 seconds)
2021-10-28 10:33:04 +0200stefan-__stefan-_
2021-10-28 10:33:35 +0200xff0x(~xff0x@2001:1a81:525b:da00:3f7d:da8c:9e9b:e904)
2021-10-28 10:35:22 +0200rond_(~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438)
2021-10-28 10:40:58 +0200shriekingnoise(~shrieking@186.137.144.80) (Quit: Quit)
2021-10-28 10:46:02 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-28 10:53:31 +0200ubert(~Thunderbi@91.141.46.110.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
2021-10-28 10:54:35 +0200gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2021-10-28 10:54:49 +0200gentauro(~gentauro@user/gentauro)
2021-10-28 10:59:33 +0200jumper149(~jumper149@80.240.31.34)
2021-10-28 11:01:45 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2021-10-28 11:03:26 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-10-28 11:03:47 +0200CiaoSen(~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2021-10-28 11:04:14 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2021-10-28 11:05:09 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net)
2021-10-28 11:05:37 +0200img(~img@user/img)
2021-10-28 11:09:44 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
2021-10-28 11:10:01 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2021-10-28 11:17:02 +0200eruditass(uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2021-10-28 11:19:55 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2021-10-28 11:20:31 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-10-28 11:21:17 +0200img(~img@user/img)
2021-10-28 11:23:18 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca)
2021-10-28 11:26:00 +0200ss4(~wootehfoo@user/wootehfoot) (Ping timeout: 260 seconds)
2021-10-28 11:28:04 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca) (Ping timeout: 260 seconds)
2021-10-28 11:28:35 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Ping timeout: 264 seconds)
2021-10-28 11:32:00 +0200bitmapper(uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2021-10-28 11:34:16 +0200fendor_(~fendor@178.165.166.121.wireless.dyn.drei.com)
2021-10-28 11:34:39 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-10-28 11:35:21 +0200gehmehgeh(~user@user/gehmehgeh)
2021-10-28 11:35:46 +0200 <kuribas> is there a dependent pair, or should I roll a new one every time?
2021-10-28 11:36:59 +0200fendor(~fendor@178.165.200.199.wireless.dyn.drei.com) (Ping timeout: 264 seconds)
2021-10-28 11:38:07 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2021-10-28 11:38:11 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 264 seconds)
2021-10-28 11:38:31 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2021-10-28 11:40:03 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
2021-10-28 11:41:18 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2021-10-28 11:42:40 +0200img(~img@user/img)
2021-10-28 11:43:31 +0200 <kuribas> again tooling issues with emacs/stack...
2021-10-28 11:43:43 +0200 <kuribas> Suspicious state from syntax checker haskell-stack-ghc: Flycheck checker haskell-stack-ghc returned 1, but its output contained no errors: <command line>: cannot satisfy -package hspec
2021-10-28 11:43:59 +0200 <kuribas> How tf does anyone get work done in haskell?
2021-10-28 11:46:06 +0200 <lortabac> kuribas: regarding dependent pairs, there is Data.Dynamic
2021-10-28 11:46:22 +0200 <kuribas> lortabac: that's not quite a dependent pair.
2021-10-28 11:46:31 +0200 <lortabac> otherwise if you are using your own singletons there is exinst
2021-10-28 11:46:38 +0200 <lortabac> @hackage exinst
2021-10-28 11:46:39 +0200 <lambdabot> https://hackage.haskell.org/package/exinst
2021-10-28 11:46:53 +0200 <jneira[m]> not using emacs nor stack :-P
2021-10-28 11:46:59 +0200 <lortabac> but I think rolling your own is simpler in most cases
2021-10-28 11:47:19 +0200 <kuribas> yeah
2021-10-28 11:47:27 +0200 <kuribas> jneira[m]: what then?
2021-10-28 11:47:54 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2021-10-28 11:48:06 +0200 <jneira[m]> i was mainly joking but the fact is for example hls works better with cabal right now
2021-10-28 11:48:29 +0200 <kuribas> yeah, but hls doesn't even work on my project.
2021-10-28 11:48:29 +0200 <jneira[m]> it should not be and we are working in get the same support for both though
2021-10-28 11:48:39 +0200 <kuribas> Presumable because of a large amount of TH generated code.
2021-10-28 11:49:06 +0200 <kuribas> I am hoping haskell tooling will get at a decent point, but it definitely isn't now.
2021-10-28 11:49:07 +0200 <jneira[m]> have you tried an hls version built from source, dinamically linked?
2021-10-28 11:49:27 +0200 <jneira[m]> it fixes issues with th for some people
2021-10-28 11:49:55 +0200 <jneira[m]> mmm let me find the issue about...
2021-10-28 11:50:09 +0200 <kuribas> jneira[m]: I just don't want to solve/debug tooling issues.
2021-10-28 11:50:10 +0200gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2021-10-28 11:50:12 +0200 <kuribas> I want to get work done.
2021-10-28 11:50:56 +0200 <jneira[m]> ya, lucky me solve/debug tooling issue is my work done :-P
2021-10-28 11:51:03 +0200 <jneira[m]> (volunteer work)
2021-10-28 11:51:49 +0200 <kuribas> I want to use haskell as an experiment in a production environment, I cannot justify spending lots of time fixing tooling.
2021-10-28 11:52:12 +0200 <jneira[m]> yeah, totally understandable
2021-10-28 11:52:16 +0200 <kuribas> I don't mean spending some time setting up a working environment, I mean fixing actual bugs.
2021-10-28 11:52:46 +0200 <jneira[m]> but someone has to improve tooling, if users dont do it and there is no enough money for more paid work
2021-10-28 11:52:53 +0200 <jneira[m]> 🤷
2021-10-28 11:53:00 +0200 <kuribas> So get up some kind of fund.
2021-10-28 11:53:25 +0200 <jneira[m]> we have! https://opencollective.com/haskell-language-server
2021-10-28 11:53:31 +0200 <jneira[m]> :-)
2021-10-28 11:53:43 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Ping timeout: 260 seconds)
2021-10-28 11:55:17 +0200 <jneira[m]> nevertheless afaiu the th issue is related with ghc and linking
2021-10-28 11:55:20 +0200gehmehgeh(~user@user/gehmehgeh)
2021-10-28 11:55:22 +0200comandingo(~drever@2001:a61:3462:da01:7aec:4329:8eb0:7c56)
2021-10-28 11:55:43 +0200 <jneira[m]> will try to pest ghc maintainers about :-)
2021-10-28 11:56:31 +0200 <kuribas> jneira[m]: I'll see how much I can contribute.
2021-10-28 11:58:15 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-10-28 11:58:17 +0200 <kuribas> hmm, maybe flycheck is expecting the exe libraries, but they aren't build...
2021-10-28 11:59:42 +0200 <kuribas> "cannot satisfy -package hspec"
2021-10-28 11:59:52 +0200 <kuribas> it shouldn't need that package, because it's only used for the exe, not the library.
2021-10-28 12:03:00 +0200OscarH_(~OscarH@90.201.86.195) (Ping timeout: 268 seconds)
2021-10-28 12:05:53 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2021-10-28 12:06:34 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2021-10-28 12:09:39 +0200OscarH(~OscarH@90.201.86.195)
2021-10-28 12:10:03 +0200xff0x(~xff0x@2001:1a81:525b:da00:3f7d:da8c:9e9b:e904) (Ping timeout: 260 seconds)
2021-10-28 12:10:46 +0200xff0x(~xff0x@2001:1a81:525b:da00:1097:4d57:43e2:986f)
2021-10-28 12:13:05 +0200 <jneira[m]> iirc you were not using hls, right? not sure what is using emacs in that case
2021-10-28 12:13:26 +0200 <kuribas> it's using ghc or stack directly.
2021-10-28 12:13:30 +0200 <jneira[m]> i dont use it since quite time ago :-/
2021-10-28 12:13:47 +0200 <kuribas> And passing the package list explicitly to stack/cabal.
2021-10-28 12:14:02 +0200 <jneira[m]> you see what precise commands is it triggering to get the info from stack?
2021-10-28 12:14:07 +0200 <kuribas> likely something went wrong there, mixing the exe with the lib packages.
2021-10-28 12:14:24 +0200 <jneira[m]> ya, sounds probable
2021-10-28 12:14:42 +0200 <jneira[m]> jneira[m]: from any of the logs
2021-10-28 12:15:35 +0200 <jneira[m]> in that case i guess if you open only lib modules, the error is not triggered?
2021-10-28 12:15:47 +0200 <kuribas> no, this error is in a lib module.
2021-10-28 12:15:53 +0200 <kuribas> I have both a lib and a exe in my cabal.
2021-10-28 12:16:44 +0200 <jneira[m]> so commenting out the exe component will confirm somewhat the hypothesis
2021-10-28 12:18:15 +0200 <kuribas> actually, it's used in the tests.
2021-10-28 12:18:35 +0200 <jneira[m]> hmm
2021-10-28 12:18:52 +0200 <kuribas> hmm, maybe building the test will fetch the packages...
2021-10-28 12:18:57 +0200 <jneira[m]> ok, what about `stack build --enable-tests --no-un-tests`
2021-10-28 12:19:04 +0200 <jneira[m]> just that :-)
2021-10-28 12:19:15 +0200 <jneira[m]> `--no-run-tests`
2021-10-28 12:19:43 +0200 <jneira[m]> you can put tests: true in your stack.yaml to have it by default with `stack build`
2021-10-28 12:20:41 +0200 <kuribas> If I am right, stack test should solve the problem, because if fetches the missing libs.
2021-10-28 12:21:05 +0200mmhat(~mmh@55d4b856.access.ecotel.net)
2021-10-28 12:21:18 +0200 <jneira[m]> sorry it is `stack build --test --no-run-tests`
2021-10-28 12:21:21 +0200 <jneira[m]> the other one is for cabal
2021-10-28 12:21:42 +0200 <jneira[m]> i would put `test: true` (or `tests: true`) in the stack.yaml
2021-10-28 12:22:32 +0200ss4(~wootehfoo@user/wootehfoot)
2021-10-28 12:22:40 +0200 <kuribas> and.. it did!
2021-10-28 12:22:59 +0200 <jneira[m]> yeah, with hls there is the same problem
2021-10-28 12:23:14 +0200 <kuribas> So I changed one version in my stack.yaml, which caused other libs to be changed.
2021-10-28 12:23:50 +0200 <kuribas> Then flycheck-haskell just passes "all" modules to ghc, even the one from test which aren't needed by the lib, and not build.
2021-10-28 12:30:08 +0200comandingo(~drever@2001:a61:3462:da01:7aec:4329:8eb0:7c56) (Ping timeout: 260 seconds)
2021-10-28 12:36:39 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Quit: Leaving)
2021-10-28 12:37:57 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-10-28 12:44:30 +0200comandingo(~drever@2001:a61:3462:da01:1d3:8bd7:fc2b:56af)
2021-10-28 12:48:10 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-10-28 12:48:16 +0200boxscape_(~boxscape_@134.171.69.87)
2021-10-28 12:53:28 +0200lavaman(~lavaman@98.38.249.169)
2021-10-28 12:56:36 +0200Cajun(~Cajun@user/cajun)
2021-10-28 12:58:10 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
2021-10-28 13:00:54 +0200alx741(~alx741@186.178.109.79)
2021-10-28 13:03:59 +0200dsrt^(~dsrt@wsip-68-227-92-38.mc.at.cox.net) (Ping timeout: 264 seconds)
2021-10-28 13:08:58 +0200whez(sid470288@lymington.irccloud.com) (Quit: Connection closed for inactivity)
2021-10-28 13:10:03 +0200mrckndt(~mrckndt@user/mrckndt) (Quit: mrckndt)
2021-10-28 13:10:25 +0200mrckndt(~mrckndt@user/mrckndt)
2021-10-28 13:10:53 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2021-10-28 13:14:42 +0200LiaoTao(~LiaoTao@gateway/tor-sasl/liaotao) (Ping timeout: 276 seconds)
2021-10-28 13:16:42 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-28 13:18:59 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 264 seconds)
2021-10-28 13:20:28 +0200gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2021-10-28 13:21:21 +0200gehmehgeh(~user@user/gehmehgeh)
2021-10-28 13:23:17 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
2021-10-28 13:23:34 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2021-10-28 13:25:21 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca)
2021-10-28 13:26:10 +0200ss4(~wootehfoo@user/wootehfoot) (Ping timeout: 260 seconds)
2021-10-28 13:29:47 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca) (Ping timeout: 264 seconds)
2021-10-28 13:30:20 +0200bongobrown(~bongobrow@cpe-76-185-215-2.satx.res.rr.com)
2021-10-28 13:31:25 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Ping timeout: 260 seconds)
2021-10-28 13:37:52 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2021-10-28 13:45:15 +0200ubert(~Thunderbi@91.141.46.110.wireless.dyn.drei.com)
2021-10-28 13:46:24 +0200dsrt^(~dsrt@wsip-68-227-92-38.mc.at.cox.net)
2021-10-28 13:46:27 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Excess Flood)
2021-10-28 13:46:56 +0200gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2021-10-28 13:47:23 +0200Freyr(~Freyr@host109-158-44-114.range109-158.btcentralplus.com)
2021-10-28 13:47:40 +0200gehmehgeh(~user@user/gehmehgeh)
2021-10-28 13:48:48 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-10-28 13:51:21 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-10-28 13:59:51 +0200burnsidesLlama(~burnsides@dhcp168-026.wadham.ox.ac.uk)
2021-10-28 14:01:53 +0200max22-(~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 264 seconds)
2021-10-28 14:03:29 +0200 <maerwald> stack runs configure of a package, even if it's marked as unbuildable?
2021-10-28 14:06:53 +0200mbuf(~Shakthi@122.178.213.7) (Quit: Leaving)
2021-10-28 14:08:27 +0200amk(~amk@109.255.169.126) (Read error: Connection reset by peer)
2021-10-28 14:08:42 +0200amk(~amk@109.255.169.126)
2021-10-28 14:08:54 +0200alzgh(~alzgh@user/alzgh) (Remote host closed the connection)
2021-10-28 14:09:15 +0200alzgh(~alzgh@user/alzgh)
2021-10-28 14:10:46 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
2021-10-28 14:11:05 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2021-10-28 14:15:58 +0200 <maerwald> or is this cabals fault for not allowing resolving the package without running Setup.hs?
2021-10-28 14:17:29 +0200 <geekosaur> cabal shouldn't require Setup.hs unless it's build-type: custom, and even then shouldn't run it if it's marked unbuildable
2021-10-28 14:18:27 +0200 <geekosaur> I could well imagine a setup involving windows-only packages on a windows platform but some other package (e.g. unix) on others, for example
2021-10-28 14:19:05 +0200 <maerwald> yes, that's what I have and it's running the unix configure script on windows
2021-10-28 14:19:17 +0200 <geekosaur> shouldn't be doing that at all
2021-10-28 14:19:28 +0200 <geekosaur> either stack or cabal
2021-10-28 14:19:29 +0200 <maerwald> afterwards it skips building it
2021-10-28 14:19:37 +0200 <maerwald> but it's problematic already
2021-10-28 14:20:49 +0200alphabeta(~kilolympu@185.65.135.177)
2021-10-28 14:21:12 +0200kilolympus(~kilolympu@185.65.135.177) (Ping timeout: 260 seconds)
2021-10-28 14:21:59 +0200Cajun(~Cajun@user/cajun) (Ping timeout: 256 seconds)
2021-10-28 14:22:32 +0200ss4(~wootehfoo@user/wootehfoot)
2021-10-28 14:22:56 +0200abrantesasf(~abrantesa@187.36.170.211)
2021-10-28 14:25:05 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5) (Ping timeout: 258 seconds)
2021-10-28 14:25:28 +0200faultline(~christian@nat-eduroam-01.scc.kit.edu)
2021-10-28 14:25:47 +0200sprout(~quassel@2a02:a467:ccd6:1:319c:b1d4:3651:39a5)
2021-10-28 14:26:04 +0200comandingo(~drever@2001:a61:3462:da01:1d3:8bd7:fc2b:56af) (Ping timeout: 268 seconds)
2021-10-28 14:26:42 +0200comandingo(~drever@2001:a61:3462:da01:22ed:63f7:5f22:784b)
2021-10-28 14:31:33 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-10-28 14:31:50 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2021-10-28 14:32:48 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-10-28 14:33:01 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-10-28 14:33:08 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-10-28 14:34:15 +0200guniberas(~guniberas@42.191.188.121)
2021-10-28 14:37:10 +0200 <adamCS> when I read a text file via some interface using chunks, what is an efficient way to get lines of text? I'm trying to write a streamly unfold from a handle to a stream of lines ofd text. As reference, I'm using hGetLine from Text. I want to see if reading chunks, converting to ByteString and then to Text will be faster. But those chunks aren't lines, right? So how do I convert a stream of ByteString coming from chunks to
2021-10-28 14:37:10 +0200 <adamCS> lines of Text?
2021-10-28 14:38:40 +0200 <maerwald> adamCS: you use a Parser
2021-10-28 14:39:24 +0200 <adamCS> Ah. Which keeps some state as the stream goes and then emits lines of text as they happen?
2021-10-28 14:39:51 +0200 <maerwald> Parser has an optional internal state and a backtrack buffer
2021-10-28 14:40:49 +0200 <maerwald> something like https://hackage.haskell.org/package/streamly-0.8.0/docs/Streamly-Internal-Data-Parser.html#v:takeW… maybe
2021-10-28 14:41:28 +0200 <adamCS> maerwald: Thanks! That makes sense. I've never used that part of the interface.
2021-10-28 14:41:56 +0200 <maerwald> also note that there are two parser types: direct style parser (ParserD) and CPS (ParserK)
2021-10-28 14:42:10 +0200 <maerwald> if you need monadic or alternative actions, you'll have to use ParserK
2021-10-28 14:42:30 +0200 <maerwald> but ParserD has better inlining behavior (though with monads, performance degrades quadratic)
2021-10-28 14:42:44 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-10-28 14:44:28 +0200 <maerwald> https://streamly.composewell.com/haddocks/streamly-0.8.0/Streamly-Internal-Data-Parser-ParserD-Typ…
2021-10-28 14:44:50 +0200 <maerwald> and https://streamly.composewell.com/haddocks/streamly-0.8.0/Streamly-Internal-Data-Parser-ParserK-Typ…
2021-10-28 14:44:59 +0200 <adamCS> I don't, I don't think. I just have Text (or ByteString) "chunks" and I want Text lines. Preferably all still in Unfold form. But I can let that go, I guess.
2021-10-28 14:45:23 +0200 <maerwald> that might work with ParserD then I guess
2021-10-28 14:49:20 +0200 <maerwald> Stream.parse (P.takeWhile (/= '\n') F.toList) $ Prelude.fromList "abcdef\n lol"
2021-10-28 14:49:31 +0200 <maerwald> yield "abcdef"
2021-10-28 14:50:59 +0200burnsidesLlama(~burnsides@dhcp168-026.wadham.ox.ac.uk) (Remote host closed the connection)
2021-10-28 14:51:17 +0200kupi(uid212005@id-212005.hampstead.irccloud.com)
2021-10-28 14:51:33 +0200burnsidesLlama(~burnsides@dhcp168-026.wadham.ox.ac.uk)
2021-10-28 14:52:22 +0200wonko(~wjc@62.115.229.50)
2021-10-28 14:52:53 +0200 <adamCS> Cool. If you used "parseMany" there would you get both lines?
2021-10-28 14:53:05 +0200neurocyte0132889(~neurocyte@212.232.89.185)
2021-10-28 14:53:05 +0200neurocyte0132889(~neurocyte@212.232.89.185) (Changing host)
2021-10-28 14:53:06 +0200neurocyte0132889(~neurocyte@user/neurocyte)
2021-10-28 14:55:18 +0200wonko(~wjc@62.115.229.50) (Remote host closed the connection)
2021-10-28 14:55:24 +0200a6a45081-2b83(~aditya@pal-210-106-60.itap.purdue.edu)
2021-10-28 14:55:42 +0200wonko(~wjc@62.115.229.50)
2021-10-28 14:55:56 +0200burnsidesLlama(~burnsides@dhcp168-026.wadham.ox.ac.uk) (Ping timeout: 245 seconds)
2021-10-28 14:56:13 +0200 <maerwald> that doesn't terminate for me
2021-10-28 14:56:38 +0200wonko(~wjc@62.115.229.50) (Changing host)
2021-10-28 14:56:38 +0200wonko(~wjc@user/wonko)
2021-10-28 14:58:44 +0200 <adamCS> The parser stuff is all so internal that it's hard, for me at least, to figure out. But that might also just be because I don't understand parsers that well.
2021-10-28 14:59:52 +0200 <adamCS> I also wish that streamly--which I really like!--had a Text module, or something close, for doing exactly this. It seems like a fairly common use-case, but maybe that's just me...
2021-10-28 15:08:12 +0200wonko(~wjc@user/wonko) (Read error: Connection reset by peer)
2021-10-28 15:08:45 +0200 <maerwald> Stream.parse (P.many (P.takeWhile (/= '\n') F.toList <* next) F.toList) $ Prelude.fromList "abcdef\nlol"
2021-10-28 15:08:47 +0200 <maerwald> this works
2021-10-28 15:09:00 +0200mc47(~mc47@xmonad/TheMC47)
2021-10-28 15:09:02 +0200 <maerwald> with: let next = (Just <$> P.satisfy (const True)) <|> pure Nothing
2021-10-28 15:09:20 +0200 <boxscape_> % let x :: Eq b => b; x = undefined in x `seq` ()
2021-10-28 15:09:20 +0200 <yahb> boxscape_: *** Exception: Prelude.undefined; CallStack (from HasCallStack):; error, called at libraries/base/GHC/Err.hs:75:14 in base:GHC.Err; undefined, called at <interactive>:167:25 in interactive:Ghci38
2021-10-28 15:09:20 +0200 <maerwald> there's a PR to add that function https://github.com/composewell/streamly/pull/1301
2021-10-28 15:09:39 +0200 <adamCS> huh. Gonna have to stare at that for a bit. Thanks!
2021-10-28 15:09:43 +0200 <boxscape_> hm, I'm a bit surprised by that, I would have expected the constraint to result in seq only forcing x to be a lambda
2021-10-28 15:09:58 +0200 <maerwald> adamCS: we have to consume the '\n' afterwards, but we may also be at the end of input
2021-10-28 15:10:11 +0200 <maerwald> unfortunately, that causes us to use Alternative here
2021-10-28 15:10:35 +0200 <maerwald> the implementation in the PR doesn't use that
2021-10-28 15:10:40 +0200 <maerwald> so it may be more efficient
2021-10-28 15:11:10 +0200max22-(~maxime@2a01cb08833598007c8a2cbd9d715d88.ipv6.abo.wanadoo.fr)
2021-10-28 15:11:20 +0200 <boxscape_> % let x :: forall b . Eq b => (b, Bool); x = (undefined, (undefined :: b) == undefined) in x `seq` ()
2021-10-28 15:11:20 +0200 <yahb> boxscape_: ()
2021-10-28 15:11:21 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in)
2021-10-28 15:11:36 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
2021-10-28 15:14:16 +0200 <boxscape_> % let x | !() <- undefined = x in 1
2021-10-28 15:14:16 +0200 <yahb> boxscape_: 1
2021-10-28 15:14:28 +0200 <boxscape_> I think I used to know why this doesn't crash... don't remember though :(
2021-10-28 15:15:23 +0200 <boxscape_> oh I'm not using x, sorry -.-
2021-10-28 15:15:41 +0200rond_(~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) (Quit: Client closed)
2021-10-28 15:17:43 +0200hendursa1(~weechat@user/hendursaga) (Remote host closed the connection)
2021-10-28 15:18:26 +0200feliix42(~felix@gibbs.uberspace.de) (Read error: Connection reset by peer)
2021-10-28 15:18:34 +0200hendursa1(~weechat@user/hendursaga)
2021-10-28 15:19:35 +0200MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Ping timeout: 264 seconds)
2021-10-28 15:21:30 +0200feliix42(~felix@gibbs.uberspace.de)
2021-10-28 15:22:12 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2021-10-28 15:22:43 +0200burnsidesLlama(~burnsides@dhcp168-026.wadham.ox.ac.uk)
2021-10-28 15:23:31 +0200MQ-17J(~MQ-17J@8.6.144.240)
2021-10-28 15:25:35 +0200ss4(~wootehfoo@user/wootehfoot) (Ping timeout: 246 seconds)
2021-10-28 15:26:50 +0200 <maerwald> adamCS: https://paste.tomsmeding.com/TP5Ub9Kh
2021-10-28 15:26:54 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca)
2021-10-28 15:27:23 +0200 <adamCS> maerwald: Thanks!
2021-10-28 15:27:28 +0200burnsidesLlama(~burnsides@dhcp168-026.wadham.ox.ac.uk) (Ping timeout: 260 seconds)
2021-10-28 15:29:22 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
2021-10-28 15:30:13 +0200 <maerwald> but parseMany is probably better, so we retain a stream and can then print per line
2021-10-28 15:30:23 +0200 <maerwald> that'll allow better benchmarking I guess
2021-10-28 15:30:28 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2021-10-28 15:31:22 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
2021-10-28 15:31:39 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca) (Ping timeout: 260 seconds)
2021-10-28 15:36:58 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2021-10-28 15:40:50 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
2021-10-28 15:42:16 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2021-10-28 15:47:15 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-28 15:51:54 +0200betelgeuse(~betelgeus@94-225-47-8.access.telenet.be)
2021-10-28 15:52:41 +0200 <maerwald> adamCS: I just tested... and ParserD is indeed much faster here
2021-10-28 15:54:42 +0200 <maerwald> https://github.com/hasufell/parselines
2021-10-28 15:54:59 +0200 <maerwald> 2s on 100mb file with ParserD, 3.5s with ParserK
2021-10-28 15:55:23 +0200myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-10-28 15:55:47 +0200 <maerwald> now would be interesting to compare with attoparsec
2021-10-28 15:55:55 +0200MQ-17J(~MQ-17J@8.6.144.240) (Ping timeout: 260 seconds)
2021-10-28 15:57:11 +0200 <maerwald> and from my understanding... if you use CPS style parsers, you'll need to parse in chunks, so `Parser m (Array Char) b` instead of `Parser m Char b`
2021-10-28 15:57:44 +0200jumper149(~jumper149@80.240.31.34) (Quit: WeeChat 3.2)
2021-10-28 15:57:46 +0200 <maerwald> otherwise performance drops (which is probably happening here)
2021-10-28 16:02:01 +0200lavaman(~lavaman@98.38.249.169)
2021-10-28 16:02:52 +0200burnsidesLlama(~burnsides@dhcp168-026.wadham.ox.ac.uk)
2021-10-28 16:03:16 +0200hseg(~gesh@185.120.126.13)
2021-10-28 16:04:33 +0200 <hseg> Hi. happy-1.21.0 fails to build ('happy' required but not found) and it is a transitive dep of mine
2021-10-28 16:04:47 +0200 <hseg> can't find this discussed online though
2021-10-28 16:07:35 +0200burnsidesLlama(~burnsides@dhcp168-026.wadham.ox.ac.uk) (Ping timeout: 260 seconds)
2021-10-28 16:07:37 +0200ubert1(~Thunderbi@178.165.177.232.wireless.dyn.drei.com)
2021-10-28 16:08:18 +0200 <maerwald> attoparsec is indeed much faster
2021-10-28 16:08:32 +0200ubert(~Thunderbi@91.141.46.110.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
2021-10-28 16:08:32 +0200ubert1ubert
2021-10-28 16:10:05 +0200 <hseg> nm, downgrade to happy-1.20.0 works
2021-10-28 16:10:06 +0200 <adamCS> maerwald: is there a way I can use that for ```Streamly.Unfold m Handle (Streamly.Array Word8) -> Streamly.Unfold m Handle Text``` where that returned ```Unfold``` is lines?
2021-10-28 16:10:09 +0200enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2021-10-28 16:10:37 +0200 <maerwald> you don't usually keep the unfold type for long, you just turn it into a stream
2021-10-28 16:10:47 +0200 <maerwald> I think it will be dropped in the next major release anyway
2021-10-28 16:11:18 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
2021-10-28 16:12:45 +0200 <maerwald> turning `t m (Array Word8)` into `t m Word8` is possible though, but I don't remember the exact function
2021-10-28 16:12:48 +0200acidjnk_new(~acidjnk@p200300d0c7238d76b9ac87bdf676c186.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
2021-10-28 16:12:55 +0200 <maerwald> it'll also degrade performance potentially I think
2021-10-28 16:13:48 +0200zer0bitz(~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi)
2021-10-28 16:17:52 +0200ubert(~Thunderbi@178.165.177.232.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
2021-10-28 16:19:05 +0200a6a45081-2b83(~aditya@pal-210-106-60.itap.purdue.edu) (Remote host closed the connection)
2021-10-28 16:19:20 +0200 <adamCS> maerwald: Right. What I'm ultimately trying to do is two things: 1. Generate a stream of Text lines from a (csv or tsv) text file that then get parsed by some user defined functions and then, likely, folded into efficient storage. So for that I just want the most efficient possible ```FilePath -> t m Text``` where the resulting stream is lines.
2021-10-28 16:20:12 +0200Freyr(~Freyr@host109-158-44-114.range109-158.btcentralplus.com) (Quit: Connection closed)
2021-10-28 16:20:36 +0200 <adamCS> 2. Some versions of that are so common that i want to put the entire thing (file -> lines of Text -> haskell structures -> efficient container of haskell structure) in one function because I wonder if that will make fusion more likely and the entire operation faster.
2021-10-28 16:21:29 +0200 <maerwald> sounds all pretty straight forward... my linked code already does most of that
2021-10-28 16:21:35 +0200 <maerwald> https://github.com/hasufell/parselines/blob/master/app/Main.hs
2021-10-28 16:21:46 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-10-28 16:22:13 +0200dajoer(~david@user/gvx) (Quit: leaving)
2021-10-28 16:22:18 +0200 <maerwald> to turn [Word8] into Text you just fmap
2021-10-28 16:22:37 +0200ss4(~wootehfoo@user/wootehfoot)
2021-10-28 16:22:48 +0200 <adamCS> It's for that 2nd version that I was trying to express things as an unfold. Because in that version I'm going to have a user supplied scan do the (line of Text -> haskell structure) bit and I want to apply that scan to the output of the unfold or the input of the fold. But It doesn't need to be all unfolds and fodsl, it just needs to fuse well.
2021-10-28 16:23:00 +0200johnjay(~pi@192.142.100.50)
2021-10-28 16:23:11 +0200 <johnjay> does anybody use haskell through homebrew on mac os?
2021-10-28 16:23:22 +0200 <johnjay> or is the shell script from haskell dot org preferable?
2021-10-28 16:23:31 +0200 <adamCS> maerwald: Right. I'll just need to understand it and apply to my case. Thanks!
2021-10-28 16:24:11 +0200 <maerwald> adamCS: (Text -> m Data) -> t m Text -> t m Data
2021-10-28 16:24:16 +0200 <maerwald> that's mapM
2021-10-28 16:24:48 +0200 <adamCS> maerwald: yes. But it's actually a scan because it all depends on the first line, which is a header and needs processing and dropping.
2021-10-28 16:24:51 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-10-28 16:24:56 +0200 <maerwald> then you want a Parser
2021-10-28 16:25:10 +0200 <maerwald> `Parser m Text Data` I guess
2021-10-28 16:25:12 +0200 <adamCS> a Parser at the line of text level?
2021-10-28 16:25:16 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Client Quit)
2021-10-28 16:25:31 +0200 <adamCS> The scan works fine. Would parser be faster?
2021-10-28 16:25:33 +0200 <maerwald> and then you use the `next` function I supplied to read one line
2021-10-28 16:25:40 +0200 <maerwald> not sure
2021-10-28 16:26:01 +0200 <adamCS> It's that I need information from the header in the subsequent Text -> Data
2021-10-28 16:26:56 +0200 <adamCS> I originally used fromEffect but--just to complicate things!--I'm trying to write this in a way that works for Pipes as well. I've abstracted some bits of those interfaces into a typeclass.
2021-10-28 16:27:07 +0200 <maerwald> is it truly monadic? As in: the current line decides the next step?
2021-10-28 16:27:21 +0200 <adamCS> The first line affects all the rest of the steps
2021-10-28 16:27:28 +0200 <adamCS> but only the first line
2021-10-28 16:27:37 +0200jkaye(~jkaye@2601:281:8300:7530:66b0:89cb:9eb6:ddde)
2021-10-28 16:27:44 +0200 <maerwald> then just use uncons
2021-10-28 16:27:49 +0200 <maerwald> and keep the rest efficient
2021-10-28 16:27:50 +0200 <geekosaur> johnjay, we recommend ghcup on all systems. afaik brew will work but ghcup is easier and faster to update, plus you don't have to worry about versioning as much, you can have multiple versions installed and quickly switch with "ghcup set"
2021-10-28 16:27:54 +0200 <maerwald> https://hackage.haskell.org/package/streamly-0.8.0/docs/Streamly-Prelude.html#v:uncons
2021-10-28 16:29:25 +0200 <johnjay> i think brew just gave me stack. and it segfaults if i tell it to do anything
2021-10-28 16:30:26 +0200 <johnjay> i guess i have to guess the names of ghc and the other components and install them manually
2021-10-28 16:30:32 +0200 <johnjay> (new to macs so idk what i'm doing)
2021-10-28 16:30:34 +0200 <adamCS> Right. I can't remember if there was a reason I didn't. I think, roughly, that it had something to do with then needing Monad (t m) but I'm not sure. Right now, I'm just trying to get the lines of Text thing efficient and then I can start testing the other bits. The scan seems no slower than the fromEffect version which I'm guessing would be more similar to unCons
2021-10-28 16:30:49 +0200 <geekosaur> I saw ghc@8.10 and ghc@9 (avoid the latter, it's buggy)
2021-10-28 16:31:08 +0200 <geekosaur> if you're on an M1, make sure you get 8.10.7
2021-10-28 16:31:25 +0200 <johnjay> 8.10 is the default
2021-10-28 16:31:35 +0200 <johnjay> yes i'm on an Emm Won
2021-10-28 16:31:38 +0200 <maerwald> adamCS: the other possibility would be to parse the first line of the file twice
2021-10-28 16:31:40 +0200 <johnjay> it's nice so far.
2021-10-28 16:31:46 +0200 <johnjay> but i want to run the haskell
2021-10-28 16:31:48 +0200 <johnjay> on the arm
2021-10-28 16:31:56 +0200 <maerwald> and then decide what you do with the entire file
2021-10-28 16:33:16 +0200ikex(~ash@user/ikex) (Ping timeout: 260 seconds)
2021-10-28 16:33:17 +0200zebrag(~chris@user/zebrag)
2021-10-28 16:33:34 +0200 <maerwald> adamCS: https://hackage.haskell.org/package/streamly-0.8.0/docs/Streamly-Prelude.html#v:head
2021-10-28 16:33:45 +0200 <maerwald> this *terminates* the stream
2021-10-28 16:34:16 +0200 <adamCS> maerwald: Back to Text for a sec: in the streamly gitter/matrix channel, readChunks was suggested but your example uses read. Even at this level I'm just sort of confused about how to choose.
2021-10-28 16:34:40 +0200 <maerwald> read is inefficient yeah
2021-10-28 16:35:20 +0200burnsidesLlama(~burnsides@dhcp168-026.wadham.ox.ac.uk)
2021-10-28 16:35:33 +0200 <adamCS> so do I readChunks and then concat? Or parse within chunks? This is why some efficient version of this would be so useful if it were already in streamly...
2021-10-28 16:35:34 +0200 <maerwald> But if you do readChunks, you'll have to deal with Array forever
2021-10-28 16:35:49 +0200 <maerwald> I think otherwise it's degrading performance
2021-10-28 16:36:35 +0200LiaoTao(~LiaoTao@gateway/tor-sasl/liaotao)
2021-10-28 16:36:54 +0200 <maerwald> I'm also not sure how this all plays along with the different stream types... `read` does IO requests in chunk size too
2021-10-28 16:37:01 +0200 <maerwald> just your loop will be smaller afaiu
2021-10-28 16:37:24 +0200 <adamCS> I guess I'll just try some things...
2021-10-28 16:37:32 +0200 <maerwald> and from what I gathered a small loop is fine if you have ParserD/StreamD or so?
2021-10-28 16:37:43 +0200 <maerwald> But I do remember that implementing file copying with `read` was way too slow
2021-10-28 16:38:16 +0200 <adamCS> And I don't get how to make sure things are StreamD where that is possible. But mostly streamly should just get that right?
2021-10-28 16:38:25 +0200 <maerwald> :D
2021-10-28 16:38:51 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-10-28 16:38:52 +0200 <maerwald> I'd say it always needs experiments... if you want something stable, go for conduit
2021-10-28 16:39:08 +0200 <maerwald> but conduit will also never surprise you with crazy high performance
2021-10-28 16:39:19 +0200 <adamCS> there is always flattenArrays :: Stream m (Array a) -> Stream m a
2021-10-28 16:39:38 +0200 <maerwald> right, but I'd be surprised if that doesn't kill your performance
2021-10-28 16:39:48 +0200 <adamCS> ugh
2021-10-28 16:39:55 +0200 <maerwald> because now your hot loop is over `a`, not over chunks
2021-10-28 16:40:14 +0200 <adamCS> but don't I need it to be for the Parsing to lines?
2021-10-28 16:40:33 +0200 <adamCS> Because I don't know where the line boundaries fall in the chunks?
2021-10-28 16:41:40 +0200 <adamCS> I think I'm misunderstanding since if I use read, the loop is also over a, right? So what do you mean by "hot loop" here?
2021-10-28 16:41:41 +0200 <maerwald> I think `Parser m (Array Word) (Array Word)` would be the right efficient type... and then you turn it into a stream and there you can (Array Word -> Text)
2021-10-28 16:42:28 +0200 <adamCS> Where that parser takes undifferentiated chunks and spits out one array per line?
2021-10-28 16:43:06 +0200 <maerwald> the parser stops after having read one line yeah, then you use parseMany and get [Array Word]
2021-10-28 16:43:36 +0200 <maerwald> but at this point I'm really not sure what's the most efficient thing
2021-10-28 16:43:52 +0200amk(~amk@109.255.169.126) (Read error: Connection reset by peer)
2021-10-28 16:44:03 +0200amk(~amk@109.255.169.126)
2021-10-28 16:44:16 +0200 <adamCS> but the streamly version so Stream (Array Word)?
2021-10-28 16:44:59 +0200 <maerwald> yeah, a stream of lines
2021-10-28 16:45:38 +0200 <maerwald> I think there's no zero-cost `flattenArrays`
2021-10-28 16:45:41 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 264 seconds)
2021-10-28 16:50:22 +0200 <dmj`> anyone know an example of a defunctionalization pass implemented in haskell on a lambda calculus expr?
2021-10-28 16:56:56 +0200lortabac(~lortabac@atoulouse-256-1-14-70.w92-136.abo.wanadoo.fr) (Quit: WeeChat 2.8)
2021-10-28 16:57:03 +0200 <adamCS> maerwald: Thanks for all the help! I'm going to try a few things and see if I can understand the parsing bit better by doing. I'll report back if anything jumps out.
2021-10-28 16:57:32 +0200shriekingnoise(~shrieking@186.137.144.80)
2021-10-28 16:59:36 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-10-28 17:00:04 +0200MQ-17J(~MQ-17J@35.50.77.148)
2021-10-28 17:00:29 +0200kupi(uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-10-28 17:03:32 +0200Skyfire(~pyon@user/pyon) (Quit: brb)
2021-10-28 17:04:35 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 264 seconds)
2021-10-28 17:11:37 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-10-28 17:14:23 +0200 <johnjay> well i don't know how to get out of ghci but ctrl-D always does the job
2021-10-28 17:14:40 +0200 <johnjay> is there some way to change the install dir of ghcup or whatever it's called?
2021-10-28 17:14:48 +0200 <maerwald> johnjay: yes
2021-10-28 17:15:03 +0200 <maerwald> https://www.haskell.org/ghcup/guide/#env-variables
2021-10-28 17:16:18 +0200 <johnjay> also i didn't get hls, the lsp thing. can i rerun the installer?
2021-10-28 17:16:21 +0200max22-(~maxime@2a01cb08833598007c8a2cbd9d715d88.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2021-10-28 17:16:26 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-10-28 17:16:59 +0200max22-(~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
2021-10-28 17:18:02 +0200thyriaen(~thyriaen@dynamic-089-012-077-123.89.12.pool.telefonica.de)
2021-10-28 17:18:46 +0200Sgeo(~Sgeo@user/sgeo)
2021-10-28 17:18:55 +0200boxscape_(~boxscape_@134.171.69.87) (Ping timeout: 260 seconds)
2021-10-28 17:19:35 +0200 <maerwald> johnjay: ghcup install hls
2021-10-28 17:20:35 +0200 <johnjay> oh i see ghcup is in ~/.ghcup/bin
2021-10-28 17:20:42 +0200 <geekosaur> there's also "ghcup tui" for a nice terminal-based ui for installing, uninstalling, and activating various versions of things
2021-10-28 17:21:32 +0200 <johnjay> ok i was confused. it seems everything is in that dir. but cabal has its own dir for some reason
2021-10-28 17:22:42 +0200 <c_wraith> "ghcup tui" isn't very good at upgrading ghcup
2021-10-28 17:23:11 +0200hseg(~gesh@185.120.126.13) (Ping timeout: 264 seconds)
2021-10-28 17:23:24 +0200 <maerwald> c_wraith: you mean it doesn't re-exec itself?
2021-10-28 17:23:51 +0200 <johnjay> so if i do ghcup install cabal then install hls, then install ghc I'm good?
2021-10-28 17:23:58 +0200 <johnjay> or did the wizard thing do anything else
2021-10-28 17:24:03 +0200 <c_wraith> it doesn't need to do that. It just should say "please restart" or something
2021-10-28 17:24:07 +0200 <johnjay> i just want everything in $HOME/.local
2021-10-28 17:24:19 +0200 <c_wraith> instead of dropping back to a UI that shows the exact same thing as before you ran it
2021-10-28 17:24:21 +0200 <maerwald> johnjay: https://www.haskell.org/ghcup/guide/#xdg-support
2021-10-28 17:24:28 +0200hseg(~gesh@185.120.126.13)
2021-10-28 17:24:29 +0200 <johnjay> yes i'm reading it.
2021-10-28 17:24:40 +0200 <johnjay> that's why i'm asking
2021-10-28 17:25:00 +0200 <maerwald> generally, it's better to keep things in ~/.ghcup
2021-10-28 17:26:21 +0200ss4(~wootehfoo@user/wootehfoot) (Ping timeout: 268 seconds)
2021-10-28 17:26:56 +0200 <johnjay> that's probably a good point. i'll keep it that way until i know enough to put it in .local
2021-10-28 17:27:20 +0200 <johnjay> i guess ghcup gets put in .ghcup no matter what though
2021-10-28 17:27:43 +0200 <maerwald> if you enable xdg support, it gets put in ~/.local/bin
2021-10-28 17:27:54 +0200Shaeto(~Shaeto@94.25.234.118)
2021-10-28 17:28:12 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-10-28 17:28:20 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca)
2021-10-28 17:30:32 +0200 <johnjay> can i just delete .ghcup in that case?
2021-10-28 17:30:41 +0200 <johnjay> it looks like that gets created no matter what you choose
2021-10-28 17:30:49 +0200 <maerwald> johnjay: I guess
2021-10-28 17:31:16 +0200 <johnjay> well yeah. you've probably used this setup for years or something
2021-10-28 17:31:25 +0200 <johnjay> so anything weird looks totally normal to you. it's the curse of expertise
2021-10-28 17:31:41 +0200 <johnjay> i think i've got a good setup though thanks
2021-10-28 17:32:36 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca) (Ping timeout: 245 seconds)
2021-10-28 17:32:49 +0200Shaeto(~Shaeto@94.25.234.118) (Quit: WeeChat 3.3)
2021-10-28 17:36:07 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca)
2021-10-28 17:37:00 +0200taeaad_(~taeaad@user/taeaad) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
2021-10-28 17:39:15 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-10-28 17:39:42 +0200taeaad(~taeaad@user/taeaad)
2021-10-28 17:41:11 +0200rond_(~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438)
2021-10-28 17:41:19 +0200taeaad(~taeaad@user/taeaad) ()
2021-10-28 17:43:47 +0200enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2021-10-28 17:44:28 +0200 <awpr> kuribas: https://hackage.haskell.org/package/ten-0.1.0.2/docs/Data-Ten-Sigma.html#t::-42--42- is the closest I know how to get to a dependent pair in Haskell
2021-10-28 17:49:14 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca) (Remote host closed the connection)
2021-10-28 17:52:18 +0200canxiu(uid524910@id-524910.helmsley.irccloud.com)
2021-10-28 17:53:29 +0200MQ-17J(~MQ-17J@35.50.77.148) (Ping timeout: 264 seconds)
2021-10-28 17:54:44 +0200 <adamCS> maerwald: I've tried a few versions of the parser thing, and all are much and more memory intensive slower than just using Text.hGetLine. In case the slowness was conversion of [Word8] to Text, I tried a few things there including using text-builder to build Streamly.Fold Word8 Text. But that was no faster. I haven't tried the readChunk thing because I don't know how to write the Parser (Array Word8) (Array Word8). But
2021-10-28 17:54:44 +0200 <adamCS> maybe I'll try to figure it out another time.
2021-10-28 17:55:04 +0200 <adamCS> s/much and/much slower and/
2021-10-28 17:55:33 +0200 <maerwald> I'm trying this https://paste.tomsmeding.com/CSZeeXVc
2021-10-28 17:55:36 +0200 <maerwald> but it doesn't terminate
2021-10-28 17:55:54 +0200 <maerwald> the Step type is underdocumented imo
2021-10-28 17:56:05 +0200 <maerwald> https://hackage.haskell.org/package/streamly-0.8.0/docs/Streamly-Internal-Data-Parser-ParserD.html…
2021-10-28 17:56:48 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-10-28 17:56:54 +0200 <maerwald> the idea here is that is scans the input, asks for the next chunk if it doesn't find a newline and generally never scans the same chunk twice
2021-10-28 17:57:52 +0200 <adamCS> right. But you also have to retain the remainder of the chunk somehow?
2021-10-28 17:58:12 +0200MQ-17J(~MQ-17J@2607:fb90:1d96:c9d1:ba5a:1a8b:ade4:a330)
2021-10-28 17:59:04 +0200 <maerwald> that's done in the parser state
2021-10-28 17:59:22 +0200 <maerwald> the parser state holds at most one line
2021-10-28 18:01:09 +0200zava(~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de)
2021-10-28 18:01:38 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2021-10-28 18:01:58 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2021-10-28 18:02:19 +0200jstolarek(~jstolarek@137.220.120.162) (Quit: leaving)
2021-10-28 18:02:26 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2021-10-28 18:02:34 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-10-28 18:09:42 +0200fendor_(~fendor@178.165.166.121.wireless.dyn.drei.com) (Remote host closed the connection)
2021-10-28 18:11:28 +0200fendor(~fendor@178.165.166.121.wireless.dyn.drei.com)
2021-10-28 18:11:40 +0200 <adamCS> maerwald: huh. That looks like it makes sense. Is there a +/- issue with the lf itself?
2021-10-28 18:12:01 +0200 <maerwald> a what?
2021-10-28 18:12:18 +0200sedeki(~textual@user/sedeki)
2021-10-28 18:12:24 +0200 <adamCS> Like where does the lf itself get removed? Is it in the prefix or the suffix?
2021-10-28 18:12:56 +0200 <maerwald> it's removed
2021-10-28 18:13:28 +0200 <adamCS> Ah. I see. Just looked it up. Sorry.
2021-10-28 18:13:35 +0200sedeki(~textual@user/sedeki) ()
2021-10-28 18:15:43 +0200 <adamCS> Does that not terminate even parsing one line or just when you try parseMany?
2021-10-28 18:15:48 +0200 <maerwald> I think it's because `count` in Done is about the elements, not the bytes
2021-10-28 18:15:57 +0200 <maerwald> and an element is an input chunk
2021-10-28 18:16:08 +0200hgolden(~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Remote host closed the connection)
2021-10-28 18:16:41 +0200lbseale(~lbseale@user/ep1ctetus)
2021-10-28 18:17:47 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 264 seconds)
2021-10-28 18:17:59 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-28 18:18:03 +0200 <adamCS> Do you somehow need to use the state to keep the partial chunk?
2021-10-28 18:19:43 +0200kupi(uid212005@id-212005.hampstead.irccloud.com)
2021-10-28 18:20:04 +0200MQ-17J(~MQ-17J@2607:fb90:1d96:c9d1:ba5a:1a8b:ade4:a330) (Read error: Connection reset by peer)
2021-10-28 18:20:24 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2021-10-28 18:20:47 +0200MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com)
2021-10-28 18:22:36 +0200wolfshappen(~waff@irc.furworks.de) (Ping timeout: 245 seconds)
2021-10-28 18:22:43 +0200ss4(~wootehfoo@user/wootehfoot)
2021-10-28 18:22:52 +0200jkaye(~jkaye@2601:281:8300:7530:66b0:89cb:9eb6:ddde) (Ping timeout: 268 seconds)
2021-10-28 18:23:00 +0200thyriaen(~thyriaen@dynamic-089-012-077-123.89.12.pool.telefonica.de) (Quit: Leaving)
2021-10-28 18:23:02 +0200CiaoSen(~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2021-10-28 18:24:06 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-10-28 18:26:11 +0200chele(~chele@user/chele) (Ping timeout: 260 seconds)
2021-10-28 18:26:12 +0200MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-10-28 18:26:19 +0200wolfshappen(~waff@irc.furworks.de)
2021-10-28 18:26:29 +0200Pickchea(~private@user/pickchea)
2021-10-28 18:27:13 +0200MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com)
2021-10-28 18:28:42 +0200Skyfire(~pyon@user/pyon)
2021-10-28 18:29:22 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-10-28 18:32:28 +0200alzgh(~alzgh@user/alzgh) (Remote host closed the connection)
2021-10-28 18:32:48 +0200alzgh(~alzgh@user/alzgh)
2021-10-28 18:33:53 +0200hgolden(~hgolden2@cpe-172-114-81-123.socal.res.rr.com)
2021-10-28 18:36:09 +0200 <maerwald> I think it's just not expressive enough
2021-10-28 18:36:30 +0200 <maerwald> would need something like https://hackage.haskell.org/package/megaparsec-9.2.0/docs/Text-Megaparsec.html#v:setInput
2021-10-28 18:36:43 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca)
2021-10-28 18:39:44 +0200comandingo(~drever@2001:a61:3462:da01:22ed:63f7:5f22:784b) (Ping timeout: 268 seconds)
2021-10-28 18:40:00 +0200betelgeuse(~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-10-28 18:41:20 +0200betelgeuse(~betelgeus@94-225-47-8.access.telenet.be)
2021-10-28 18:41:31 +0200wolfshappen(~waff@irc.furworks.de) (Ping timeout: 265 seconds)
2021-10-28 18:42:13 +0200wolfshappen(~waff@irc.furworks.de)
2021-10-28 18:43:20 +0200 <adamCS> Yeah. I'm fiddling with a variant that breaks at all the lf and then keeps the remainder as well as the accumulated lines in the state. But I'm too hazy on the details to thikn it'll work.
2021-10-28 18:45:47 +0200rond_(~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) (Quit: Client closed)
2021-10-28 18:52:13 +0200 <adamCS> I think mine is just a fold, actually. Where the fold state accumulates the lines and whatever is left after breaking from the previous chunk.
2021-10-28 18:52:38 +0200 <maerwald> https://hackage.haskell.org/package/streamly-0.8.0/docs/src/Streamly.Internal.Data.Parser.ParserD.…
2021-10-28 18:52:38 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-10-28 18:52:42 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-10-28 18:52:44 +0200 <maerwald> it could be done similar to that maybe
2021-10-28 18:52:55 +0200 <maerwald> but that's a lot of mutual recursion
2021-10-28 18:53:37 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4) (Remote host closed the connection)
2021-10-28 18:55:32 +0200abrantesasf(~abrantesa@187.36.170.211) (Read error: Connection reset by peer)
2021-10-28 18:57:09 +0200 <maerwald> but I think my broken Array version is on the right tracks... Arrays breakOn translates to C's memchr
2021-10-28 18:58:09 +0200 <maerwald> that will be as fast as this blog post suggests https://chrisdone.com/posts/fast-haskell-c-parsing-xml/
2021-10-28 18:58:21 +0200 <maerwald> which abuses bytestring functions that use memchr under the hood
2021-10-28 18:58:28 +0200abrantesasf(~abrantesa@187.36.170.211)
2021-10-28 18:58:31 +0200teddyc(theodorc@cassarossa.samfundet.no)
2021-10-28 18:58:39 +0200 <adamCS> yeah. I'm trying to do something using breakOn to get a list of "lines" and a remainder, accumulate the list and then add the remainder when the next chunk comes. Might not be a fold because of the termination. But it's not parsing one at a time, it'll parse the entire list of lines in one parse. I think.
2021-10-28 18:59:56 +0200 <adamCS> That is, I have type "ParserD.Parser m (FArray.Array Word8) ([FArray.Array Word8])"
2021-10-28 19:00:08 +0200 <adamCS> though I am suspicious of list there but that's for later
2021-10-28 19:01:03 +0200segfaultfizzbuzz(~segfaultf@135-180-0-138.static.sonic.net)
2021-10-28 19:01:40 +0200 <maerwald> but that way you never get an actual stream of lines
2021-10-28 19:01:57 +0200 <maerwald> you'll accumulate the result in memory
2021-10-28 19:02:04 +0200 <maerwald> when you do the final parse
2021-10-28 19:02:20 +0200 <adamCS> Ah. Yes.
2021-10-28 19:02:26 +0200 <segfaultfizzbuzz> for a pure nonstrict functional programming language like haskell, is there a reasonably succinct way to understand what the most essential barriers are to becoming a competitive systems programming language?
2021-10-28 19:02:39 +0200 <maerwald> segfaultfizzbuzz: good streaming :D
2021-10-28 19:02:39 +0200 <segfaultfizzbuzz> or is it thousands of papercut reasons all compounded
2021-10-28 19:02:53 +0200 <maerwald> unpredictable performance
2021-10-28 19:02:57 +0200 <segfaultfizzbuzz> maerwald: care to elaborate?
2021-10-28 19:02:59 +0200 <maerwald> shitty exceptions
2021-10-28 19:03:03 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-10-28 19:03:30 +0200 <segfaultfizzbuzz> care to elaborate on "good streaming" i mean?
2021-10-28 19:03:48 +0200 <maerwald> there's 2 hours of scrollback on that :D
2021-10-28 19:06:37 +0200 <adamCS> maerwald: Maybe a stream of [Array Word8]? for each chunk we emit as many lines as are present and put the remainder in the state. add that to the next chunk and on we go?
2021-10-28 19:07:57 +0200 <maerwald> look... in C this would maybe be 100 lines of code with your own for loops
2021-10-28 19:08:10 +0200 <maerwald> it would take 15 minutes to write and 35 minutes to fix the memory errors you wrote
2021-10-28 19:08:58 +0200 <maerwald> maybe just write it in C and use FFI :p
2021-10-28 19:11:00 +0200alzgh(~alzgh@user/alzgh) (Remote host closed the connection)
2021-10-28 19:11:20 +0200alzgh(~alzgh@user/alzgh)
2021-10-28 19:13:50 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2021-10-28 19:16:04 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-10-28 19:19:03 +0200 <maerwald> https://hackage.haskell.org/package/streamly-0.8.0/docs/Streamly-Internal-Data-Stream-IsStream-Red…
2021-10-28 19:19:08 +0200 <maerwald> this would be another way to express it
2021-10-28 19:19:12 +0200 <adamCS> Ugh. My thing won't work either because it has to run until a line boundary falls at the end of a chunk.
2021-10-28 19:19:17 +0200alphabeta(~kilolympu@185.65.135.177) (Quit: Quitting IRC :()
2021-10-28 19:19:31 +0200kilolympus(~kilolympu@185.65.135.177)
2021-10-28 19:19:44 +0200 <adamCS> hmm
2021-10-28 19:19:51 +0200chisui(~chisui@200116b868022000576721b474df9c55.dip.versatel-1u1.de)
2021-10-28 19:20:16 +0200 <johnjay> maerwald: write something in C over haskell??
2021-10-28 19:20:18 +0200 <adamCS> That looks simpler and more promising.
2021-10-28 19:20:27 +0200 <dminuoso> maerwald: And the creeping 9.6 CVE with full code exploitation because you allow for stack smashing via user input is not fixed until 7 years later.
2021-10-28 19:20:48 +0200 <maerwald> yeah... I'm sure haskell-tls has no vulnerabilities
2021-10-28 19:20:50 +0200 <maerwald> :D
2021-10-28 19:21:03 +0200Inst__(~Inst@2601:6c4:4080:3f80:258f:7b54:f932:b719)
2021-10-28 19:21:34 +0200 <dminuoso> Im just saying that your characterization of "35 minutes to fix the memory errors you wrote" is naive.
2021-10-28 19:21:49 +0200 <dminuoso> The reality in C is, as soon as you have a pointer, chances are you still have memory bugs lurking around.
2021-10-28 19:21:51 +0200 <maerwald> adamCS: this one also caught my eyes: https://hackage.haskell.org/package/streamly-0.8.0/docs/Streamly-Internal-Data-Fold.html#v:runStep
2021-10-28 19:22:03 +0200 <maerwald> and the concatMap above
2021-10-28 19:23:01 +0200econo(uid147250@user/econo)
2021-10-28 19:23:14 +0200faultline(~christian@nat-eduroam-01.scc.kit.edu) (Ping timeout: 246 seconds)
2021-10-28 19:25:29 +0200 <maerwald> but my intuition tells me... there should be a way to abstract away the "parsing over elements" vs "parsing over chunks of elements"
2021-10-28 19:25:56 +0200ss4(~wootehfoo@user/wootehfoot) (Ping timeout: 260 seconds)
2021-10-28 19:26:01 +0200 <maerwald> it's ludicrous to do it manually
2021-10-28 19:28:17 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
2021-10-28 19:29:59 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-10-28 19:30:08 +0200markusde(~makrus@206.12.14.106)
2021-10-28 19:31:01 +0200 <markusde> Simple question- I'm trying to use the LiberalTypeSynonyms langauge extension but stack repl keeps telling me that it's an "unrecognized pragma"
2021-10-28 19:31:04 +0200 <markusde> Any ideas?
2021-10-28 19:31:33 +0200 <dminuoso> markusde: You probably typed LANGAUGE instead of LANGUAGE
2021-10-28 19:31:36 +0200 <dminuoso> :>
2021-10-28 19:32:06 +0200 <dminuoso> markusde: Try and share your code exactly
2021-10-28 19:32:32 +0200 <markusde> dminuoso: wow, that's it lmao
2021-10-28 19:32:36 +0200 <markusde> tyty
2021-10-28 19:32:52 +0200 <markusde> english is hard
2021-10-28 19:32:56 +0200markusde(~makrus@206.12.14.106) (Client Quit)
2021-10-28 19:35:08 +0200 <shapr> I do that all the time and American was my first langauge :-)
2021-10-28 19:36:25 +0200 <dsal> haha. Yeah. It's the one I mess up the most.
2021-10-28 19:38:32 +0200 <manicennui> British English has better slang.
2021-10-28 19:42:43 +0200 <Vq> shapr: You got too many languages in that skull of yours :P
2021-10-28 19:43:51 +0200 <shapr> Vq: du också!
2021-10-28 19:43:56 +0200shaprhugs Vq
2021-10-28 19:44:11 +0200hseg(~gesh@185.120.126.13) (Ping timeout: 264 seconds)
2021-10-28 19:44:25 +0200 <Vq> 2½ at most
2021-10-28 19:45:23 +0200 <Vq> I often get confused with words that are just a single letter off between two languages.
2021-10-28 19:45:38 +0200 <shapr> oh yeah, my brain decided "adress" is the permanent correct spelling after I learned Swedish.
2021-10-28 19:45:51 +0200 <shapr> so I *always* spell that incorrectly in English
2021-10-28 19:45:57 +0200 <Vq> Like "parallel" vs "parallell" or "address" vs "adress".
2021-10-28 19:45:58 +0200hseg(~gesh@185.120.126.13)
2021-10-28 19:46:51 +0200hendursa1(~weechat@user/hendursaga) (Quit: hendursa1)
2021-10-28 19:47:28 +0200dsrt^(~dsrt@wsip-68-227-92-38.mc.at.cox.net) (Ping timeout: 258 seconds)
2021-10-28 19:47:32 +0200 <shapr> Vq: are you writing Haskell at work these days?
2021-10-28 19:47:45 +0200 <Vq> Not much :(
2021-10-28 19:53:13 +0200hendursaga(~weechat@user/hendursaga)
2021-10-28 19:54:50 +0200NinjaTrappeur(~ninja@user/ninjatrappeur) (Quit: WeeChat 3.3)
2021-10-28 19:55:40 +0200NinjaTrappeur(~ninja@user/ninjatrappeur)
2021-10-28 19:57:48 +0200burnsidesLlama(~burnsides@dhcp168-026.wadham.ox.ac.uk) (Remote host closed the connection)
2021-10-28 19:58:20 +0200burnsidesLlama(~burnsides@dhcp168-026.wadham.ox.ac.uk)
2021-10-28 20:02:11 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
2021-10-28 20:02:47 +0200burnsidesLlama(~burnsides@dhcp168-026.wadham.ox.ac.uk) (Ping timeout: 264 seconds)
2021-10-28 20:05:08 +0200ubert(~Thunderbi@178.115.57.1.wireless.dyn.drei.com)
2021-10-28 20:13:06 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-10-28 20:19:36 +0200 <dsal> shapr: one of my grandparents used to say, "if that don't spell adress, what does it spell?" (sounds better out loud, I guess)
2021-10-28 20:20:26 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds)
2021-10-28 20:21:34 +0200 <geekosaur> there's also the question of how you pronounce it
2021-10-28 20:22:33 +0200ss4(~wootehfoo@user/wootehfoot)
2021-10-28 20:24:07 +0200ulvarrefr(~user@185.24.53.152) (Ping timeout: 244 seconds)
2021-10-28 20:24:24 +0200Vqdoesn't get it
2021-10-28 20:25:49 +0200 <geekosaur> AD-ress vs. ad-RESS
2021-10-28 20:26:35 +0200 <geekosaur> not sure if one's supposed to be the noun vs. the verb, but I hear them used pretty interchangeably (and probably regionally)
2021-10-28 20:27:25 +0200 <geekosaur> but that would in particular affect how people are inclined to spell it
2021-10-28 20:30:01 +0200 <geekosaur> (also in the second one the a is schwa-d)
2021-10-28 20:30:12 +0200ulvarrefr(~user@185.24.53.152)
2021-10-28 20:31:13 +0200noctux(~noctux@user/noctux) (Read error: Connection reset by peer)
2021-10-28 20:31:44 +0200max22-(~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection)
2021-10-28 20:33:05 +0200unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
2021-10-28 20:33:44 +0200noctux(~noctux@user/noctux)
2021-10-28 20:35:14 +0200burnsidesLlama(~burnsides@dhcp168-026.wadham.ox.ac.uk)
2021-10-28 20:35:57 +0200max22-(~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
2021-10-28 20:39:13 +0200dwt__(~dwt_@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 258 seconds)
2021-10-28 20:39:32 +0200burnsidesLlama(~burnsides@dhcp168-026.wadham.ox.ac.uk) (Ping timeout: 246 seconds)
2021-10-28 20:44:10 +0200 <dsal> I can never remember how to use `seq`. But I can remember how to turn on BangPatterns, so I'm going to do that instead.
2021-10-28 20:44:26 +0200 <dsal> Actually, no, I think I need seq here.
2021-10-28 20:47:45 +0200hseg(~gesh@185.120.126.13) (Ping timeout: 260 seconds)
2021-10-28 20:48:21 +0200dwt_(~dwt_@c-98-200-58-177.hsd1.tx.comcast.net)
2021-10-28 20:48:28 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-28 20:53:16 +0200cfricke(~cfricke@user/cfricke)
2021-10-28 20:54:02 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-10-28 20:56:34 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2021-10-28 20:57:23 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-10-28 20:58:47 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4) (Ping timeout: 260 seconds)
2021-10-28 20:59:27 +0200azimut_(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds)
2021-10-28 21:01:23 +0200lavaman(~lavaman@98.38.249.169)
2021-10-28 21:02:56 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2021-10-28 21:03:38 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3)
2021-10-28 21:04:48 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-10-28 21:05:50 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
2021-10-28 21:06:02 +0200chisui(~chisui@200116b868022000576721b474df9c55.dip.versatel-1u1.de) (Ping timeout: 256 seconds)
2021-10-28 21:06:23 +0200ss4(~wootehfoo@user/wootehfoot) (Ping timeout: 264 seconds)
2021-10-28 21:07:30 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca) (Remote host closed the connection)
2021-10-28 21:07:36 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
2021-10-28 21:08:46 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca)
2021-10-28 21:11:33 +0200Guest57(~Guest57@73.115.242.32)
2021-10-28 21:12:56 +0200Guest57(~Guest57@73.115.242.32) (Client Quit)
2021-10-28 21:13:36 +0200 <maerwald> adamCS: I got a much faster implementation. It's a little slower than attoparsec, but not by much
2021-10-28 21:13:51 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 245 seconds)
2021-10-28 21:14:14 +0200sagax(~sagax_nb@user/sagax) (Remote host closed the connection)
2021-10-28 21:14:44 +0200 <maerwald> 100mb file 1ms streamly, 0.8s attoparsec
2021-10-28 21:14:59 +0200 <maerwald> s/ms/s/
2021-10-28 21:15:10 +0200turlando(~turlando@user/turlando) (Ping timeout: 260 seconds)
2021-10-28 21:15:14 +0200turlando_(~turlando@93-42-250-112.ip89.fastwebnet.it)
2021-10-28 21:17:53 +0200 <maerwald> https://paste.tomsmeding.com/05JvJGWz
2021-10-28 21:22:04 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-10-28 21:23:33 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-10-28 21:25:49 +0200 <maerwald> hah! if we express this as a Fold, we're faster than attoparsec
2021-10-28 21:28:49 +0200kupi(uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-10-28 21:30:12 +0200jespada(~jespada@181.28.253.200) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-10-28 21:33:03 +0200harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2021-10-28 21:41:40 +0200zincy_(~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e)
2021-10-28 21:49:22 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca) (Remote host closed the connection)
2021-10-28 21:49:30 +0200jstolarek(~jstolarek@137.220.120.162)
2021-10-28 21:52:06 +0200kupi(uid212005@id-212005.hampstead.irccloud.com)
2021-10-28 21:52:27 +0200zincy_(~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) (Remote host closed the connection)
2021-10-28 21:53:25 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
2021-10-28 21:56:29 +0200acidjnk_new(~acidjnk@p200300d0c7238d76b9ac87bdf676c186.dip0.t-ipconnect.de)
2021-10-28 22:05:29 +0200juhp(~juhp@128.106.188.220) (Ping timeout: 265 seconds)
2021-10-28 22:07:12 +0200juhp(~juhp@128.106.188.220)
2021-10-28 22:14:05 +0200burnsidesLlama(~burnsides@dhcp168-026.wadham.ox.ac.uk)
2021-10-28 22:14:35 +0200cheater(~Username@user/cheater) (Read error: Connection reset by peer)
2021-10-28 22:20:11 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 264 seconds)
2021-10-28 22:20:43 +0200sky_lounge[m](~skylounge@2001:470:69fc:105::efa6)
2021-10-28 22:22:07 +0200waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
2021-10-28 22:23:51 +0200cheater(~Username@user/cheater)
2021-10-28 22:25:08 +0200peterhil(~peterhil@dsl-hkibng32-54fb56-2.dhcp.inet.fi) (Ping timeout: 260 seconds)
2021-10-28 22:29:41 +0200aegon(~mike@174.127.249.180)
2021-10-28 22:30:49 +0200zincy_(~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e)
2021-10-28 22:32:10 +0200trog(~trog@user/trog) (Ping timeout: 260 seconds)
2021-10-28 22:33:51 +0200zfnmxt(~zfnmxtzfn@2001:470:69fc:105::2b32) (Changing host)
2021-10-28 22:33:51 +0200zfnmxt(~zfnmxtzfn@user/zfnmxt)
2021-10-28 22:39:40 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-10-28 22:48:42 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-10-28 22:49:46 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca)
2021-10-28 22:53:17 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
2021-10-28 22:54:16 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca) (Ping timeout: 245 seconds)
2021-10-28 22:54:31 +0200cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2021-10-28 22:54:44 +0200cheater(~Username@user/cheater)
2021-10-28 22:57:36 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2021-10-28 22:58:35 +0200jstolarek(~jstolarek@137.220.120.162) (Quit: leaving)
2021-10-28 23:00:45 +0200cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2021-10-28 23:01:09 +0200cheater(~Username@user/cheater)
2021-10-28 23:05:13 +0200fusion86(~fusion@2a02-a44c-e6e5-1-2dd3-247f-2e63-c814.fixed6.kpn.net)
2021-10-28 23:05:25 +0200zava(~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2021-10-28 23:07:54 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90ed:9a10:88ac:8dca)
2021-10-28 23:08:55 +0200 <fusion86> Is there a difference between using the `const` function and simply throwing an argument away using `_`? Ex. https://paste.tomsmeding.com/1McA4jHv
2021-10-28 23:09:55 +0200myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds)
2021-10-28 23:10:50 +0200myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-10-28 23:12:34 +0200hseg(~gesh@185.120.126.13)
2021-10-28 23:12:34 +0200hseg(~gesh@185.120.126.13) (Client Quit)
2021-10-28 23:12:49 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-10-28 23:12:49 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-10-28 23:12:52 +0200allbery_bgeekosaur
2021-10-28 23:12:59 +0200zincy_(~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) (Remote host closed the connection)
2021-10-28 23:15:22 +0200 <geekosaur> there is no direct difference between const and discarding the argument. but there is a difference between `foo = ...` where `...` consumes an argument (here via `const`) and `foo _ = ...`, because of the monomorphism restriction
2021-10-28 23:16:14 +0200MoC(~moc@user/moc)
2021-10-28 23:17:40 +0200 <monochrom> If no constraints are involved, the monomorphism restriction is not triggered.
2021-10-28 23:19:05 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-28 23:22:09 +0200zincy_(~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e)
2021-10-28 23:28:03 +0200fizzsegfaultbuzz(~segfaultf@135-180-0-138.static.sonic.net)
2021-10-28 23:28:14 +0200segfaultfizzbuzz(~segfaultf@135-180-0-138.static.sonic.net) (Ping timeout: 246 seconds)
2021-10-28 23:29:24 +0200lavaman(~lavaman@98.38.249.169)
2021-10-28 23:30:14 +0200faultline(~christian@nat-eduroam-01.scc.kit.edu)
2021-10-28 23:33:33 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.3)
2021-10-28 23:33:34 +0200Cajun(~Cajun@user/cajun)
2021-10-28 23:35:51 +0200zer0bitz(~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-10-28 23:43:06 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-10-28 23:49:10 +0200xsperry(~xs@user/xsperry) (Ping timeout: 260 seconds)
2021-10-28 23:53:26 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)