2023/03/02

2023-03-02 00:00:03 +0100forell(~forell@user/forell)
2023-03-02 00:01:35 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Quit: ZNC - https://znc.in)
2023-03-02 00:01:38 +0100tubogram44(~tubogram@user/tubogram) (Quit: See ya later!)
2023-03-02 00:02:01 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2023-03-02 00:02:05 +0100ububert
2023-03-02 00:05:19 +0100rekahsoft(~rekahsoft@142.188.185.92) (Ping timeout: 268 seconds)
2023-03-02 00:09:55 +0100tubogram44(~tubogram@user/tubogram)
2023-03-02 00:24:14 +0100akegalj(~akegalj@78-1-169-101.adsl.net.t-com.hr) (Quit: leaving)
2023-03-02 00:27:26 +0100img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2023-03-02 00:27:44 +0100img(~img@user/img)
2023-03-02 00:29:14 +0100codaraxis(~codaraxis@user/codaraxis)
2023-03-02 00:38:34 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-02 00:40:07 +0100ski(~ski@remote11.chalmers.se) (Quit: Lost terminal)
2023-03-02 00:42:56 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds)
2023-03-02 00:43:42 +0100bilegeek_(~bilegeek@183.sub-174-208-230.myvzw.com)
2023-03-02 00:46:31 +0100bilegeek(~bilegeek@2600:1008:b027:385c:33be:5951:6763:bc55) (Ping timeout: 260 seconds)
2023-03-02 00:50:48 +0100opticblast(~Thunderbi@172.58.83.235)
2023-03-02 01:00:17 +0100 <remexre> is there a trick for saying "a functor with the same shape as this value"?
2023-03-02 01:00:46 +0100 <remexre> e.g. I have a F a -> F b , where Functor F; I want to further say that the output needs to be the same constructor as the input
2023-03-02 01:01:15 +0100 <remexre> (so that I can zip it with something; if there's another way to do that, that'd work too)
2023-03-02 01:02:22 +0100 <geekosaur> that would be a functor
2023-03-02 01:02:41 +0100 <geekosaur> it's not allowed to change the constructor
2023-03-02 01:03:18 +0100 <Clinton[m]> geekosaur: Functors can change the constructor, they can't change the type
2023-03-02 01:03:43 +0100 <remexre> that'd be if the function were (Functor f => f a -> f b), not F a -> F b for a concrete F
2023-03-02 01:05:51 +0100 <Clinton[m]> remexre: if you can write a function `f :: a -> b`, then `fmap f :: F a -> F b` achieves what you want.
2023-03-02 01:05:59 +0100 <monochrom> "same shape" is already a pretty common way to say that.
2023-03-02 01:06:26 +0100xff0x(~xff0x@ai081074.d.east.v6connect.net) (Ping timeout: 252 seconds)
2023-03-02 01:06:42 +0100 <remexre> the transformation can't just be an fmap, it depends on what constructor the input is
2023-03-02 01:07:08 +0100zeenk(~zeenk@2a02:2f04:a20d:f900::7fe) (Quit: Konversation terminated!)
2023-03-02 01:07:15 +0100mauke_(~mauke@user/mauke)
2023-03-02 01:07:54 +0100mechap(~mechap@user/mechap) (Ping timeout: 252 seconds)
2023-03-02 01:08:30 +0100xff0x(~xff0x@178.255.149.135)
2023-03-02 01:08:36 +0100mauke(~mauke@user/mauke) (Ping timeout: 255 seconds)
2023-03-02 01:08:37 +0100mauke_mauke
2023-03-02 01:09:30 +0100 <jackdk> If you ask for a function `a -> b` and fmap it yourself, you know that you won't change constructors. (If `fmap` changed constructors, it would fail the `fmap id = id` law.)
2023-03-02 01:09:31 +0100 <geekosaur> (then why does it matter that it's a functor?)
2023-03-02 01:10:06 +0100mechap(~mechap@user/mechap)
2023-03-02 01:10:11 +0100 <Clinton[m]> remexre: well then I think you're going to make your different constructors different types.... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/de31471dd45b102c3e059ca0525c1579ad19…>)
2023-03-02 01:10:11 +0100 <remexre> in case there's a trick that only works for functors, iunno
2023-03-02 01:10:59 +0100 <remexre> Clinton[m]: ooh, that might do the trick
2023-03-02 01:11:13 +0100 <Clinton[m]> Of course pick your own data type, I just picked Maybe for illustration
2023-03-02 01:17:36 +0100foul_owl(~kerry@193.29.61.203) (Ping timeout: 255 seconds)
2023-03-02 01:18:57 +0100xff0x(~xff0x@178.255.149.135) (Ping timeout: 255 seconds)
2023-03-02 01:20:12 +0100foul_owl(~kerry@193.29.61.203)
2023-03-02 01:20:49 +0100xff0x(~xff0x@ai081074.d.east.v6connect.net)
2023-03-02 01:22:07 +0100Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.)
2023-03-02 01:31:06 +0100johnw_(~johnw@2600:1700:cf00:db0:a85a:aa58:c54c:551d)
2023-03-02 01:31:22 +0100acidjnk_new(~acidjnk@p200300d6e715c409795fa7f63fedb700.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2023-03-02 01:33:05 +0100johnw(~johnw@2600:1700:cf00:db0:a85a:aa58:c54c:551d) (Ping timeout: 260 seconds)
2023-03-02 01:35:00 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-03-02 01:49:55 +0100Axman6(~Axman6@user/axman6) (Ping timeout: 246 seconds)
2023-03-02 01:50:49 +0100ix(~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe) (Ping timeout: 252 seconds)
2023-03-02 01:51:33 +0100Square3(~Square4@user/square)
2023-03-02 01:51:48 +0100kritzefitz(~kritzefit@debian/kritzefitz) (Ping timeout: 255 seconds)
2023-03-02 01:52:29 +0100kritzefitz(~kritzefit@debian/kritzefitz)
2023-03-02 01:54:03 +0100Square2(~Square4@user/square) (Ping timeout: 255 seconds)
2023-03-02 01:56:19 +0100simeon(~pi@143.231.7.51.dyn.plus.net) (Ping timeout: 268 seconds)
2023-03-02 01:57:41 +0100simeon(~pi@170.231.7.51.dyn.plus.net)
2023-03-02 01:59:51 +0100Ranhir(~Ranhir@157.97.53.139) (Read error: Connection reset by peer)
2023-03-02 02:01:48 +0100ryanbooker(uid4340@id-4340.hampstead.irccloud.com)
2023-03-02 02:04:41 +0100califax(~califax@user/califx) (Remote host closed the connection)
2023-03-02 02:05:49 +0100califax(~califax@user/califx)
2023-03-02 02:09:23 +0100kenaryn(~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr)
2023-03-02 02:10:22 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2023-03-02 02:10:49 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-03-02 02:10:52 +0100Ranhir(~Ranhir@157.97.53.139)
2023-03-02 02:11:09 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-03-02 02:11:10 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-03-02 02:11:10 +0100wroathe(~wroathe@user/wroathe)
2023-03-02 02:11:18 +0100gmg(~user@user/gehmehgeh)
2023-03-02 02:15:34 +0100kenaryn(~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) (Quit: leaving)
2023-03-02 02:16:57 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-03-02 02:18:07 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2023-03-02 02:18:31 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2023-03-02 02:22:00 +0100falafel(~falafel@2600:1700:3b2d:d010:fb97:9b4c:7fe7:93e0)
2023-03-02 02:24:33 +0100falafel(~falafel@2600:1700:3b2d:d010:fb97:9b4c:7fe7:93e0) (Remote host closed the connection)
2023-03-02 02:24:52 +0100falafel(~falafel@2600:1700:3b2d:d010:d106:c9d9:3547:5b31)
2023-03-02 02:25:11 +0100stackdroid18(14094@de1.hashbang.sh) (Quit: hasta la vista... tchau!)
2023-03-02 02:27:03 +0100falafel(~falafel@2600:1700:3b2d:d010:d106:c9d9:3547:5b31) (Remote host closed the connection)
2023-03-02 02:27:23 +0100falafel(~falafel@2600:1700:3b2d:d010:9c00:d384:93c4:675d)
2023-03-02 02:40:59 +0100Axman6(~Axman6@user/axman6)
2023-03-02 02:43:32 +0100gmg(~user@user/gehmehgeh) (Ping timeout: 255 seconds)
2023-03-02 02:43:59 +0100xff0x(~xff0x@ai081074.d.east.v6connect.net) (Ping timeout: 248 seconds)
2023-03-02 02:44:15 +0100td_(~td@i53870923.versanet.de) (Ping timeout: 260 seconds)
2023-03-02 02:44:29 +0100td_(~td@i53870923.versanet.de)
2023-03-02 02:44:35 +0100gmg(~user@user/gehmehgeh)
2023-03-02 02:53:19 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-03-02 02:56:20 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:8429:4ceb:8103:61ef)
2023-03-02 03:00:36 +0100meinside(uid24933@id-24933.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2023-03-02 03:13:10 +0100shapr(~user@68.54.166.125) (Ping timeout: 252 seconds)
2023-03-02 03:19:13 +0100falafel(~falafel@2600:1700:3b2d:d010:9c00:d384:93c4:675d) (Ping timeout: 252 seconds)
2023-03-02 03:20:00 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
2023-03-02 03:20:29 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2023-03-02 03:21:22 +0100hammond__hammond
2023-03-02 03:21:30 +0100hammond(proscan@gateway02.insomnia247.nl) (Changing host)
2023-03-02 03:21:30 +0100hammond(proscan@user/hammond2)
2023-03-02 03:23:07 +0100vglfr(~vglfr@145.224.100.76) (Ping timeout: 248 seconds)
2023-03-02 03:30:10 +0100 <mon_aaraj> A few months ago, a MR of mine was merged: https://gitlab.haskell.org/ghc/ghc/-/merge_requests/9044... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/c947da40c59515b21219630ab2e5670d3944…>)
2023-03-02 03:31:08 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2023-03-02 03:31:36 +0100falafel(~falafel@2600:1700:3b2d:d010:2bc4:e2f2:1e12:d845)
2023-03-02 03:35:03 +0100razetime(~Thunderbi@117.193.7.114)
2023-03-02 03:36:48 +0100kupi(uid212005@id-212005.hampstead.irccloud.com)
2023-03-02 03:42:16 +0100 <mon_aaraj> in all honesty, I believe this change should be rolled back to all versions that had support for XDG_CONFIG_HOME, because my MR changes misinformation in the GHC user's guide that has gotten me confused before (and now too, i guess now that I'm writing this here) as well as other people.
2023-03-02 03:46:02 +0100vglfr(~vglfr@145.224.100.119)
2023-03-02 03:49:13 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-03-02 03:49:36 +0100opticblast(~Thunderbi@172.58.83.235) (Quit: opticblast)
2023-03-02 03:50:20 +0100bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 252 seconds)
2023-03-02 03:51:44 +0100falafel(~falafel@2600:1700:3b2d:d010:2bc4:e2f2:1e12:d845) (Ping timeout: 248 seconds)
2023-03-02 03:52:00 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2023-03-02 03:52:53 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-03-02 03:59:08 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 255 seconds)
2023-03-02 03:59:50 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-03-02 04:01:10 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2023-03-02 04:01:17 +0100thegeekinside(~thegeekin@189.141.115.134) (Ping timeout: 246 seconds)
2023-03-02 04:01:29 +0100slack1256(~slack1256@186.11.13.167) (Remote host closed the connection)
2023-03-02 04:01:43 +0100hgolden(~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
2023-03-02 04:03:40 +0100hgolden(~hgolden@cpe-172-251-233-141.socal.res.rr.com)
2023-03-02 04:04:10 +0100jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection)
2023-03-02 04:07:50 +0100opticblast(~Thunderbi@172.58.85.161)
2023-03-02 04:08:54 +0100shailangsa_(~shailangs@host165-120-169-78.range165-120.btcentralplus.com) (Remote host closed the connection)
2023-03-02 04:09:03 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 255 seconds)
2023-03-02 04:11:22 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-03-02 04:12:51 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-03-02 04:13:34 +0100mbuf(~Shakthi@49.204.136.4)
2023-03-02 04:18:36 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2023-03-02 04:23:11 +0100opticblast(~Thunderbi@172.58.85.161) (Quit: opticblast)
2023-03-02 04:23:47 +0100opticblast(~Thunderbi@172.58.82.223)
2023-03-02 04:24:23 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 246 seconds)
2023-03-02 04:24:56 +0100gastus_(~gastus@5.83.191.44)
2023-03-02 04:27:57 +0100gastus(~gastus@185.6.123.208) (Ping timeout: 255 seconds)
2023-03-02 04:28:02 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-03-02 04:30:11 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-03-02 04:33:04 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2023-03-02 04:33:28 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2023-03-02 04:33:49 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Client Quit)
2023-03-02 04:34:46 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-03-02 04:34:46 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-03-02 04:34:46 +0100finn_elijaFinnElija
2023-03-02 04:37:42 +0100sammelweis(~quassel@c-68-48-18-140.hsd1.mi.comcast.net)
2023-03-02 04:37:53 +0100td_(~td@i53870923.versanet.de) (Ping timeout: 268 seconds)
2023-03-02 04:39:00 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-02 04:39:29 +0100td_(~td@i5387090D.versanet.de)
2023-03-02 04:40:04 +0100califax(~califax@user/califx) (Remote host closed the connection)
2023-03-02 04:40:30 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2023-03-02 04:42:08 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:4e8c::) (Quit: The Lounge - https://thelounge.chat)
2023-03-02 04:42:26 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-03-02 04:43:00 +0100califax(~califax@user/califx)
2023-03-02 04:43:29 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:4e8c::)
2023-03-02 04:44:03 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2023-03-02 04:45:35 +0100razetime(~Thunderbi@117.193.7.114) (Ping timeout: 248 seconds)
2023-03-02 04:46:51 +0100vglfr(~vglfr@145.224.100.119) (Ping timeout: 255 seconds)
2023-03-02 04:50:20 +0100opticblast(~Thunderbi@172.58.82.223) (Ping timeout: 255 seconds)
2023-03-02 04:50:51 +0100opticblast(~Thunderbi@172.58.83.235)
2023-03-02 04:51:09 +0100dsrt^(~dsrt@c-24-30-76-89.hsd1.ga.comcast.net)
2023-03-02 04:54:19 +0100shailangsa(~shailangs@host165-120-169-78.range165-120.btcentralplus.com)
2023-03-02 05:01:17 +0100sammelweis(~quassel@c-68-48-18-140.hsd1.mi.comcast.net) (Quit: No Ping reply in 180 seconds.)
2023-03-02 05:10:00 +0100Monster196883(~hp@103.15.228.66)
2023-03-02 05:14:16 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-03-02 05:15:10 +0100vglfr(~vglfr@145.224.100.119)
2023-03-02 05:17:00 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2023-03-02 05:17:37 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2023-03-02 05:22:47 +0100077AAMFUK(~mncheck@193.224.205.254) (Ping timeout: 260 seconds)
2023-03-02 05:26:02 +0100vglfr(~vglfr@145.224.100.119) (Ping timeout: 252 seconds)
2023-03-02 05:36:47 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 248 seconds)
2023-03-02 05:37:15 +0100Monster196883(~hp@103.15.228.66) (Ping timeout: 255 seconds)
2023-03-02 05:40:09 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-03-02 05:40:49 +0100trev(~trev@user/trev)
2023-03-02 05:40:51 +0100king_gs(~Thunderbi@187.201.41.239)
2023-03-02 05:41:52 +0100razetime(~Thunderbi@117.193.7.114)
2023-03-02 05:44:35 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection)
2023-03-02 05:44:53 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
2023-03-02 05:49:17 +0100king_gs(~Thunderbi@187.201.41.239) (Quit: king_gs)
2023-03-02 05:49:28 +0100king_gs1(~Thunderbi@187.201.41.239)
2023-03-02 05:49:42 +0100falafel(~falafel@2600:1700:3b2d:d010:40ff:d0e6:93aa:a1e7)
2023-03-02 05:51:46 +0100king_gs1king_gs
2023-03-02 05:55:41 +0100biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2023-03-02 05:56:36 +0100opticblast(~Thunderbi@172.58.83.235) (Ping timeout: 255 seconds)
2023-03-02 06:00:14 +0100biberu(~biberu@user/biberu)
2023-03-02 06:01:36 +0100ryanbooker(uid4340@id-4340.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-03-02 06:04:13 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2023-03-02 06:06:21 +0100polyphem_(~rod@2a02:810d:840:8754:224e:f6ff:fe5e:bc17) (Ping timeout: 256 seconds)
2023-03-02 06:08:56 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2023-03-02 06:12:26 +0100vglfr(~vglfr@145.224.100.119)
2023-03-02 06:13:04 +0100codaraxis(~codaraxis@user/codaraxis) (Ping timeout: 248 seconds)
2023-03-02 06:16:48 +0100vglfr(~vglfr@145.224.100.119) (Read error: Connection reset by peer)
2023-03-02 06:18:02 +0100vglfr(~vglfr@145.224.100.119)
2023-03-02 06:25:48 +0100razetime(~Thunderbi@117.193.7.114) (Ping timeout: 268 seconds)
2023-03-02 06:28:35 +0100king_gs(~Thunderbi@187.201.41.239) (Read error: Connection reset by peer)
2023-03-02 06:28:38 +0100king_gs1(~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7)
2023-03-02 06:29:51 +0100Guest76(~Guest76@129.93.161.218)
2023-03-02 06:30:28 +0100 <Guest76> yo
2023-03-02 06:30:42 +0100vglfr(~vglfr@145.224.100.119) (Read error: Connection reset by peer)
2023-03-02 06:30:43 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2023-03-02 06:30:52 +0100Guest76(~Guest76@129.93.161.218) (Client Quit)
2023-03-02 06:30:56 +0100king_gs1king_gs
2023-03-02 06:31:30 +0100vglfr(~vglfr@145.224.100.119)
2023-03-02 06:34:34 +0100opticblast(~Thunderbi@172.58.82.223)
2023-03-02 06:34:44 +0100mtjm(~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection)
2023-03-02 06:35:59 +0100mtjm(~mutantmel@2604:a880:2:d0::208b:d001)
2023-03-02 06:36:01 +0100 <Axman6> oy
2023-03-02 06:38:00 +0100fryguybob(~fryguybob@cpe-24-94-51-210.stny.res.rr.com) (Ping timeout: 255 seconds)
2023-03-02 06:39:57 +0100fryguybob(~fryguybob@cpe-24-94-51-210.stny.res.rr.com)
2023-03-02 06:40:23 +0100Square3(~Square4@user/square) (Ping timeout: 264 seconds)
2023-03-02 06:41:18 +0100razetime(~Thunderbi@117.193.7.114)
2023-03-02 06:42:01 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-03-02 06:48:17 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-03-02 06:49:23 +0100king_gs(~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7) (Ping timeout: 264 seconds)
2023-03-02 06:54:12 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-03-02 07:01:50 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-03-02 07:03:38 +0100califax(~califax@user/califx) (Ping timeout: 255 seconds)
2023-03-02 07:03:56 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-03-02 07:05:22 +0100califax(~califax@user/califx)
2023-03-02 07:09:23 +0100mncheck(~mncheck@193.224.205.254)
2023-03-02 07:11:08 +0100bilegeek_(~bilegeek@183.sub-174-208-230.myvzw.com) (Quit: Leaving)
2023-03-02 07:14:12 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2023-03-02 07:23:55 +0100king_gs(~Thunderbi@187.201.41.239)
2023-03-02 07:25:35 +0100Inst(~Inst@2601:6c4:4081:54f0:7069:999c:7e48:ff3b) (Read error: Connection reset by peer)
2023-03-02 07:27:51 +0100falafel(~falafel@2600:1700:3b2d:d010:40ff:d0e6:93aa:a1e7) (Ping timeout: 260 seconds)
2023-03-02 07:30:11 +0100opticblast(~Thunderbi@172.58.82.223) (Ping timeout: 260 seconds)
2023-03-02 07:31:57 +0100king_gs(~Thunderbi@187.201.41.239) (Quit: king_gs)
2023-03-02 07:32:19 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-03-02 07:34:22 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-03-02 07:34:36 +0100caryhartline(~caryhartl@2600:1700:2d0:8d30:cdb3:8615:a2b3:ec7c) (Quit: caryhartline)
2023-03-02 07:37:38 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2023-03-02 07:39:56 +0100mrcsno(~mrcsno@user/mrcsno)
2023-03-02 07:51:08 +0100phma(phma@2001:5b0:211f:30c8:d195:4c3:ddc4:3351) (Read error: Connection reset by peer)
2023-03-02 08:00:21 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-03-02 08:03:15 +0100codaraxis(~codaraxis@user/codaraxis)
2023-03-02 08:05:34 +0100phma(~phma@host-67-44-208-142.hnremote.net)
2023-03-02 08:05:36 +0100lieven(~mal@ns2.wyrd.be) (Quit: WeeChat 3.0)
2023-03-02 08:06:57 +0100YoungFrog(~youngfrog@2a02:a03f:ca07:f900:a8be:2d7b:23bb:d884)
2023-03-02 08:10:33 +0100mal1(~mal@ns2.wyrd.be)
2023-03-02 08:10:50 +0100mal1lieven
2023-03-02 08:12:09 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2023-03-02 08:17:51 +0100vglfr(~vglfr@145.224.100.119) (Ping timeout: 248 seconds)
2023-03-02 08:18:06 +0100vglfr(~vglfr@145.224.100.119)
2023-03-02 08:21:07 +0100 <dminuoso_> jackdk: I think the FRP problems are beyond the "where do I place code" domain. FRP demands a fundamental different approach, uses lots of highly complicated combinators with strange type signatures. In a way one could say `reflex is to traditional haskell code as Haskell is to C`.
2023-03-02 08:22:47 +0100 <dminuoso_> Part of the success of React+Redux can be attributed to being really simple to learn, simple to explain and simple to use. Yes its discrete, yes its full with very explicit callbacks, its not perfectly composable, but with a bit of discipline these problems can be worked around.
2023-03-02 08:23:37 +0100 <dminuoso_> At the very least the reflex-frp documentation has improved much over the years. Before, most combinators didnt even have a haddock string, but I think for someone who isnt already well versed in reflex-frp, its mostly too short to really understand whats going on.
2023-03-02 08:24:14 +0100 <dminuoso_> workflow :: forall t m a. (Reflex t, Adjustable t m, MonadFix m, MonadHold t m) => Workflow t m a -> m (Dynamic t a)
2023-03-02 08:24:18 +0100 <dminuoso_> `Runs a Workflow and returns the Dynamic result of the Workflow (i.e., a Dynamic of the value produced by the current Workflow node, and whose update Event fires whenever one Workflow is replaced by another).`
2023-03-02 08:25:03 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2023-03-02 08:25:16 +0100 <dminuoso_> Most of the documentation is documentation on a semantic level, which by itself is probably really cool and more useful for experts - but its also mostly useless for someone trying to absord how to solve simple problems with reflex.
2023-03-02 08:32:16 +0100gurkenglas(~gurkengla@dynamic-089-204-138-097.89.204.138.pool.telefonica.de)
2023-03-02 08:39:25 +0100kenran(~user@user/kenran)
2023-03-02 08:39:33 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-02 08:44:33 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2023-03-02 08:45:19 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-02 08:50:06 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2023-03-02 08:52:01 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:ad66:d77d:1913:4102)
2023-03-02 08:53:33 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-03-02 09:00:52 +0100michalz(~michalz@185.246.207.217)
2023-03-02 09:01:41 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-03-02 09:05:23 +0100razetime(~Thunderbi@117.193.7.114) (Ping timeout: 260 seconds)
2023-03-02 09:06:33 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:8429:4ceb:8103:61ef) (Remote host closed the connection)
2023-03-02 09:08:11 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-03-02 09:09:06 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-03-02 09:11:58 +0100acidjnk_new(~acidjnk@p200300d6e715c424d939d96a9ad2afa1.dip0.t-ipconnect.de)
2023-03-02 09:21:56 +0100Midjak(~Midjak@82.66.147.146)
2023-03-02 09:26:01 +0100kenran(~user@user/kenran) (Remote host closed the connection)
2023-03-02 09:26:46 +0100hagbard(~hagbard@user/hagbard) (Leaving)
2023-03-02 09:28:35 +0100 <chreekat> ribosomerocker: I think what's going on is that the documentation on downloads.haskell.org is not yet automatically updated
2023-03-02 09:31:30 +0100razetime(~Thunderbi@117.193.7.114)
2023-03-02 09:34:22 +0100fserucas(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
2023-03-02 09:36:31 +0100xkuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2023-03-02 09:36:51 +0100ft(~ft@p3e9bc443.dip0.t-ipconnect.de) (Quit: leaving)
2023-03-02 09:36:58 +0100hpc(~juzz@ip98-169-35-163.dc.dc.cox.net) (Ping timeout: 246 seconds)
2023-03-02 09:38:57 +0100hpc(~juzz@ip98-169-35-163.dc.dc.cox.net)
2023-03-02 09:44:13 +0100chexum_(~quassel@gateway/tor-sasl/chexum)
2023-03-02 09:47:53 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds)
2023-03-02 09:48:12 +0100califax(~califax@user/califx) (Remote host closed the connection)
2023-03-02 09:49:00 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-03-02 09:49:14 +0100merijn(~merijn@195.114.232.94)
2023-03-02 09:49:35 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Remote host closed the connection)
2023-03-02 09:50:16 +0100califax(~califax@user/califx)
2023-03-02 09:52:02 +0100MajorBiscuit(~MajorBisc@c-001-019-034.client.tudelft.eduvpn.nl)
2023-03-02 09:54:43 +0100vpan(~0@212.117.1.172)
2023-03-02 09:55:39 +0100acidjnk_new(~acidjnk@p200300d6e715c424d939d96a9ad2afa1.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-03-02 09:56:42 +0100shriekingnoise(~shrieking@186.137.175.87) (Ping timeout: 268 seconds)
2023-03-02 09:56:57 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-03-02 09:56:58 +0100mc47(~mc47@xmonad/TheMC47)
2023-03-02 10:02:44 +0100gmg(~user@user/gehmehgeh) (Ping timeout: 255 seconds)
2023-03-02 10:05:11 +0100gmg(~user@user/gehmehgeh)
2023-03-02 10:07:02 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:8429:4ceb:8103:61ef)
2023-03-02 10:11:14 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:8429:4ceb:8103:61ef) (Ping timeout: 246 seconds)
2023-03-02 10:15:14 +0100cfricke(~cfricke@user/cfricke)
2023-03-02 10:19:05 +0100zeenk(~zeenk@2a02:2f04:a20d:f900::7fe)
2023-03-02 10:19:47 +0100Midjak(~Midjak@82.66.147.146) (Read error: Connection reset by peer)
2023-03-02 10:20:18 +0100Midjak(~Midjak@82.66.147.146)
2023-03-02 10:22:30 +0100razetime1(~Thunderbi@117.254.35.192)
2023-03-02 10:23:20 +0100razetime(~Thunderbi@117.193.7.114) (Ping timeout: 255 seconds)
2023-03-02 10:23:21 +0100razetime1razetime
2023-03-02 10:32:00 +0100mrcsno(~mrcsno@user/mrcsno) (Quit: WeeChat 3.5)
2023-03-02 10:33:46 +0100ubert1(~Thunderbi@2a02:8109:abc0:6434:f64b:825d:d5ca:2a04)
2023-03-02 10:34:01 +0100mrcsno(~mrcsno@user/mrcsno)
2023-03-02 10:41:01 +0100dhil(~dhil@78.45.150.83.ewm.ftth.as8758.net)
2023-03-02 10:41:52 +0100razetime1(~Thunderbi@117.193.3.202)
2023-03-02 10:42:57 +0100razetime(~Thunderbi@117.254.35.192) (Ping timeout: 268 seconds)
2023-03-02 10:42:58 +0100razetime1razetime
2023-03-02 10:44:43 +0100ubert1(~Thunderbi@2a02:8109:abc0:6434:f64b:825d:d5ca:2a04) (Remote host closed the connection)
2023-03-02 10:50:03 +0100M3kh3t(~Sh4it4n@2-239-18-159.ip247.fastwebnet.it)
2023-03-02 10:50:13 +0100M3kh3t(~Sh4it4n@2-239-18-159.ip247.fastwebnet.it) ()
2023-03-02 10:53:24 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2023-03-02 10:53:47 +0100raym(~ray@user/raym) (Ping timeout: 248 seconds)
2023-03-02 10:55:13 +0100raym(~ray@user/raym)
2023-03-02 10:58:24 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-03-02 10:58:54 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-03-02 11:01:44 +0100teo(~teo@user/teo)
2023-03-02 11:02:09 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2023-03-02 11:02:53 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2023-03-02 11:04:47 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2023-03-02 11:08:51 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 268 seconds)
2023-03-02 11:14:00 +0100 <jackdk> dminuoso_: I have heard from several veterans that Haskell -> Reflex is a similar jump as Imperative Programming -> Haskell. I agree, but the state of docs and teaching aids are much better now (though I wish I could find somewhere to host the QFPL reflex workshop vm - I have it building with Nix but that's long and slow).
2023-03-02 11:14:01 +0100 <jackdk> But I do find myself feeling like I did when I first learned Haskell: I could write small programs, but had no idea how to decompose larger problems.
2023-03-02 11:15:44 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2023-03-02 11:18:55 +0100acidjnk_new(~acidjnk@p200300d6e715c424d939d96a9ad2afa1.dip0.t-ipconnect.de)
2023-03-02 11:26:28 +0100 <Jade[m]1> mhm
2023-03-02 11:26:46 +0100 <Jade[m]1> I want to try this, it seems interesting
2023-03-02 11:35:30 +0100razetime(~Thunderbi@117.193.3.202) (Remote host closed the connection)
2023-03-02 11:37:28 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)
2023-03-02 11:40:44 +0100Monster196883(~hp@103.15.228.66)
2023-03-02 11:48:00 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2023-03-02 11:49:49 +0100__monty__(~toonn@user/toonn)
2023-03-02 11:57:02 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 255 seconds)
2023-03-02 11:57:25 +0100phma(~phma@host-67-44-208-142.hnremote.net) (Read error: Connection reset by peer)
2023-03-02 11:59:25 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2023-03-02 12:00:05 +0100phma(~phma@2001:5b0:211f:2648:c269:c58d:a76b:f75)
2023-03-02 12:05:35 +0100Monster196883(~hp@103.15.228.66) (Ping timeout: 248 seconds)
2023-03-02 12:09:53 +0100akegalj(~akegalj@93-137-16-116.adsl.net.t-com.hr)
2023-03-02 12:10:52 +0100xff0x(~xff0x@2405:6580:b080:900:c2b9:dbcf:a435:ee43)
2023-03-02 12:24:06 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2023-03-02 12:25:17 +0100 <L29Ah> i'm trying to link my executable statically via cabal-install, but it fails to link some necessary libs apparently: https://0x0.st/Hz1M.txt
2023-03-02 12:25:20 +0100 <L29Ah> what am i doing wrong?
2023-03-02 12:25:30 +0100michalz(~michalz@185.246.207.217) (Ping timeout: 252 seconds)
2023-03-02 12:26:48 +0100michalz(~michalz@185.246.204.107)
2023-03-02 12:27:46 +0100 <mauke> that looks like it's trying to link C++ stuff as C
2023-03-02 12:28:37 +0100 <geekosaur> also it's repeatedly telling you that you pretty much can't link glibc statically
2023-03-02 12:30:51 +0100Alex_test(~al_test@94.233.240.140) (Ping timeout: 248 seconds)
2023-03-02 12:31:00 +0100AlexZenon(~alzenon@94.233.240.140) (Ping timeout: 252 seconds)
2023-03-02 12:32:08 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 255 seconds)
2023-03-02 12:32:22 +0100manwithluck(~manwithlu@hoeven.dossingday.ml) (Quit: ZNC - https://znc.in)
2023-03-02 12:32:36 +0100manwithluck(manwithluc@hoeven.dossingday.ml)
2023-03-02 12:32:55 +0100 <L29Ah> geekosaur: i don't care about libc for now
2023-03-02 12:34:07 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2023-03-02 12:34:57 +0100 <L29Ah> although it would be nice if i could pass musl to ghc/cabal without having to rebuild ghc in musl chroot
2023-03-02 12:35:28 +0100 <L29Ah> or ask it to link libc dynamically and the other stuff statically
2023-03-02 12:36:11 +0100 <geekosaur> the linker makes that difficult 😕
2023-03-02 12:36:30 +0100AlexZenon(~alzenon@94.233.240.140)
2023-03-02 12:36:36 +0100Alex_test(~al_test@94.233.240.140)
2023-03-02 12:40:31 +0100xff0x(~xff0x@2405:6580:b080:900:c2b9:dbcf:a435:ee43) (Ping timeout: 260 seconds)
2023-03-02 12:40:55 +0100xff0x(~xff0x@ai081074.d.east.v6connect.net)
2023-03-02 12:41:34 +0100vglfr(~vglfr@145.224.100.119) (Remote host closed the connection)
2023-03-02 12:42:46 +0100vglfr(~vglfr@145.224.100.119)
2023-03-02 12:46:22 +0100freeside(~mengwong@103.252.202.85)
2023-03-02 12:48:42 +0100CiaoSen(~Jura@p200300c9570e91002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2023-03-02 12:48:52 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection)
2023-03-02 12:49:11 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
2023-03-02 12:50:56 +0100 <freeside> greetings. I'm trying to solve a problem which might be better tackled in Python ... but I'd like to try Haskell first. I *think* the algorithm I'm looking for is LSH, locality-sensitive hashing. The problem is that I'm trying to detect subsequence inversions, of the form 123aaa456bbb789 vs 123BBB456AAA789; I want to detect that the aaa/AAA and bbb/BBB sequences were flipped, even if the content of
2023-03-02 12:51:02 +0100 <freeside> those sequences is not 100% identical.
2023-03-02 12:51:29 +0100califax(~califax@user/califx) (Ping timeout: 255 seconds)
2023-03-02 12:51:31 +0100ub(~Thunderbi@p548c9fde.dip0.t-ipconnect.de)
2023-03-02 12:52:11 +0100 <dminuoso_> LSH is not a particular algorithm, its a technique.
2023-03-02 12:52:19 +0100 <dminuoso_> Do you have an algorithm you want to implement?
2023-03-02 12:52:56 +0100 <freeside> This is similar to a diff situation where you reorder a bunch of functions during a refactoring, and make minor changes along the way. It looks like diff doesn't do anything particularly intelligent, but for my app I want to be able to visualize changes, and in this case I need to draw a sort of X that shows the chunks have flipped.
2023-03-02 12:52:59 +0100 <dminuoso_> (Though what you described, doesnt sound like LSH really)
2023-03-02 12:53:15 +0100 <dminuoso_> Or you might be able to do it with the help of LSH perhaps
2023-03-02 12:53:19 +0100 <freeside> I haven't gotten to the point of implementation, I'm first trying to make sure I'm adopting the correct approach
2023-03-02 12:53:37 +0100califax(~califax@user/califx)
2023-03-02 12:54:07 +0100ubert(~Thunderbi@p548c9fde.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-03-02 12:54:08 +0100ububert
2023-03-02 12:54:13 +0100Monster196883(~hp@103.15.228.66)
2023-03-02 12:54:23 +0100 <dminuoso_> I guess your first problem is that you need some fuzzy stemming
2023-03-02 12:55:15 +0100 <freeside> mmm
2023-03-02 12:55:49 +0100 <dminuoso_> With `diff` thats already sorted out, since it operates on lines separated by newline characters.
2023-03-02 12:56:36 +0100 <dminuoso_> freeside: asked differently:"
2023-03-02 12:56:51 +0100 <dminuoso_> Is it an alphanumerical string, where the alpha characters might have their case flipped?
2023-03-02 12:58:07 +0100 <dminuoso_> freeside: and do you need it to be exact, or is an estimate okay?
2023-03-02 12:58:32 +0100 <freeside> if i may share the unvarnished problem statement ...
2023-03-02 12:58:33 +0100 <dminuoso_> Also, what if you have something like `123aaa` vs `1234AAA`, is that a possibility
2023-03-02 12:58:38 +0100 <freeside> new zealand: https://www.enterprisesg.gov.sg/-/media/esg/files/non-financial-assistance/for-companies/free-trad…
2023-03-02 12:58:39 +0100 <dminuoso_> Sure
2023-03-02 12:58:49 +0100 <freeside> australia: https://www.dfat.gov.au/sites/default/files/safta-chapter-2-171201.pdf
2023-03-02 12:59:17 +0100 <freeside> here we have two very similar documents, but one of them has decided to use (a) (b) (c) for paragraph lists, and the other has dispensed with it.
2023-03-02 12:59:38 +0100 <freeside> there are other minor difference on that order, like, one document might say e-mail, and another might say email
2023-03-02 12:59:46 +0100 <dminuoso_> For maximum fun, we have a PDF to start with.
2023-03-02 13:00:06 +0100 <dminuoso_> So that introduces a bazillion ways this can be tricky to analyze
2023-03-02 13:00:13 +0100 <freeside> i have a working pdf -> docx -> md workflow going, if we don't talk about it it won't stop working
2023-03-02 13:00:19 +0100 <dminuoso_> (But we can pretend that we render this, and OCR it back)
2023-03-02 13:00:32 +0100 <dminuoso_> Okay
2023-03-02 13:01:02 +0100 <freeside> the subsequence permutation problem here is that one document might have Article 3: Customs Duties, Article 4: Customs Value, while the other document might have Article 7: Customs Value, Article 8: Customs Duties
2023-03-02 13:01:42 +0100 <dminuoso_> freeside: so for some problems like `e-mail` vs `email` you might want to apply a stemmer to each word.
2023-03-02 13:01:54 +0100 <dminuoso_> (such that you can compare for stemmed equality)
2023-03-02 13:02:10 +0100 <dminuoso_> Given that this appear to be English, good stemmers can be found
2023-03-02 13:02:20 +0100 <freeside> i was hoping those differences would disappear with some kind of approximate hashing, if i look at sequences at article-level granularity rather than word-level
2023-03-02 13:02:32 +0100 <dminuoso_> (.e. use lspell)
2023-03-02 13:02:35 +0100gurkenglas(~gurkengla@dynamic-089-204-138-097.89.204.138.pool.telefonica.de) (Ping timeout: 260 seconds)
2023-03-02 13:02:56 +0100 <dminuoso_> yeah I think you wdant to do a word-wise stemmer normalization with lspell
2023-03-02 13:03:05 +0100 <dminuoso_> that will take care of slightly altered spelling of words
2023-03-02 13:03:10 +0100chele(~chele@user/chele)
2023-03-02 13:03:18 +0100mmhat(~mmh@p200300f1c70462d7ee086bfffe095315.dip0.t-ipconnect.de)
2023-03-02 13:03:30 +0100 <freeside> okay, i will look into that
2023-03-02 13:03:50 +0100 <dminuoso_> Sorry *Ipsell my bad
2023-03-02 13:04:07 +0100 <freeside> but what if i just chop up the documents into lists of articles, and then i run some approximate hashing at the article level, and then foreach article in one document, i seek closest match in the other
2023-03-02 13:04:40 +0100 <dminuoso_> freeside: there's far more options with regards to normaliszation, but I think Ispell is a good first step.
2023-03-02 13:04:48 +0100 <dminuoso_> freeside: you will have to do normalization first.
2023-03-02 13:05:00 +0100mmhat(~mmh@p200300f1c70462d7ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit)
2023-03-02 13:05:15 +0100 <dminuoso_> the paragraph notation, I dont know of freely available software that can do this
2023-03-02 13:05:23 +0100 <dminuoso_> most open source software doesnt operate on that level
2023-03-02 13:05:41 +0100 <freeside> ok, i could normalize that away.
2023-03-02 13:05:54 +0100 <dminuoso_> good
2023-03-02 13:06:20 +0100 <dminuoso_> freeside: by the way, this problem is deeply related to full text search algorithms.
2023-03-02 13:06:41 +0100 <dminuoso_> which all rely on stemming/normalizing words from input
2023-03-02 13:06:53 +0100 <freeside> mmhm, i feel like i am about 30 years behind google here lol, and this is just for a quick one-of
2023-03-02 13:06:55 +0100Monster196883(~hp@103.15.228.66) (Ping timeout: 248 seconds)
2023-03-02 13:07:09 +0100 <freeside> i'm reading this paper on AHBM: https://www.sciencedirect.com/science/article/pii/S1742287614000085#:~:text=Approximate%20Hash%20B…(AHBM,from%20memory%20or%20deleted%20files.
2023-03-02 13:07:35 +0100 <dminuoso_> freeside: if youw ant to reuse technology
2023-03-02 13:07:42 +0100 <freeside> yes, please
2023-03-02 13:07:43 +0100 <dminuoso_> you could perhaps get quite far by using postgresql
2023-03-02 13:07:58 +0100 <freeside> oh, pgsql has all the algorithms inside now, does it
2023-03-02 13:08:06 +0100 <dminuoso_> turn things into tsvector, having no stop words
2023-03-02 13:08:15 +0100 <dminuoso_> then you just have to deal with comparing tsvectors
2023-03-02 13:08:24 +0100 <dminuoso_> (that's something you have to fill)
2023-03-02 13:08:54 +0100 <dminuoso_> even if stop words are used, its probably still fine
2023-03-02 13:08:59 +0100 <dminuoso_> (assuming you can live with that)
2023-03-02 13:09:10 +0100 <dminuoso_> freeside: the almost bigger problem is that tsvector doesnt keep original information around directly
2023-03-02 13:09:15 +0100 <dminuoso_> so it could be difficult
2023-03-02 13:09:32 +0100 <dminuoso_> (i.e. in a tsvector elements dont have their unnormalized form available)
2023-03-02 13:10:20 +0100 <freeside> that's fine, i will bust out the Schwartzian Transform
2023-03-02 13:10:43 +0100 <dminuoso_> But honestly, I think postgresql is a bit overkill
2023-03-02 13:11:15 +0100 <dminuoso_> https://snowballstem.org/
2023-03-02 13:11:21 +0100 <dminuoso_> This might be an even better option than ispell
2023-03-02 13:12:16 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2023-03-02 13:12:56 +0100 <freeside> the normalization will be insufficient in some cases, where a sentence in one doc might be "there shall be no tariffs on Koala fur made in Australia" while the other doc might be "there shall be no tariffs on Sheep fur made in New Zealand"
2023-03-02 13:13:09 +0100 <freeside> I was hoping the approximate hashing would handle that
2023-03-02 13:13:15 +0100 <dminuoso_> hold on, different problems ere,
2023-03-02 13:13:22 +0100 <dminuoso_> Im not saying normalization solves all your problems
2023-03-02 13:13:27 +0100 <dminuoso_> just that its a necessary step
2023-03-02 13:13:35 +0100 <freeside> ok
2023-03-02 13:14:25 +0100 <dminuoso_> you could just do split by word boundary, apply normalization (schwartzian style), and then do a diff algorithm on that
2023-03-02 13:14:45 +0100acidjnk_new(~acidjnk@p200300d6e715c424d939d96a9ad2afa1.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2023-03-02 13:14:52 +0100 <dminuoso_> say myers
2023-03-02 13:15:57 +0100 <dminuoso_> such that the myers diff will consider the normalized strings, but print out non-normalized chunks
2023-03-02 13:16:29 +0100 <freeside> the schwartzian transform is really just an Arrow, isn't it
2023-03-02 13:16:41 +0100 <dminuoso_> Sure, if you want that interface.
2023-03-02 13:17:08 +0100 <dminuoso_> freeside: https://hackage.haskell.org/package/snowball
2023-03-02 13:17:13 +0100 <dminuoso_> Here, bindings even exist
2023-03-02 13:17:42 +0100 <dminuoso_> https://hackage.haskell.org/package/Diff
2023-03-02 13:17:48 +0100 <dminuoso_> I think with these two you can get quite far.
2023-03-02 13:18:13 +0100 <dminuoso_> And something like paragraph notation you can treat like stop words that you just elide
2023-03-02 13:19:06 +0100gurkenglas(~gurkengla@dynamic-089-204-138-097.89.204.138.pool.telefonica.de)
2023-03-02 13:23:49 +0100 <dminuoso_> freeside: let eqing f x y = f x == f y in getGroupedDiffBy (eqing snd) (id &&& stem English)
2023-03-02 13:24:19 +0100 <dminuoso_> Maybe with some `. T.words` at the end, done!
2023-03-02 13:24:51 +0100 <dminuoso_> oh hold on
2023-03-02 13:25:06 +0100 <freeside> mmm
2023-03-02 13:25:13 +0100 <dminuoso_> let eqing f x y = f x == f y in getGroupedDiffBy (eqing snd) . (id && stem English) . T.words
2023-03-02 13:25:17 +0100 <dminuoso_> Something like that
2023-03-02 13:26:37 +0100 <dminuoso_> Ah not quite given the signature of getGroupedDiffBy, needs some uncurry, but I think you get the idea.
2023-03-02 13:28:13 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-03-02 13:31:01 +0100 <freeside> thank you, i shall try this
2023-03-02 13:31:11 +0100 <freeside> i am going to pretend it is an AoC problem and just power through it
2023-03-02 13:33:00 +0100 <freeside> you know, my first language was Perl, and I am now going to demonstrate that one can write Perl in any language
2023-03-02 13:33:33 +0100 <dminuoso_> One of the few languages that were actually designed. :)
2023-03-02 13:42:27 +0100anpad(~pandeyan@user/anpad) (Quit: ZNC 1.8.2 - https://znc.in)
2023-03-02 13:44:53 +0100anpad(~pandeyan@user/anpad)
2023-03-02 13:55:39 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 248 seconds)
2023-03-02 13:56:18 +0100cheater_(~Username@user/cheater)
2023-03-02 13:58:51 +0100 <hpc> heh, yeah perl's the best
2023-03-02 13:59:25 +0100 <hpc> one of my only-half-jokes is that haskell's my favorite imperative language and perl's my favorite functional language
2023-03-02 13:59:27 +0100cheater(~Username@user/cheater) (Ping timeout: 255 seconds)
2023-03-02 13:59:33 +0100cheater_cheater
2023-03-02 14:02:25 +0100 <gurkenglas> aww, Copilot just wanted to use data in a where expression and it has a point
2023-03-02 14:03:18 +0100jtomas(~jtomas@81.172.17.107.dyn.user.ono.com)
2023-03-02 14:06:36 +0100acidjnk_new(~acidjnk@p200300d6e715c424d939d96a9ad2afa1.dip0.t-ipconnect.de)
2023-03-02 14:07:33 +0100lyle(~lyle@104.246.145.237)
2023-03-02 14:08:50 +0100 <freeside> is that something ocaml would allow?
2023-03-02 14:10:38 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:8429:4ceb:8103:61ef)
2023-03-02 14:11:22 +0100jtomas(~jtomas@81.172.17.107.dyn.user.ono.com) (Remote host closed the connection)
2023-03-02 14:15:03 +0100Guest35(~Guest35@2a02:1210:7e50:ca00:6e96:c5da:4cf3:d7d5)
2023-03-02 14:15:30 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:8429:4ceb:8103:61ef) (Ping timeout: 260 seconds)
2023-03-02 14:16:18 +0100Guest35(~Guest35@2a02:1210:7e50:ca00:6e96:c5da:4cf3:d7d5) (Client Quit)
2023-03-02 14:21:54 +0100Guest55(~Guest55@150.254.83.188)
2023-03-02 14:22:39 +0100mechap(~mechap@user/mechap) (Ping timeout: 248 seconds)
2023-03-02 14:23:51 +0100 <Guest55> hi, would you recommend me some course on haskell and functional programming in general? i was lead here from the haskell mooc fi website
2023-03-02 14:24:28 +0100mechap(~mechap@user/mechap)
2023-03-02 14:26:33 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2023-03-02 14:26:35 +0100mrcsno(~mrcsno@user/mrcsno) (Ping timeout: 264 seconds)
2023-03-02 14:27:41 +0100 <opqdonut> was there something wrong with the haskell.mooc.fi course?
2023-03-02 14:27:59 +0100 <opqdonut> or are you looking for something more advanced?
2023-03-02 14:31:56 +0100 <Guest55> i just found it browsing through mooc courses where i landed from completely different reason, it wasnt really recommended to me so decided its worth a shot to ask someone experienced abt haskell courses&tutorials landscape
2023-03-02 14:33:09 +0100 <Guest55> are you familiar with that one or any particular other one?
2023-03-02 14:34:13 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2023-03-02 14:34:30 +0100 <opqdonut> I wrote haskell.mooc.fi, and I think it's a great course O:)
2023-03-02 14:34:45 +0100 <opqdonut> unlike many other courses (like Learn You A Haskell), it has lots of exercises
2023-03-02 14:34:56 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2023-03-02 14:35:18 +0100 <opqdonut> student feedback has been really positive
2023-03-02 14:36:08 +0100 <opqdonut> over 700 students have finished part 1 by submitting their solutions to the course server
2023-03-02 14:36:28 +0100 <opqdonut> but the course can be worked on independently as well, so there might be many more students who just don't bother with the formalities
2023-03-02 14:38:33 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-03-02 14:39:22 +0100 <Guest55> oh i see! I'm glad to have occasion to thank you for creating the course, I just started it, but i am looking forward to use further advance later, and also leave feedback as i i finish it. thank you for the response and cheers
2023-03-02 14:39:26 +0100Guest55(~Guest55@150.254.83.188) (Quit: Client closed)
2023-03-02 14:40:33 +0100Lycurgus(~juan@user/Lycurgus)
2023-03-02 14:40:58 +0100dfg(~dfg@user/dfg) (Quit: I hate quit messages.)
2023-03-02 14:41:16 +0100dfg(~dfg@dfg.rocks)
2023-03-02 14:41:16 +0100dfg(~dfg@dfg.rocks) (Changing host)
2023-03-02 14:41:16 +0100dfg(~dfg@user/dfg)
2023-03-02 14:44:58 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-03-02 14:50:42 +0100infinity0(~infinity0@pwned.gg) (Ping timeout: 252 seconds)
2023-03-02 14:53:00 +0100abhim(~abhim@238-197.wifi.nat.warwick.ac.uk)
2023-03-02 14:53:07 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:ad66:d77d:1913:4102) (Quit: WeeChat 2.8)
2023-03-02 14:55:35 +0100 <abhim> Getting an error trying to install GHCup on WSL 2
2023-03-02 14:55:36 +0100 <abhim> [GHCup-00841] Process "sh" with arguments ["./configure",
2023-03-02 14:55:36 +0100 <abhim> [ ... ] "--prefix=/home/abhim/.ghcup/ghc/9.2.5"] failed with exit code 1.
2023-03-02 14:55:37 +0100 <abhim> Any clue what it's about?
2023-03-02 14:55:37 +0100 <abhim> I also get: "ghcup --metadata-fetching-mode=Strict --cache install ghc recommended" failed!
2023-03-02 15:00:59 +0100gurkenglas(~gurkengla@dynamic-089-204-138-097.89.204.138.pool.telefonica.de) (Ping timeout: 255 seconds)
2023-03-02 15:03:21 +0100infinity0(~infinity0@pwned.gg)
2023-03-02 15:04:32 +0100cfricke(~cfricke@user/cfricke) (Ping timeout: 246 seconds)
2023-03-02 15:06:53 +0100cfricke(~cfricke@user/cfricke)
2023-03-02 15:08:43 +0100 <ph88> how can i concat 4x Word8 into Word32 ?
2023-03-02 15:08:59 +0100 <dminuoso_> ph88: Data.Bits
2023-03-02 15:09:06 +0100 <ph88> thanks dminuoso_ :)
2023-03-02 15:09:21 +0100 <dminuoso_> ph88: Use shiftL and (.&.)
2023-03-02 15:09:41 +0100 <dminuoso_> Oh and fromIntegral obviously.
2023-03-02 15:09:58 +0100thegeekinside(~thegeekin@189.141.115.134)
2023-03-02 15:10:18 +0100 <dminuoso_> Or .|. I guess heh
2023-03-02 15:10:42 +0100 <dminuoso_> https://gist.github.com/dminuoso/8c4eb6a1d996f4e226f9ecce23c35895
2023-03-02 15:14:17 +0100 <mauke> fromIntegral, * 256, +
2023-03-02 15:16:11 +0100abhim(~abhim@238-197.wifi.nat.warwick.ac.uk) (Quit: Connection closed)
2023-03-02 15:16:38 +0100Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
2023-03-02 15:16:40 +0100 <hololeap> is darcs dead?
2023-03-02 15:16:55 +0100shriekingnoise(~shrieking@186.137.175.87)
2023-03-02 15:19:24 +0100 <hololeap> it just looks like no effort has been taken to let it build on ghc-9.2
2023-03-02 15:20:54 +0100akegalj(~akegalj@93-137-16-116.adsl.net.t-com.hr) (Quit: leaving)
2023-03-02 15:20:55 +0100 <dminuoso_> mauke: Okay lets debate about that. Is multiplication and addition better suited than shift and OR?
2023-03-02 15:21:31 +0100 <mauke> depends
2023-03-02 15:21:41 +0100 <dminuoso_> A bit benefit of shift+or is that the relationship to the value is visually better tied to the type (shifting 8/26/24 bits for Word8 into Word32)
2023-03-02 15:21:57 +0100 <dminuoso_> With 256 its not as obvious whether its correct when looking at Word8 and Word32
2023-03-02 15:22:05 +0100abhim(~abhim@238-197.wifi.nat.warwick.ac.uk)
2023-03-02 15:22:12 +0100 <mauke> why not?
2023-03-02 15:22:51 +0100 <ph88> cool gist dminuoso_ i will take it :)
2023-03-02 15:23:22 +0100 <dminuoso_> mauke: Because Word8 and Word32 have the number of bits in the type name itself already.
2023-03-02 15:23:32 +0100 <mauke> I mention the alternative because some people are more comfortable with "normal" arithmetic (+, -, *, /)
2023-03-02 15:23:43 +0100 <dminuoso_> With 256 you go from number of bits into a decimal representation of maximum value first
2023-03-02 15:23:49 +0100 <mauke> and it is occasionally useful to remember that that is what's actually happening
2023-03-02 15:24:04 +0100 <dminuoso_> Mmm
2023-03-02 15:24:19 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2023-03-02 15:24:30 +0100 <dminuoso_> Though if the problem is already formulated as "concatenating Word8 into Word32" that already suggests thinking about shift and or.
2023-03-02 15:24:43 +0100 <dminuoso_> The connection to multiplication is almost incidental, here.
2023-03-02 15:24:55 +0100 <mauke> all shifts are multiplications
2023-03-02 15:25:07 +0100abhim(~abhim@238-197.wifi.nat.warwick.ac.uk) (Client Quit)
2023-03-02 15:25:26 +0100 <dminuoso_> Thinking about multiplication by 256 is actually based on a base-256 level of thinking.
2023-03-02 15:25:26 +0100 <mauke> (doesn't have to be decimal, either: 256 could be written as 0xFF or whatever)
2023-03-02 15:25:37 +0100 <dminuoso_> (which seems very unintuitive)
2023-03-02 15:25:53 +0100 <mauke> eh? but that's what bytes are
2023-03-02 15:26:06 +0100 <mauke> machine words are effectively in base 256
2023-03-02 15:27:04 +0100 <dminuoso_> Fair I guess. Its just that when I think of a Word8, I dont see a value range 0-255, I rather see just "8 bits of information"
2023-03-02 15:27:19 +0100 <dminuoso_> Which is equivalent of course, but the former isnt exactly what Id be thinking about
2023-03-02 15:28:25 +0100 <mauke> > foldl (\z x -> z * 256 + x) 0 [a, b, c, d]
2023-03-02 15:28:27 +0100 <lambdabot> (((0 * 256 + a) * 256 + b) * 256 + c) * 256 + d
2023-03-02 15:28:56 +0100 <mauke> > foldl (\z x -> z `shiftL` 8 .|. x) 0 [a, b, c, d]
2023-03-02 15:28:57 +0100 <lambdabot> error:
2023-03-02 15:28:57 +0100 <lambdabot> • No instance for (Bits Expr) arising from a use of ‘.|.’
2023-03-02 15:28:57 +0100 <lambdabot> • In the expression: z `shiftL` 8 .|. x
2023-03-02 15:29:00 +0100 <mauke> aww
2023-03-02 15:29:37 +0100 <dminuoso_> % :t \a b c d -> foldl (\z x -> z `shiftL` 8 .|. x) 0 [a, b, c, d]
2023-03-02 15:29:37 +0100 <yahb2> <interactive>:1:30: error: ; Variable not in scope: shiftL :: t2 -> t0 -> t1 ; ; <interactive>:1:41: error: ; Variable not in scope: (.|.) :: t1 -> t -> t2
2023-03-02 15:29:42 +0100 <dminuoso_> % import Data.Bits
2023-03-02 15:29:42 +0100 <yahb2> <no output>
2023-03-02 15:29:43 +0100 <dminuoso_> % :t \a b c d -> foldl (\z x -> z `shiftL` 8 .|. x) 0 [a, b, c, d]
2023-03-02 15:29:43 +0100 <yahb2> \a b c d -> foldl (\z x -> z `shiftL` 8 .|. x) 0 [a, b, c, d] ; :: (Bits b, Num b) => b -> b -> b -> b -> b
2023-03-02 15:30:18 +0100 <mauke> anyway, doing it as a fold reduces the number of magic numbers in the code :-)
2023-03-02 15:30:22 +0100 <mauke> whether it be 256 or 8
2023-03-02 15:30:38 +0100 <dminuoso_> Yeah indeed
2023-03-02 15:30:42 +0100califax(~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in)
2023-03-02 15:30:49 +0100 <dminuoso_> It's just a bit sad you cant do this cleanly in my gist.
2023-03-02 15:30:54 +0100 <mauke> (and nicely generalises to Word64)
2023-03-02 15:31:05 +0100 <dminuoso_> I mean yeah, you can do it for ipv4FromWord8s at least
2023-03-02 15:31:36 +0100 <dminuoso_> But this is trivial to write, tests are in place to ensure this is done correctly, and I get better guarantees about inlining.
2023-03-02 15:31:53 +0100 <dminuoso_> (not quite sure whether ghc can even unroll loops like that)
2023-03-02 15:31:59 +0100califax(~califax@user/califx)
2023-03-02 15:32:09 +0100 <mauke> yeah, this is more something I'd do in C
2023-03-02 15:34:32 +0100Monster196883(~hp@103.15.228.66)
2023-03-02 15:37:20 +0100dhil(~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 248 seconds)
2023-03-02 15:41:11 +0100 <fbytez> Could someone point me in the right direction for calling out to external linux processes, please.
2023-03-02 15:41:58 +0100 <geekosaur> look at the System.Process module
2023-03-02 15:42:08 +0100 <Hecate> fbytez: https://flora.pm/packages/@hackage/typed-process
2023-03-02 15:42:22 +0100 <fbytez> Thankyou.
2023-03-02 15:45:34 +0100Monster196883(~hp@103.15.228.66) (Ping timeout: 252 seconds)
2023-03-02 15:47:45 +0100 <dminuoso_> Hecate: Mmm, know what we need? A full dependency diagram (cabal-plan dot-png or some such) for each package.
2023-03-02 15:48:30 +0100 <dminuoso_> Refreshed every day with whatever plan cabal can generate using the hackage state at that point
2023-03-02 15:48:39 +0100 <dminuoso_> What do you think about that?
2023-03-02 15:48:47 +0100 <dminuoso_> People might stop using aeson :>
2023-03-02 15:49:30 +0100 <dminuoso_> Though to fair, having more dependencies than it has versions has so far not stopped anyone but me yet
2023-03-02 15:51:45 +0100 <mauke> why would you release multiple versions? just get it perfect the first time :5head:
2023-03-02 15:54:32 +0100 <Hecate> dminuoso_: https://github.com/flora-pm/flora-server/discussions/new?category=feature-requests
2023-03-02 15:56:34 +0100Monster196883(~hp@103.15.228.66)
2023-03-02 16:03:52 +0100 <dminuoso_> Ah perfect
2023-03-02 16:07:37 +0100 <ph88> How to go from Word32 to bytestring ?
2023-03-02 16:08:46 +0100 <mauke> depends on which bytestring
2023-03-02 16:08:50 +0100 <lyxia> ph88: https://hackage.haskell.org/package/bytestring-0.11.4.0/docs/Data-ByteString-Builder.html#v:word32BE
2023-03-02 16:09:05 +0100 <ph88> thanks lyxia :)
2023-03-02 16:19:16 +0100 <fbytez> In the examples for System.Process.Typed, what is "{-# LANGUAGE OverloadedStrings #-}" for?
2023-03-02 16:19:42 +0100 <dminuoso_> fbytez: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/overloaded_strings.html#extension-Overload…
2023-03-02 16:19:55 +0100 <fbytez> Right.
2023-03-02 16:20:40 +0100 <dminuoso_> runProcess :: MonadIO m => ProcessConfig stdin stdout stderr -> m ExitCode
2023-03-02 16:20:53 +0100 <dminuoso_> instance (stdin ~ (), stdout ~ (), stderr ~ ()) => IsString (ProcessConfig stdin stdout stderr) where ...
2023-03-02 16:21:31 +0100 <ph88> is there a version of Either that instead of returning the first error collect all the errors until the end of the monad ?
2023-03-02 16:21:32 +0100 <geekosaur> so in this case it lets you use a literal string as a Text or ByteString instead of a String, without requiring you to manually pack it
2023-03-02 16:21:43 +0100 <mauke> fbytez: https://www.stackage.org/haddock/nightly-2023-02-27/typed-process-0.2.11.0/System-Process-Typed.ht…
2023-03-02 16:22:00 +0100 <mauke> ph88: Writer?
2023-03-02 16:23:11 +0100 <fbytez> Thankyou.
2023-03-02 16:25:03 +0100 <dminuoso_> geekosaur: Not as a Text or ByteString, but a ProcessConfig in particualr.
2023-03-02 16:25:18 +0100 <dminuoso_> fromString s | any (== ' ') s = shell s | otherwise = proc s []
2023-03-02 16:25:31 +0100 <dminuoso_> That's a highly dubious instance, in my opinion.
2023-03-02 16:25:45 +0100 <dminuoso_> That `any (== ' ')` branch uh.
2023-03-02 16:26:19 +0100 <dminuoso_> Something like `/exe/with space.sh` will not make you happy.
2023-03-02 16:26:28 +0100Sgeo(~Sgeo@user/sgeo)
2023-03-02 16:27:36 +0100polyphem_(~rod@2a02:810d:840:8754:dafc:581f:2a59:730)
2023-03-02 16:28:01 +0100 <mauke> yeah, clearly should be `elem`
2023-03-02 16:28:07 +0100 <fbytez> It wouldn't be a problem if you still provide a `[]` argument too though, right?
2023-03-02 16:28:10 +0100cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.8)
2023-03-02 16:29:13 +0100 <dminuoso_> mauke: hah, that's not what I was getting at. :P
2023-03-02 16:29:20 +0100img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2023-03-02 16:29:22 +0100 <mauke> what's more interesting is that `ls|less` would not invoke the shell
2023-03-02 16:29:35 +0100 <dminuoso_> indeed, its an incredibly brittle and poor heuristic
2023-03-02 16:29:45 +0100 <dminuoso_> this should do either shell or proc (probably better just shell)
2023-03-02 16:29:53 +0100 <dminuoso_> not both
2023-03-02 16:29:58 +0100 <mauke> should've used perl instead :-D
2023-03-02 16:31:00 +0100 <mauke> (perl's system() scans the supplied string for shell meta-characters; if there are none, it splits on spaces and calls execv directly)
2023-03-02 16:31:24 +0100 <dminuoso_> mauke: and will it detect shell builtins?
2023-03-02 16:31:39 +0100 <dminuoso_> that is would it try and execve "pwd"?
2023-03-02 16:31:44 +0100 <mauke> no, that's the weak point
2023-03-02 16:31:46 +0100 <fbytez> I'm brand new to haskell and trying to decide how practical it is to use. The appealing part is strongly-typed functional static binaries.
2023-03-02 16:31:55 +0100 <mauke> pwd exists
2023-03-02 16:32:08 +0100 <dminuoso_> No, its a shell built-in
2023-03-02 16:32:13 +0100 <dminuoso_> at least on most distributoins
2023-03-02 16:32:14 +0100 <mauke> the issue is with stuff like cd or set
2023-03-02 16:32:26 +0100 <mauke> pwd is /usr/bin/pwd
2023-03-02 16:32:33 +0100 <Unhammer> how do I add to the "load path" of runhaskell?
2023-03-02 16:32:34 +0100 <dminuoso_> On your linux distribution perhaps
2023-03-02 16:32:36 +0100 <geekosaur> posix, for stupid reasons, required at one point that executables exist for all the shell builtins. not that e.g. `cd` is useful
2023-03-02 16:32:39 +0100img(~img@user/img)
2023-03-02 16:32:44 +0100 <mauke> (and also a shell builtin, but that doesn't hurt)
2023-03-02 16:33:03 +0100 <dminuoso_> geekosaur: do you happen to know the stupid reasons?
2023-03-02 16:33:05 +0100 <Unhammer> like, I can runhaskell app/Main.hs if I put Lib.hs in . but if it's in src, runhaskell claims Lib doesn't export myFunc
2023-03-02 16:33:14 +0100 <dminuoso_> fbytez: Okay, welcome then.
2023-03-02 16:33:18 +0100 <geekosaur> not off the top of my head any more
2023-03-02 16:33:24 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2023-03-02 16:33:28 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2023-03-02 16:33:31 +0100 <Unhammer> (which is confusing, when it seems like the real error is it just can't find Lib.hs)
2023-03-02 16:34:24 +0100 <geekosaur> I think `runhaskell -isrc`
2023-03-02 16:34:41 +0100 <dminuoso_> fbytez: How has your experience been, so far?
2023-03-02 16:35:10 +0100 <mauke> Unhammer: sounds like you have a different Lib elsewhere
2023-03-02 16:35:21 +0100 <geekosaur> and the reason you get "doesn't export" is https://downloads.haskell.org/ghc/9.2.5/docs/html/libraries/libiserv-9.2.5/Lib.html
2023-03-02 16:35:40 +0100 <geekosaur> probably
2023-03-02 16:36:03 +0100 <geekosaur> (I don't think I want to know whose bad idea that was)
2023-03-02 16:36:40 +0100 <Unhammer> ouch :(
2023-03-02 16:37:10 +0100 <Unhammer> had no idea Lib was a global module like that
2023-03-02 16:37:17 +0100 <geekosaur> well, it wouldn't bite with normal builds, but runhaskell uses ghci heuristics
2023-03-02 16:37:43 +0100 <geekosaur> so it is likely to search and find the global libiserv package
2023-03-02 16:38:02 +0100 <Unhammer> ok, makes sense
2023-03-02 16:38:30 +0100 <Unhammer> well, -isrc fixed my issue, thanks mauke & geekosaur
2023-03-02 16:40:41 +0100 <fbytez> dminuoso_, too little to say really. 'Awkward', perhaps.
2023-03-02 16:51:59 +0100 <ph88> how do i go from bytestring to Word32 ?
2023-03-02 16:52:58 +0100phma(~phma@2001:5b0:211f:2648:c269:c58d:a76b:f75) (Read error: Connection reset by peer)
2023-03-02 16:53:52 +0100phma(phma@2001:5b0:210d:7c18:f8fd:6f0e:6c01:c11a)
2023-03-02 16:53:56 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2023-03-02 16:54:29 +0100 <dminuoso_> ph88: That's a matter of parsing.
2023-03-02 16:54:37 +0100 <dminuoso_> What that means you must first define yourself
2023-03-02 16:55:01 +0100 <dminuoso_> What representation does the Word32 have in the bytestring?
2023-03-02 16:55:02 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-03-02 16:55:16 +0100 <ph88> it's a bytestring of 4 bytes
2023-03-02 16:55:42 +0100 <dminuoso_> Okay, little endian? big endian?
2023-03-02 16:55:42 +0100 <ph88> what do you mean representation ? it's just 32 bits to 32 bits on the value level
2023-03-02 16:55:46 +0100 <ph88> big endian
2023-03-02 16:56:23 +0100 <dminuoso_> ph88: A ByteString is just an arbitrary sequence of octets. To turn an arbitrary sequence of octets into a Word32 is a matter of parsing a representation of 32 in some particular bytes
2023-03-02 16:57:29 +0100 <ph88> any primitive function available to avoid having to use a parser library ?
2023-03-02 16:58:09 +0100 <dminuoso_> Well you can just use Data.ByteString directly
2023-03-02 16:58:22 +0100Pickchea(~private@user/pickchea)
2023-03-02 16:58:29 +0100 <dminuoso_> % import qualified Data.ByteString as BS
2023-03-02 16:58:29 +0100 <yahb2> <no output>
2023-03-02 16:58:32 +0100 <dminuoso_> % set -XOverloadedStrings
2023-03-02 16:58:32 +0100 <yahb2> <interactive>:22:1: error: ; • Variable not in scope: set ; • Perhaps you meant ‘seq’ (imported from Prelude) ; ; <interactive>:22:6: error: ; Data constructor not in scope: XOverloade...
2023-03-02 16:58:38 +0100 <dminuoso_> % :set -XOverloadedStrings
2023-03-02 16:58:38 +0100 <yahb2> <no output>
2023-03-02 16:59:25 +0100 <dminuoso_> % import Data.Bits
2023-03-02 16:59:25 +0100 <yahb2> <no output>
2023-03-02 17:00:36 +0100mbuf(~Shakthi@49.204.136.4) (Quit: Leaving)
2023-03-02 17:01:13 +0100 <dminuoso_> % import Data.Word (Word32)
2023-03-02 17:01:13 +0100 <yahb2> <no output>
2023-03-02 17:01:36 +0100 <dminuoso_> % parse :: BS.ByteString -> Maybe Word32; parse buf = case BS.unpack (BS.take 4 buf) of [a,b,c,d] -> Just (fromIntegral a `shiftL` 24 .|. fromIntegral b `shiftL` 16 .|. fromIntegral c `shiftL` 8 .|. fromIntegral d); _ -> Nothing
2023-03-02 17:01:36 +0100 <yahb2> <no output>
2023-03-02 17:01:39 +0100 <dminuoso_> % parse "abcd"
2023-03-02 17:01:39 +0100 <yahb2> Just 1633837924
2023-03-02 17:01:43 +0100 <dminuoso_> fbytez: ^- how about this?
2023-03-02 17:01:49 +0100shapr(~user@68.54.166.125)
2023-03-02 17:02:29 +0100dhil(~dhil@78.45.150.83.ewm.ftth.as8758.net)
2023-03-02 17:02:40 +0100 <dminuoso_> % parse "\ff\ff\ff\ff"
2023-03-02 17:02:40 +0100 <yahb2> Just 208014438
2023-03-02 17:03:02 +0100 <dminuoso_> % parse "\xFF\xFF\xFF\xFF"
2023-03-02 17:03:02 +0100 <yahb2> Just 4294967295
2023-03-02 17:03:11 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:8429:4ceb:8103:61ef)
2023-03-02 17:03:39 +0100fnurglewitz(uid263868@id-263868.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-03-02 17:03:57 +0100grnman_(~michaelsc@c-66-176-3-51.hsd1.fl.comcast.net)
2023-03-02 17:04:12 +0100 <fbytez> I think you meant 'ph88'.
2023-03-02 17:04:27 +0100 <dminuoso_> Oh indeed.
2023-03-02 17:04:32 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2023-03-02 17:05:04 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-03-02 17:05:58 +0100 <ph88> dminuoso_, thanks for the help, i could use that. I'm just thinking whether it can be done simpler. The primitive function is available it seems, so on a higher level (Word32 instead of Word#) maybe there is an opportunity to keep it as simple https://hackage.haskell.org/package/ghc-prim-0.5.0.0/docs/GHC-Prim.html#v:indexWord32Array-35-
2023-03-02 17:06:10 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-03-02 17:07:54 +0100 <dminuoso_> ph88: Nothing elegant, really
2023-03-02 17:08:23 +0100 <ph88> alright thanks
2023-03-02 17:09:29 +0100 <dminuoso_> ph88: The first problem you face is that you must ensure the buffer is long enough
2023-03-02 17:10:03 +0100 <dminuoso_> Then you must unwrap the bytestring to get hold of the internal ByteArray#, then you must use magic primitives to prevent the GC from reclaiming it too early
2023-03-02 17:10:16 +0100 <dminuoso_> Libraries like `flatparse` hide exactly that from you
2023-03-02 17:10:39 +0100 <dminuoso_> ph88: consider that library if you want a very minimalistic parser library and you have the need to do some bytestring parsing
2023-03-02 17:10:51 +0100 <dminuoso_> `binary` is also an option, as its a boot library (so its already installed anyway)
2023-03-02 17:12:15 +0100 <ph88> i am already using binary actually for some other parts of the code
2023-03-02 17:12:20 +0100jtza8(~user@165.255.86.7)
2023-03-02 17:12:35 +0100cheater_(~Username@user/cheater)
2023-03-02 17:13:01 +0100 <dminuoso_> https://hackage.haskell.org/package/binary-0.8.9.1/docs/Data-Binary-Get.html#v:getWord32be
2023-03-02 17:13:41 +0100 <ph88> <3
2023-03-02 17:14:42 +0100king_gs(~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7)
2023-03-02 17:14:44 +0100CiaoSen(~Jura@p200300c9570e91002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-03-02 17:14:45 +0100cheater(~Username@user/cheater) (Ping timeout: 255 seconds)
2023-03-02 17:14:50 +0100cheater_cheater
2023-03-02 17:15:56 +0100fserucas(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Quit: Leaving)
2023-03-02 17:20:55 +0100 <jtza8> Given smart constructor: https://paste.tomsmeding.com/PtrleZDQ
2023-03-02 17:22:46 +0100 <jtza8> It feels like a bad idea to automatically flip the two arguments because it allows for silent errors to go unchallenged.
2023-03-02 17:23:19 +0100ddellacosta(~ddellacos@146.70.166.10) (Quit: WeeChat 3.8)
2023-03-02 17:23:40 +0100 <jtza8> Any opinions?
2023-03-02 17:24:30 +0100 <geekosaur> depends on use case
2023-03-02 17:25:43 +0100 <geekosaur> in particular, if I have to do the test and swap everywhere before using it, it's less error prone to centralize it
2023-03-02 17:26:20 +0100ddellacosta(~ddellacos@146.70.166.10)
2023-03-02 17:28:30 +0100 <jtza8> Thanks for the good advice. I myopically neglected to consider the use case.
2023-03-02 17:28:48 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:8429:4ceb:8103:61ef) (Remote host closed the connection)
2023-03-02 17:31:11 +0100razetime(~Thunderbi@117.193.3.202)
2023-03-02 17:34:05 +0100chexum_(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds)
2023-03-02 17:34:20 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-03-02 17:34:35 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2023-03-02 17:35:33 +0100chele(~chele@user/chele) (Remote host closed the connection)
2023-03-02 17:40:07 +0100Monster196883(~hp@103.15.228.66) (Ping timeout: 260 seconds)
2023-03-02 17:40:50 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
2023-03-02 17:42:25 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2023-03-02 17:42:54 +0100ec(~ec@gateway/tor-sasl/ec)
2023-03-02 17:43:15 +0100grnman_(~michaelsc@c-66-176-3-51.hsd1.fl.comcast.net) (Remote host closed the connection)
2023-03-02 17:43:22 +0100Guest|26(~Guest|26@92.53.24.204)
2023-03-02 17:44:17 +0100 <Guest|26> Hey guys, I'm trying to install haskell through the powershell command on the installation page, but I'm getting this error "The revocation function was unable to check revocation for the certificate."
2023-03-02 17:45:33 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-03-02 17:45:58 +0100merijn(~merijn@195.114.232.94) (Ping timeout: 252 seconds)
2023-03-02 17:47:32 +0100Monster196883(~hp@103.93.250.20)
2023-03-02 17:48:10 +0100shapr[m](~shaprcofr@2001:470:69fc:105::2:d107)
2023-03-02 17:48:44 +0100 <shapr> shapr[m]: ??
2023-03-02 17:51:02 +0100 <c_wraith> you're duplicating
2023-03-02 17:52:00 +0100 <opqdonut> unsafeDupablePerformShapr
2023-03-02 17:55:38 +0100 <geekosaur> @remember opqdonut * shapr[m] (~shaprcofr@2001:470:69fc:105::2:d107) has joined / <shapr> shapr[m]: ?? / <opqdonut> unsafeDupablePerformShapr
2023-03-02 17:55:38 +0100 <lambdabot> I will remember.
2023-03-02 17:56:57 +0100elkcl(~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru) (Ping timeout: 255 seconds)
2023-03-02 17:57:39 +0100 <mauke> Guest|26: what command, what page?
2023-03-02 18:00:07 +0100codaraxis__(~codaraxis@user/codaraxis)
2023-03-02 18:03:27 +0100codaraxis(~codaraxis@user/codaraxis) (Ping timeout: 260 seconds)
2023-03-02 18:04:27 +0100elkcl(~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru)
2023-03-02 18:04:42 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-03-02 18:05:58 +0100king_gs(~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7) (Remote host closed the connection)
2023-03-02 18:06:16 +0100king_gs(~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7)
2023-03-02 18:07:01 +0100MajorBiscuit(~MajorBisc@c-001-019-034.client.tudelft.eduvpn.nl) (Quit: WeeChat 3.6)
2023-03-02 18:09:29 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2023-03-02 18:09:53 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-03-02 18:10:18 +0100 <shapr> opqdonut: haha! :-D
2023-03-02 18:14:06 +0100 <Guest|26> Set-ExecutionPolicy Bypass -Scope Process -Force;[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; try { Invoke-Command -ScriptBlock ([ScriptBlock]::Create((Invoke-WebRequest https://www.haskell.org/ghcup/sh/bootstrap-haskell.ps1 -UseBasicParsing))) -ArgumentList $true } catch {
2023-03-02 18:14:06 +0100 <Guest|26> Write-Error $_ } this command, I meant installing GHCup
2023-03-02 18:14:23 +0100 <ph88> is there a reverse class lookup possible on hackage ? i give a type and it shows me all the packages which implement an instance of something for this type ?
2023-03-02 18:14:52 +0100 <Guest|26> It throws that error while trying to install Msys2.
2023-03-02 18:15:33 +0100jakalx(~jakalx@base.jakalx.net)
2023-03-02 18:15:45 +0100 <ph88> Guest|26, try to open an administrative shell. Go to start menu find powershell, then right click execute as administrator
2023-03-02 18:15:55 +0100Sauvin(~sauvin@user/Sauvin) (Ping timeout: 248 seconds)
2023-03-02 18:16:20 +0100 <ph88> Run Get-ExecutionPolicy. If it returns Restricted, then run Set-ExecutionPolicy AllSigned or Set-ExecutionPolicy Bypass -Scope Process.
2023-03-02 18:16:50 +0100jtza8(~user@165.255.86.7) (ERC 5.4 (IRC client for GNU Emacs 28.2))
2023-03-02 18:17:01 +0100 <Guest|26> It returns Bypass
2023-03-02 18:21:58 +0100 <ph88> ye ok so try again with administrative shell
2023-03-02 18:24:44 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2023-03-02 18:24:57 +0100 <ph88> you can also try curl on the script link to see if you get TLS certificate errors that way
2023-03-02 18:26:55 +0100polyphem_(~rod@2a02:810d:840:8754:dafc:581f:2a59:730) (Ping timeout: 248 seconds)
2023-03-02 18:27:49 +0100polyphem_(~rod@2a02:810d:840:8754:224e:f6ff:fe5e:bc17)
2023-03-02 18:28:55 +0100 <Guest|26> Same error in admin shell, installed msys2 manually and gave the path to the installer, when It opened the Mingw window, it threw and ssl error “failed to verify the legitimacy of the server”
2023-03-02 18:29:39 +0100 <Guest|26> curl https://www.haskell.org/ghcup/sh/bootstrap-haskell.ps1 returns 200
2023-03-02 18:32:49 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2023-03-02 18:33:31 +0100teo(~teo@user/teo) (Ping timeout: 248 seconds)
2023-03-02 18:34:29 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2023-03-02 18:34:53 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2023-03-02 18:35:21 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-03-02 18:36:18 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-03-02 18:37:15 +0100Guest|26(~Guest|26@92.53.24.204) (Quit: Connection closed)
2023-03-02 18:38:53 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2023-03-02 18:39:00 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2023-03-02 18:42:14 +0100razetime(~Thunderbi@117.193.3.202) (Remote host closed the connection)
2023-03-02 18:47:23 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 248 seconds)
2023-03-02 18:48:20 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-03-02 18:52:02 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2023-03-02 18:57:33 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2023-03-02 18:57:53 +0100opticblast(~Thunderbi@172.58.83.235)
2023-03-02 18:59:01 +0100ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2023-03-02 18:59:30 +0100ec(~ec@gateway/tor-sasl/ec)
2023-03-02 19:01:43 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-03-02 19:02:25 +0100dsrt^(~dsrt@c-24-30-76-89.hsd1.ga.comcast.net) (Remote host closed the connection)
2023-03-02 19:05:48 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:8429:4ceb:8103:61ef)
2023-03-02 19:09:47 +0100werneta(~werneta@137.79.193.28)
2023-03-02 19:10:58 +0100 <ph88> can i make two versions of a function where one version has some additional typeclasses i can use ?
2023-03-02 19:11:21 +0100 <Jade[m]1> what do you mean by that?
2023-03-02 19:11:30 +0100 <Jade[m]1> An overloaded function?
2023-03-02 19:11:44 +0100 <ph88> ye
2023-03-02 19:11:57 +0100 <Jade[m]1> no, that's not possible in haskell
2023-03-02 19:11:57 +0100Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi)
2023-03-02 19:12:17 +0100 <Jade[m]1> because of currying it'd make the concept difficult
2023-03-02 19:12:24 +0100 <monochrom> Do you mind giving them two different names?
2023-03-02 19:12:25 +0100 <Jade[m]1> so it's not a feature whatsoever
2023-03-02 19:12:28 +0100econo(uid147250@user/econo)
2023-03-02 19:12:42 +0100 <ph88> monochrom, yes
2023-03-02 19:12:42 +0100 <Jade[m]1> consider using a 'prime' (`f'`
2023-03-02 19:12:46 +0100 <Jade[m]1> * 'prime' (`f'`)
2023-03-02 19:12:52 +0100 <geekosaur> well. it is possible to have a default implementation of a typeclass function which has different requirements; some typeclasses use this to specify a default using Generics
2023-03-02 19:13:12 +0100 <ph88> what if i make a typeclass just for running my function and then put the additional typeclasses on there ?
2023-03-02 19:13:15 +0100 <Jade[m]1> * 'prime' (`f`,`f'`, * '`)
2023-03-02 19:13:37 +0100 <geekosaur> https://downloads.haskell.org/ghc/9.6.1-alpha3/docs/users_guide/exts/default_signatures.html
2023-03-02 19:13:53 +0100Joao003(~Joao003@2804:840:8301:cb00:8d33:1756:d85a:7970)
2023-03-02 19:13:59 +0100ph88reading
2023-03-02 19:14:04 +0100 <monochrom> Yeah default signatures is the closest I can think of, but it still doesn't look like your question.
2023-03-02 19:18:30 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 255 seconds)
2023-03-02 19:21:50 +0100ratapaca(~ratapaca@98.40.240.33)
2023-03-02 19:24:11 +0100king_gs(~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7) (Ping timeout: 264 seconds)
2023-03-02 19:24:18 +0100Joao003(~Joao003@2804:840:8301:cb00:8d33:1756:d85a:7970) (Quit: Leaving)
2023-03-02 19:25:47 +0100ratapaca(~ratapaca@98.40.240.33) (Client Quit)
2023-03-02 19:27:41 +0100king_gs(~Thunderbi@187.201.41.239)
2023-03-02 19:28:40 +0100Sauvin(~sauvin@user/Sauvin)
2023-03-02 19:30:38 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-03-02 19:32:28 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:8429:4ceb:8103:61ef) (Remote host closed the connection)
2023-03-02 19:32:47 +0100hugo-(znc@verdigris.lysator.liu.se) (Ping timeout: 255 seconds)
2023-03-02 19:38:23 +0100polyphem_(~rod@2a02:810d:840:8754:224e:f6ff:fe5e:bc17) (Ping timeout: 256 seconds)
2023-03-02 19:39:40 +0100vpan(~0@212.117.1.172) (Quit: Leaving.)
2023-03-02 19:40:27 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2023-03-02 19:43:03 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-02 19:43:51 +0100hugo-(znc@verdigris.lysator.liu.se)
2023-03-02 19:45:21 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: Leaving)
2023-03-02 19:47:28 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2023-03-02 19:50:24 +0100polyphem_(~rod@2a02:810d:840:8754:13ad:6ee2:a5fa:1da3)
2023-03-02 19:50:54 +0100dhil(~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 255 seconds)
2023-03-02 19:52:21 +0100dcoutts_(~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) (Remote host closed the connection)
2023-03-02 19:52:44 +0100dcoutts_(~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net)
2023-03-02 19:54:13 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2023-03-02 19:55:23 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
2023-03-02 19:57:39 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-03-02 19:57:44 +0100iteratee_(~kyle@2001:470:4071:0:5054:e5ff:fe3b:2859) (Remote host closed the connection)
2023-03-02 19:59:12 +0100king_gs(~Thunderbi@187.201.41.239) (Ping timeout: 248 seconds)
2023-03-02 20:03:26 +0100dhil(~dhil@80.208.56.181.static.fibianet.dk)
2023-03-02 20:04:29 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-03-02 20:08:36 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds)
2023-03-02 20:09:17 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-03-02 20:16:01 +0100mrcsno(~mrcsno@user/mrcsno)
2023-03-02 20:16:21 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:8429:4ceb:8103:61ef)
2023-03-02 20:16:43 +0100Guest58(~textual@2603-7000-1203-4d7c-0cdc-f6ea-1da9-3494.res6.spectrum.com)
2023-03-02 20:23:15 +0100foul_owl(~kerry@193.29.61.203) (Ping timeout: 268 seconds)
2023-03-02 20:24:09 +0100ft(~ft@p3e9bc443.dip0.t-ipconnect.de)
2023-03-02 20:27:08 +0100foul_owl(~kerry@71.212.143.88)
2023-03-02 20:30:01 +0100dcoutts_(~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) (Ping timeout: 268 seconds)
2023-03-02 20:32:39 +0100micro(~micro@user/micro) (Ping timeout: 255 seconds)
2023-03-02 20:32:47 +0100Guest58(~textual@2603-7000-1203-4d7c-0cdc-f6ea-1da9-3494.res6.spectrum.com) (Quit: My Mac has gone to sleep. ZZZzzz…)
2023-03-02 20:32:55 +0100micro(~micro@user/micro)
2023-03-02 20:33:59 +0100azimut_(~azimut@gateway/tor-sasl/azimut)
2023-03-02 20:34:05 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-03-02 20:34:08 +0100Guest58(~textual@cpe-66-65-40-132.nyc.res.rr.com)
2023-03-02 20:39:50 +0100johnw_(~johnw@2600:1700:cf00:db0:a85a:aa58:c54c:551d) (Quit: ZNC - http://znc.in)
2023-03-02 20:39:50 +0100jwiegley(~jwiegley@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in)
2023-03-02 20:40:54 +0100jwiegley(~jwiegley@2600:1700:cf00:db0:240d:4ecd:e535:2c8f)
2023-03-02 20:41:18 +0100Monster196883(~hp@103.93.250.20) (Ping timeout: 255 seconds)
2023-03-02 20:41:40 +0100johnw(~johnw@2600:1700:cf00:db0:240d:4ecd:e535:2c8f)
2023-03-02 20:41:55 +0100Guest58(~textual@cpe-66-65-40-132.nyc.res.rr.com) (Quit: My Mac has gone to sleep. ZZZzzz…)
2023-03-02 20:45:11 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 264 seconds)
2023-03-02 21:05:50 +0100pwntips_(~user@24-113-98-114.wavecable.com) (Quit: leaving)
2023-03-02 21:11:09 +0100Feuermagier(~Feuermagi@user/feuermagier)
2023-03-02 21:12:20 +0100pavonia(~user@user/siracusa)
2023-03-02 21:21:30 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2023-03-02 21:22:42 +0100pwntips(~user@24-113-98-114.wavecable.com)
2023-03-02 21:28:10 +0100 <monochrom> https://dev.to/zelenya/there-is-no-tooling-issue-in-haskell-cal \∩/
2023-03-02 21:31:30 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:8429:4ceb:8103:61ef) (Remote host closed the connection)
2023-03-02 21:32:05 +0100ddellacosta(~ddellacos@146.70.166.10) (Quit: WeeChat 3.8)
2023-03-02 21:33:35 +0100ddellacosta(~ddellacos@146.70.166.10)
2023-03-02 21:33:54 +0100nikkc(~nikkc@2603-7080-0101-3269-fccb-ad1f-3c7d-f525.res6.spectrum.com)
2023-03-02 21:37:21 +0100cheater(~Username@user/cheater) (Read error: Connection reset by peer)
2023-03-02 21:38:05 +0100cheater(~Username@user/cheater)
2023-03-02 21:41:58 +0100opticblast(~Thunderbi@172.58.83.235) (Ping timeout: 252 seconds)
2023-03-02 21:51:05 +0100polyphem_(~rod@2a02:810d:840:8754:13ad:6ee2:a5fa:1da3) (Ping timeout: 260 seconds)
2023-03-02 21:51:46 +0100polyphem_(~rod@2a02:810d:840:8754:224e:f6ff:fe5e:bc17)
2023-03-02 21:52:50 +0100opticblast(~Thunderbi@172.58.80.62)
2023-03-02 21:56:52 +0100 <ph88> when should one use Control.Monad.Trans.Except VS Control.Monad.Error.Class ?
2023-03-02 21:58:02 +0100gmg(~user@user/gehmehgeh)
2023-03-02 22:00:37 +0100fnurglewitz(uid263868@id-263868.lymington.irccloud.com)
2023-03-02 22:04:25 +0100Guest58(~textual@2603-7000-1203-4d7c-0cdc-f6ea-1da9-3494.res6.spectrum.com)
2023-03-02 22:04:49 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2023-03-02 22:05:26 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 255 seconds)
2023-03-02 22:06:15 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2023-03-02 22:10:24 +0100 <geekosaur> you wouldn't normally use either, you'd use Control.Monad.Error (the higher level version of Control.Monad.Error.Class) or you would use an effect or type family-based or other implementation of Control.Monad.Trans.Except
2023-03-02 22:11:44 +0100 <geekosaur> the latter is the lowest level definition. Control.Monad.Error{,.Class} is from mtl. other monad implementations build on Control.Monad.Trans.Error in other ways than mtl does
2023-03-02 22:12:18 +0100 <geekosaur> (.Class would be used if you want to build your own monad that adheres to mtl's implementation of MonadError)
2023-03-02 22:12:58 +0100 <geekosaur> (if you're just stacking mtl errors, Control.Monad.Error is enough)
2023-03-02 22:13:04 +0100 <geekosaur> er mtl monads
2023-03-02 22:16:42 +0100thegeekinside(~thegeekin@189.141.115.134) (Ping timeout: 268 seconds)
2023-03-02 22:19:48 +0100 <ddellacosta> geekosaur: I think Control.Monad.Error in mtl is deprecated https://hackage.haskell.org/package/mtl-2.3.1/docs/Control-Monad-Error-Class.html#t:MonadError
2023-03-02 22:20:09 +0100 <geekosaur> yeh, I neglected to mention that all of them are deprecated
2023-03-02 22:20:28 +0100 <geekosaur> Control.Monad.Except is the preferred one
2023-03-02 22:20:45 +0100 <geekosaur> (and transformers equivalent)
2023-03-02 22:21:06 +0100 <ddellacosta> ah, okay. I'm still wrapping my head around errors/exception-handling in Haskell in general, I find it really challenging, and it seems like there are a lot of approaches to sift through
2023-03-02 22:22:40 +0100 <geekosaur> same rules apply there, though: the one from transformers is the basic definition shared by all implementations, .Class is mtl's core for use by other monads, C.M.Except is the standard mtl monad implementing the class
2023-03-02 22:23:46 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2023-03-02 22:23:50 +0100 <geekosaur> you will find the mtl-tf package which implements the same mtl interfaces but using associated types instead of mtl's fundeps, and effect systems providing their own implementations of the basic transformer
2023-03-02 22:25:23 +0100lxi(~quassel@2a02:2f08:4d1c:400:416b:68b5:814f:ea80)
2023-03-02 22:27:05 +0100mmhat(~mmh@p200300f1c70462d7ee086bfffe095315.dip0.t-ipconnect.de)
2023-03-02 22:28:42 +0100lyle(~lyle@104.246.145.237) (Quit: WeeChat 3.8)
2023-03-02 22:32:00 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:8429:4ceb:8103:61ef)
2023-03-02 22:33:48 +0100jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 255 seconds)
2023-03-02 22:35:55 +0100jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com)
2023-03-02 22:36:32 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:8429:4ceb:8103:61ef) (Ping timeout: 248 seconds)
2023-03-02 22:38:42 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2023-03-02 22:39:30 +0100 <dminuoso_> ddellacosta: I think we're just overequipped with different solutions.
2023-03-02 22:39:53 +0100 <dminuoso_> I find the best general exception mechanism is just plain IO exceptions.
2023-03-02 22:40:04 +0100trev(~trev@user/trev) (Remote host closed the connection)
2023-03-02 22:40:21 +0100 <dminuoso_> They are simple, no weird monad wizardry, no subtle gotchas with other effects
2023-03-02 22:40:42 +0100 <dminuoso_> And you get a builtin dynamically typed extensible exception hierarchy much like in Java
2023-03-02 22:40:45 +0100irrgit_(~irrgit@176.113.74.130)
2023-03-02 22:41:15 +0100 <dminuoso_> Only price is that you need IO in those places, but I dont think IO is something we should be afraid of.
2023-03-02 22:41:25 +0100 <dminuoso_> Additional benefit, it works in MonadUnliftIO code.
2023-03-02 22:42:11 +0100 <dminuoso_> And they arent clearly communicatable in the type system (and sadly much IO code does not clearly document what exceptions can be thrown, and plenty of libraries that do throw exceptions dont organize them in hierarchies either).
2023-03-02 22:42:20 +0100 <dminuoso_> But thats for library code anyway, for code that you control its a different story
2023-03-02 22:43:11 +0100lxi(~quassel@2a02:2f08:4d1c:400:416b:68b5:814f:ea80) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2023-03-02 22:45:04 +0100dhil(~dhil@80.208.56.181.static.fibianet.dk) (Ping timeout: 268 seconds)
2023-03-02 22:48:38 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 255 seconds)
2023-03-02 22:50:22 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2023-03-02 22:50:49 +0100infinity0(~infinity0@pwned.gg) (Remote host closed the connection)
2023-03-02 22:52:56 +0100infinity0(~infinity0@pwned.gg)
2023-03-02 22:54:34 +0100cheater_(~Username@user/cheater)
2023-03-02 22:55:43 +0100Monster196883(~hp@103.15.228.66)
2023-03-02 22:57:42 +0100hiredman(~hiredman@frontier1.downey.family) (Quit: Lost terminal)
2023-03-02 22:57:51 +0100cheater(~Username@user/cheater) (Ping timeout: 248 seconds)
2023-03-02 22:58:00 +0100cheater_cheater
2023-03-02 22:58:27 +0100 <ph88> geekosaur, from Control.Monad.Except when should i use MonadError VS Except/ExceptT ?
2023-03-02 22:58:39 +0100hiredman(~hiredman@frontier1.downey.family)
2023-03-02 23:00:38 +0100 <geekosaur> MonadError is the lower level one. are you building your own exception monad? then implement MonadError for it
2023-03-02 23:00:54 +0100 <geekosaur> if you aren't, you probably want Except/ExceptT
2023-03-02 23:01:54 +0100 <ph88> geekosaur, when to use Except/ExcepT only with existing exception monads ?
2023-03-02 23:02:07 +0100 <geekosaur> uh?
2023-03-02 23:02:50 +0100 <geekosaur> as before: if you are simply stacking monads, you want ExceptT. if you are building something like RWS that has an exception component, you want MonadError
2023-03-02 23:03:20 +0100 <ph88> ok thanks
2023-03-02 23:03:32 +0100masterbuilder(~masterbui@user/masterbuilder)
2023-03-02 23:04:25 +0100hiredman(~hiredman@frontier1.downey.family) (Quit: Lost terminal)
2023-03-02 23:05:17 +0100hiredman(~hiredman@frontier1.downey.family)
2023-03-02 23:05:18 +0100werneta(~werneta@137.79.193.28) (Ping timeout: 255 seconds)
2023-03-02 23:05:38 +0100 <geekosaur[m]> Put otherwise, MonadError is for implementors, Except for users
2023-03-02 23:07:04 +0100thegeekinside(~thegeekin@189.141.115.134)
2023-03-02 23:07:23 +0100m5zs7k(aquares@web10.mydevil.net) (Ping timeout: 264 seconds)
2023-03-02 23:07:47 +0100m5zs7k(aquares@web10.mydevil.net)
2023-03-02 23:10:08 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-03-02 23:10:52 +0100werneta(~werneta@137.79.212.16)
2023-03-02 23:17:52 +0100cheater_(~Username@user/cheater)
2023-03-02 23:20:16 +0100cheater(~Username@user/cheater) (Ping timeout: 248 seconds)
2023-03-02 23:20:17 +0100cheater_cheater
2023-03-02 23:32:10 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2023-03-02 23:32:21 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-03-02 23:37:15 +0100opticblast(~Thunderbi@172.58.80.62) (Ping timeout: 260 seconds)
2023-03-02 23:37:43 +0100Rafflesia271828(~hp@103.15.228.66)
2023-03-02 23:39:03 +0100Monster196883(~hp@103.15.228.66) (Ping timeout: 255 seconds)
2023-03-02 23:41:22 +0100michalz(~michalz@185.246.204.107) (Remote host closed the connection)
2023-03-02 23:43:28 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-02 23:45:13 +0100Monster196883(~hp@103.15.228.66)
2023-03-02 23:46:42 +0100Rafflesia271828(~hp@103.15.228.66) (Ping timeout: 255 seconds)
2023-03-02 23:47:50 +0100nikkc(~nikkc@2603-7080-0101-3269-fccb-ad1f-3c7d-f525.res6.spectrum.com) (Quit: Client closed)
2023-03-02 23:48:03 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
2023-03-02 23:57:55 +0100emmanuelux(~emmanuelu@user/emmanuelux)