2023/07/06

2023-07-06 00:00:48 +0200acidjnk(~acidjnk@p200300d6e7072f49514bca14a8451a2d.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2023-07-06 00:00:49 +0200 <mauke> I've only got chained and non-assoc
2023-07-06 00:01:03 +0200azr4e1(~azr4e1@2a00:23c7:9cbc:3401:45fb:9c68:12fe:262b) (Ping timeout: 260 seconds)
2023-07-06 00:03:46 +0200 <monochrom> OK Python allows what I said haha.
2023-07-06 00:03:54 +0200 <monochrom> I am now trolling my students!
2023-07-06 00:04:31 +0200 <monochrom> It is not everyday that Python gets something right mathematically. >:D
2023-07-06 00:04:46 +0200hackyhacker(~hackyhack@2a05:f480:1400:24b2:5400:4ff:fe76:a8f3) (Quit: The Lounge - https://thelounge.chat)
2023-07-06 00:07:00 +0200hackyhacker(~hackyhack@2a05:f480:1400:24b2:5400:4ff:fe76:a8f3)
2023-07-06 00:10:52 +0200lambdabot(~lambdabot@haskell/bot/lambdabot) (Ping timeout: 252 seconds)
2023-07-06 00:11:10 +0200coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-07-06 00:12:02 +0200delYsid(~user@user/delYsid) (ERC 5.6-git (IRC client for GNU Emacs 30.0.50))
2023-07-06 00:12:16 +0200 <EvanR> there's 8 ways to do it
2023-07-06 00:12:26 +0200 <EvanR> no
2023-07-06 00:12:32 +0200 <EvanR> 6
2023-07-06 00:12:43 +0200lambdabot(~lambdabot@silicon.int-e.eu)
2023-07-06 00:12:43 +0200lambdabot(~lambdabot@silicon.int-e.eu) (Changing host)
2023-07-06 00:12:43 +0200lambdabot(~lambdabot@haskell/bot/lambdabot)
2023-07-06 00:13:05 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 246 seconds)
2023-07-06 00:16:56 +0200iteratee(~kyle@162.218.222.207) (Ping timeout: 246 seconds)
2023-07-06 00:17:19 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-07-06 00:19:12 +0200iteratee(~kyle@162.218.222.207)
2023-07-06 00:20:12 +0200biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2023-07-06 00:22:57 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2023-07-06 00:26:49 +0200biberu(~biberu@user/biberu)
2023-07-06 00:32:07 +0200tcard_(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Read error: Connection reset by peer)
2023-07-06 00:32:20 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-07-06 00:32:20 +0200tcard_(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
2023-07-06 00:35:16 +0200nick4(~nick@2600:100d:b12d:fc06:186c:b6b8:6a60:24ce)
2023-07-06 00:37:31 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds)
2023-07-06 00:39:57 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2023-07-06 00:41:23 +0200Sgeo(~Sgeo@user/sgeo)
2023-07-06 00:42:55 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-07-06 00:42:59 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-07-06 00:49:29 +0200iteratee(~kyle@162.218.222.207) (Ping timeout: 246 seconds)
2023-07-06 00:49:47 +0200mcfrdy(~mcfrdy@user/mcfrdy) (Ping timeout: 264 seconds)
2023-07-06 00:50:44 +0200mcfrdy(~mcfrdy@user/mcfrdy)
2023-07-06 00:51:39 +0200iteratee(~kyle@162.218.222.207)
2023-07-06 00:52:40 +0200azr4e1(~azr4e1@host86-134-72-140.range86-134.btcentralplus.com)
2023-07-06 00:54:36 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 245 seconds)
2023-07-06 00:55:14 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-07-06 00:55:43 +0200Sgeo(~Sgeo@user/sgeo)
2023-07-06 00:55:59 +0200 <sclv> does anyone have example code of using http-client along with oauth?
2023-07-06 00:56:11 +0200 <sclv> the oauth client is pretty undocumented
2023-07-06 00:57:05 +0200tremon(~tremon@83.80.159.219) (Quit: getting boxed in)
2023-07-06 00:57:06 +0200azr4e1(~azr4e1@host86-134-72-140.range86-134.btcentralplus.com) (Ping timeout: 245 seconds)
2023-07-06 01:01:34 +0200lainon(~textual@c-98-54-78-2.hsd1.al.comcast.net) (Quit: My Mac has gone to sleep. ZZZzzz…)
2023-07-06 01:02:26 +0200ryantrinkle(~ryantrink@2607:fb90:934d:c052:88ed:3f3e:ff3:5f6f)
2023-07-06 01:09:04 +0200Inst_(~Inst@2601:6c4:4081:2fc0:f0f1:dbda:8b5c:598b)
2023-07-06 01:12:40 +0200robobub(uid248673@id-248673.uxbridge.irccloud.com)
2023-07-06 01:18:05 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-07-06 01:20:25 +0200iteratee_(~kyle@162.218.222.207)
2023-07-06 01:22:16 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-07-06 01:22:49 +0200iteratee(~kyle@162.218.222.207) (Ping timeout: 240 seconds)
2023-07-06 01:23:25 +0200fweht(uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-07-06 01:25:12 +0200iteratee_iteratee
2023-07-06 01:26:00 +0200Axma47006Axman6
2023-07-06 01:26:05 +0200Sgeo_(~Sgeo@user/sgeo)
2023-07-06 01:26:44 +0200Sgeo_(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-07-06 01:26:54 +0200bitmapper(uid464869@id-464869.lymington.irccloud.com)
2023-07-06 01:27:06 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
2023-07-06 01:28:25 +0200Sgeo_(~Sgeo@user/sgeo)
2023-07-06 01:28:53 +0200falafel(~falafel@2603-7000-a700-8710-96ac-85c5-1252-d052.res6.spectrum.com)
2023-07-06 01:29:44 +0200Sgeo(~Sgeo@user/sgeo) (Ping timeout: 246 seconds)
2023-07-06 01:30:38 +0200nick4(~nick@2600:100d:b12d:fc06:186c:b6b8:6a60:24ce) (Ping timeout: 260 seconds)
2023-07-06 01:31:27 +0200gurkenglas(~gurkengla@dynamic-046-114-177-021.46.114.pool.telefonica.de) (Ping timeout: 245 seconds)
2023-07-06 01:36:12 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::a8c)
2023-07-06 01:37:44 +0200Sgeo_(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-07-06 01:37:56 +0200mauke(~mauke@user/mauke) (Ping timeout: 245 seconds)
2023-07-06 01:38:19 +0200Sgeo_(~Sgeo@user/sgeo)
2023-07-06 01:41:06 +0200gok(~gok@c-71-205-240-222.hsd1.co.comcast.net) (Quit: Client closed)
2023-07-06 01:44:15 +0200mauke(~mauke@user/mauke)
2023-07-06 01:44:40 +0200mei(~mei@user/mei) (Remote host closed the connection)
2023-07-06 01:51:02 +0200mauke(~mauke@user/mauke) (Ping timeout: 245 seconds)
2023-07-06 01:51:55 +0200Sgeo_(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-07-06 01:52:14 +0200Sgeo_(~Sgeo@user/sgeo)
2023-07-06 01:52:17 +0200mei(~mei@user/mei)
2023-07-06 01:52:26 +0200mauke(~mauke@user/mauke)
2023-07-06 01:52:38 +0200Sgeo_(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-07-06 01:52:53 +0200 <bratwurst> i am going homeless now. i have no idea if i will ever be back
2023-07-06 01:53:02 +0200 <bratwurst> thank you for talking to me and being nice
2023-07-06 01:53:11 +0200 <bratwurst> it was nice share an interest with someone
2023-07-06 01:53:19 +0200Sgeo_(~Sgeo@user/sgeo)
2023-07-06 01:53:22 +0200 <bratwurst> you have saved my life
2023-07-06 01:53:34 +0200Sgeo_(~Sgeo@user/sgeo) (Remote host closed the connection)
2023-07-06 01:53:42 +0200 <bratwurst> i will find a place where i can be anonymous and just interact with people online
2023-07-06 01:53:50 +0200 <bratwurst> i no longer need the abusers in my life
2023-07-06 01:53:55 +0200 <bratwurst> i am content to be nothing now
2023-07-06 01:54:49 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
2023-07-06 01:55:49 +0200 <bratwurst> i could've been a good programmer but people only ever attack me. so fuck everyone
2023-07-06 01:56:33 +0200 <bratwurst> i put quiet on now. i really wish someone would reply. but its fine. life is an empty void
2023-07-06 01:58:31 +0200 <bratwurst> you know what. i'm not going to wait for a reply.
2023-07-06 01:58:45 +0200 <bratwurst> goodbye gentlefolk. a good life for you all
2023-07-06 01:59:32 +0200ryantrinkle(~ryantrink@2607:fb90:934d:c052:88ed:3f3e:ff3:5f6f) (Ping timeout: 240 seconds)
2023-07-06 02:00:47 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-07-06 02:01:56 +0200falafel(~falafel@2603-7000-a700-8710-96ac-85c5-1252-d052.res6.spectrum.com) (Ping timeout: 246 seconds)
2023-07-06 02:03:28 +0200bratwurst(~dfadsva@2604:3d09:207f:f650::a8c) (Ping timeout: 240 seconds)
2023-07-06 02:04:25 +0200 <DigitalKiwi> bratwurst > hot dog
2023-07-06 02:16:59 +0200tv(~tv@user/tv) (Ping timeout: 246 seconds)
2023-07-06 02:17:33 +0200nick4(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
2023-07-06 02:22:11 +0200nick4(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 264 seconds)
2023-07-06 02:27:54 +0200smalltalkman(uid545680@id-545680.hampstead.irccloud.com)
2023-07-06 02:33:10 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 260 seconds)
2023-07-06 02:35:02 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 250 seconds)
2023-07-06 02:37:22 +0200Feuermagier(~Feuermagi@user/feuermagier) (Quit: Leaving)
2023-07-06 02:42:30 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-07-06 02:42:30 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-07-06 02:42:30 +0200wroathe(~wroathe@user/wroathe)
2023-07-06 02:43:33 +0200wroathe(~wroathe@user/wroathe) (Client Quit)
2023-07-06 02:43:45 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-07-06 02:43:46 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-07-06 02:43:46 +0200wroathe(~wroathe@user/wroathe)
2023-07-06 02:45:10 +0200leah2(~leah@vuxu.org) (Ping timeout: 258 seconds)
2023-07-06 02:45:37 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 245 seconds)
2023-07-06 02:50:48 +0200 <EvanR> instance Ord MeatShapes
2023-07-06 02:54:10 +0200johnw(~johnw@69.62.207.57) (Ping timeout: 246 seconds)
2023-07-06 02:57:26 +0200_d0t(~{-d0t-}@user/-d0t-/x-7915216) (Remote host closed the connection)
2023-07-06 02:58:18 +0200_d0t(~{-d0t-}@user/-d0t-/x-7915216)
2023-07-06 03:03:50 +0200nick4(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
2023-07-06 03:07:48 +0200nick4(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 240 seconds)
2023-07-06 03:11:30 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-07-06 03:17:35 +0200npmania(~Thunderbi@138.199.21.242)
2023-07-06 03:17:36 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-07-06 03:19:23 +0200 <EvanR> in the layout algorithm detailed in the haskell report, they introduce additional tokens to the stream resulting from lexical analysis. These tokens are of the form {n} and < n >. Then the psuedo-haskell algorithm uses {n} and < n > in patterns, so it looks like these represent atomic pieces of data
2023-07-06 03:19:26 +0200akadude[m](~akadudema@2001:470:69fc:105::2:5bf7)
2023-07-06 03:19:37 +0200 <EvanR> but then they match on } and { too...
2023-07-06 03:19:52 +0200 <EvanR> does {n} mean {, a number, then } or xD
2023-07-06 03:19:55 +0200kleenestar[m](~kleenesta@2001:470:69fc:105::3:6d78)
2023-07-06 03:22:19 +0200phma(phma@2001:5b0:215a:8658:1ead:e764:9c5d:6413) (Read error: Connection reset by peer)
2023-07-06 03:22:39 +0200 <geekosaur> but {n} is a single token, and as such would not be confused with the three tokens {,n,} (n being a number, yes)
2023-07-06 03:22:45 +0200phma(phma@2001:5b0:215a:8658:2ff0:2260:7332:7cdc)
2023-07-06 03:23:29 +0200 <geekosaur> likewise < n > is a single token
2023-07-06 03:23:56 +0200 <geekosaur> the assumption here is that a tokenization step takes place, such that this is meaningful and safe
2023-07-06 03:25:50 +0200 <dolio> I think the < n > situation is just bad latex formatting.
2023-07-06 03:26:17 +0200 <geekosaur> (this tokenization is probably why ghc uses happy to tokenize; its internal representation of indentation probably isn't {n} <n>, but it only needs to be equivalent to the report's description)
2023-07-06 03:26:23 +0200 <dolio> They didn't do anything custom to make it look like one token.
2023-07-06 03:28:38 +0200npmania(~Thunderbi@138.199.21.242) (Quit: npmania)
2023-07-06 03:30:08 +0200EvanR(~EvanR@user/evanr) (Ping timeout: 240 seconds)
2023-07-06 03:30:43 +0200 <geekosaur> he's dead, Jim!
2023-07-06 03:32:52 +0200nick4(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
2023-07-06 03:35:36 +0200 <nyc> Does current ghc git pass all the tests from ./hadrian --freeze1 test?
2023-07-06 03:35:55 +0200 <geekosaur> best asked over in #ghc
2023-07-06 03:46:26 +0200nick4(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 260 seconds)
2023-07-06 03:47:58 +0200EvanR(~EvanR@user/evanr)
2023-07-06 03:50:42 +0200johnw(~johnw@69.62.242.138)
2023-07-06 03:57:19 +0200 <EvanR> got it thanks for clarifying
2023-07-06 03:58:49 +0200monochrm(trebla@216.138.220.146)
2023-07-06 03:59:58 +0200monochrom(trebla@216.138.220.146) (Ping timeout: 250 seconds)
2023-07-06 03:59:58 +0200monochrmmonochrom
2023-07-06 04:00:50 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 250 seconds)
2023-07-06 04:01:06 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-07-06 04:03:49 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-07-06 04:06:41 +0200xff0x_(~xff0x@ai086045.d.east.v6connect.net) (Ping timeout: 245 seconds)
2023-07-06 04:06:53 +0200rainbyte(~rainbyte@181.31.239.226)
2023-07-06 04:13:23 +0200hugo(znc@verdigris.lysator.liu.se)
2023-07-06 04:15:25 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-07-06 04:15:37 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-07-06 04:15:37 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-07-06 04:15:38 +0200finn_elijaFinnElija
2023-07-06 04:19:08 +0200td_(~td@i53870923.versanet.de) (Ping timeout: 240 seconds)
2023-07-06 04:19:52 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds)
2023-07-06 04:21:09 +0200td_(~td@i53870936.versanet.de)
2023-07-06 04:21:20 +0200 <talismanick> I remember seeing someone say it's not possible to "parse with derivatives" in Haskell (extending Brzozowski from regular to CF languages with fixpoints and memoizations)
2023-07-06 04:21:24 +0200 <talismanick> Why might that be?
2023-07-06 04:21:35 +0200 <talismanick> (haven't actually read the paper yet)
2023-07-06 04:29:13 +0200hugo(znc@verdigris.lysator.liu.se)
2023-07-06 04:35:35 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2023-07-06 04:39:36 +0200hgolden(~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com)
2023-07-06 04:39:57 +0200YoungFrog(~youngfrog@2a02:a03f:ca07:f900:c0d1:a78f:f0d6:915b) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in)
2023-07-06 04:40:17 +0200YoungFrog(~youngfrog@2a02:a03f:ca07:f900:c0d1:a78f:f0d6:915b)
2023-07-06 04:47:15 +0200nick4(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
2023-07-06 04:57:54 +0200reach(~reach@74.12.129.40)
2023-07-06 05:03:57 +0200xff0x_(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2023-07-06 05:06:46 +0200 <EvanR> > ("\1234", "\123\&4") -- dang how do other languages handle that nonsense
2023-07-06 05:06:47 +0200 <lambdabot> ("\1234","{4")
2023-07-06 05:07:24 +0200thaumavorio(~thaumavor@162.243.123.105) (Quit: ZNC 1.8.2 - https://znc.in)
2023-07-06 05:07:39 +0200 <monochrom> As in, other languages do not offer the equiv of our "\123\&4" ?
2023-07-06 05:08:28 +0200 <monochrom> I am not surprised that most people have not understood 0 and the empty string.
2023-07-06 05:10:44 +0200thaumavorio(~thaumavor@thaumavor.io)
2023-07-06 05:10:54 +0200ystael(~ystael@user/ystael)
2023-07-06 05:15:01 +0200hipnozis(~hipnozis@176-241-45-174.pool.digikabel.hu) (Ping timeout: 245 seconds)
2023-07-06 05:15:33 +0200 <monochrom> Right? Even me. A long time ago you brought up a binary operator that clearly had an identity (though not obviously useful) and asked why the library didn't provide the identity element, and even I was like "who needs it".
2023-07-06 05:16:03 +0200 <monochrom> I have learned my lesson. The identity element will always become useful in unforseen ways.
2023-07-06 05:17:02 +0200 <EvanR> what library?
2023-07-06 05:17:04 +0200hipnozis(~hipnozis@84-236-122-155.pool.digikabel.hu)
2023-07-06 05:17:12 +0200 <monochrom> I forgot.
2023-07-06 05:18:24 +0200 <monochrom> It may have been about this: One could define a binary operator based on forkIO. And then it has an identity element.
2023-07-06 05:18:46 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
2023-07-06 05:18:47 +0200 <monochrom> But I forgot whether you were talking about that one or something else.
2023-07-06 05:18:48 +0200 <EvanR> oh like a thread which reliably waits forever
2023-07-06 05:19:23 +0200 <monochrom> Yeah, sounds like it.
2023-07-06 05:20:40 +0200notzmv(~zmv@user/notzmv)
2023-07-06 05:20:45 +0200 <EvanR> hacking in an identity element into this string literal seems like a weird solution to unicode escapes, you could use a fixed-size or delimited unicode escape. But then there's
2023-07-06 05:21:06 +0200 <EvanR> ("\SOH", "\SO\&H")
2023-07-06 05:21:10 +0200 <EvanR> > ("\SOH", "\SO\&H")
2023-07-06 05:21:12 +0200 <lambdabot> ("\SOH","\SO\&H")
2023-07-06 05:21:46 +0200 <EvanR> whoa what the show instance left the \& in
2023-07-06 05:22:05 +0200 <dolio> What else would it do?
2023-07-06 05:22:29 +0200 <EvanR> is it a special case in the show code xD
2023-07-06 05:23:18 +0200 <EvanR> > "\SO\&L"
2023-07-06 05:23:20 +0200 <lambdabot> "\SOL"
2023-07-06 05:23:33 +0200 <monochrom> Oh if Show instance gave you \SOH you would misunderstood it :)
2023-07-06 05:23:42 +0200 <EvanR> yeah
2023-07-06 05:24:07 +0200 <hololeap> talismanick: according to typeclassopedia, applicative-only parsers can only parse context-free grammars, but parsers with a monad interface can parse context-sensitive grammars (type-2 and type-1 grammars respectively, here: https://en.wikipedia.org/wiki/Chomsky_hierarchy#The_hierarchy)
2023-07-06 05:24:08 +0200 <EvanR> string literals grew legs
2023-07-06 05:24:13 +0200 <dolio> It has to do something. Either not use \SO in that case, or use \&.
2023-07-06 05:25:38 +0200 <hololeap> would fixpoints mean that it requires a type-0 grammar?
2023-07-06 05:27:14 +0200 <ski> identity element tends to be useful when branching, as one of the cases. e.g. `a + a * b = a * (1 + b)' kind of thing
2023-07-06 05:27:46 +0200 <dolio> No, CFGs are equivalent to augmenting regular expressions with a fixed-point operator.
2023-07-06 05:28:03 +0200ski. o O ( eta-reduction, tail calls, avoiding no-op round-trip )
2023-07-06 05:29:21 +0200 <ski> > "\SO\ \H"
2023-07-06 05:29:23 +0200 <lambdabot> "\SO\&H"
2023-07-06 05:30:51 +0200 <monochrom> With a monad interface plus lambdas (so, strong monad IIUC), you can parse all decidable languages.
2023-07-06 05:32:40 +0200 <EvanR> that is a really funny corner case of haskell
2023-07-06 05:32:44 +0200 <dolio> https://www.cl.cam.ac.uk/~jdy22/papers/a-typed-algebraic-approach-to-parsing.pdf
2023-07-06 05:33:26 +0200falafel(~falafel@2603-7000-a700-8710-bb02-2c7d-17e2-58d0.res6.spectrum.com)
2023-07-06 05:34:34 +0200 <ski> ooh, that looks cool, ty
2023-07-06 05:36:41 +0200reach(~reach@74.12.129.40) (Remote host closed the connection)
2023-07-06 05:36:50 +0200 <dolio> Also, depending on how you implement things, applicative parsers can parse any grammar, because every language recognizable by the host language can be embedded into an infinite 'regular' grammar in that language.
2023-07-06 05:37:04 +0200reach(~reach@bras-base-toroon2643w-grc-19-74-12-129-40.dsl.bell.ca)
2023-07-06 05:38:23 +0200 <monochrom> Yeah I think we usually mean: applicative, alternative, but the base case primitive are only "satisfy" and "eof".
2023-07-06 05:51:49 +0200 <ski> (yea, i think EOF shouldn't be expressible ..)
2023-07-06 05:51:53 +0200ystael(~ystael@user/ystael) (Ping timeout: 246 seconds)
2023-07-06 05:55:02 +0200 <monochrom> Ah, I chalk it up to arbitrary parameter passing instead. Equivalently having Reader/ReaderT.
2023-07-06 05:55:30 +0200aforemny_(~aforemny@2001:9e8:6ce6:ca00:3bad:e307:8f54:4c53)
2023-07-06 05:56:26 +0200aforemny(~aforemny@i59F516D3.versanet.de) (Ping timeout: 246 seconds)
2023-07-06 06:02:42 +0200puke(~puke@user/puke) (Ping timeout: 260 seconds)
2023-07-06 06:03:17 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-07-06 06:05:53 +0200iteratee(~kyle@162.218.222.207) (Ping timeout: 246 seconds)
2023-07-06 06:08:11 +0200iteratee(~kyle@162.218.222.207)
2023-07-06 06:11:38 +0200 <monochrom> Now I just have issues with "parse recognizable languages". Normally I expect "parse" to mean "if the input is not in the language, the parser terminates and say 'syntax error'".
2023-07-06 06:13:19 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-07-06 06:13:34 +0200puke(~puke@user/puke)
2023-07-06 06:14:25 +0200 <EvanR> while attempt to read the paper without knowing ocaml, I had to give up and ask how to read this type signature found 387, Z : ('a * 'ctx, 'a) var
2023-07-06 06:14:39 +0200 <EvanR> star means product type? then what's the parentheses
2023-07-06 06:15:31 +0200 <mauke> Z :: Var (a, ctx) a
2023-07-06 06:15:46 +0200 <EvanR> whoa
2023-07-06 06:17:20 +0200 <EvanR> what about the precedence going on between * and -> here, Map : ('a -> 'b) * ('ctx, 'a) t -> ('ctx, 'b) t
2023-07-06 06:17:22 +0200 <monochrom> MLs use 'foo for type variables. Generally prepending ' to type variable names.
2023-07-06 06:17:38 +0200 <monochrom> A*B is (A,B)
2023-07-06 06:18:21 +0200 <monochrom> And yeah postfix notation for type constructors because "reads like English". Consider [Int] vs "int list".
2023-07-06 06:19:12 +0200 <monochrom> In pattern matching, we have "xs@(x : xt)". MLs literally used "as", i.e., "xs as (x :: xt)"
2023-07-06 06:19:34 +0200 <mauke> Map :: (a -> b, T ctx a) -> T ctx b
2023-07-06 06:19:37 +0200 <mauke> I think
2023-07-06 06:20:06 +0200 <monochrom> Now, ML predated Haskell, so our @ was inspired by their "as" (why else would we choose @ heh) but we chose "line noise".
2023-07-06 06:21:04 +0200 <monochrom> Yeah.
2023-07-06 06:21:34 +0200 <EvanR> stashing a pair in the data constructor, instead of currying
2023-07-06 06:21:38 +0200 <monochrom> Either "T ctx a" or "T (ctx, a)", I forgot how they treat multiple-param polymorphic types.
2023-07-06 06:22:18 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2023-07-06 06:22:34 +0200 <monochrom> OK I guess postfix notation implies that "int bool map" makes no sense and it has to be "(int, bool) map".
2023-07-06 06:23:02 +0200 <mauke> yeah, it's a (type-level) parameter list
2023-07-06 06:23:06 +0200 <dolio> Yeah, I mean any language decidable by the host. As long as the host can reject it, the infinite grammar can, too.
2023-07-06 06:25:26 +0200azimut_(~azimut@gateway/tor-sasl/azimut)
2023-07-06 06:25:38 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2023-07-06 06:35:07 +0200 <EvanR> any idea what ==> is on e.g. 381
2023-07-06 06:35:47 +0200 <EvanR> doh
2023-07-06 06:35:49 +0200 <EvanR> let (==>) p f = map f p
2023-07-06 06:37:29 +0200CAT_S(apic@brezn3.muc.ccc.de) (Ping timeout: 240 seconds)
2023-07-06 06:37:36 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2023-07-06 06:37:43 +0200trev(~trev@user/trev)
2023-07-06 06:39:27 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
2023-07-06 06:41:10 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-07-06 06:42:46 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2023-07-06 06:43:15 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2023-07-06 06:44:36 +0200 <ski> i've called that `pam'
2023-07-06 06:47:38 +0200 <monochrom> :)
2023-07-06 06:57:30 +0200leah2(~leah@vuxu.org)
2023-07-06 07:01:32 +0200iteratee(~kyle@162.218.222.207) (Read error: Connection reset by peer)
2023-07-06 07:02:33 +0200Sgeo(~Sgeo@user/sgeo)
2023-07-06 07:06:18 +0200 <talismanick> hololeap: Interesting and thanks for linking that, but I don't see what it has to do with my question...
2023-07-06 07:07:07 +0200bonz060(~bonz060@105.163.1.181) (Remote host closed the connection)
2023-07-06 07:07:55 +0200 <talismanick> I'm talking about the paper https://matt.might.net/papers/might2011derivatives.pdf
2023-07-06 07:11:05 +0200iteratee(~kyle@162.218.222.207)
2023-07-06 07:12:38 +0200 <talismanick> The Racket version seems straightforward, so long as you don't think too hard about the macro expansions (`define/fix` and `define/memoize` instead of plain `define`)
2023-07-06 07:13:29 +0200 <talismanick> https://github.com/plum-umd/parsing-with-derivatives/blob/master/racket-code/racket/
2023-07-06 07:17:24 +0200 <talismanick> As I understand it, applicative and monadic parsing are interfaces for parsers - they don't say much about how it goes about its business algorithmically
2023-07-06 07:18:17 +0200 <talismanick> whereas parsing with derivatives is a choice on the level of recursive descent vs LR vs Earley (of which it's most similar to the latter)
2023-07-06 07:19:26 +0200brettgilio(~brettgili@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e) (Quit: Ping timeout (120 seconds))
2023-07-06 07:20:04 +0200brettgilio(~brettgili@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e)
2023-07-06 07:21:25 +0200azimut_(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2023-07-06 07:21:48 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-07-06 07:21:50 +0200falafel(~falafel@2603-7000-a700-8710-bb02-2c7d-17e2-58d0.res6.spectrum.com) (Ping timeout: 246 seconds)
2023-07-06 07:28:11 +0200thegeekinside(~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
2023-07-06 07:28:20 +0200harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2023-07-06 07:34:48 +0200CAT_S(apic@brezn3.muc.ccc.de)
2023-07-06 07:39:16 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-07-06 07:46:04 +0200`2jt(~jtomas@90.162.208.36)
2023-07-06 07:47:09 +0200titibandit(~titibandi@user/titibandit)
2023-07-06 07:47:12 +0200`2jt(~jtomas@90.162.208.36) (Remote host closed the connection)
2023-07-06 07:47:35 +0200`2jt(~jtomas@90.162.208.36)
2023-07-06 07:50:27 +0200titibandit(~titibandi@user/titibandit) (Remote host closed the connection)
2023-07-06 07:50:30 +0200nick4(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 260 seconds)
2023-07-06 07:54:32 +0200 <dminuoso_> "monochrom | [04:17:22] MLs use 'foo for type variables. Generally prepending ' to type variable names."
2023-07-06 07:54:35 +0200 <dminuoso_> As opposed to what?
2023-07-06 07:54:48 +0200 <dminuoso_> In the above example, what does `t` refer to?
2023-07-06 07:56:45 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2023-07-06 07:57:07 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2023-07-06 07:58:13 +0200 <Hecate> dminuoso_: haskell doesn't need the apostrophe to denotate a tyvar
2023-07-06 07:58:58 +0200 <Hecate> dminuoso_: t might refer to the type defined and exported by the current module I guess?
2023-07-06 07:58:59 +0200 <dminuoso_> Oh I know. The discussion was about MLs.
2023-07-06 07:59:06 +0200 <Hecate> ah ok :)
2023-07-06 08:01:23 +0200reach(~reach@bras-base-toroon2643w-grc-19-74-12-129-40.dsl.bell.ca) (Ping timeout: 246 seconds)
2023-07-06 08:02:04 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-07-06 08:02:48 +0200nick4(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
2023-07-06 08:08:07 +0200qqq(~qqq@92.43.167.61)
2023-07-06 08:13:21 +0200hipnozis(~hipnozis@84-236-122-155.pool.digikabel.hu) (Ping timeout: 245 seconds)
2023-07-06 08:15:23 +0200hipnozis(~hipnozis@91-83-10-42.pool.digikabel.hu)
2023-07-06 08:16:12 +0200ft(~ft@p508db151.dip0.t-ipconnect.de) (Quit: leaving)
2023-07-06 08:22:52 +0200delYsid(~user@user/delYsid)
2023-07-06 08:24:06 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 260 seconds)
2023-07-06 08:28:47 +0200acidjnk(~acidjnk@p200300d6e7072f0715f69dbef4a2849d.dip0.t-ipconnect.de)
2023-07-06 08:36:16 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds)
2023-07-06 08:38:57 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-07-06 08:39:46 +0200titibandit(~titibandi@user/titibandit)
2023-07-06 08:50:39 +0200misterfish(~misterfis@84-53-85-146.bbserv.nl)
2023-07-06 08:53:23 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2023-07-06 08:53:55 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-07-06 08:58:57 +0200titibandit(~titibandi@user/titibandit) (Remote host closed the connection)
2023-07-06 09:00:49 +0200cfricke(~cfricke@user/cfricke)
2023-07-06 09:01:33 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-07-06 09:06:53 +0200fweht(uid404746@id-404746.lymington.irccloud.com)
2023-07-06 09:07:54 +0200jtza8(~user@165.255.137.176)
2023-07-06 09:09:19 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2023-07-06 09:10:28 +0200michalz(~michalz@185.246.207.215)
2023-07-06 09:14:49 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-07-06 09:20:51 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
2023-07-06 09:21:03 +0200nick4(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds)
2023-07-06 09:21:37 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-06 09:21:38 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-06 09:21:38 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-06 09:22:54 +0200mei(~mei@user/mei) (Ping timeout: 260 seconds)
2023-07-06 09:23:17 +0200econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2023-07-06 09:24:43 +0200harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2023-07-06 09:25:57 +0200coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-07-06 09:26:33 +0200mei(~mei@user/mei)
2023-07-06 09:27:00 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds)
2023-07-06 09:32:08 +0200Feuermagier(~Feuermagi@user/feuermagier)
2023-07-06 09:32:10 +0200nick4(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
2023-07-06 09:32:51 +0200CiaoSen(~Jura@2a05:5800:27e:200:664b:f0ff:fe37:9ef)
2023-07-06 09:35:51 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-07-06 09:35:59 +0200shriekingnoise(~shrieking@186.137.175.87) (Ping timeout: 264 seconds)
2023-07-06 09:36:23 +0200nick4(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds)
2023-07-06 09:36:50 +0200hugo(znc@verdigris.lysator.liu.se)
2023-07-06 09:39:56 +0200alternateved(~user@77-254-166-50.dynamic.inetia.pl)
2023-07-06 09:40:19 +0200dhil(~dhil@78.45.150.83.ewm.ftth.as8758.net)
2023-07-06 09:43:02 +0200fendor(~fendor@2a02:8388:1640:be00:821b:25b5:c8f3:73a0)
2023-07-06 09:51:00 +0200nick4(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
2023-07-06 09:51:30 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-07-06 09:55:32 +0200juri_(~juri@84-19-175-187.pool.ovpn.com) (Ping timeout: 240 seconds)
2023-07-06 10:00:43 +0200chiselfuse(~chiselfus@user/chiselfuse) (Quit: leaving)
2023-07-06 10:01:27 +0200chiselfuse(~chiselfus@user/chiselfuse)
2023-07-06 10:02:06 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2023-07-06 10:11:13 +0200titibandit(~titibandi@user/titibandit)
2023-07-06 10:14:15 +0200misterfish(~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 246 seconds)
2023-07-06 10:17:42 +0200acidjnk(~acidjnk@p200300d6e7072f0715f69dbef4a2849d.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2023-07-06 10:23:16 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-07-06 10:25:56 +0200YuutaW(~YuutaW@mail.yuuta.moe) (Ping timeout: 240 seconds)
2023-07-06 10:26:02 +0200yuuta(~YuutaW@2404:f4c0:f9c3:502::100:17b7)
2023-07-06 10:26:13 +0200nick2(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
2023-07-06 10:26:17 +0200kristjansson_(sid126207@id-126207.tinside.irccloud.com) (Ping timeout: 246 seconds)
2023-07-06 10:26:17 +0200ysh____(sid6017@id-6017.ilkley.irccloud.com) (Ping timeout: 246 seconds)
2023-07-06 10:26:38 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Ping timeout: 246 seconds)
2023-07-06 10:27:20 +0200nick4(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds)
2023-07-06 10:27:51 +0200Pickchea(~private@user/pickchea)
2023-07-06 10:28:25 +0200ysh____(sid6017@id-6017.ilkley.irccloud.com)
2023-07-06 10:30:32 +0200kristjansson_(sid126207@id-126207.tinside.irccloud.com)
2023-07-06 10:33:02 +0200notzmv(~zmv@user/notzmv)
2023-07-06 10:33:38 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-07-06 10:36:53 +0200 <fbytez> When using Parsec, how do I express the length of a token to be parsed that falls within a range? Like, parse 1–5 occurrences of 'A'.
2023-07-06 10:38:21 +0200xff0x_(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 245 seconds)
2023-07-06 10:39:35 +0200rainbyte(~rainbyte@181.31.239.226) (Ping timeout: 264 seconds)
2023-07-06 10:39:43 +0200danse-nr3(~francesco@151.43.214.70)
2023-07-06 10:40:00 +0200 <tomsmeding> fbytez: (++) <$> replicateM 1 (char 'A') <*> fmap catMaybes (replicateM (5 - 1) (optionMaybe (char 'A')))
2023-07-06 10:40:05 +0200 <tomsmeding> >:D
2023-07-06 10:40:17 +0200asivitz(uid178348@id-178348.tinside.irccloud.com)
2023-07-06 10:40:34 +0200 <tomsmeding> should clearly be written to stop trying to parse As after one failure
2023-07-06 10:40:42 +0200 <tomsmeding> I don't think there is something built-in for this
2023-07-06 10:41:04 +0200 <tomsmeding> I guess replicateM == Text.Parsec.count
2023-07-06 10:41:13 +0200 <fbytez> I'm surprised. I would've thought it to be quite a common scenario.
2023-07-06 10:41:21 +0200 <tomsmeding> I have never yet needed it :p
2023-07-06 10:41:26 +0200 <tomsmeding> what is the use case
2023-07-06 10:41:44 +0200 <dminuoso_> fbytez: I personally think its a bit of an antipattern.
2023-07-06 10:42:01 +0200 <probie> Parsing a language with a maximum identifier length comes to mind
2023-07-06 10:42:14 +0200 <tomsmeding> disregarding inane languages
2023-07-06 10:42:42 +0200 <fbytez> An example I had in mind was a IRC nick, which according to RFC2812 should be 1–9 characters.
2023-07-06 10:43:03 +0200 <tomsmeding> hm makes sense
2023-07-06 10:43:03 +0200danse-nr3_(~francesco@151.43.214.70)
2023-07-06 10:43:04 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-07-06 10:43:36 +0200 <dminuoso_> fbytez: Also, with parsec you can use `count 5 (char 'A')`
2023-07-06 10:43:47 +0200 <tomsmeding> (the irony of saying that to someone with a nick that is 10 characters long)
2023-07-06 10:43:48 +0200 <dminuoso_> Which is a bit less convoluted.
2023-07-06 10:43:58 +0200 <fbytez> Yeah, I saw, but that's a specific length rather than a range, right?
2023-07-06 10:43:59 +0200 <tomsmeding> dminuoso_: that fails if there's just 4 As
2023-07-06 10:44:11 +0200danse-nr3(~francesco@151.43.214.70) (Ping timeout: 245 seconds)
2023-07-06 10:44:16 +0200 <dminuoso_> Oh.
2023-07-06 10:44:58 +0200 <dminuoso_> ultimately I think its a design problem if you are writing it this way.
2023-07-06 10:45:04 +0200 <dminuoso_> Your lexer is too small
2023-07-06 10:45:26 +0200 <dminuoso_> If your lexer produced word-sized chunks, then its much more easily expressible. But this is a common theme in haskell parser combinator code
2023-07-06 10:45:39 +0200 <probie> tomsmeding: Perhaps one wants to write a Fortran77 parser to parse some legacy code, and doesn't want to risk accepting invalid programs?
2023-07-06 10:45:47 +0200 <tomsmeding> probie: yeah I get it :p
2023-07-06 10:45:50 +0200 <tomsmeding> I was being facetious
2023-07-06 10:46:02 +0200TheCatCollective(NyaaTheKit@user/calculuscat) (Quit: Meow Meow Meow Meow Meow Meow Meow Meow)
2023-07-06 10:46:18 +0200 <fbytez> Fundamentally, I'm just thinking in terms of being able to specify some kind of sane upper-limit.
2023-07-06 10:46:25 +0200tomsmedinghas never yet written a parsec parser with a lexer
2023-07-06 10:46:44 +0200 <tomsmeding> perhaps I should try it once
2023-07-06 10:48:16 +0200 <tomsmeding> fbytez: what would happen if you get a string of As that is longer than 5? do you error, or do you want to pick precisely the 5-long prefix and leave the rest alone?
2023-07-06 10:48:22 +0200 <dminuoso_> In flatparse or parsley its not as big of an issue, because you get tools to generate efficient tokenizers on the spot.
2023-07-06 10:48:50 +0200 <tomsmeding> in the first case, guard ((\n -> 1 <= n && n <= 5) . length) (many1 (char 'A'))
2023-07-06 10:50:39 +0200tomsmedinglooks at the flatparse docs again and is fascinated by fusedSatisfy
2023-07-06 10:51:03 +0200 <fbytez> I like the look of that but where is `guard` coming from?
2023-07-06 10:51:15 +0200 <tomsmeding> Control.Monad
2023-07-06 10:51:23 +0200qqq(~qqq@92.43.167.61) (Remote host closed the connection)
2023-07-06 10:51:37 +0200 <dminuoso_> tomsmeding: Things like `switch` are your built-in lexer.
2023-07-06 10:51:38 +0200 <tomsmeding> fbytez: that fails when given a string of 6 As though; for irc nicks, this may well be fine
2023-07-06 10:51:58 +0200 <tomsmeding> dminuoso_: well switch would not help at all in this case
2023-07-06 10:51:59 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-07-06 10:52:08 +0200 <dminuoso_> tomsmeding: And incidentally, thats exactly how you interact with lexers in industrial parser generators like happy or bison.
2023-07-06 10:52:10 +0200 <tomsmeding> though it is indeed useful for other lexing secenarios
2023-07-06 10:52:14 +0200 <dminuoso_> You dont get fed tokens, you *demand* them
2023-07-06 10:52:34 +0200 <dminuoso_> tomsmeding: switch would help at all.
2023-07-06 10:52:57 +0200 <dminuoso_> or well, let me think
2023-07-06 10:53:08 +0200 <tomsmeding> the question here is not about specific string literals
2023-07-06 10:53:12 +0200 <dminuoso_> Ah
2023-07-06 10:53:24 +0200 <tomsmeding> well, yes, the question as stated was about A/AA/AAA/AAAA/AAAAA
2023-07-06 10:53:27 +0200 <dminuoso_> tomsmeding: well its just a question of lookahead really.
2023-07-06 10:53:39 +0200 <tomsmeding> but the obvious generalisation is strings of stuff of length 1-5
2023-07-06 10:54:15 +0200 <tomsmeding> if we're allowed to error on strings longer than 5, my guard solution does the right thing in parsec land, no need for coolness
2023-07-06 10:54:34 +0200 <tomsmeding> it's when we want to leave the rest alone when given longer strings that parsec becomes awkward and you have to write your own loop
2023-07-06 10:54:48 +0200tv(~tv@user/tv)
2023-07-06 10:54:48 +0200 <tomsmeding> (not that that loop is particularly complicated, but still)
2023-07-06 10:55:09 +0200 <tomsmeding> dminuoso_: I'm not trying to disparage flatparse, I still want to use it some time and I think it's super cool
2023-07-06 10:55:29 +0200 <dminuoso_> tomsmeding: `do a <- ident; when (length a > 5) ...`
2023-07-06 10:55:33 +0200 <dminuoso_> thats probably who I would do it.
2023-07-06 10:55:48 +0200 <tomsmeding> yeah right
2023-07-06 10:56:23 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
2023-07-06 10:56:48 +0200 <tomsmeding> i.e. having the lexer allows you to compress the parser for stuff of any length to a function from the lexer, but it doesn't do anything with the code to handle <=5 / >5 lengths
2023-07-06 10:57:48 +0200 <tomsmeding> the only way I can see a lexer being a help here is if that lexer had support for defining token parsers with a regex language that supports {1,5} repetition syntax
2023-07-06 10:59:05 +0200EvanR_(~EvanR@user/evanr)
2023-07-06 10:59:22 +0200EvanR(~EvanR@user/evanr) (Read error: Connection reset by peer)
2023-07-06 11:00:28 +0200 <probie> tomsmeding: I don't think the guard solution does the "right thing" in parsec land if the goal is specifying sane upper-limits, since you might go off and read gigabytes of data if there are a lot of consecutive `A`s
2023-07-06 11:01:28 +0200 <tomsmeding> probie: this is true
2023-07-06 11:02:06 +0200 <tomsmeding> though nothing in parsec is written to allow dealing with maliciously large inputs
2023-07-06 11:02:14 +0200alternateved(~user@77-254-166-50.dynamic.inetia.pl) (Remote host closed the connection)
2023-07-06 11:03:35 +0200 <tomsmeding> manyMax :: Int -> Parser a -> Parser [a] ; manyMax 0 _ = return [] ; manyMax n p = option [] ((:) <$> p <*> manyMax (n-1) p)
2023-07-06 11:04:07 +0200qqq(~qqq@92.43.167.61)
2023-07-06 11:05:38 +0200 <tomsmeding> manyMax :: Int -> Parser a -> Parser [a] ; manyMax n p = go id n p ; where go pre 0 _ = return (pre []) ; go pre n p = optionMaybe p >>= maybe (return []) (\x -> go (pre . (x:)) (n-1) p)
2023-07-06 11:05:43 +0200 <tomsmeding> less stack buildup
2023-07-06 11:06:19 +0200misterfish(~misterfis@87.215.131.102)
2023-07-06 11:07:56 +0200alternateved(~user@77-254-166-50.dynamic.inetia.pl)
2023-07-06 11:09:54 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 246 seconds)
2023-07-06 11:10:34 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
2023-07-06 11:11:05 +0200tv(~tv@user/tv) (Ping timeout: 246 seconds)
2023-07-06 11:11:50 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-07-06 11:11:50 +0200mjacob(~mjacob@adrastea.uberspace.de) (Read error: Connection reset by peer)
2023-07-06 11:12:00 +0200TheCatCollective(NyaaTheKit@user/calculuscat)
2023-07-06 11:16:10 +0200 <fbytez> Thank you for the help.
2023-07-06 11:16:14 +0200kosmikus[m](~andresloe@2001:470:69fc:105::95d) (Remote host closed the connection)
2023-07-06 11:17:19 +0200mjacob(~mjacob@adrastea.uberspace.de)
2023-07-06 11:17:54 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2023-07-06 11:18:13 +0200dsrt^(~dsrt@24.125.210.85) (Remote host closed the connection)
2023-07-06 11:18:30 +0200AWizzArd(~code@gehrels.uberspace.de) (Ping timeout: 250 seconds)
2023-07-06 11:18:30 +0200tv(~tv@user/tv)
2023-07-06 11:20:16 +0200AWizzArd(~code@gehrels.uberspace.de)
2023-07-06 11:21:48 +0200 <dminuoso_> I would start with a threat model. Honestly, reading gigabytes not the biggest concern you have.
2023-07-06 11:21:52 +0200 <dminuoso_> At least presumably
2023-07-06 11:22:27 +0200 <dminuoso_> Unless you parse and lex in a streaming fashion, validating the length at lexer/parser time will not help much
2023-07-06 11:25:47 +0200tv(~tv@user/tv) (Ping timeout: 246 seconds)
2023-07-06 11:26:18 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2023-07-06 11:27:11 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds)
2023-07-06 11:27:13 +0200caryhartline(~caryhartl@168.182.58.169) (Quit: caryhartline)
2023-07-06 11:29:12 +0200Lord_of_Life_Lord_of_Life
2023-07-06 11:29:28 +0200tv(~tv@user/tv)
2023-07-06 11:30:01 +0200hipnozis(~hipnozis@91-83-10-42.pool.digikabel.hu) (Ping timeout: 245 seconds)
2023-07-06 11:32:01 +0200hipnozis(~hipnozis@92-249-179-80.pool.digikabel.hu)
2023-07-06 11:32:39 +0200mmhat(~mmh@p200300f1c7044c15ee086bfffe095315.dip0.t-ipconnect.de)
2023-07-06 11:36:12 +0200tv1(~tv@user/tv)
2023-07-06 11:36:12 +0200noctux(~noctux@user/noctux) (Read error: Connection reset by peer)
2023-07-06 11:38:36 +0200tv(~tv@user/tv) (Ping timeout: 246 seconds)
2023-07-06 11:38:44 +0200noctux(~noctux@user/noctux)
2023-07-06 11:45:42 +0200 <fbytez> True indeed. It would just be nice to be able to easily express my example rather than check the length as an extra step after parsing. I'm just genuinely surprised it's not a standard part of Parsec; particularly as `count` is.
2023-07-06 11:46:31 +0200 <fbytez> For me, things like this feel like fighting against the library / language.
2023-07-06 11:46:40 +0200 <fbytez> I'm very new to Haskell.
2023-07-06 11:48:09 +0200 <fbytez> What I expected to find was the equivalent of `take`, which, because of laziness, I think is lovely.
2023-07-06 11:49:14 +0200 <Rembane> fbytez: Does `parseTake n = fmap (take n)` do what you want?
2023-07-06 11:49:14 +0200Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2023-07-06 11:49:31 +0200Feuermagier(~Feuermagi@user/feuermagier)
2023-07-06 11:51:40 +0200 <fbytez> It may do; I'd have to try it.
2023-07-06 11:52:25 +0200 <probie> Rembane: That consumes input beyond the limit (e.g. on `"AAAAAAAAAAAAAB"` with `parseTake 5 (many char 'A')` it'd return `"AAAAA"` with just `"B"` remaining)
2023-07-06 11:53:06 +0200 <Rembane> probie: Oh. Hm... back to the drawing board I guess.
2023-07-06 11:54:31 +0200 <probie> s/many char 'A'/many (char 'A')/
2023-07-06 11:54:48 +0200 <fbytez> I haven't tried it, but tomsmeding's `manyMax` appears to have the behaviour I'm after.
2023-07-06 12:08:08 +0200nick2(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 240 seconds)
2023-07-06 12:12:18 +0200talismanick(~user@76.133.152.122) (Ping timeout: 260 seconds)
2023-07-06 12:13:47 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 264 seconds)
2023-07-06 12:17:05 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-07-06 12:18:34 +0200 <tomsmeding> fbytez: that was the intent :p
2023-07-06 12:20:15 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2023-07-06 12:22:21 +0200ubert(~Thunderbi@2a02:8109:abc0:6434:45dc:6b68:376a:7db8)
2023-07-06 12:24:57 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2023-07-06 12:26:41 +0200bitmapper(uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-07-06 12:26:55 +0200alexherbo2(~alexherbo@2a02-8440-2140-a747-1400-d7b1-148e-7f8c.rev.sfr.net)
2023-07-06 12:27:04 +0200nick2(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
2023-07-06 12:29:27 +0200xff0x_(~xff0x@2405:6580:b080:900:50da:9b7c:4bac:847a)
2023-07-06 12:32:09 +0200nick2(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds)
2023-07-06 12:39:14 +0200nick2(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
2023-07-06 12:43:29 +0200nick2(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds)
2023-07-06 12:45:41 +0200nick2(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
2023-07-06 12:47:23 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-07-06 12:49:52 +0200asivitz(uid178348@id-178348.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2023-07-06 12:51:09 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-07-06 12:58:32 +0200xff0x_(~xff0x@2405:6580:b080:900:50da:9b7c:4bac:847a) (Ping timeout: 245 seconds)
2023-07-06 12:58:56 +0200xff0x_(~xff0x@ai086045.d.east.v6connect.net)
2023-07-06 13:00:57 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-07-06 13:06:29 +0200alexherbo2(~alexherbo@2a02-8440-2140-a747-1400-d7b1-148e-7f8c.rev.sfr.net) (Ping timeout: 246 seconds)
2023-07-06 13:10:28 +0200ryantrinkle(~ryantrink@89.247.249.243)
2023-07-06 13:16:53 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds)
2023-07-06 13:17:06 +0200danse-nr3_(~francesco@151.43.214.70) (Ping timeout: 245 seconds)
2023-07-06 13:20:35 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2023-07-06 13:22:21 +0200coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-07-06 13:23:44 +0200delYsid(~user@user/delYsid) (ERC 5.6-git (IRC client for GNU Emacs 30.0.50))
2023-07-06 13:25:28 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-07-06 13:26:20 +0200hugo(znc@verdigris.lysator.liu.se)
2023-07-06 13:28:17 +0200danse-nr3_(~francesco@151.43.214.70)
2023-07-06 13:29:08 +0200CiaoSen(~Jura@2a05:5800:27e:200:664b:f0ff:fe37:9ef) (Ping timeout: 246 seconds)
2023-07-06 13:32:31 +0200danse-nr3_(~francesco@151.43.214.70) (Ping timeout: 245 seconds)
2023-07-06 13:32:45 +0200 <fbytez> tomsmeding, Could you explain to me why `id/pre` is needed in `manyMax`, please.
2023-07-06 13:33:42 +0200 <tomsmeding> fbytez: could have done 'fmap (x:) (manyMax (n-1) p)' instead; that's probably what you were expecting
2023-07-06 13:34:03 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-07-06 13:34:19 +0200 <tomsmeding> it may actually be equivalent, but I was hoping that what I wrote is slightly more efficient due to not needing to stack up a stack of fmaps, and then tearing them down afterwards
2023-07-06 13:34:27 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 246 seconds)
2023-07-06 13:34:39 +0200 <tomsmeding> but on the other hand, my chain of (x:) closures (the 'pre' thing) will also need to be evaluated /shrug/
2023-07-06 13:34:59 +0200 <tomsmeding> profiling would determine the winner here
2023-07-06 13:35:09 +0200 <fbytez> Right. Many thanks.
2023-07-06 13:35:48 +0200 <tomsmeding> fbytez: my first version without 'go' is also equivalent, but has a different kind of stack buildup
2023-07-06 13:36:07 +0200 <tomsmeding> but if n is like 5 then this is useless nitpicking :p
2023-07-06 13:38:39 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2023-07-06 13:38:47 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-07-06 13:43:46 +0200hipnozis(~hipnozis@92-249-179-80.pool.digikabel.hu) (Ping timeout: 245 seconds)
2023-07-06 13:45:41 +0200hipnozis(~hipnozis@84-236-122-153.pool.digikabel.hu)
2023-07-06 13:45:59 +0200myxos(~myxos@cpe-65-28-251-121.cinci.res.rr.com) (Quit: myxos)
2023-07-06 13:46:13 +0200myxos(~myxos@cpe-65-28-251-121.cinci.res.rr.com)
2023-07-06 13:46:35 +0200myxos(~myxos@cpe-65-28-251-121.cinci.res.rr.com) (Client Quit)
2023-07-06 13:46:48 +0200myxos(~myxos@cpe-65-28-251-121.cinci.res.rr.com)
2023-07-06 13:48:56 +0200nick2(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds)
2023-07-06 13:51:58 +0200alternateved(~user@77-254-166-50.dynamic.inetia.pl) (Remote host closed the connection)
2023-07-06 13:52:21 +0200alternateved(~user@77-254-166-50.dynamic.inetia.pl)
2023-07-06 14:00:50 +0200mmhat(~mmh@p200300f1c7044c15ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-07-06 14:01:19 +0200alternateved(~user@77-254-166-50.dynamic.inetia.pl) (Remote host closed the connection)
2023-07-06 14:01:36 +0200alternateved(~user@77-254-166-50.dynamic.inetia.pl)
2023-07-06 14:02:06 +0200alternateved(~user@77-254-166-50.dynamic.inetia.pl) (Remote host closed the connection)
2023-07-06 14:02:19 +0200nick4(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
2023-07-06 14:02:21 +0200alternateved(~user@77-254-166-50.dynamic.inetia.pl)
2023-07-06 14:12:45 +0200danse-nr3(~francesco@151.57.138.124)
2023-07-06 14:15:01 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
2023-07-06 14:15:05 +0200mmhat(~mmh@p200300f1c70e11c9ee086bfffe095315.dip0.t-ipconnect.de)
2023-07-06 14:21:12 +0200mmhat(~mmh@p200300f1c70e11c9ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2023-07-06 14:21:52 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-06 14:21:52 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-06 14:21:53 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-06 14:24:22 +0200tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 246 seconds)
2023-07-06 14:25:24 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-07-06 14:25:32 +0200CiaoSen(~Jura@2a05:5800:27e:200:664b:f0ff:fe37:9ef)
2023-07-06 14:28:44 +0200GoldsteinQ(~goldstein@goldstein.rs) (Quit: ZNC 1.8.2 - https://znc.in)
2023-07-06 14:30:52 +0200GoldsteinQ(~goldstein@goldstein.rs)
2023-07-06 14:31:00 +0200CiaoSen(~Jura@2a05:5800:27e:200:664b:f0ff:fe37:9ef) (Quit: CiaoSen)
2023-07-06 14:31:32 +0200hipnozis(~hipnozis@84-236-122-153.pool.digikabel.hu) (Quit: Lost terminal)
2023-07-06 14:35:03 +0200Feuermagier(~Feuermagi@user/feuermagier) (Read error: Connection reset by peer)
2023-07-06 14:35:12 +0200Feuermagier(~Feuermagi@user/feuermagier)
2023-07-06 14:35:23 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-07-06 14:36:53 +0200tomboy64(~tomboy64@user/tomboy64)
2023-07-06 14:40:02 +0200ripspin(~chatzilla@1.145.145.210)
2023-07-06 14:43:11 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 246 seconds)
2023-07-06 14:45:27 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2023-07-06 14:51:36 +0200dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2023-07-06 14:57:50 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2023-07-06 14:59:04 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 250 seconds)
2023-07-06 15:05:37 +0200nick4(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 245 seconds)
2023-07-06 15:08:42 +0200chomwitt(~chomwitt@2a02:587:7a06:dd00:1ac0:4dff:fedb:a3f1)
2023-07-06 15:09:27 +0200Reinhilde[Reinhilde]
2023-07-06 15:19:50 +0200nick4(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
2023-07-06 15:29:44 +0200nick4(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds)
2023-07-06 15:36:37 +0200nick4(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
2023-07-06 15:37:12 +0200shriekingnoise(~shrieking@186.137.175.87)
2023-07-06 15:39:36 +0200califax(~califax@user/califx) (Remote host closed the connection)
2023-07-06 15:39:50 +0200califax(~califax@user/califx)
2023-07-06 15:41:23 +0200nick4(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 264 seconds)
2023-07-06 15:42:12 +0200bontaq(~user@ool-45779b84.dyn.optonline.net)
2023-07-06 15:43:20 +0200nick4(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
2023-07-06 15:47:35 +0200puke(~puke@user/puke) (Ping timeout: 246 seconds)
2023-07-06 15:52:29 +0200nick4(~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds)
2023-07-06 15:54:01 +0200puke(~puke@user/puke)
2023-07-06 16:02:50 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-07-06 16:03:48 +0200ystael(~ystael@user/ystael)
2023-07-06 16:09:27 +0200jtza8(~user@165.255.137.176) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.2))
2023-07-06 16:16:08 +0200thegeekinside(~thegeekin@189.217.90.138)
2023-07-06 16:17:54 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-07-06 16:26:56 +0200bontaq(~user@ool-45779b84.dyn.optonline.net) (Remote host closed the connection)
2023-07-06 16:27:32 +0200ai5lk(~ai5lk@209-188-121-236.taosnet.com)
2023-07-06 16:33:26 +0200zer0bitz(~zer0bitz@user/zer0bitz)
2023-07-06 16:37:05 +0200zer0bitz_(~zer0bitz@user/zer0bitz) (Ping timeout: 246 seconds)
2023-07-06 16:37:56 +0200reach(~reach@74.12.129.40)
2023-07-06 16:39:07 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-07-06 16:39:07 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-07-06 16:39:07 +0200wroathe(~wroathe@user/wroathe)
2023-07-06 16:39:31 +0200acidjnk(~acidjnk@p200300d6e7072f0700a8e9aef9077b5f.dip0.t-ipconnect.de)
2023-07-06 16:43:48 +0200mei(~mei@user/mei) (Ping timeout: 246 seconds)
2023-07-06 16:46:33 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-07-06 16:47:32 +0200cfricke(~cfricke@user/cfricke)
2023-07-06 16:47:49 +0200mei(~mei@user/mei)
2023-07-06 16:50:46 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-07-06 16:51:02 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds)
2023-07-06 16:56:19 +0200bontaq(~user@ool-45779b84.dyn.optonline.net)
2023-07-06 17:01:27 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-07-06 17:06:16 +0200nick4(~nick@wsip-174-78-110-18.pn.at.cox.net)
2023-07-06 17:12:58 +0200falafel(~falafel@2603-7000-a700-8710-dcd0-82ed-dc77-29f6.res6.spectrum.com)
2023-07-06 17:16:09 +0200lainon(~textual@2601:7c0:cb00:c0a0:718c:10e2:ff4c:a39)
2023-07-06 17:30:29 +0200falafel(~falafel@2603-7000-a700-8710-dcd0-82ed-dc77-29f6.res6.spectrum.com) (Ping timeout: 240 seconds)
2023-07-06 17:30:42 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 246 seconds)
2023-07-06 17:33:22 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982)
2023-07-06 17:37:42 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 246 seconds)
2023-07-06 17:39:15 +0200thegeekinside(~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
2023-07-06 17:39:52 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
2023-07-06 17:42:15 +0200reach(~reach@74.12.129.40) (Read error: Connection reset by peer)
2023-07-06 17:42:15 +0200 <sclv> does anyone have example code of using http-client along with oauth? the oauth client is pretty undocumented...
2023-07-06 17:45:51 +0200 <sclv> most of the discussion and questions seem to be about the more difficult task of doing an oauth integration. i just want to create a client that lets someone use their creds to make use of an api...
2023-07-06 17:46:04 +0200econo_(uid147250@id-147250.tinside.irccloud.com)
2023-07-06 17:46:55 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-07-06 17:49:01 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) (Remote host closed the connection)
2023-07-06 17:49:13 +0200Lycurgus(~juan@user/Lycurgus)
2023-07-06 17:50:33 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982)
2023-07-06 17:53:17 +0200lainon(~textual@2601:7c0:cb00:c0a0:718c:10e2:ff4c:a39) (Quit: My Mac has gone to sleep. ZZZzzz…)
2023-07-06 17:54:43 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-07-06 18:00:01 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 245 seconds)
2023-07-06 18:01:04 +0200wroathe(~wroathe@50.205.197.50)
2023-07-06 18:01:04 +0200wroathe(~wroathe@50.205.197.50) (Changing host)
2023-07-06 18:01:04 +0200wroathe(~wroathe@user/wroathe)
2023-07-06 18:06:59 +0200asivitz(uid178348@id-178348.tinside.irccloud.com)
2023-07-06 18:10:27 +0200oac(~oac@72-50-214-210.fttp.usinternet.com)
2023-07-06 18:10:38 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) (Remote host closed the connection)
2023-07-06 18:11:22 +0200oac(~oac@72-50-214-210.fttp.usinternet.com) (Client Quit)
2023-07-06 18:11:24 +0200wroathe(~wroathe@user/wroathe) (Quit: Reconnecting)
2023-07-06 18:11:40 +0200wroathe(~wroathe@50.205.197.50)
2023-07-06 18:11:40 +0200wroathe(~wroathe@50.205.197.50) (Changing host)
2023-07-06 18:11:40 +0200wroathe(~wroathe@user/wroathe)
2023-07-06 18:11:51 +0200danse-nr3_(~francesco@151.43.220.217)
2023-07-06 18:13:49 +0200thegeekinside(~thegeekin@189.217.90.138)
2023-07-06 18:14:11 +0200danse-nr3(~francesco@151.57.138.124) (Ping timeout: 245 seconds)
2023-07-06 18:14:34 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982)
2023-07-06 18:15:28 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 252 seconds)
2023-07-06 18:16:53 +0200falafel(~falafel@2603-7000-a700-8710-c3ac-a6ea-45a8-45b9.res6.spectrum.com)
2023-07-06 18:18:05 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2023-07-06 18:19:05 +0200falafel(~falafel@2603-7000-a700-8710-c3ac-a6ea-45a8-45b9.res6.spectrum.com) (Remote host closed the connection)
2023-07-06 18:19:29 +0200falafel(~falafel@2603-7000-a700-8710-9d1b-efc1-e2eb-1a35.res6.spectrum.com)
2023-07-06 18:19:53 +0200gensyst(~gensyst@user/gensyst)
2023-07-06 18:20:18 +0200coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-07-06 18:20:42 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-06 18:20:42 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-06 18:20:42 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-06 18:24:57 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 246 seconds)
2023-07-06 18:25:16 +0200 <gensyst> I have bytestrings of format "{latitude}{longitude}{temperature}{three}{more}{doubles}" (6 Doubles). Is it possible to automatically generate getData :: ByteString -> Stuff
2023-07-06 18:25:16 +0200 <gensyst> data Stuff = Stuff { latitude :: Maybe Double, longitude :: Maybe Double, ... }
2023-07-06 18:25:16 +0200 <gensyst> where getData is somehow enhanced to specifify want I inside Stuff at the type level?
2023-07-06 18:25:16 +0200 <gensyst> Of course I could create functions manually for each field, but I want to know if something more cool is possible.
2023-07-06 18:25:50 +0200 <gensyst> main goal is not waste time deserializing stuff I don't need
2023-07-06 18:27:02 +0200L29Ah(~L29Ah@wikipedia/L29Ah) ()
2023-07-06 18:27:03 +0200danse-nr3_(~francesco@151.43.220.217) (Remote host closed the connection)
2023-07-06 18:27:24 +0200danse-nr3_(~francesco@151.43.220.217)
2023-07-06 18:27:27 +0200 <gensyst> e.g. could templateHaskell be used to map offsets/lengths (within bytestring) and function name suffixes into actual functions? (i know nothing about templatehaskell)
2023-07-06 18:30:45 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) (Remote host closed the connection)
2023-07-06 18:30:48 +0200falafel(~falafel@2603-7000-a700-8710-9d1b-efc1-e2eb-1a35.res6.spectrum.com) (Ping timeout: 240 seconds)
2023-07-06 18:30:51 +0200 <asivitz> gensyst: I recommend checking out the 'binary' package
2023-07-06 18:32:26 +0200 <asivitz> oh hm not sure if it has any type magic stuff
2023-07-06 18:33:50 +0200 <ncf> i don't understand what kind of type magic stuff is even being asked for
2023-07-06 18:34:28 +0200 <asivitz> maybe something like binary-generic
2023-07-06 18:35:46 +0200 <gensyst> getData @[Latitude, Longitude] or some magic?
2023-07-06 18:35:48 +0200 <gensyst> no idea to be honest
2023-07-06 18:37:23 +0200 <asivitz> do you need a specific format? there has to be tons of libraries that will happily generate their own format
2023-07-06 18:39:44 +0200 <asivitz> cereal would be a good example of that
2023-07-06 18:39:44 +0200 <ncf> looks like binary already has support for deriving formats automatically
2023-07-06 18:40:21 +0200 <ncf> (which is not the same as "guessing what format your bytestrings are automatically")
2023-07-06 18:42:14 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982)
2023-07-06 18:42:17 +0200 <gensyst> Ok let me rephrase,
2023-07-06 18:42:56 +0200titibandit(~titibandi@user/titibandit) (Quit: leaving)
2023-07-06 18:42:57 +0200 <gensyst> Is there any cooler/shorter way than manually writing getLatitude :: ByteString -> Double and so on for all the other fields?
2023-07-06 18:43:07 +0200titibandit(~titibandi@user/titibandit)
2023-07-06 18:43:42 +0200 <gensyst> one problem with this manual approach; each function begins by checking the length of the bytestring (sanity check).
2023-07-06 18:43:52 +0200 <gensyst> so if I ever combine those functions, i'm re-checking the bytestring length many times.
2023-07-06 18:44:03 +0200 <gensyst> so that would mean, a wrapper for each of those functions.
2023-07-06 18:44:17 +0200 <gensyst> "getLatitudeWithoutLengthCheck" and "getLatitude"
2023-07-06 18:44:25 +0200 <gensyst> and so on
2023-07-06 18:46:08 +0200reio(~reio@86-90-81-176.fixed.kpn.net)
2023-07-06 18:46:33 +0200reio(~reio@86-90-81-176.fixed.kpn.net) (Remote host closed the connection)
2023-07-06 18:46:57 +0200paddymahoney(~paddymaho@cpe883d24bcf597-cmbc4dfb741f80.cpe.net.cable.rogers.com) (Ping timeout: 258 seconds)
2023-07-06 18:47:07 +0200reio(~reio@86-90-81-176.fixed.kpn.net)
2023-07-06 18:48:20 +0200ubert(~Thunderbi@2a02:8109:abc0:6434:45dc:6b68:376a:7db8) (Remote host closed the connection)
2023-07-06 18:48:39 +0200EvanR_EvanR
2023-07-06 18:48:59 +0200 <EvanR> Stuff <$> getDouble <*> getDouble <*> getDouble <*> ...
2023-07-06 18:49:30 +0200 <EvanR> (couldn't figure out what the Maybes were doing there)
2023-07-06 18:52:19 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2023-07-06 18:52:39 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2023-07-06 18:53:08 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-07-06 18:55:07 +0200gurkenglas(~gurkengla@dynamic-046-114-179-175.46.114.pool.telefonica.de)
2023-07-06 18:55:30 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) (Remote host closed the connection)
2023-07-06 18:57:19 +0200titibandit(~titibandi@user/titibandit) (Remote host closed the connection)
2023-07-06 18:59:36 +0200misterfish(~misterfis@87.215.131.102) (Ping timeout: 245 seconds)
2023-07-06 19:03:06 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
2023-07-06 19:04:36 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 245 seconds)
2023-07-06 19:13:56 +0200`2jt(~jtomas@90.162.208.36) (Remote host closed the connection)
2023-07-06 19:14:20 +0200`2jt(~jtomas@90.162.208.36)
2023-07-06 19:15:07 +0200coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-07-06 19:15:23 +0200coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-07-06 19:15:25 +0200Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
2023-07-06 19:18:01 +0200talismanick(~user@76.133.152.122)
2023-07-06 19:22:13 +0200billb(~billb@cpe-66-8-173-22.hawaii.res.rr.com) (Quit: Leaving)
2023-07-06 19:23:08 +0200billb(~billb@cpe-66-8-173-22.hawaii.res.rr.com)
2023-07-06 19:26:41 +0200Midjak(~Midjak@82.66.147.146)
2023-07-06 19:28:28 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2023-07-06 19:30:01 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
2023-07-06 19:32:10 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2023-07-06 19:32:30 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 246 seconds)
2023-07-06 19:32:49 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982)
2023-07-06 19:34:03 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2023-07-06 19:34:28 +0200dibblego(~dibblego@116.255.1.157)
2023-07-06 19:34:28 +0200dibblego(~dibblego@116.255.1.157) (Changing host)
2023-07-06 19:34:28 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-06 19:35:59 +0200thegeekinside(~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
2023-07-06 19:37:22 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-07-06 19:38:44 +0200 <probie> What do you mean by "deserializing stuff I don't need"? Maybe I've misinterpreted what you're saying, but my reading is that you've got a bytestring which is 48 bytes long that contains 6 doubles
2023-07-06 19:41:20 +0200alternateved(~user@77-254-166-50.dynamic.inetia.pl) (Remote host closed the connection)
2023-07-06 19:41:22 +0200 <EvanR> what's funny is if you assume that format, then lazy evaluation could stop you from deserializing stuff you don't need
2023-07-06 19:41:31 +0200 <EvanR> automatically
2023-07-06 19:41:33 +0200alternateved(~user@77-254-166-50.dynamic.inetia.pl)
2023-07-06 19:42:11 +0200 <EvanR> though the thunks probably take up more memory than 1 double
2023-07-06 19:42:17 +0200Inst__(~Inst@2601:6c4:4081:2fc0:44fe:e619:5fe8:5723)
2023-07-06 19:44:43 +0200thegeekinside(~thegeekin@189.217.90.138)
2023-07-06 19:45:56 +0200Inst_(~Inst@2601:6c4:4081:2fc0:f0f1:dbda:8b5c:598b) (Ping timeout: 240 seconds)
2023-07-06 19:46:20 +0200 <probie> This is a bytestring that fits in a single cache line. Checking the length of a (strict) bytestring is also very cheap
2023-07-06 19:46:23 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) (Remote host closed the connection)
2023-07-06 19:47:25 +0200 <EvanR> would be cool to have your values "backed" by a bytestring somewhere instead of a discrete boxed thing
2023-07-06 19:48:06 +0200 <EvanR> json munging would benefit
2023-07-06 19:50:00 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2023-07-06 19:52:27 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-07-06 19:53:51 +0200danse-nr3_(~francesco@151.43.220.217) (Ping timeout: 246 seconds)
2023-07-06 19:54:41 +0200elkcl(~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru) (Ping timeout: 246 seconds)
2023-07-06 19:56:15 +0200__monty__(~toonn@user/toonn)
2023-07-06 19:58:27 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-07-06 20:03:59 +0200thegeekinside(~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
2023-07-06 20:04:34 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982)
2023-07-06 20:07:16 +0200ft(~ft@p508db151.dip0.t-ipconnect.de)
2023-07-06 20:10:01 +0200chomwitt(~chomwitt@2a02:587:7a06:dd00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
2023-07-06 20:11:26 +0200caryhartline(~caryhartl@168.182.58.169)
2023-07-06 20:16:45 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-07-06 20:16:46 +0200ripspin(~chatzilla@1.145.145.210) (Remote host closed the connection)
2023-07-06 20:18:49 +0200gmg(~user@user/gehmehgeh)
2023-07-06 20:20:47 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) (Remote host closed the connection)
2023-07-06 20:21:36 +0200lainon(~textual@2601:7c0:cb00:c0a0:718c:10e2:ff4c:a39)
2023-07-06 20:22:20 +0200`2jt(~jtomas@90.162.208.36) (Ping timeout: 252 seconds)
2023-07-06 20:33:27 +0200thegeekinside(~thegeekin@189.217.90.138)
2023-07-06 20:38:24 +0200juri_(~juri@84-19-175-187.pool.ovpn.com)
2023-07-06 20:40:29 +0200alexherbo2(~alexherbo@59.196.204.77.rev.sfr.net)
2023-07-06 20:41:11 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982)
2023-07-06 20:43:16 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2023-07-06 20:48:20 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds)
2023-07-06 20:49:07 +0200Guest5320(~finn@176-151-21-224.abo.bbox.fr)
2023-07-06 20:50:07 +0200 <Guest5320> does ghc 9.2 make some changes to the behavior of Data.Coerce(coerce) ? I can't build inline-c gsl examples anymore
2023-07-06 20:50:31 +0200 <Guest5320> examples/gsl-ode.hs:97:3: error:
2023-07-06 20:50:33 +0200 <Guest5320> • Couldn't match type ‘CDouble’ with ‘Double’
2023-07-06 20:50:35 +0200 <Guest5320> arising from a use of ‘coerce’
2023-07-06 20:50:37 +0200 <Guest5320> • In the first argument of ‘($)’, namely ‘coerce’
2023-07-06 20:50:39 +0200 <Guest5320> In the expression:
2023-07-06 20:50:41 +0200 <Guest5320> coerce
2023-07-06 20:50:43 +0200 <Guest5320> $ solveOdeC (coerce fun) (coerce x0) (coerce f0) (coerce xend)
2023-07-06 20:50:45 +0200 <Guest5320> In an equation for ‘solveOde’:
2023-07-06 20:50:47 +0200 <Guest5320> solveOde fun x0 f0 xend
2023-07-06 20:50:49 +0200 <Guest5320> = coerce
2023-07-06 20:50:51 +0200 <Guest5320> $ solveOdeC (coerce fun) (coerce x0) (coerce f0) (coerce xend)
2023-07-06 20:50:54 +0200 <Guest5320> i remember i could build this code before
2023-07-06 20:51:16 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds)
2023-07-06 20:52:30 +0200L29Ah(~L29Ah@wikipedia/L29Ah) ()
2023-07-06 20:54:50 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 250 seconds)
2023-07-06 20:55:27 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds)
2023-07-06 20:56:33 +0200dibblego(~dibblego@116.255.1.157)
2023-07-06 20:56:34 +0200dibblego(~dibblego@116.255.1.157) (Changing host)
2023-07-06 20:56:34 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-06 20:57:43 +0200trev(~trev@user/trev) (Quit: trev)
2023-07-06 20:59:43 +0200witcher(~witcher@wiredspace.de)
2023-07-06 21:00:02 +0200alexherbo2(~alexherbo@59.196.204.77.rev.sfr.net) (Ping timeout: 246 seconds)
2023-07-06 21:00:06 +0200witcher(~witcher@wiredspace.de) ()
2023-07-06 21:00:08 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2023-07-06 21:05:15 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds)
2023-07-06 21:05:56 +0200 <int-e> Guest5320: it's `vector` that (sensibly) added a nominal role to `Data.Vector.Storable.Vector` in 0.13.0.0. See https://github.com/haskell/vector/pull/235
2023-07-06 21:05:57 +0200rainbyte(~rainbyte@181.31.239.226)
2023-07-06 21:06:16 +0200 <int-e> Guest5320: also please use a pastebin if you message is longer than 3-5 lines
2023-07-06 21:07:21 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds)
2023-07-06 21:08:09 +0200 <Guest5320> thanks int-e . so what should i do to adapt the code?
2023-07-06 21:09:05 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2023-07-06 21:09:25 +0200 <int-e> I suspect you'll need to use `unsafeCoerce` or the newly added `unsafeCoerceVector` mentioned in the ticket, though that will be awkward for the `fun` argument (since that coercion has to be performed on an argument of `fun`)
2023-07-06 21:09:38 +0200 <int-e> s/ticket/PR/
2023-07-06 21:11:42 +0200gtf(~gideon@2a02:8012:700a:0:d166:a693:8446:1b7b)
2023-07-06 21:11:43 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au)
2023-07-06 21:11:43 +0200dibblego(~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
2023-07-06 21:11:43 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-07-06 21:11:46 +0200 <EvanR> CDouble and Double don't have the same representation?
2023-07-06 21:11:52 +0200 <int-e> (It's actually a bit surprising that the type role of `ForeignPtr`'s argument isn't nominal. If it were, that would've propagated to `Vector`)
2023-07-06 21:12:16 +0200 <int-e> EvanR: They do, but nothing at the type level guarantees that the Storable instance use the same bit format.
2023-07-06 21:12:22 +0200gtf(~gideon@2a02:8012:700a:0:d166:a693:8446:1b7b) (Quit: Konversation terminated!)
2023-07-06 21:12:32 +0200 <int-e> *instances
2023-07-06 21:12:58 +0200gtf(~gideon@2a02:8012:700a:0:d166:a693:8446:1b7b)
2023-07-06 21:13:43 +0200 <Guest5320> thanks it works
2023-07-06 21:14:03 +0200 <Guest5320> btw, what do you mean by nominal?
2023-07-06 21:14:37 +0200 <int-e> https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/roles.html
2023-07-06 21:15:53 +0200 <Guest5320> once again this channel beats ChatGPT 3.5 ;-D
2023-07-06 21:15:58 +0200 <int-e> https://github.com/haskell/vector/issues/223 has a really good example of this going wrong using CInt and Int.
2023-07-06 21:16:22 +0200Pickchea(~private@user/pickchea)
2023-07-06 21:16:44 +0200 <int-e> (Sure, one is commonly 32 bits and the other is commonly 64 bits, but it's easy to forget about this when using `coerce` just compiles)
2023-07-06 21:17:22 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-07-06 21:17:23 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-07-06 21:17:23 +0200wroathe(~wroathe@user/wroathe)
2023-07-06 21:18:09 +0200delYsid(~user@user/delYsid)
2023-07-06 21:18:25 +0200 <int-e> EvanR: so it's apparently *worse*; the inferred type role was phantom, coming from `Foreign.ForeignPtr.ForeignPtr`
2023-07-06 21:18:56 +0200 <delYsid> I'd like to extract all hyperlinks from a html document and filter on the href, what do I use?
2023-07-06 21:19:25 +0200 <ncf> tagsoup/scalpel
2023-07-06 21:19:53 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2023-07-06 21:24:22 +0200gensyst(~gensyst@user/gensyst) (Quit: Leaving)
2023-07-06 21:26:59 +0200gtf(~gideon@2a02:8012:700a:0:d166:a693:8446:1b7b) (Ping timeout: 264 seconds)
2023-07-06 21:28:21 +0200 <delYsid> Oh, scalpel looks really neat, thanks!
2023-07-06 21:28:22 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) (Remote host closed the connection)
2023-07-06 21:33:28 +0200elkcl(~elkcl@broadband-178-140-133-76.ip.moscow.rt.ru)
2023-07-06 21:33:45 +0200alexherbo2(~alexherbo@2a02-8440-2140-3f91-1098-4793-95b6-5680.rev.sfr.net)
2023-07-06 21:34:18 +0200Guest5320(~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 246 seconds)
2023-07-06 21:38:51 +0200hisa3877(~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net)
2023-07-06 21:38:57 +0200misterfish(~misterfis@84-53-85-146.bbserv.nl)
2023-07-06 21:39:56 +0200gtf(~gideon@2a02:8012:700a:0:d166:a693:8446:1b7b)
2023-07-06 21:45:47 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-07-06 21:46:21 +0200titibandit(~titibandi@user/titibandit)
2023-07-06 21:49:04 +0200titibandit(~titibandi@user/titibandit) (Remote host closed the connection)
2023-07-06 21:49:14 +0200fendor(~fendor@2a02:8388:1640:be00:821b:25b5:c8f3:73a0) (Remote host closed the connection)
2023-07-06 21:55:26 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 245 seconds)
2023-07-06 21:56:10 +0200justsomeguy(~justsomeg@user/justsomeguy)
2023-07-06 21:57:39 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-07-06 21:59:01 +0200mei(~mei@user/mei) (Remote host closed the connection)
2023-07-06 22:01:25 +0200mei(~mei@user/mei)
2023-07-06 22:02:34 +0200justsomeguy(~justsomeg@user/justsomeguy) (Read error: Connection reset by peer)
2023-07-06 22:03:36 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-07-06 22:06:03 +0200alexherbo2(~alexherbo@2a02-8440-2140-3f91-1098-4793-95b6-5680.rev.sfr.net) (Remote host closed the connection)
2023-07-06 22:06:23 +0200alexherbo2(~alexherbo@2a02-8440-2140-3f91-1098-4793-95b6-5680.rev.sfr.net)
2023-07-06 22:16:20 +0200falafel(~falafel@2603-7000-a700-8710-87fa-7c70-1d3c-0c29.res6.spectrum.com)
2023-07-06 22:21:01 +0200thegeekinside(~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
2023-07-06 22:22:22 +0200alexherbo2(~alexherbo@2a02-8440-2140-3f91-1098-4793-95b6-5680.rev.sfr.net) (Remote host closed the connection)
2023-07-06 22:23:59 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-07-06 22:26:55 +0200 <Yumemi> I'm trying to build a GHC cross compiler for aarch64-linux-android24 (mostly for fun, I know that there are problems when it comes to template Haskell and other things), and I wonder what's the… best? way to specify the toolchain to ./configure/Hadrian? The "problem" is that the only tools prefixed with aarch64-linux-android24- in the Android NDK are clang and clang++ (not nm, ar, ld, …) so if
2023-07-06 22:26:56 +0200 <Yumemi> I only specify the --target and CC environment variables, it will fail at various points in the build because of missing tools, and if I add them manually through the environment variables AR, LD and NM (though AR and NM aren't mentionned in ./configure --help), the stage 1 build fails with a "Error, rule finished running but did not produce file:
2023-07-06 22:26:58 +0200 <Yumemi> _build/stage1/lib/aarch64-linux_android-ghc-9.2.8/libHSrts-1.0.2-ghc9.2.8.so" so I suppose that's not a good way to do things? Maybe I should just create symlinks with the prefix for other tools?
2023-07-06 22:27:08 +0200Guest5320(~finn@176-151-21-224.abo.bbox.fr)
2023-07-06 22:28:39 +0200`2jt(~jtomas@90.162.208.36)
2023-07-06 22:28:52 +0200 <Hecate> Yumemi: I think symlinks are an acceptable hack in the absence of anything better :)
2023-07-06 22:29:59 +0200 <Yumemi> okay, so symlink + --target it is, I'll try again with that, thanks!
2023-07-06 22:30:18 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds)
2023-07-06 22:31:27 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2023-07-06 22:37:43 +0200hugo(znc@verdigris.lysator.liu.se)
2023-07-06 22:39:11 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 245 seconds)
2023-07-06 22:39:39 +0200alexherbo2(~alexherbo@2a02-8440-2140-3f91-1098-4793-95b6-5680.rev.sfr.net)
2023-07-06 22:41:48 +0200gabiruh(~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in)
2023-07-06 22:44:37 +0200 <Hecate> Yumemi: do keep us updated, but also #ghc might be a better channel for that
2023-07-06 22:57:15 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2023-07-06 22:57:17 +0200falafel(~falafel@2603-7000-a700-8710-87fa-7c70-1d3c-0c29.res6.spectrum.com) (Ping timeout: 245 seconds)
2023-07-06 22:57:29 +0200wroathe(~wroathe@50.205.197.50)
2023-07-06 22:57:30 +0200wroathe(~wroathe@50.205.197.50) (Changing host)
2023-07-06 22:57:30 +0200wroathe(~wroathe@user/wroathe)
2023-07-06 23:01:21 +0200pavonia(~user@user/siracusa)
2023-07-06 23:04:05 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:b9c2:276d:fb2c:5cec)
2023-07-06 23:08:14 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:b9c2:276d:fb2c:5cec) (Ping timeout: 246 seconds)
2023-07-06 23:10:20 +0200gtf(~gideon@2a02:8012:700a:0:d166:a693:8446:1b7b) (Ping timeout: 246 seconds)
2023-07-06 23:10:31 +0200alexherbo2(~alexherbo@2a02-8440-2140-3f91-1098-4793-95b6-5680.rev.sfr.net) (Remote host closed the connection)
2023-07-06 23:11:36 +0200nick4(~nick@wsip-174-78-110-18.pn.at.cox.net) (Ping timeout: 246 seconds)
2023-07-06 23:12:12 +0200 <Yumemi> Unfortunately still got "Error, rule finished running but did not produce file: _build/stage1/lib/aarch64-linux_android-ghc-9.2.8/libHSrts-1.0.2-ghc9.2.8.so" and I don't have time to investigate more tonight (but I'll continue tomorrow or the day after)
2023-07-06 23:12:14 +0200`2jt(~jtomas@90.162.208.36) (Remote host closed the connection)
2023-07-06 23:12:36 +0200 <Yumemi> and for #ghc I have to admit I wasn't sure whether it was ok or only for tinkering with GHC's code itself
2023-07-06 23:15:42 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2023-07-06 23:16:30 +0200dhil(~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 246 seconds)
2023-07-06 23:18:59 +0200 <Yumemi> (oh, `_build/stage1/lib/aarch64-linux_android-ghc-9.2.8/libHSrts-1.0.2-ghc9.2.8.so` doesn't exist but `./_build/stage1/lib/aarch64-android-ghc-9.2.8/libHSrts-1.0.2-ghc9.2.8.so` was generated, I'll start with this tomorrow)
2023-07-06 23:20:43 +0200gabiruh(~gabiruh@vps19177.publiccloud.com.br)
2023-07-06 23:27:15 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-07-06 23:38:10 +0200michalz(~michalz@185.246.207.215) (Remote host closed the connection)
2023-07-06 23:39:54 +0200thegeekinside(~thegeekin@189.217.90.138)
2023-07-06 23:47:44 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-07-06 23:56:59 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-07-06 23:57:02 +0200lainon(~textual@2601:7c0:cb00:c0a0:718c:10e2:ff4c:a39) (Quit: My Mac has gone to sleep. ZZZzzz…)