2020/12/04

2020-12-04 00:01:08 +0100 <iqubic> I see. Is it possible to use this for other things like as the argument to typed? https://hackage.haskell.org/package/generic-lens-2.0.0.0/docs/Data-Generics-Product-Typed.html#t:H…
2020-12-04 00:01:11 +0100p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515)
2020-12-04 00:01:12 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2020-12-04 00:01:36 +0100DavidEichmann(~david@62.110.198.146.dyn.plus.net) (Remote host closed the connection)
2020-12-04 00:02:08 +0100 <iqubic> Or would I still need to use type applications?
2020-12-04 00:02:29 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Remote host closed the connection)
2020-12-04 00:02:31 +0100rdivacky(~rdivacky@212.96.173.4) (Read error: Connection reset by peer)
2020-12-04 00:02:45 +0100alp(~alp@2a01:e0a:58b:4920:914d:f2ca:3630:62c6) (Ping timeout: 272 seconds)
2020-12-04 00:03:34 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-12-04 00:03:37 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-04 00:04:28 +0100 <dminuoso> That doesn't make much sense..
2020-12-04 00:05:50 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2020-12-04 00:07:47 +0100rdivacky(~rdivacky@212.96.173.4)
2020-12-04 00:08:08 +0100 <sondr3> I have a weird problem doing lookups in a Map: https://gist.github.com/sondr3/c76dd36778cef870daff78b32051e228. It's a `Map Text Bool` and looking up "*" fails but "/" and any other texts work
2020-12-04 00:08:12 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-04 00:10:13 +0100Ariakenom(~Ariakenom@h-98-128-229-53.NA.cust.bahnhof.se) (Quit: Leaving)
2020-12-04 00:11:54 +0100 <dminuoso> % m = M.fromAscList [("+", True),("-",False),("/",True),("*",True)]; m :: M.Map String Boo
2020-12-04 00:11:54 +0100 <yahb> dminuoso: ; <interactive>:49:86: error:; Not in scope: type constructor or class `Boo'; Perhaps you meant `Bool' (imported from Prelude)
2020-12-04 00:11:56 +0100 <dminuoso> % m = M.fromAscList [("+", True),("-",False),("/",True),("*",True)]; m :: M.Map String Bool
2020-12-04 00:11:56 +0100 <yahb> dminuoso:
2020-12-04 00:12:04 +0100 <dminuoso> % M.lookup "*" m
2020-12-04 00:12:04 +0100 <yahb> dminuoso: Nothing
2020-12-04 00:12:15 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-04 00:12:24 +0100 <dminuoso> % print m
2020-12-04 00:12:24 +0100 <yahb> dminuoso: fromList [("+",True),("-",False),("/",True),("*",True)]
2020-12-04 00:12:25 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
2020-12-04 00:12:33 +0100 <dminuoso> % lookup "*" (M.toList m)
2020-12-04 00:12:34 +0100 <yahb> dminuoso: Just True
2020-12-04 00:12:37 +0100 <dminuoso> huh
2020-12-04 00:15:24 +0100 <sondr3> At least it's not just me
2020-12-04 00:15:25 +0100 <dminuoso> Oh
2020-12-04 00:15:28 +0100 <dminuoso> M.fromAscList
2020-12-04 00:15:43 +0100 <dminuoso> You're probably violating the precondition that the keys are ascending
2020-12-04 00:15:55 +0100 <dminuoso> % "*" > "/"
2020-12-04 00:15:56 +0100 <yahb> dminuoso: False
2020-12-04 00:15:59 +0100 <dminuoso> There you go.
2020-12-04 00:16:04 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-12-04 00:16:09 +0100 <dminuoso> (It will not check)
2020-12-04 00:16:16 +0100 <sondr3> Oh, I had no idea that was a thing
2020-12-04 00:16:20 +0100 <dminuoso> "O(n). Build a map from an ascending list in linear time. The precondition (input list is ascending) is not checked."
2020-12-04 00:16:24 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 240 seconds)
2020-12-04 00:16:52 +0100Tario(~Tario@201.192.165.173)
2020-12-04 00:17:04 +0100 <sondr3> Oh lord, yeah, I have no idea why I chose that over just M.fromList
2020-12-04 00:17:20 +0100 <sondr3> That's a brainfart
2020-12-04 00:17:31 +0100 <sondr3> Thanks dminuoso
2020-12-04 00:19:27 +0100fendor(~fendor@91.141.2.63.wireless.dyn.drei.com) (Remote host closed the connection)
2020-12-04 00:19:44 +0100conal(~conal@64.71.133.70)
2020-12-04 00:20:06 +0100ph88(~ph88@95.90.246.205) (Ping timeout: 256 seconds)
2020-12-04 00:21:57 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-12-04 00:22:24 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-04 00:22:33 +0100isovector1(~isovector@172.103.216.166.cable.tpia.cipherkey.com) ("Leaving")
2020-12-04 00:23:03 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-04 00:23:34 +0100kritzefitz(~kritzefit@212.86.56.80) (Remote host closed the connection)
2020-12-04 00:25:48 +0100conal(~conal@64.71.133.70)
2020-12-04 00:26:25 +0100ddellacosta(dd@gateway/vpn/mullvad/ddellacosta)
2020-12-04 00:27:37 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 260 seconds)
2020-12-04 00:32:58 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-04 00:33:19 +0100 <koz_> :t intercalate
2020-12-04 00:33:22 +0100 <lambdabot> [a] -> [[a]] -> [a]
2020-12-04 00:33:27 +0100 <koz_> :t intersperse
2020-12-04 00:33:29 +0100 <lambdabot> a -> [a] -> [a]
2020-12-04 00:34:09 +0100urek__(~urek@2804:7f1:e10a:9644:2492:fd7b:c739:6641)
2020-12-04 00:35:41 +0100urek(~urek@2804:7f1:e10a:9644:81a3:232e:2e84:9c43) (Ping timeout: 272 seconds)
2020-12-04 00:37:23 +0100 <koz_> @hoogle intersperse
2020-12-04 00:37:23 +0100 <lambdabot> Data.List intersperse :: a -> [a] -> [a]
2020-12-04 00:37:23 +0100 <lambdabot> Data.List.NonEmpty intersperse :: a -> NonEmpty a -> NonEmpty a
2020-12-04 00:37:23 +0100 <lambdabot> GHC.OldList intersperse :: a -> [a] -> [a]
2020-12-04 00:37:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-04 00:37:50 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
2020-12-04 00:38:43 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
2020-12-04 00:40:52 +0100ces(~ces@52d3c113.dynamic-ip.k-net.dk) (Ping timeout: 272 seconds)
2020-12-04 00:41:04 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 260 seconds)
2020-12-04 00:44:06 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-04 00:46:25 +0100Tario(~Tario@201.192.165.173)
2020-12-04 00:46:26 +0100kupi(uid212005@gateway/web/irccloud.com/x-jthauiwdetxrewvw)
2020-12-04 00:48:23 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-12-04 00:50:57 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-04 00:51:21 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-04 00:52:21 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-12-04 00:52:54 +0100dhil(~dhil@195.213.192.34) (Ping timeout: 272 seconds)
2020-12-04 00:54:10 +0100hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-12-04 00:56:02 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
2020-12-04 00:56:03 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2020-12-04 00:56:06 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Remote host closed the connection)
2020-12-04 00:59:05 +0100p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Remote host closed the connection)
2020-12-04 01:01:45 +0100chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2020-12-04 01:02:08 +0100conal(~conal@64.71.133.70)
2020-12-04 01:03:51 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-04 01:04:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-04 01:05:40 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-12-04 01:08:11 +0100hackagelanguage-dickinson 1.4.1.2 - A language for generative literature https://hackage.haskell.org/package/language-dickinson-1.4.1.2 (vmchale)
2020-12-04 01:08:40 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-04 01:09:01 +0100p8m(p8m@gateway/vpn/protonvpn/p8m)
2020-12-04 01:09:40 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2020-12-04 01:10:20 +0100_linker_(~linker@2a02:a31a:a041:9a80:2cd0:74ec:fa0:a975) (Remote host closed the connection)
2020-12-04 01:11:48 +0100p8m_(p8m@gateway/vpn/protonvpn/p8m)
2020-12-04 01:11:55 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
2020-12-04 01:12:02 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:a1c2:b119:a4c8:3942:7eb)
2020-12-04 01:15:42 +0100p8m(p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 272 seconds)
2020-12-04 01:16:20 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2020-12-04 01:19:20 +0100 <texasmynsted> is there a way to derive a Show instance for a type from an included module? Example: https://jaspervdj.be/hakyll/reference/src/Hakyll-Web-Template-Context.html
2020-12-04 01:19:28 +0100 <texasmynsted> I want to show Context
2020-12-04 01:20:19 +0100 <hpc> turn on orphan instances, and you need its data constructors in scope
2020-12-04 01:21:01 +0100p8m_p8m
2020-12-04 01:21:07 +0100 <hpc> you won't be able to show Context values though, there's no Show instance for functions
2020-12-04 01:21:35 +0100 <hpc> if you did write one, the best you could get is show = const "Context <function>" or something along those lines
2020-12-04 01:22:33 +0100sondr3(~sondr3@cm-84.211.56.132.getinternet.no) (Quit: Leaving)
2020-12-04 01:23:09 +0100 <texasmynsted> Isn't Context just a newtype wrapper to provide a monoid?
2020-12-04 01:23:44 +0100 <texasmynsted> hmm. I just want to see all the fields in the Context.
2020-12-04 01:24:22 +0100 <hpc> newtype Context a = Context {unContext :: String -> [String] -> Item a -> Compiler ContextField}
2020-12-04 01:24:39 +0100 <hpc> it has one field, unContext
2020-12-04 01:24:45 +0100jespada(~jespada@90.254.245.49) (Ping timeout: 240 seconds)
2020-12-04 01:24:46 +0100 <hpc> which is a function that takes etc etc
2020-12-04 01:24:58 +0100 <hpc> you can't show what parameters the function takes because it hasn't been given any yet
2020-12-04 01:25:22 +0100 <texasmynsted> right okay
2020-12-04 01:26:48 +0100tessier(~treed@98.171.210.130)
2020-12-04 01:26:48 +0100tessier(~treed@98.171.210.130) (Changing host)
2020-12-04 01:26:48 +0100tessier(~treed@kernel-panic/copilotco)
2020-12-04 01:28:41 +0100jespada(~jespada@90.254.245.49)
2020-12-04 01:34:01 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Remote host closed the connection)
2020-12-04 01:36:15 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
2020-12-04 01:38:16 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-04 01:38:40 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-04 01:38:48 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-04 01:39:10 +0100Tops2(~Tobias@dyndsl-095-033-024-237.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2020-12-04 01:42:30 +0100drincruz_(~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 256 seconds)
2020-12-04 01:42:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-04 01:48:41 +0100nkatte(~nkatte@2804:14c:7982:10c9:4e1d:96ff:fe53:98e1)
2020-12-04 01:54:06 +0100Varis(~Tadas@unaffiliated/varis)
2020-12-04 01:55:47 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-04 01:56:12 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-04 01:57:54 +0100pent(sid313808@gateway/web/irccloud.com/x-xqrqvlzrksrgsiqc) (Ping timeout: 244 seconds)
2020-12-04 01:57:59 +0100dmj`(sid72307@gateway/web/irccloud.com/x-zlqjhjlnfrbzhlnn) (Ping timeout: 244 seconds)
2020-12-04 01:57:59 +0100rann(sid175221@gateway/web/irccloud.com/x-hjffvubjrurprbtl) (Ping timeout: 244 seconds)
2020-12-04 01:57:59 +0100PatrickRobotham_(sid18270@gateway/web/irccloud.com/x-dijdrdskgiequney) (Ping timeout: 244 seconds)
2020-12-04 01:57:59 +0100stylewarning(stylewarni@gateway/web/irccloud.com/x-kgzvevvekhekeqvf) (Ping timeout: 244 seconds)
2020-12-04 01:58:38 +0100PatrickRobotham_(sid18270@gateway/web/irccloud.com/x-aeyrfpqtngtucpch)
2020-12-04 01:58:40 +0100pent(sid313808@gateway/web/irccloud.com/x-myformzqndtngank)
2020-12-04 01:58:49 +0100stylewarning(stylewarni@gateway/web/irccloud.com/x-qyrbdxfrgqvtmbve)
2020-12-04 01:59:32 +0100dmj`(sid72307@gateway/web/irccloud.com/x-bxoewkcbisfzckva)
2020-12-04 01:59:38 +0100rann(sid175221@gateway/web/irccloud.com/x-alttaaqufafgtfty)
2020-12-04 02:02:43 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Remote host closed the connection)
2020-12-04 02:03:12 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 272 seconds)
2020-12-04 02:04:52 +0100nisstyre(~wes@python-zero/conduct-committee/nisstyre) (Quit: WeeChat 2.9)
2020-12-04 02:06:25 +0100Axman6(~Axman6@pdpc/supporter/student/Axman6) (Ping timeout: 240 seconds)
2020-12-04 02:06:38 +0100nisstyre(~wes@python-zero/conduct-committee/nisstyre)
2020-12-04 02:09:05 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-04 02:11:10 +0100drincruz_(~adriancru@ool-44c748be.dyn.optonline.net)
2020-12-04 02:11:14 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
2020-12-04 02:13:02 +0100m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 260 seconds)
2020-12-04 02:13:18 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2020-12-04 02:13:40 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 256 seconds)
2020-12-04 02:16:43 +0100bcasiello(~brian@071-088-110-201.res.spectrum.com)
2020-12-04 02:16:52 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2020-12-04 02:20:47 +0100Axman6(~Axman6@pdpc/supporter/student/Axman6)
2020-12-04 02:30:06 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 256 seconds)
2020-12-04 02:30:40 +0100drincruz_(~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 256 seconds)
2020-12-04 02:33:16 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-12-04 02:40:53 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
2020-12-04 02:43:54 +0100Lord_of_Life_(~Lord@46.217.221.156)
2020-12-04 02:44:18 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 260 seconds)
2020-12-04 02:45:44 +0100Lord_of_Life_Lord_of_Life
2020-12-04 02:48:13 +0100nineonine(~nineonine@50.216.62.2) (Ping timeout: 260 seconds)
2020-12-04 02:49:15 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2020-12-04 02:50:02 +0100Alleria_(~AllahuAkb@2604:2000:1484:26:5ce:3f03:877d:a85e)
2020-12-04 02:51:53 +0100nineonine(~nineonine@50.216.62.2)
2020-12-04 02:52:46 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-04 02:55:02 +0100darjeeling_(~darjeelin@122.245.218.196) (Ping timeout: 260 seconds)
2020-12-04 02:55:11 +0100wei2912(~wei2912@unaffiliated/wei2912)
2020-12-04 02:58:51 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2020-12-04 02:59:12 +0100 <Feuermagier> is there a function like "init" but for the first element of a list?
2020-12-04 02:59:41 +0100 <Feuermagier> oh, wait
2020-12-04 02:59:43 +0100 <jle`> Feuermagier: what would it return for [1,2,3] ?
2020-12-04 02:59:44 +0100 <Feuermagier> thats just tail
2020-12-04 02:59:50 +0100 <Feuermagier> lol
2020-12-04 03:00:24 +0100 <jle`> iqubic: just import https://hackage.haskell.org/package/generic-lens-2.0.0.0/docs/Data-Generics-Labels.html
2020-12-04 03:06:53 +0100 <iqubic> jle`: And then all the lenses I need will be automatically created when I
2020-12-04 03:07:06 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2020-12-04 03:07:14 +0100 <iqubic> When I use "#foo" as the lens name?
2020-12-04 03:08:41 +0100hackagekempe 0.1.0.1 - Kempe compiler https://hackage.haskell.org/package/kempe-0.1.0.1 (vmchale)
2020-12-04 03:09:25 +0100jmchael(~Chi1thang@87.112.60.168) (Ping timeout: 240 seconds)
2020-12-04 03:09:30 +0100nineonine(~nineonine@50.216.62.2) (Ping timeout: 260 seconds)
2020-12-04 03:09:57 +0100 <siraben> Has anyone got https://github.com/mathandley/AutoBench to build via Nix?
2020-12-04 03:10:51 +0100Amras(~Amras@unaffiliated/amras) (Ping timeout: 272 seconds)
2020-12-04 03:11:00 +0100 <jle`> iqubic: you'd need a Generic instance for your data type
2020-12-04 03:11:15 +0100 <iqubic> Oh. But can't I derive that for free?
2020-12-04 03:11:34 +0100 <jle`> yeah, you can derive it with GHC
2020-12-04 03:11:39 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-12-04 03:11:47 +0100argent0(~argent0@168.227.97.34)
2020-12-04 03:12:28 +0100 <iqubic> Yeah. I was thinking I could derive that for free like I can with Eq and Show and Ord and such.
2020-12-04 03:12:55 +0100conal(~conal@64.71.133.70)
2020-12-04 03:13:52 +0100st8less(~st8less@2603:a060:11fd:0:3c0a:a808:d920:6dc7) (Ping timeout: 260 seconds)
2020-12-04 03:14:08 +0100 <exarkun> I never noticed stack.yaml.lock files before. What do I do with these? Check them into vcs? Ignore them?
2020-12-04 03:14:39 +0100st8less(~st8less@2603:a060:11fd:0:ed90:283:d17e:16d7)
2020-12-04 03:15:40 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:a1c2:b119:a4c8:3942:7eb) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-04 03:17:18 +0100solonarv(~solonarv@anancy-651-1-197-136.w109-217.abo.wanadoo.fr) (Ping timeout: 272 seconds)
2020-12-04 03:17:32 +0100benoitj(~benoitj@bras-base-mtrlpq3708w-grc-25-76-65-84-134.dsl.bell.ca)
2020-12-04 03:17:34 +0100da39a3ee5e6b4b0d(~da39a3ee5@171.5.167.167)
2020-12-04 03:17:41 +0100 <int-e> $SEARCHENGINE suggests https://docs.haskellstack.org/en/stable/lock_files/
2020-12-04 03:18:21 +0100Jonkimi727406120(~Jonkimi@119.123.242.216)
2020-12-04 03:19:42 +0100 <exarkun> How prosaic.
2020-12-04 03:19:45 +0100 <exarkun> Thanks.
2020-12-04 03:20:36 +0100 <int-e> (not sure what the best practice is. my gut feeling would be to ignore them unless build plans are actually fragile)
2020-12-04 03:20:59 +0100andi-(~andi-@NixOS/user/andi-) (Ping timeout: 272 seconds)
2020-12-04 03:21:18 +0100xff0x_(~fox@2001:1a81:53bd:d700:1d8:e345:7859:18b9)
2020-12-04 03:21:44 +0100int-eis not a stack user though
2020-12-04 03:22:03 +0100benjamingr__(uid23465@gateway/web/irccloud.com/x-jvjqyyvaxiprykpx) (Quit: Connection closed for inactivity)
2020-12-04 03:22:35 +0100guest124(~user@49.5.6.87)
2020-12-04 03:22:39 +0100toorevitimirp(~tooreviti@117.182.181.85)
2020-12-04 03:23:38 +0100Entertainment(~entertain@104.246.132.210) (Ping timeout: 272 seconds)
2020-12-04 03:24:25 +0100xff0x(~fox@port-92-193-204-144.dynamic.as20676.net) (Ping timeout: 246 seconds)
2020-12-04 03:25:16 +0100sleblanc(~sleblanc@unaffiliated/sebleblanc)
2020-12-04 03:25:53 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2020-12-04 03:27:19 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-12-04 03:28:20 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-04 03:28:33 +0100nineonine(~nineonine@50.216.62.2)
2020-12-04 03:29:37 +0100Lowl3v3l(~Lowl3v3l@dslb-088-072-167-020.088.072.pools.vodafone-ip.de) (Ping timeout: 264 seconds)
2020-12-04 03:31:30 +0100conal_(~conal@64.71.133.70)
2020-12-04 03:32:02 +0100sparsity(5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145)
2020-12-04 03:33:00 +0100nineonine(~nineonine@50.216.62.2) (Ping timeout: 256 seconds)
2020-12-04 03:33:01 +0100borne(~fritjof@200116b864c92000f60f2508b10af3d6.dip.versatel-1u1.de) (Ping timeout: 272 seconds)
2020-12-04 03:33:24 +0100FreeBirdLjj(~freebirdl@101.228.42.108)
2020-12-04 03:34:10 +0100TooDifficult(~TooDiffic@139.59.59.230)
2020-12-04 03:34:20 +0100TooDifficult(~TooDiffic@139.59.59.230) (Remote host closed the connection)
2020-12-04 03:34:34 +0100TooDifficult(~TooDiffic@139.59.59.230)
2020-12-04 03:36:10 +0100andi-(~andi-@NixOS/user/andi-)
2020-12-04 03:41:52 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-12-04 03:41:59 +0100darjeeling_(~darjeelin@112.16.171.8)
2020-12-04 03:42:39 +0100Tario(~Tario@201.192.165.173)
2020-12-04 03:43:53 +0100Gigabitten(~Somn@098-127-002-172.res.spectrum.com)
2020-12-04 03:44:19 +0100Lowl3v3l(~Lowl3v3l@dslb-002-203-233-025.002.203.pools.vodafone-ip.de)
2020-12-04 03:47:02 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-04 03:47:44 +0100FreeBirdLjj(~freebirdl@101.228.42.108) (Remote host closed the connection)
2020-12-04 03:48:20 +0100FreeBirdLjj(~freebirdl@101.228.42.108)
2020-12-04 03:50:05 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com)
2020-12-04 03:51:37 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2020-12-04 03:52:50 +0100FreeBirdLjj(~freebirdl@101.228.42.108) (Ping timeout: 256 seconds)
2020-12-04 03:58:12 +0100hackagetaffybar 3.2.3 - A desktop bar similar to xmobar, but with more GUI https://hackage.haskell.org/package/taffybar-3.2.3 (eyevanmalicesun)
2020-12-04 04:01:20 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-12-04 04:02:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2020-12-04 04:04:03 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-04 04:05:13 +0100shatriff(~vitaliish@176.52.219.10) (Ping timeout: 260 seconds)
2020-12-04 04:05:45 +0100kupi(uid212005@gateway/web/irccloud.com/x-jthauiwdetxrewvw) (Quit: Connection closed for inactivity)
2020-12-04 04:06:00 +0100conal_(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-12-04 04:07:40 +0100nkatte(~nkatte@2804:14c:7982:10c9:4e1d:96ff:fe53:98e1) (Quit: nkatte)
2020-12-04 04:08:53 +0100conal(~conal@64.71.133.70)
2020-12-04 04:09:59 +0100drbean(~drbean@TC210-63-209-76.static.apol.com.tw)
2020-12-04 04:10:52 +0100sparsity(5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) (Quit: Connection closed)
2020-12-04 04:14:31 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com)
2020-12-04 04:15:06 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Read error: Connection reset by peer)
2020-12-04 04:15:12 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2020-12-04 04:16:07 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-12-04 04:17:44 +0100st8less(~st8less@2603:a060:11fd:0:ed90:283:d17e:16d7) (Ping timeout: 240 seconds)
2020-12-04 04:19:53 +0100st8less(~st8less@inet-167-224-197-181.isp.ozarksgo.net)
2020-12-04 04:20:00 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2020-12-04 04:20:16 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-04 04:21:16 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
2020-12-04 04:26:19 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-04 04:26:43 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-04 04:28:40 +0100keviv_(~keviv@35.142.17.117) (Quit: Leaving)
2020-12-04 04:29:11 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-04 04:29:48 +0100catchme(uid355354@gateway/web/irccloud.com/x-tmcodhvuaxunpqgn) (Quit: Connection closed for inactivity)
2020-12-04 04:30:08 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2020-12-04 04:31:16 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2020-12-04 04:31:23 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-04 04:33:50 +0100lagothrixGuest9998
2020-12-04 04:33:50 +0100Guest9998(~lagothrix@unaffiliated/lagothrix) (Killed (hitchcock.freenode.net (Nickname regained by services)))
2020-12-04 04:33:56 +0100lagothrix(~lagothrix@unaffiliated/lagothrix)
2020-12-04 04:34:01 +0100urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2020-12-04 04:34:12 +0100nolrai(4c1bcada@c-76-27-202-218.hsd1.or.comcast.net)
2020-12-04 04:34:23 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-12-04 04:35:34 +0100 <nolrai> So I want to get the file and line number like what an assert gets you but in my own error handler..is there an easier then throwing an assert then catching it?
2020-12-04 04:35:37 +0100theDon(~td@muedsl-82-207-238-021.citykom.de) (Ping timeout: 264 seconds)
2020-12-04 04:36:32 +0100 <nolrai> I could swear I've read an article on how to do this, but it was a while ago.
2020-12-04 04:37:08 +0100theDon(~td@94.134.91.27)
2020-12-04 04:40:01 +0100 <nolrai> Man its quiet in here, I used to there being some weird conversation here at all times. Or is my memory playing tricks on me?
2020-12-04 04:45:04 +0100haroldwu_(uid13653@gateway/web/irccloud.com/x-byqcdnfpqmwwdvpe)
2020-12-04 04:47:50 +0100 <Vulfe> hey, anyone seen any good deals on left kan extensions recently?
2020-12-04 04:52:54 +0100 <jle`> fresh outta left, only got rights now
2020-12-04 04:53:16 +0100 <Axman6> bloody typical
2020-12-04 04:53:25 +0100 <Axman6> no one needs rights
2020-12-04 04:53:53 +0100 <int-e> with that attitude, you have no leg to stand on
2020-12-04 04:54:13 +0100BlackCapCoder(~blackcap@48.80-203-23.nextgentel.com) (Ping timeout: 264 seconds)
2020-12-04 04:54:22 +0100 <int-e> (anything to get away from c**egory the**y)
2020-12-04 04:54:56 +0100darjeeling_(~darjeelin@112.16.171.8) (Ping timeout: 240 seconds)
2020-12-04 04:55:56 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
2020-12-04 04:56:22 +0100Stanley00(~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
2020-12-04 04:57:55 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2020-12-04 04:59:36 +0100TooDifficult(~TooDiffic@139.59.59.230) (Quit: TooDifficult)
2020-12-04 05:00:01 +0100alexelcu_(~alexelcu@142.93.180.198) (Quit: ZNC 1.8.2 - https://znc.in)
2020-12-04 05:00:04 +0100TooDifficult(~TooDiffic@139.59.59.230)
2020-12-04 05:00:30 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-04 05:00:54 +0100alexelcu(~alexelcu@142.93.180.198)
2020-12-04 05:03:21 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Remote host closed the connection)
2020-12-04 05:05:35 +0100alp(~alp@2a01:e0a:58b:4920:a8f4:c286:6432:c306)
2020-12-04 05:08:39 +0100urek__(~urek@2804:7f1:e10a:9644:2492:fd7b:c739:6641) (Ping timeout: 272 seconds)
2020-12-04 05:08:50 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-12-04 05:08:50 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-04 05:10:28 +0100shatriff(~vitaliish@176.52.219.10)
2020-12-04 05:13:18 +0100contiver(~contiver@84-115-64-26.wifi.dynamic.surfer.at)
2020-12-04 05:13:28 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223)
2020-12-04 05:14:17 +0100contiver(~contiver@84-115-64-26.wifi.dynamic.surfer.at) (Remote host closed the connection)
2020-12-04 05:14:34 +0100Jonkimi727406120(~Jonkimi@119.123.242.216) (Ping timeout: 260 seconds)
2020-12-04 05:15:02 +0100contiver(~contiver@84-115-64-26.wifi.dynamic.surfer.at)
2020-12-04 05:15:14 +0100TooDifficult(~TooDiffic@139.59.59.230) (Quit: TooDifficult)
2020-12-04 05:15:42 +0100TooDifficult(~TooDiffic@139.59.59.230)
2020-12-04 05:15:46 +0100TooDifficult(~TooDiffic@139.59.59.230) (Remote host closed the connection)
2020-12-04 05:16:13 +0100TooDifficult(~TooDiffic@139.59.59.230)
2020-12-04 05:16:15 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-04 05:16:39 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-04 05:17:51 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223) (Ping timeout: 244 seconds)
2020-12-04 05:19:14 +0100contiver(~contiver@84-115-64-26.wifi.dynamic.surfer.at) (Remote host closed the connection)
2020-12-04 05:19:57 +0100contiver(~contiver@84-115-64-26.wifi.dynamic.surfer.at)
2020-12-04 05:21:14 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2020-12-04 05:21:22 +0100TooDifficult(~TooDiffic@139.59.59.230) (Quit: TooDifficult)
2020-12-04 05:22:19 +0100TooDifficult(~TooDiffic@139.59.59.230)
2020-12-04 05:22:50 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-04 05:23:05 +0100Stanley00(~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
2020-12-04 05:23:05 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-04 05:23:25 +0100darjeeling_(~darjeelin@112.16.171.8)
2020-12-04 05:25:16 +0100contiver(~contiver@84-115-64-26.wifi.dynamic.surfer.at) (Read error: Connection reset by peer)
2020-12-04 05:26:18 +0100Wuzzy(~Wuzzy@p549c9976.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-12-04 05:27:28 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-12-04 05:32:53 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-12-04 05:33:03 +0100mounty(~mounty@210.1.196.133)
2020-12-04 05:34:26 +0100drincruz_(~adriancru@ool-44c748be.dyn.optonline.net)
2020-12-04 05:37:24 +0100TooDifficult(~TooDiffic@139.59.59.230) (Quit: TooDifficult)
2020-12-04 05:38:23 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus) (Quit: ...zzzZZZ)
2020-12-04 05:38:55 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-04 05:40:16 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 240 seconds)
2020-12-04 05:41:15 +0100nineonine(~nineonine@50.216.62.2)
2020-12-04 05:42:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-04 05:43:01 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-04 05:43:26 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-04 05:43:48 +0100christo(~chris@81.96.113.213)
2020-12-04 05:43:48 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-12-04 05:44:12 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-12-04 05:44:15 +0100Jonkimi727406120(~Jonkimi@119.123.242.216)
2020-12-04 05:45:57 +0100abhixec(~abhixec@c-67-169-141-95.hsd1.ca.comcast.net)
2020-12-04 05:47:49 +0100conal(~conal@64.71.133.70)
2020-12-04 05:47:55 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
2020-12-04 05:47:56 +0100christo(~chris@81.96.113.213) (Ping timeout: 240 seconds)
2020-12-04 05:48:37 +0100Jonkimi727406120(~Jonkimi@119.123.242.216) (Ping timeout: 246 seconds)
2020-12-04 05:54:48 +0100sagax(~sagax_nb@213.138.71.146)
2020-12-04 05:55:07 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-04 05:56:42 +0100xcmw(~textual@2607:f388:1080:2::c2)
2020-12-04 05:56:45 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-12-04 05:57:10 +0100BlackCapCoder(~blackcap@48.80-203-23.nextgentel.com)
2020-12-04 05:57:32 +0100crestfallen(~jvw@192-184-135-144.fiber.dynamic.sonic.net)
2020-12-04 05:57:44 +0100conal(~conal@64.71.133.70)
2020-12-04 05:57:52 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-12-04 06:00:09 +0100 <crestfallen> hi how do I write something like this is a parser do block? : guard $ notElem (x:xs) keywords ( I saw this in a question on SO re: parsing variable names, but I'm not sure if it's riddled with errors or deprecated ) thanks
2020-12-04 06:00:41 +0100conal(~conal@64.71.133.70)
2020-12-04 06:00:42 +0100lpy(~nyd@unaffiliated/elysian) (Ping timeout: 272 seconds)
2020-12-04 06:01:01 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-12-04 06:01:13 +0100ericsagn1(~ericsagne@2405:6580:0:5100:5edc:6c03:7218:210e) (Ping timeout: 272 seconds)
2020-12-04 06:01:37 +0100conal(~conal@64.71.133.70)
2020-12-04 06:01:49 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-12-04 06:02:24 +0100texasmynsted(~texasmyns@212.102.45.103) (Remote host closed the connection)
2020-12-04 06:02:49 +0100 <crestfallen> (I've never used the 'guard' keyword? or if it even exists .. and the OP was just guessing at a solution)
2020-12-04 06:03:14 +0100 <crestfallen> correction "or whether the OP was just guessing..."
2020-12-04 06:04:00 +0100shadowdaemon(~user@unaffiliated/shadowdaemon) (Read error: Connection reset by peer)
2020-12-04 06:05:22 +0100shadowdaemon(~user@unaffiliated/shadowdaemon)
2020-12-04 06:08:01 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-04 06:08:21 +0100da39a3ee5e6b4b0d(~da39a3ee5@171.5.167.167) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-04 06:10:46 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223)
2020-12-04 06:12:05 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
2020-12-04 06:12:18 +0100 <crestfallen> i.e. is there a keyword called "keywords". I cannot find that in the docs
2020-12-04 06:12:39 +0100 <arahael> How do I install sqlite-simple using cabal? I'm trying `cabal install sqlite-simple`, but it doesn't work. (apparently it doesn't contain any executables)
2020-12-04 06:13:44 +0100 <arahael> Adding it to the cabal file of the current project and building *that*, however, does bring it in, but I'm a bit confused because the documentation for sqlite-simple says I can install it with that command...
2020-12-04 06:13:49 +0100 <arahael> https://github.com/nurpax/sqlite-simple
2020-12-04 06:14:42 +0100xcmw(~textual@2607:f388:1080:2::c2) (Ping timeout: 260 seconds)
2020-12-04 06:15:28 +0100 <crestfallen> this is what I was trying to do on the 3rd line of the do block: http://ix.io/2Grk
2020-12-04 06:15:38 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223) (Ping timeout: 264 seconds)
2020-12-04 06:16:36 +0100nineonine(~nineonine@50.216.62.2) (Ping timeout: 256 seconds)
2020-12-04 06:16:39 +0100Gigabitten(~Somn@098-127-002-172.res.spectrum.com) (Quit: Leaving)
2020-12-04 06:17:27 +0100davidfg41(~davidfg4@185.204.1.185) (Remote host closed the connection)
2020-12-04 06:17:29 +0100Nahra(~Nahra@unaffiliated/nahra)
2020-12-04 06:17:34 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2020-12-04 06:17:39 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2020-12-04 06:18:44 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-04 06:19:27 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-wyoujgmfddjrgmqq) ()
2020-12-04 06:20:18 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-04 06:20:27 +0100 <MarcelineVQ> keywords is the name of some list defined elsewhere in the code, I assume it's a list of the keywords of the language you're parsing
2020-12-04 06:21:10 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223)
2020-12-04 06:21:24 +0100 <MarcelineVQ> you can tell it's a list because it's the second argument to notElem
2020-12-04 06:21:45 +0100iqubic(~user@c-67-171-38-72.hsd1.wa.comcast.net) (Ping timeout: 240 seconds)
2020-12-04 06:22:45 +0100honigkuchen(~honigkuch@ip5b42981b.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2020-12-04 06:23:16 +0100drincruz_(~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 240 seconds)
2020-12-04 06:23:26 +0100texasmynsted(~texasmyns@212.102.45.103)
2020-12-04 06:23:53 +0100Jonkimi727406120(~Jonkimi@119.123.242.216)
2020-12-04 06:23:58 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-04 06:24:08 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-04 06:24:42 +0100Feuermagier(~Feuermagi@213.178.26.41) (Ping timeout: 256 seconds)
2020-12-04 06:24:56 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2020-12-04 06:25:24 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223) (Ping timeout: 240 seconds)
2020-12-04 06:26:23 +0100 <crestfallen> MarcelineVQ: excellent *thanks* I see. I'll give it a shot.
2020-12-04 06:26:23 +0100sdx231(~sdx23@84.39.117.57)
2020-12-04 06:27:56 +0100ddellacosta(dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 272 seconds)
2020-12-04 06:28:25 +0100Jonkimi727406120(~Jonkimi@119.123.242.216) (Ping timeout: 264 seconds)
2020-12-04 06:29:04 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-12-04 06:31:20 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223)
2020-12-04 06:31:28 +0100texasmynsted(~texasmyns@212.102.45.103) (Remote host closed the connection)
2020-12-04 06:33:00 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com)
2020-12-04 06:36:02 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223) (Ping timeout: 264 seconds)
2020-12-04 06:39:44 +0100sleblanc(~sleblanc@unaffiliated/sebleblanc) (Ping timeout: 265 seconds)
2020-12-04 06:40:22 +0100boxscape(54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8)
2020-12-04 06:43:31 +0100benjamin-l(~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e61) (Remote host closed the connection)
2020-12-04 06:45:17 +0100benjamin-l(~benjamin@c-67-189-59-76.hsd1.or.comcast.net)
2020-12-04 06:48:23 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 260 seconds)
2020-12-04 06:50:15 +0100Feuermagier(~Feuermagi@213.178.26.41)
2020-12-04 06:50:29 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-12-04 06:51:29 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223)
2020-12-04 06:53:49 +0100iqubic(~user@2601:602:9500:4870:4afa:d1c4:5c89:10e9)
2020-12-04 06:54:34 +0100haroldwu_(uid13653@gateway/web/irccloud.com/x-byqcdnfpqmwwdvpe) (Quit: Connection closed for inactivity)
2020-12-04 06:55:12 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-04 06:55:12 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-12-04 06:55:22 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-12-04 06:55:44 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223) (Ping timeout: 240 seconds)
2020-12-04 06:58:24 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-04 07:01:48 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223)
2020-12-04 07:03:24 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds)
2020-12-04 07:04:27 +0100sdx231(~sdx23@84.39.117.57) (Remote host closed the connection)
2020-12-04 07:06:22 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223) (Ping timeout: 260 seconds)
2020-12-04 07:08:53 +0100Jonkimi727406120(~Jonkimi@119.123.242.216)
2020-12-04 07:12:00 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223)
2020-12-04 07:15:22 +0100falafel_(~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net)
2020-12-04 07:15:51 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2020-12-04 07:16:50 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:cc36:a878:d9e6:6223) (Ping timeout: 264 seconds)
2020-12-04 07:20:34 +0100darjeeling_(~darjeelin@112.16.171.8) (Ping timeout: 256 seconds)
2020-12-04 07:22:41 +0100chrisdotcode(~chrisdotc@unaffiliated/chrisdotcode)
2020-12-04 07:24:59 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-04 07:26:05 +0100xff0x_(~fox@2001:1a81:53bd:d700:1d8:e345:7859:18b9) (Ping timeout: 272 seconds)
2020-12-04 07:26:16 +0100coot(~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl)
2020-12-04 07:26:29 +0100xff0x_(~fox@2001:1a81:53bd:d700:de9e:116:c7cb:bd55)
2020-12-04 07:27:58 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk)
2020-12-04 07:28:39 +0100chrisdotcode(~chrisdotc@unaffiliated/chrisdotcode) (Quit: Leaving)
2020-12-04 07:29:16 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-12-04 07:30:00 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-12-04 07:31:13 +0100popey1(~popey@185.163.110.125)
2020-12-04 07:31:21 +0100 <boxscape> Hm, am I seeing it correctly that "digit" exists in Parsec but not Megaparsec?
2020-12-04 07:31:37 +0100crestfallen(~jvw@192-184-135-144.fiber.dynamic.sonic.net) (Quit: leaving)
2020-12-04 07:31:49 +0100 <boxscape> ah, nevermind
2020-12-04 07:31:51 +0100 <boxscape> digitChar exists
2020-12-04 07:34:43 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds)
2020-12-04 07:35:38 +0100johnw(~johnw@haskell/developer/johnw) (Quit: ZNC - http://znc.in)
2020-12-04 07:35:44 +0100polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 240 seconds)
2020-12-04 07:36:44 +0100flyingpotatoman(~seiless@103.205.80.22)
2020-12-04 07:36:58 +0100flyingpotatoman(~seiless@103.205.80.22) (Client Quit)
2020-12-04 07:39:13 +0100monochrom(trebla@216.138.220.146) (Quit: NO CARRIER)
2020-12-04 07:40:45 +0100gioyik(~gioyik@186.112.99.244) (Quit: WeeChat 3.0)
2020-12-04 07:42:41 +0100boxscape(54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) (Quit: Connection closed)
2020-12-04 07:42:45 +0100danso(~dan@69-165-210-185.cable.teksavvy.com) (Quit: WeeChat 2.9)
2020-12-04 07:42:53 +0100boxscape(54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8)
2020-12-04 07:42:59 +0100monochrom(trebla@216.138.220.146)
2020-12-04 07:44:51 +0100flyingpo3atoman(~seiless@103.205.80.22)
2020-12-04 07:44:58 +0100ph88(~ph88@2a02:8109:9e00:7e5c:b9c9:ead4:edeb:2d57)
2020-12-04 07:45:13 +0100benjamin-l(~benjamin@c-67-189-59-76.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2020-12-04 07:47:00 +0100flyingpo3atoman(~seiless@103.205.80.22) ()
2020-12-04 07:50:26 +0100da39a3ee5e6b4b0d(~da39a3ee5@171.5.167.167)
2020-12-04 07:51:25 +0100alp(~alp@2a01:e0a:58b:4920:a8f4:c286:6432:c306) (Ping timeout: 272 seconds)
2020-12-04 07:56:36 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2020-12-04 07:58:59 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-04 08:00:10 +0100coot(~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-12-04 08:01:55 +0100argent0(~argent0@168.227.97.34) (Quit: leaving)
2020-12-04 08:03:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-04 08:03:51 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2020-12-04 08:05:07 +0100bitmagie(~Thunderbi@200116b80685200000259323389592bf.dip.versatel-1u1.de)
2020-12-04 08:05:08 +0100dax(dax@bitbot/dax)
2020-12-04 08:08:34 +0100polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889)
2020-12-04 08:08:44 +0100falafel_(~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net) (Ping timeout: 256 seconds)
2020-12-04 08:08:56 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-04 08:09:16 +0100Rudd0(~Rudd0@185.189.115.98) (Ping timeout: 240 seconds)
2020-12-04 08:09:35 +0100christo(~chris@81.96.113.213)
2020-12-04 08:10:52 +0100jonatanb_(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-04 08:11:03 +0100xff0x_(~fox@2001:1a81:53bd:d700:de9e:116:c7cb:bd55) (Ping timeout: 272 seconds)
2020-12-04 08:11:43 +0100xff0x_(~fox@2001:1a81:53bd:d700:ad0c:4930:14ea:7f52)
2020-12-04 08:12:52 +0100alp(~alp@2a01:e0a:58b:4920:a4e7:54a4:ebae:9da0)
2020-12-04 08:13:16 +0100 <boxscape> is there a way to make a megaparsec parser for a sum type like `data A = A | B | C` automatically? I.e. basically what deriving Read does?
2020-12-04 08:13:30 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 256 seconds)
2020-12-04 08:14:21 +0100ericsagnes(~ericsagne@2405:6580:0:5100:43fe:8354:1780:830b)
2020-12-04 08:15:12 +0100jonatanb_(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 256 seconds)
2020-12-04 08:15:25 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2020-12-04 08:16:13 +0100 <pavonia> With Template Haskell it should be quite straight-forward
2020-12-04 08:16:27 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-04 08:16:29 +0100 <boxscape> hm, yeah I suppose you're right
2020-12-04 08:19:09 +0100 <pavonia> Maybe even the Data.Data functions are enough for this
2020-12-04 08:19:24 +0100Vulfe(~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net)
2020-12-04 08:20:09 +0100 <boxscape> I'll take a look, thanks
2020-12-04 08:20:56 +0100Vulfe(~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Read error: Connection reset by peer)
2020-12-04 08:20:57 +0100 <dminuoso> boxscape: Or.. just Generic?
2020-12-04 08:21:08 +0100 <boxscape> Oh, yeah, I suppose that exists, too
2020-12-04 08:21:13 +0100 <dminuoso> Seems really like a straight forward few lines of code
2020-12-04 08:21:32 +0100 <boxscape> haven't used Generics much but yeah it seems like it shouldn't be hard
2020-12-04 08:21:34 +0100 <dminuoso> Out of all the options Generics has probably least effort, and will optimize nicely
2020-12-04 08:21:39 +0100christo(~chris@81.96.113.213)
2020-12-04 08:21:40 +0100 <boxscape> okay, thanks
2020-12-04 08:22:11 +0100 <dminuoso> In my case I tend to write a `thruRead` combinator though
2020-12-04 08:22:13 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:b1f1:a8b7:f9f9:80e3)
2020-12-04 08:22:28 +0100 <dminuoso> Which is a few lines of code that I then copy and paste whenever I want to go through Read.
2020-12-04 08:22:42 +0100 <boxscape> I see
2020-12-04 08:22:46 +0100 <boxscape> that sounds reasonable
2020-12-04 08:23:05 +0100 <dminuoso> Both are an option, with Generics you can address non-trivial variants of it
2020-12-04 08:23:08 +0100dhouthoo(~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be)
2020-12-04 08:23:15 +0100 <boxscape> right, makes sense
2020-12-04 08:23:45 +0100vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2020-12-04 08:24:48 +0100 <dminuoso> boxscape: Is this strictly a nullary data type?
2020-12-04 08:24:54 +0100 <boxscape> yess
2020-12-04 08:24:55 +0100 <dminuoso> Or do you have non-nullary constructors?
2020-12-04 08:24:57 +0100 <boxscape> nope
2020-12-04 08:24:57 +0100 <dminuoso> Mkay
2020-12-04 08:25:12 +0100hackagehttp-conduit 2.3.7.4 - HTTP client package with conduit interface and HTTPS support. https://hackage.haskell.org/package/http-conduit-2.3.7.4 (MichaelSnoyman)
2020-12-04 08:25:36 +0100ph88(~ph88@2a02:8109:9e00:7e5c:b9c9:ead4:edeb:2d57) (Quit: Leaving)
2020-12-04 08:25:55 +0100christo(~chris@81.96.113.213) (Ping timeout: 260 seconds)
2020-12-04 08:26:07 +0100 <dminuoso> boxscape: Also consider generics-sop if you want to explore the generics route
2020-12-04 08:26:17 +0100 <boxscape> ok, I will
2020-12-04 08:27:02 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:b1f1:a8b7:f9f9:80e3) (Ping timeout: 264 seconds)
2020-12-04 08:27:31 +0100falafel_(~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net)
2020-12-04 08:30:31 +0100nolrai(4c1bcada@c-76-27-202-218.hsd1.or.comcast.net) (Remote host closed the connection)
2020-12-04 08:32:12 +0100benjamin-l(~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e61)
2020-12-04 08:36:20 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-04 08:38:24 +0100benjamin-l(~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e61) (Ping timeout: 240 seconds)
2020-12-04 08:40:45 +0100falafel_(~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net) (Ping timeout: 240 seconds)
2020-12-04 08:46:45 +0100lpy(~nyd@unaffiliated/elysian)
2020-12-04 08:50:37 +0100jchia(~jchia@58.32.35.67) (Ping timeout: 246 seconds)
2020-12-04 08:50:44 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-12-04 08:51:15 +0100Stanley00(~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
2020-12-04 08:51:16 +0100drbean(~drbean@TC210-63-209-76.static.apol.com.tw) (Ping timeout: 240 seconds)
2020-12-04 08:51:39 +0100drbean(~drbean@TC210-63-209-15.static.apol.com.tw)
2020-12-04 08:51:54 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2020-12-04 08:52:05 +0100marinelli(~marinelli@gateway/tor-sasl/marinelli)
2020-12-04 08:54:43 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Quit: nineonine)
2020-12-04 08:56:21 +0100 <carbolymer> I'm writing parsec combinator for today's aoc, and how can I parse fields without enforcing order in my parser?
2020-12-04 08:59:10 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-04 08:59:25 +0100 <hc> carbolymer: use a many . any [ ... ] combinator?
2020-12-04 09:00:11 +0100hackagereplace-megaparsec 1.4.4.0 - Find, replace, and split string patterns with Megaparsec parsers (instead of regex) https://hackage.haskell.org/package/replace-megaparsec-1.4.4.0 (JamesBrock)
2020-12-04 09:01:16 +0100Varis(~Tadas@unaffiliated/varis)
2020-12-04 09:01:22 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2020-12-04 09:01:58 +0100johnw(~johnw@haskell/developer/johnw)
2020-12-04 09:02:18 +0100 <carbolymer> hc, which any?
2020-12-04 09:02:33 +0100knupfer(~Thunderbi@200116b82c9bc00018616dfffee3b6e0.dip.versatel-1u1.de)
2020-12-04 09:02:34 +0100knupfer(~Thunderbi@200116b82c9bc00018616dfffee3b6e0.dip.versatel-1u1.de) (Client Quit)
2020-12-04 09:02:49 +0100knupfer(~Thunderbi@87.123.206.78)
2020-12-04 09:03:06 +0100knupfer(~Thunderbi@87.123.206.78) (Client Quit)
2020-12-04 09:03:17 +0100xff0x_(~fox@2001:1a81:53bd:d700:ad0c:4930:14ea:7f52) (Ping timeout: 260 seconds)
2020-12-04 09:03:32 +0100knupfer(~Thunderbi@200116b82c9bc00029d7617336584c50.dip.versatel-1u1.de)
2020-12-04 09:03:36 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2020-12-04 09:03:41 +0100xff0x_(~fox@2001:1a81:53bd:d700:accf:77cf:75b2:3ca3)
2020-12-04 09:04:19 +0100jchia(~jchia@58.32.35.91)
2020-12-04 09:06:25 +0100Lord_of_Life(~Lord@46.217.221.156) (Changing host)
2020-12-04 09:06:25 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362)
2020-12-04 09:07:00 +0100 <dminuoso> carbolymer: https://hackage.haskell.org/package/parser-combinators-1.2.1/docs/Control-Applicative-Permutations…
2020-12-04 09:07:10 +0100 <dminuoso> https://hackage.haskell.org/package/parsers-0.12.10/docs/Text-Parser-Permutation.html
2020-12-04 09:07:25 +0100 <dminuoso> Either will work. Chances are you will have one of them in your dependencies when writing non-trivial parsers anyway
2020-12-04 09:07:26 +0100coot(~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl)
2020-12-04 09:08:10 +0100knupfer(~Thunderbi@200116b82c9bc00029d7617336584c50.dip.versatel-1u1.de) (Client Quit)
2020-12-04 09:08:18 +0100knupfer(~Thunderbi@200116b82c9bc00029d7617336584c50.dip.versatel-1u1.de)
2020-12-04 09:08:18 +0100 <carbolymer> dminuoso, thx
2020-12-04 09:08:41 +0100 <idnar> @hoogle (a -> b) -> (a -> c) -> (a -> d) -> a -> (b, c, d)
2020-12-04 09:08:42 +0100 <lambdabot> No results found
2020-12-04 09:08:58 +0100marinelli(~marinelli@gateway/tor-sasl/marinelli) (Quit: marinelli)
2020-12-04 09:10:16 +0100boxscape(54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) (Ping timeout: 240 seconds)
2020-12-04 09:10:42 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-12-04 09:12:09 +0100 <dminuoso> idnar: (&&&) or Strong profunctors give yo uthat
2020-12-04 09:12:45 +0100LKoen(~LKoen@105.175.9.109.rev.sfr.net)
2020-12-04 09:13:11 +0100 <idnar> (&&&) only does (,), but tell me more about the profunctors
2020-12-04 09:13:58 +0100 <dminuoso> idnar: well, ((a,b),c) ~~~ (a,(b,c))
2020-12-04 09:14:11 +0100 <dminuoso> so if you (&&&) twice that's just it
2020-12-04 09:14:26 +0100 <idnar> I guess
2020-12-04 09:14:27 +0100 <int-e> :t liftA3 (,,)
2020-12-04 09:14:29 +0100 <lambdabot> Applicative f => f a -> f b -> f c -> f (a, b, c)
2020-12-04 09:14:57 +0100 <int-e> liftA3 (,,) succ show (:[]) 1
2020-12-04 09:15:00 +0100 <int-e> > liftA3 (,,) succ show (:[]) 1
2020-12-04 09:15:04 +0100 <lambdabot> (2,"1",[1])
2020-12-04 09:15:09 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-04 09:15:20 +0100 <dminuoso> cunning
2020-12-04 09:15:30 +0100 <int-e> literate
2020-12-04 09:15:53 +0100 <int-e> (accomplished Reader)
2020-12-04 09:15:55 +0100 <idnar> hmm, I tried (,,) <$> f <*> g <*> h
2020-12-04 09:16:05 +0100m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2020-12-04 09:16:27 +0100 <dminuoso> % ((,,) <$> map toUpper <*> map toLower <*> tail) "fooBar"
2020-12-04 09:16:27 +0100 <yahb> dminuoso: ("FOOBAR","foobar","ooBar")
2020-12-04 09:16:29 +0100 <int-e> idnar: that's the same as liftA3 (,,) f g h
2020-12-04 09:16:37 +0100 <idnar> oh damnit
2020-12-04 09:16:55 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-pvpfqehhiksirdcj)
2020-12-04 09:17:03 +0100 <idnar> (-1) is not a section :D
2020-12-04 09:17:12 +0100 <int-e> > (-1+) 2
2020-12-04 09:17:14 +0100 <lambdabot> 1
2020-12-04 09:17:16 +0100 <int-e> > subtract 1 2
2020-12-04 09:17:16 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2020-12-04 09:17:19 +0100 <lambdabot> 1
2020-12-04 09:17:37 +0100 <dminuoso> Negating numbers is just odd in Haskell. :(
2020-12-04 09:17:39 +0100 <int-e> the former is nasty.
2020-12-04 09:17:54 +0100 <dminuoso> % :t (+1-)
2020-12-04 09:17:54 +0100 <yahb> dminuoso: ; <interactive>:1:5: error: parse error on input `)'
2020-12-04 09:17:58 +0100 <dminuoso> % :t (-1+)
2020-12-04 09:17:58 +0100 <yahb> dminuoso: Num a => a -> a
2020-12-04 09:18:04 +0100 <dminuoso> What lovely symmetry.
2020-12-04 09:18:16 +0100 <int-e> :t (+ -1) -- wait till you see this
2020-12-04 09:18:17 +0100 <lambdabot> error:
2020-12-04 09:18:17 +0100 <lambdabot> The operator ‘+’ [infixl 6] of a section
2020-12-04 09:18:17 +0100 <lambdabot> must have lower precedence than that of the operand,
2020-12-04 09:18:50 +0100 <dminuoso> Mmm, and what's the precedence of the operand?
2020-12-04 09:18:56 +0100 <dminuoso> :t ($ -1)
2020-12-04 09:18:58 +0100 <lambdabot> Num a => (a -> b) -> b
2020-12-04 09:18:58 +0100 <dminuoso> % :t ($ -1)
2020-12-04 09:18:58 +0100 <yahb> dminuoso: Num a => (a -> b) -> b
2020-12-04 09:19:05 +0100 <dminuoso> So between 1 and 6 I guess
2020-12-04 09:20:17 +0100benjamin-l(~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e61)
2020-12-04 09:20:27 +0100hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus) (Quit: hekkaidekapus_)
2020-12-04 09:20:28 +0100 <dsal> > Just (odd (-1))
2020-12-04 09:20:30 +0100 <lambdabot> Just True
2020-12-04 09:20:56 +0100 <dsal> > let numbers = [1..10] in negate <$> numbers
2020-12-04 09:20:58 +0100 <lambdabot> [-1,-2,-3,-4,-5,-6,-7,-8,-9,-10]
2020-12-04 09:21:31 +0100 <dsal> I think there's a language extension that lets naked negative numbers work.
2020-12-04 09:21:40 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-04 09:23:42 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-12-04 09:23:49 +0100da39a3ee5e6b4b0d(~da39a3ee5@171.5.167.167) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-04 09:24:32 +0100boxscape(54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8)
2020-12-04 09:24:42 +0100drbean(~drbean@TC210-63-209-15.static.apol.com.tw) (Ping timeout: 260 seconds)
2020-12-04 09:24:48 +0100jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2020-12-04 09:29:27 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
2020-12-04 09:30:43 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de)
2020-12-04 09:32:36 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-12-04 09:32:54 +0100 <hekkaidekapus> % :set -XNegativeLiterals
2020-12-04 09:32:54 +0100 <yahb> hekkaidekapus:
2020-12-04 09:33:13 +0100 <hekkaidekapus> % map (0 -) [-10 .. -1]
2020-12-04 09:33:13 +0100 <yahb> hekkaidekapus: [10,9,8,7,6,5,4,3,2,1]
2020-12-04 09:33:19 +0100 <boxscape> % 3 * -10
2020-12-04 09:33:19 +0100 <yahb> boxscape: -30
2020-12-04 09:33:21 +0100 <hekkaidekapus> % :q
2020-12-04 09:33:22 +0100 <yahb> hekkaidekapus:
2020-12-04 09:34:44 +0100 <boxscape> kind of unfortunate that (- 10) is still not a section with -XNegativeLiterals
2020-12-04 09:35:08 +0100 <hekkaidekapus> It will be, soon.
2020-12-04 09:35:16 +0100 <boxscape> oh, nice
2020-12-04 09:35:50 +0100 <hekkaidekapus> I don’t remember the exact proposal but it is already accepted, IIRC.
2020-12-04 09:35:57 +0100 <boxscape> goodd
2020-12-04 09:36:01 +0100 <boxscape> s/dd/d
2020-12-04 09:36:42 +0100christo(~chris@81.96.113.213)
2020-12-04 09:36:45 +0100 <hekkaidekapus> And Vladimir, its author, tend to swiftly implement parser-related proposals.
2020-12-04 09:36:47 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2020-12-04 09:36:54 +0100 <hekkaidekapus> *tends
2020-12-04 09:36:56 +0100 <boxscape> I suppose https://github.com/ghc-proposals/ghc-proposals/pull/344
2020-12-04 09:37:16 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-04 09:37:26 +0100 <boxscape> yeah it already has a closed merge request
2020-12-04 09:37:40 +0100 <boxscape> but not a merged merge request I think
2020-12-04 09:37:40 +0100 <hekkaidekapus> o/
2020-12-04 09:38:00 +0100 <boxscape> never mind
2020-12-04 09:38:08 +0100 <boxscape> gitlab merge requests are just confusing is all
2020-12-04 09:38:26 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) (Quit: WeeChat 3.0)
2020-12-04 09:39:07 +0100raichoo(~raichoo@213.240.178.58)
2020-12-04 09:41:17 +0100urek__(~urek@2804:7f1:e10a:9644:2492:fd7b:c739:6641)
2020-12-04 09:42:30 +0100christo(~chris@81.96.113.213)
2020-12-04 09:44:42 +0100 <hekkaidekapus> boxscape: <https://paste.tomsmeding.com/tW4JoIo9>
2020-12-04 09:44:56 +0100 <boxscape> very cool
2020-12-04 09:45:26 +0100Yumasi(~guillaume@2a01:e0a:5cb:4430:e1ea:8f38:f518:4e69)
2020-12-04 09:47:01 +0100christo(~chris@81.96.113.213) (Ping timeout: 264 seconds)
2020-12-04 09:48:40 +0100wonko7(~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52) (Quit: See You Space Cowboy..)
2020-12-04 09:49:00 +0100urek__urek
2020-12-04 09:49:04 +0100vilpan(~0@212.117.1.172)
2020-12-04 09:51:42 +0100da39a3ee5e6b4b0d(~da39a3ee5@mx-ll-171.5.167-167.dynamic.3bb.co.th)
2020-12-04 09:53:56 +0100Seiless(~jeremy@45.248.143.26)
2020-12-04 09:55:16 +0100BlackCapCoder(~blackcap@48.80-203-23.nextgentel.com) (Ping timeout: 240 seconds)
2020-12-04 09:57:12 +0100da39a3ee5e6b4b0d(~da39a3ee5@mx-ll-171.5.167-167.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-04 09:59:45 +0100 <merijn> meh, just use subtract instead of relying on an extension >.>
2020-12-04 10:00:49 +0100 <boxscape> no >:(
2020-12-04 10:01:05 +0100 <merijn> This whole "lets pile on 30 syntactical extensions to fix minor warts" thing is a terrible idea
2020-12-04 10:01:10 +0100da39a3ee5e6b4b0d(~da39a3ee5@mx-ll-171.5.167-167.dynamic.3bb.co.th)
2020-12-04 10:01:31 +0100 <dminuoso> If you think of a syntactical extension as just a candidate for a future Haskell report, I dont think extensions are that bad.
2020-12-04 10:01:42 +0100 <merijn> We end up with 2^n distinct lexical grammar that need to be supported in all tools
2020-12-04 10:01:51 +0100Seiless(~jeremy@45.248.143.26) (Read error: Connection reset by peer)
2020-12-04 10:01:55 +0100 <merijn> dminuoso: ha
2020-12-04 10:01:59 +0100 <dminuoso> merijn: That's why you use ghc-lib-parser.
2020-12-04 10:02:01 +0100 <dminuoso> ;)
2020-12-04 10:02:04 +0100 <merijn> Like a future Haskell Report will ever happen
2020-12-04 10:02:12 +0100 <dminuoso> It might, nothings off the board
2020-12-04 10:02:27 +0100 <merijn> Sure!
2020-12-04 10:02:43 +0100 <merijn> And I might someday become a millionaire!
2020-12-04 10:02:50 +0100 <merijn> But I wouldn't count on it...
2020-12-04 10:03:08 +0100 <dminuoso> My point is just, I dont think extensions are necessarily bad.
2020-12-04 10:03:10 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk) (Remote host closed the connection)
2020-12-04 10:03:14 +0100 <boxscape> we'll get -XGHC20XX flags at least
2020-12-04 10:03:22 +0100 <merijn> I don't think extensions are necessarily bad either
2020-12-04 10:03:29 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk)
2020-12-04 10:03:30 +0100 <merijn> I think *trivial syntactic extensions* are bad
2020-12-04 10:03:56 +0100 <dminuoso> I think trivial syntactic extensions are much better than wide ranging syntactic extensions.
2020-12-04 10:04:03 +0100 <merijn> ok
2020-12-04 10:04:07 +0100 <merijn> lemme rephrase
2020-12-04 10:04:17 +0100 <merijn> *all* syntactic extensions are trivial *and* bad
2020-12-04 10:04:34 +0100 <carbolymer> is there any function in parsec (or related libraries) to parse input with parser of a to get [Either Parser a]?
2020-12-04 10:04:45 +0100 <merijn> And the handful that aren't trivial (I'm looking at you, ArrowNotation) are double bad
2020-12-04 10:04:46 +0100 <carbolymer> [Either ParserError a]
2020-12-04 10:05:35 +0100 <dminuoso> carbolymer: What should that list represent?
2020-12-04 10:06:26 +0100 <carbolymer> dminuoso, a result of multiple parsings; I want to extract from input multiple 'a's separated by separator; but I want to retain all parserrors
2020-12-04 10:06:36 +0100obfusk(~quassel@a82-161-150-56.adsl.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-04 10:06:56 +0100bitmagie(~Thunderbi@200116b80685200000259323389592bf.dip.versatel-1u1.de) (Quit: bitmagie)
2020-12-04 10:07:11 +0100benjamin-l(~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e61) (Ping timeout: 244 seconds)
2020-12-04 10:07:12 +0100 <[exa]> carbolymer: you will have to reliably extract the parts as strings and run the parser normally on the contents (e.g. runParser).
2020-12-04 10:07:42 +0100 <[exa]> carbolymer: the "direct" method involves the (problematic) error recovery
2020-12-04 10:07:52 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Remote host closed the connection)
2020-12-04 10:07:57 +0100obfusk(~quassel@a82-161-150-56.adsl.xs4all.nl)
2020-12-04 10:08:03 +0100 <carbolymer> [exa], yeah, I wanted to avoid splitting strings and use big parser for the list of 'a's
2020-12-04 10:08:59 +0100 <[exa]> I'm gonna double check megaparsec docs, I remember there was some error recovery but not sure where (or if in megaparsec)
2020-12-04 10:09:01 +0100 <boxscape> huh, is the LANGUAGE pragma redundant and replaceable by OPTIONS_GHC?
2020-12-04 10:09:10 +0100da39a3ee5e6b4b0d(~da39a3ee5@mx-ll-171.5.167-167.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-04 10:09:34 +0100 <merijn> boxscape: If you pretend there is only GHC, sure
2020-12-04 10:09:40 +0100 <boxscape> ah, fair
2020-12-04 10:10:02 +0100 <merijn> Especially considering UHC implements a number of GHC extensions too
2020-12-04 10:10:32 +0100 <eedgit> I'm having trouble getting Haskell-chart to work, I'm getting a PATH error - but I've ensured my path is on both basic and zshrc -> https://dpaste.org/0JCw
2020-12-04 10:11:32 +0100Amras(~Amras@unaffiliated/amras)
2020-12-04 10:12:35 +0100 <[exa]> eedgit: and there's even more than one! :] Are you sure stack isn't changing the $PATH ?
2020-12-04 10:13:26 +0100 <[exa]> anyway, it looks just like a warning so it could work
2020-12-04 10:15:09 +0100 <[exa]> carbolymer: actually they have this https://hackage.haskell.org/package/megaparsec-9.0.1/docs/Text-Megaparsec.html#v:withRecovery
2020-12-04 10:16:13 +0100 <[exa]> carbolymer: for you it should work with something simple like `manytill ','`
2020-12-04 10:17:09 +0100 <carbolymer> [exa], hmm, thanks, will look into that!
2020-12-04 10:18:21 +0100xff0x_(~fox@2001:1a81:53bd:d700:accf:77cf:75b2:3ca3) (Ping timeout: 272 seconds)
2020-12-04 10:18:56 +0100xff0x_(~fox@2001:1a81:53bd:d700:a57d:2d36:c4ed:73cf)
2020-12-04 10:18:56 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk) (Quit: Leaving)
2020-12-04 10:20:17 +0100joaoh82_(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection)
2020-12-04 10:24:41 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
2020-12-04 10:25:55 +0100fendor(~fendor@91.141.2.63.wireless.dyn.drei.com)
2020-12-04 10:25:58 +0100chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de)
2020-12-04 10:27:04 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-04 10:28:38 +0100 <dminuoso> Note that withRecovery requires care wrt to backtracking
2020-12-04 10:30:20 +0100 <dminuoso> carbolymer: Can you perhaps elaborate on your larger goal?
2020-12-04 10:31:46 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2020-12-04 10:32:13 +0100watt313(~watt313@124.123.105.225)
2020-12-04 10:32:23 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds)
2020-12-04 10:33:09 +0100 <[exa]> I guess that megaparsec in general requires care wrt backtracking.. :]
2020-12-04 10:33:26 +0100 <[exa]> but yeah this can be ugly, esp. the error message masking
2020-12-04 10:34:11 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-braorqjpjuqmensd) (Quit: Connection closed for inactivity)
2020-12-04 10:34:16 +0100plutoniix(~q@ppp-27-55-72-38.revip3.asianet.co.th)
2020-12-04 10:35:16 +0100 <dminuoso> It's moments like this where maybe parser combinators are just too powerful for your own good.
2020-12-04 10:35:22 +0100 <dminuoso> :p
2020-12-04 10:36:34 +0100watt313(~watt313@124.123.105.225) (Ping timeout: 265 seconds)
2020-12-04 10:38:05 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection)
2020-12-04 10:38:27 +0100howdoi(uid224@gateway/web/irccloud.com/x-oyiccouvdvnehmhe) (Quit: Connection closed for inactivity)
2020-12-04 10:39:23 +0100 <eedgit> [exa] Not sure about stack changing the path, is there anyway to check? Doesn't want to build without fixing it, it seems `gtk2hs-buildtools needed, but the stack configuration has no specified version (latest matching version is 0.13.8.0)`
2020-12-04 10:40:15 +0100bitmagie(~Thunderbi@200116b80685200000259323389592bf.dip.versatel-1u1.de)
2020-12-04 10:40:48 +0100Sigyn(sigyn@freenode/utility-bot/sigyn) (Remote host closed the connection)
2020-12-04 10:41:22 +0100Sigyn(sigyn@freenode/utility-bot/sigyn)
2020-12-04 10:41:22 +0100ChanServ+o Sigyn
2020-12-04 10:41:31 +0100 <eedgit> Oh, `export PATH=~/.local/bin:$PATH echo $PATH` before running the stack install command worked
2020-12-04 10:45:33 +0100kuribas(~user@ptr-25vy0i8rcepunzqy0n7.18120a2.ip6.access.telenet.be)
2020-12-04 10:51:37 +0100son0p(~son0p@181.58.39.182)
2020-12-04 10:52:01 +0100alp(~alp@2a01:e0a:58b:4920:a4e7:54a4:ebae:9da0) (Remote host closed the connection)
2020-12-04 10:52:22 +0100alp(~alp@2a01:e0a:58b:4920:39c3:c410:f47e:16f5)
2020-12-04 10:54:34 +0100datajerk(~datajerk@sense.net) (Ping timeout: 272 seconds)
2020-12-04 10:54:36 +0100b3z(~b3z@vmd41962.contaboserver.net) (Quit: cya)
2020-12-04 10:54:54 +0100b3z(~b3z@vmd41962.contaboserver.net)
2020-12-04 10:55:45 +0100 <typetetris> How can I get the gc stop the world pause times? Which stat in ekg would that be? Or here https://hackage.haskell.org/package/base-4.14.0.0/docs/GHC-Stats.html ?
2020-12-04 10:56:22 +0100 <typetetris> Is it the elapsed_ns
2020-12-04 10:56:39 +0100enikar(~enikar@2001:41d0:2:8673::42) (Quit: WeeChat 2.8)
2020-12-04 10:57:11 +0100hackagecircular 0.3.0 - Circular fixed-sized mutable vectors https://hackage.haskell.org/package/circular-0.3.0 (dschrempf)
2020-12-04 10:57:12 +0100enikar(~enikar@2001:41d0:2:8673::42)
2020-12-04 10:57:34 +0100Sigyn(sigyn@freenode/utility-bot/sigyn) (Quit: i've seen things you people wouldn't believe. spam bots on fire off the shoulder of sigyn. i watched k-line beams glitter in the dark near the Tannhäuser Gate. all these moments will be lost in time, like tears in rain. time to /die)
2020-12-04 10:57:34 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
2020-12-04 10:57:59 +0100Sigyn(sigyn@freenode/utility-bot/sigyn)
2020-12-04 10:57:59 +0100ChanServ+o Sigyn
2020-12-04 10:58:14 +0100hexfive(~hexfive@50-47-142-195.evrt.wa.frontiernet.net) (Quit: i must go. my people need me.)
2020-12-04 11:00:08 +0100 <eedgit> Still no joy though, should I have both a `stack.yaml` and a `package.yaml` ? https://gist.github.com/glasgowm148/0b5d7834c322100692317d6b6be0c898
2020-12-04 11:00:17 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-04 11:00:24 +0100Rudd0(~Rudd0@185.189.115.103)
2020-12-04 11:00:30 +0100datajerk(~datajerk@sense.net)
2020-12-04 11:00:38 +0100Axma88579(~Axman6@pdpc/supporter/student/Axman6)
2020-12-04 11:02:25 +0100Axman6(~Axman6@pdpc/supporter/student/Axman6) (Ping timeout: 240 seconds)
2020-12-04 11:02:45 +0100vilpan(~0@212.117.1.172) (Ping timeout: 240 seconds)
2020-12-04 11:02:57 +0100 <merijn> eedgit: Define "should" :)
2020-12-04 11:03:44 +0100 <merijn> stack.yaml specifies your stack configuration. package.yaml is an hpack thing (stack just happens to automatically call hpack), and I would generally define hpack as *bad* :p
2020-12-04 11:03:51 +0100thc202(~thc202@unaffiliated/thc202)
2020-12-04 11:03:55 +0100 <merijn> See also: https://gist.github.com/merijn/8152d561fb8b011f9313c48d876ceb07
2020-12-04 11:04:58 +0100knupfer(~Thunderbi@200116b82c9bc00029d7617336584c50.dip.versatel-1u1.de) (Remote host closed the connection)
2020-12-04 11:05:07 +0100knupfer(~Thunderbi@200116b82c9bc000c8b7568bc99cc3b4.dip.versatel-1u1.de)
2020-12-04 11:05:09 +0100 <eedgit> oh ok thanks, thought maybe it was mixing them up somehow
2020-12-04 11:05:20 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds)
2020-12-04 11:05:50 +0100vilpan(~0@212.117.1.172)
2020-12-04 11:06:01 +0100 <eedgit> Adding it to the stack.yaml appears to make it look in the current directory for a folder with that name, but the package doesn't install a folder with that name anywhere as far as I can see
2020-12-04 11:08:16 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
2020-12-04 11:08:19 +0100 <merijn> (I don't actually use stack, so I can't help with the details :p)
2020-12-04 11:09:46 +0100guest124(~user@49.5.6.87) (Remote host closed the connection)
2020-12-04 11:10:54 +0100borne(~fritjof@200116b864198500f60f2508b10af3d6.dip.versatel-1u1.de)
2020-12-04 11:13:14 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Ping timeout: 264 seconds)
2020-12-04 11:14:21 +0100kritzefitz(~kritzefit@fw-front.credativ.com)
2020-12-04 11:14:45 +0100BlackCapCoder(~blackcap@48.80-203-23.nextgentel.com)
2020-12-04 11:15:57 +0100ubert(~Thunderbi@p200300ecdf1e53c9e6b318fffe838f33.dip0.t-ipconnect.de)
2020-12-04 11:16:33 +0100 <eedgit> no worries, got a bit further 'From lts-13.11 and above gtk2hs-buildtools is not available in stackage, so you need to add it as an extra-dep.' > https://stackoverflow.com/questions/58690982/getting-error-while-using-gtk2hs-buildtool-library-in…
2020-12-04 11:20:20 +0100berberman_(~berberman@unaffiliated/berberman)
2020-12-04 11:20:26 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
2020-12-04 11:20:37 +0100lxsameer(~lxsameer@unaffiliated/lxsameer) (Ping timeout: 264 seconds)
2020-12-04 11:20:44 +0100toorevitimirp(~tooreviti@117.182.181.85) (Read error: Connection reset by peer)
2020-12-04 11:21:02 +0100toorevitimirp(~tooreviti@117.182.181.85)
2020-12-04 11:23:45 +0100AndreasK(uid320732@gateway/web/irccloud.com/x-mmzfigialnrtkzrf)
2020-12-04 11:23:46 +0100jess(jess@freenode/staff/jess) (Quit: Leaving)
2020-12-04 11:28:20 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-04 11:29:05 +0100borne(~fritjof@200116b864198500f60f2508b10af3d6.dip.versatel-1u1.de) (Ping timeout: 246 seconds)
2020-12-04 11:30:06 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-04 11:32:11 +0100zyklotomic1(~ethan@210.13.104.210)
2020-12-04 11:32:35 +0100zyklotomic1chocopuff
2020-12-04 11:32:36 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-12-04 11:32:42 +0100chocopuff(~ethan@210.13.104.210) (Changing host)
2020-12-04 11:32:42 +0100chocopuff(~ethan@unaffiliated/chocopuff)
2020-12-04 11:33:01 +0100chocopuff(~ethan@unaffiliated/chocopuff) (Client Quit)
2020-12-04 11:33:53 +0100lxsameer(lxsameer@gateway/vpn/protonvpn/lxsameer)
2020-12-04 11:34:17 +0100wei2912(~wei2912@unaffiliated/wei2912) (Remote host closed the connection)
2020-12-04 11:35:19 +0100zyklotomic(~ethan@unaffiliated/chocopuff)
2020-12-04 11:35:35 +0100 <zyklotomic> dminuoso: i'm back if you're still here and happen to have that example
2020-12-04 11:36:07 +0100 <zyklotomic> I did read up on Conduit too, but I have another slightly tangential question, then when is it "acceptable" tm, to use State?
2020-12-04 11:37:28 +0100 <zyklotomic> my original rationale was it may be easier to write the slightly complex control block of if-else-then for-loop in terms of State, I knew you could probably do it with a fold, but it still seemed a lot harder to write / bad readability
2020-12-04 11:38:04 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2020-12-04 11:39:04 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Client Quit)
2020-12-04 11:43:04 +0100da39a3ee5e6b4b0d(~da39a3ee5@mx-ll-171.5.167-167.dynamic.3bb.co.th)
2020-12-04 11:46:25 +0100zyklotomic(~ethan@unaffiliated/chocopuff) (Ping timeout: 256 seconds)
2020-12-04 11:48:01 +0100jedws(~jedws@pa49-195-30-73.pa.nsw.optusnet.com.au)
2020-12-04 11:49:09 +0100zyklotomic(~ethan@210.13.104.210)
2020-12-04 11:49:21 +0100 <dminuoso> zyklotomic: Hiya. https://gist.github.com/dminuoso/1dae6372dc8df57e780899759f9156ed
2020-12-04 11:50:31 +0100 <dminuoso> So this with a single "mutable" buffer encoded as a function argument to go
2020-12-04 11:51:12 +0100 <dminuoso> This is a bit more constrained than State. Also this streams
2020-12-04 11:51:22 +0100 <dminuoso> So it works on an infinite input list
2020-12-04 11:51:50 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:b1f1:a8b7:f9f9:80e3)
2020-12-04 11:52:12 +0100lxsameer(lxsameer@gateway/vpn/protonvpn/lxsameer) (Ping timeout: 272 seconds)
2020-12-04 11:52:38 +0100zyklotomic(~ethan@210.13.104.210) (Remote host closed the connection)
2020-12-04 11:53:06 +0100zyklotomic(~ethan@210.13.104.210)
2020-12-04 11:53:48 +0100jedws(~jedws@pa49-195-30-73.pa.nsw.optusnet.com.au) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-04 11:54:12 +0100 <dminuoso> What Conduit buys you, is being able to talk about streaming together with IO in constant space and in a composable fashion
2020-12-04 11:54:33 +0100 <dminuoso> I suggested conduit based on some quick skimming of your code
2020-12-04 11:54:58 +0100 <dminuoso> The code seemed to call into ffi for linguistic things
2020-12-04 11:56:04 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:b1f1:a8b7:f9f9:80e3) (Ping timeout: 240 seconds)
2020-12-04 11:57:47 +0100 <dminuoso> And with conduit you can write this streaming in a semi-imperative style, since you can "await" for input and "yield"
2020-12-04 11:58:03 +0100 <dminuoso> (It doesnt have to be conduit, there's a large wealth of libraries in this design space)
2020-12-04 11:59:13 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection)
2020-12-04 11:59:49 +0100joaoh82(~joaoh82@157-131-134-210.dedicated.static.sonic.net)
2020-12-04 12:00:35 +0100 <merijn> bleh, containers really needs a better story for "constructing a map while checking for duplicate keys"
2020-12-04 12:02:56 +0100 <zyklotomic> i see, that makes sense
2020-12-04 12:04:15 +0100ClaudiusMaximus(~claude@223.153.198.146.dyn.plus.net)
2020-12-04 12:04:15 +0100ClaudiusMaximus(~claude@223.153.198.146.dyn.plus.net) (Changing host)
2020-12-04 12:04:15 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus)
2020-12-04 12:04:57 +0100 <kuribas> conduit seems the easiest to us...
2020-12-04 12:06:41 +0100hackagecircular 0.3.1 - Circular fixed-sized mutable vectors https://hackage.haskell.org/package/circular-0.3.1 (dschrempf)
2020-12-04 12:07:07 +0100lxsameer(~lxsameer@unaffiliated/lxsameer)
2020-12-04 12:08:00 +0100darjeeling_(~darjeelin@122.245.218.196)
2020-12-04 12:08:29 +0100 <Taneb> merijn: if something like "insertOrFail :: k -> a -> Map k a -> Maybe (Map k a)" that failed on duplicate keys existed it'd carry a lot of weight there...
2020-12-04 12:08:53 +0100 <merijn> Taneb: tbh, I was thinking more some general Applicative
2020-12-04 12:09:14 +0100Jonkimi727406120(~Jonkimi@119.123.242.216) (Ping timeout: 256 seconds)
2020-12-04 12:09:29 +0100 <merijn> "fromListWithKey :: (Ord k, Applicative f) => (k -> a -> a -> f a) -> f (Map k a)"
2020-12-04 12:09:32 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
2020-12-04 12:09:32 +0100 <merijn> eh
2020-12-04 12:09:39 +0100 <merijn> Add a missing [(k, v)] there
2020-12-04 12:10:00 +0100 <merijn> Taneb: That way you could even easily do fancy things like "report all duplicates via Validation"
2020-12-04 12:11:01 +0100 <maerwald> kuribas: what? :D
2020-12-04 12:11:20 +0100 <kuribas> to use I mean
2020-12-04 12:11:41 +0100hackagehriemann 0.3.3.4 - A Riemann Client for Haskell https://hackage.haskell.org/package/hriemann-0.3.3.4 (shmish111)
2020-12-04 12:11:43 +0100 <kuribas> it's most like unix pipes
2020-12-04 12:12:56 +0100zyklotomic(~ethan@210.13.104.210) (Ping timeout: 240 seconds)
2020-12-04 12:14:26 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Ping timeout: 264 seconds)
2020-12-04 12:14:47 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net)
2020-12-04 12:15:52 +0100nineonine(~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Client Quit)
2020-12-04 12:15:56 +0100 <maerwald> I think it's not really idiomatic, because you're not really using standard operators (like monadic bind)
2020-12-04 12:16:36 +0100raichoo(~raichoo@213.240.178.58) (Quit: Lost terminal)
2020-12-04 12:16:49 +0100Stanley00(~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
2020-12-04 12:16:55 +0100 <hekkaidekapus> merijn: There is a Set version of your apllicative in the repo and D.F. would very probably merge a Map version of it. See <https://github.com/haskell/containers/issues/680>
2020-12-04 12:17:25 +0100ericsagnes(~ericsagne@2405:6580:0:5100:43fe:8354:1780:830b) (Ping timeout: 272 seconds)
2020-12-04 12:17:37 +0100christo(~chris@94.119.64.34)
2020-12-04 12:17:45 +0100zyklotomic(~ethan@210.13.104.210)
2020-12-04 12:18:50 +0100 <dminuoso> Taneb: Well you can quickly cook it up with alterF
2020-12-04 12:19:06 +0100 <merijn> dminuoso: I'm talking about fromListWith
2020-12-04 12:19:44 +0100 <dminuoso> Ah, I guess a fold over alterF would be rather expensive
2020-12-04 12:19:49 +0100 <dminuoso> In comparison
2020-12-04 12:20:17 +0100 <merijn> dminuoso: The fact that the default, most convenient construction mechanism is unsafe (i.e. clobbers keys) and there is no sensible way to detect that is a farce
2020-12-04 12:21:33 +0100 <merijn> you can roll your own via fromListWith and sequence, but it's tedious
2020-12-04 12:21:39 +0100 <hekkaidekapus> From that discussion, it more of something waiting for a proposed patch than a farce.
2020-12-04 12:22:27 +0100hekkaidekapusgets that merijn is mostly venting…
2020-12-04 12:22:32 +0100carlomagno1(~cararell@148.87.23.11)
2020-12-04 12:24:30 +0100zyklotomic(~ethan@210.13.104.210) (Ping timeout: 272 seconds)
2020-12-04 12:24:49 +0100Guest81223(~AllahuAkb@mskresolve-a.mskcc.org) (Ping timeout: 246 seconds)
2020-12-04 12:25:24 +0100christo(~chris@94.119.64.34) (Remote host closed the connection)
2020-12-04 12:25:40 +0100carlomagno(~cararell@148.87.23.12) (Ping timeout: 256 seconds)
2020-12-04 12:26:00 +0100LKoen(~LKoen@105.175.9.109.rev.sfr.net) (Remote host closed the connection)
2020-12-04 12:29:16 +0100ericsagnes(~ericsagne@2405:6580:0:5100:2a4b:4c53:e4dc:e61e)
2020-12-04 12:29:25 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-04 12:29:28 +0100borne(~fritjof@2001:638:708:30da:53d7:a324:c504:633)
2020-12-04 12:32:50 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-12-04 12:33:03 +0100polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Quit: WeeChat 2.9)
2020-12-04 12:33:36 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2020-12-04 12:33:58 +0100Ariakenom(~Ariakenom@h-98-128-229-53.NA.cust.bahnhof.se)
2020-12-04 12:34:00 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2020-12-04 12:35:59 +0100britva(~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119)
2020-12-04 12:37:25 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 264 seconds)
2020-12-04 12:38:04 +0100phaul(~phaul@ruby/staff/phaul)
2020-12-04 12:39:18 +0100revprez_1nzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net)
2020-12-04 12:40:29 +0100jamm_(~jamm@unaffiliated/jamm)
2020-12-04 12:41:16 +0100revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 246 seconds)
2020-12-04 12:42:05 +0100dhil(~dhil@195.213.192.34)
2020-12-04 12:42:45 +0100alp(~alp@2a01:e0a:58b:4920:39c3:c410:f47e:16f5) (Ping timeout: 272 seconds)
2020-12-04 12:44:16 +0100revprez_1nzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 240 seconds)
2020-12-04 12:44:17 +0100revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net)
2020-12-04 12:46:46 +0100polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889)
2020-12-04 12:51:07 +0100borne(~fritjof@2001:638:708:30da:53d7:a324:c504:633) (Ping timeout: 260 seconds)
2020-12-04 12:56:15 +0100ggole(~ggole@2001:8003:8119:7200:1065:53ac:b0e7:6308)
2020-12-04 12:57:13 +0100seveg(~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk) (Quit: WeeChat 3.0)
2020-12-04 12:59:16 +0100vilpan(~0@212.117.1.172) ()
2020-12-04 13:05:48 +0100 <dminuoso> cosmos :: Plated a => Fold a a
2020-12-04 13:05:50 +0100 <dminuoso> The word plays.
2020-12-04 13:06:06 +0100 <Taneb> :t universe
2020-12-04 13:06:08 +0100 <lambdabot> Plated a => a -> [a]
2020-12-04 13:06:48 +0100pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2020-12-04 13:07:17 +0100 <dminuoso> Taneb: Is there any meaning inside those, or are they just to denote the "all of it"?
2020-12-04 13:08:44 +0100jess(jess@freenode/staff/jess)
2020-12-04 13:09:38 +0100alp(~alp@2a01:e0a:58b:4920:39c3:c410:f47e:16f5)
2020-12-04 13:11:12 +0100coeus(~coeus@p200300d027453600d114986072cc2eb8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-12-04 13:11:56 +0100zebrag(~inkbottle@aaubervilliers-654-1-115-108.w86-198.abo.wanadoo.fr)
2020-12-04 13:12:24 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds)
2020-12-04 13:13:01 +0100edemiurge
2020-12-04 13:13:25 +0100xiinotulp(~q@ppp-27-55-74-75.revip3.asianet.co.th)
2020-12-04 13:13:40 +0100phaul(~phaul@ruby/staff/phaul)
2020-12-04 13:14:08 +0100inkbottle(~inkbottle@aaubervilliers-654-1-81-2.w86-212.abo.wanadoo.fr) (Ping timeout: 265 seconds)
2020-12-04 13:14:32 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-04 13:15:01 +0100plutoniix(~q@ppp-27-55-72-38.revip3.asianet.co.th) (Read error: Connection reset by peer)
2020-12-04 13:17:31 +0100bitmagie(~Thunderbi@200116b80685200000259323389592bf.dip.versatel-1u1.de) (Quit: bitmagie)
2020-12-04 13:17:47 +0100bitmagie(~Thunderbi@200116b80685200000259323389592bf.dip.versatel-1u1.de)
2020-12-04 13:18:01 +0100 <Taneb> dminuoso: I think the terminology predates lens here, universe comes from at least universe and cosmos is just a near-synonym of that
2020-12-04 13:18:15 +0100 <Taneb> So I think it's just "all of it"
2020-12-04 13:18:46 +0100AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl)
2020-12-04 13:18:46 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-12-04 13:19:36 +0100kritzefitz(~kritzefit@fw-front.credativ.com) (Ping timeout: 240 seconds)
2020-12-04 13:20:51 +0100whatisRT(~whatisRT@2002:5b41:6a33:0:856b:b027:50b:2bc3)
2020-12-04 13:20:55 +0100Entertainment(~entertain@104.246.132.210)
2020-12-04 13:22:08 +0100xiinotulp(~q@ppp-27-55-74-75.revip3.asianet.co.th) (Quit: Leaving)
2020-12-04 13:25:11 +0100Wuzzy(~Wuzzy@p549c9976.dip0.t-ipconnect.de)
2020-12-04 13:25:27 +0100popey1(~popey@185.163.110.125) (Remote host closed the connection)
2020-12-04 13:26:53 +0100 <merijn> hekkaidekapus: "Me needing to write a patch decades after something should've been added" is a farce >.>
2020-12-04 13:27:08 +0100coeus(~coeus@p200300d0271c3b00114a6166d66724be.dip0.t-ipconnect.de)
2020-12-04 13:28:04 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-12-04 13:28:25 +0100cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it)
2020-12-04 13:28:35 +0100jchia__(~jchia@58.32.37.146)
2020-12-04 13:29:50 +0100darkspadez|lapto(~darkspade@217.146.82.202)
2020-12-04 13:30:12 +0100whatisRT(~whatisRT@2002:5b41:6a33:0:856b:b027:50b:2bc3) (Ping timeout: 260 seconds)
2020-12-04 13:34:41 +0100loller_(uid358106@gateway/web/irccloud.com/x-ystjmforbrvlleet) (Quit: Connection closed for inactivity)
2020-12-04 13:35:51 +0100 <hekkaidekapus> merijn: Gotcha! In all honesty, even a seemingly non-contentious patch could later be stalled due to performance tuning knobs in containers. PR!340 is an emblematic example: a ~7kLOC+ & ~5kLOC- patch ending in a “cute but not fast” state gives pause.
2020-12-04 13:38:20 +0100LKoen(~LKoen@105.175.9.109.rev.sfr.net)
2020-12-04 13:38:43 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2020-12-04 13:40:03 +0100shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:a913:5438:3a24:3de8) (Ping timeout: 244 seconds)
2020-12-04 13:40:30 +0100bitmagie(~Thunderbi@200116b80685200000259323389592bf.dip.versatel-1u1.de) (Quit: bitmagie)
2020-12-04 13:41:13 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:b1f1:a8b7:f9f9:80e3)
2020-12-04 13:42:36 +0100jespada(~jespada@90.254.245.49) (Ping timeout: 240 seconds)
2020-12-04 13:43:59 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-12-04 13:44:50 +0100jamm_(~jamm@unaffiliated/jamm)
2020-12-04 13:45:27 +0100jespada(~jespada@90.254.245.49)
2020-12-04 13:45:57 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:b1f1:a8b7:f9f9:80e3) (Ping timeout: 260 seconds)
2020-12-04 13:46:17 +0100shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:a913:5438:3a24:3de8)
2020-12-04 13:48:30 +0100cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone)
2020-12-04 13:49:04 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds)
2020-12-04 13:57:42 +0100raichoo(~raichoo@213.240.178.58)
2020-12-04 13:58:05 +0100iqubic`(~user@2601:602:9500:4870:55f6:de24:d001:bc51)
2020-12-04 13:58:10 +0100iqubic`(~user@2601:602:9500:4870:55f6:de24:d001:bc51) (Remote host closed the connection)
2020-12-04 13:58:44 +0100urodna(~urodna@unaffiliated/urodna)
2020-12-04 13:59:17 +0100drincruz_(~adriancru@ool-44c748be.dyn.optonline.net)
2020-12-04 14:01:12 +0100drbean(~drbean@TC210-63-209-212.static.apol.com.tw)
2020-12-04 14:01:30 +0100Vulfe(~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net)
2020-12-04 14:02:17 +0100iqubic(~user@2601:602:9500:4870:4afa:d1c4:5c89:10e9) (Ping timeout: 260 seconds)
2020-12-04 14:02:27 +0100sleblanc(~sleblanc@unaffiliated/sebleblanc)
2020-12-04 14:02:40 +0100texasmynsted(~texasmyns@212.102.44.36)
2020-12-04 14:02:57 +0100drbean_(~drbean@TC210-63-209-150.static.apol.com.tw)
2020-12-04 14:03:42 +0100benoitj(~benoitj@bras-base-mtrlpq3708w-grc-25-76-65-84-134.dsl.bell.ca) (Ping timeout: 256 seconds)
2020-12-04 14:04:00 +0100jmchael(~Chi1thang@87.112.60.168)
2020-12-04 14:05:33 +0100fendor_(~fendor@178.115.130.110.wireless.dyn.drei.com)
2020-12-04 14:05:35 +0100benoitj(~benoitj@bras-base-mtrlpq3708w-grc-25-76-65-84-134.dsl.bell.ca)
2020-12-04 14:06:13 +0100Vulfe(~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 264 seconds)
2020-12-04 14:06:18 +0100drbean(~drbean@TC210-63-209-212.static.apol.com.tw) (Ping timeout: 256 seconds)
2020-12-04 14:08:04 +0100fendor(~fendor@91.141.2.63.wireless.dyn.drei.com) (Ping timeout: 256 seconds)
2020-12-04 14:08:58 +0100dmdias(59108cd7@89.16.140.215)
2020-12-04 14:09:04 +0100son0p(~son0p@181.58.39.182) (Quit: leaving)
2020-12-04 14:09:10 +0100Feuermagier(~Feuermagi@213.178.26.41) (Remote host closed the connection)
2020-12-04 14:10:05 +0100xff0x_(~fox@2001:1a81:53bd:d700:a57d:2d36:c4ed:73cf) (Ping timeout: 246 seconds)
2020-12-04 14:10:18 +0100joaoh82(~joaoh82@157-131-134-210.dedicated.static.sonic.net) (Remote host closed the connection)
2020-12-04 14:10:46 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
2020-12-04 14:11:04 +0100dmdias(59108cd7@89.16.140.215) (Remote host closed the connection)
2020-12-04 14:11:11 +0100xff0x_(~fox@2001:1a81:53bd:d700:8f93:fd62:22df:b06f)
2020-12-04 14:11:34 +0100Tario(~Tario@201.192.165.173)
2020-12-04 14:14:20 +0100sondr3(~sondr3@cm-84.211.56.132.getinternet.no)
2020-12-04 14:15:04 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Ping timeout: 240 seconds)
2020-12-04 14:16:17 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-12-04 14:17:06 +0100sm2n(~sm2n@bras-base-hmtnon1497w-grc-44-69-156-5-58.dsl.bell.ca)
2020-12-04 14:19:30 +0100 <carbolymer> https://bpa.st/TISA - what's wrong with my parser?
2020-12-04 14:20:09 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
2020-12-04 14:21:02 +0100drincruz_(~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 256 seconds)
2020-12-04 14:22:09 +0100jil(~user@45.86.162.6) ("ERC (IRC client for Emacs 26.1)")
2020-12-04 14:22:28 +0100 <carbolymer> choice is supposed to test everything and fail when nothing matches
2020-12-04 14:24:05 +0100 <carbolymer> or w8, is string consuming input letter by letter thus preventing next case to be evaulated?
2020-12-04 14:24:19 +0100 <lambda> I have a `data T = A Int | B String | C` and a `[T]` and want to check if it contains of one of each `A`, `B` and `C` (without having to write them down again separately). Am I just overthinking this or does this need some special magic?
2020-12-04 14:24:40 +0100Ariakenom(~Ariakenom@h-98-128-229-53.NA.cust.bahnhof.se) (Ping timeout: 256 seconds)
2020-12-04 14:25:10 +0100 <carbolymer> oh fuck, right, that's exactly what's happening, I should use `try . string`
2020-12-04 14:25:29 +0100 <Rembane> carbolymer: Exactly! More about that here: https://stackoverflow.com/questions/33057481/why-does-it-seem-that-the-parsec-choice-operator-depe…
2020-12-04 14:26:00 +0100 <carbolymer> Rembane, thx
2020-12-04 14:26:50 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection)
2020-12-04 14:27:00 +0100 <merijn> heh
2020-12-04 14:27:13 +0100 <Rembane> carbolymer: np!
2020-12-04 14:27:13 +0100 <merijn> Did I just get lucky with my AoC input? :p
2020-12-04 14:27:23 +0100 <xerox_> how?
2020-12-04 14:27:24 +0100 <merijn> because I just use asum without problems :p
2020-12-04 14:27:45 +0100 <cheater> xerox_: what is the (ri -> n) syntax in your code in pattern matches?
2020-12-04 14:28:06 +0100 <xerox_> asum is nice
2020-12-04 14:28:19 +0100jamm_(~jamm@unaffiliated/jamm)
2020-12-04 14:28:27 +0100 <merijn> Well, I didn't bother with try around string and my parser still works :p
2020-12-04 14:29:05 +0100 <xerox_> some people did it all in the parser!
2020-12-04 14:29:11 +0100 <hekkaidekapus> carbolymer: I get that some people prefer parsec because of its boot lib status, but you could also use almost the same code with megaparsec and you wouldn’t have to worry about backtracking for chunk (string) parsers.
2020-12-04 14:29:31 +0100 <geekosaur> cheater, looks like a view pattern to me
2020-12-04 14:29:36 +0100 <cheater> thanks
2020-12-04 14:29:44 +0100 <merijn> hekkaidekapus: tbh, I'm starting to prefer parsec (again) because the megaparsec haddocks are a mess
2020-12-04 14:30:06 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-04 14:30:12 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2020-12-04 14:30:12 +0100Vulfe(~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net)
2020-12-04 14:30:27 +0100darkspadez|lapto(~darkspade@217.146.82.202) (Remote host closed the connection)
2020-12-04 14:30:28 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-04 14:30:28 +0100 <hekkaidekapus> merijn: Some of the haddocks were copied verbatim from parsec and don’t match the lib’s implementation.
2020-12-04 14:30:32 +0100 <merijn> I dunno when they started degrading, but the haddocks are borderline useless to me (an experienced user of like 6 different parser combinators) as there seems to be almost no care in how combinators and modules are grouped
2020-12-04 14:30:32 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-04 14:30:42 +0100 <merijn> hekkaidekapus: My problem isn't even the description
2020-12-04 14:31:10 +0100jrm(~jrm@freebsd/developer/jrm) (Ping timeout: 272 seconds)
2020-12-04 14:31:11 +0100 <merijn> hekkaidekapus: It's that it's impossible to find things I *know* exist. How can beginners possibly find something when they don't even have years of parser combinator experience
2020-12-04 14:31:36 +0100 <hekkaidekapus> Ah, that.
2020-12-04 14:31:50 +0100 <merijn> The fact that it, for example, re-exports "Control.Monad.Combinators" without the docs for the re-export is *terrible* for example
2020-12-04 14:32:17 +0100jrm(~jrm@freebsd/developer/jrm)
2020-12-04 14:32:52 +0100 <hekkaidekapus> But the split to parser-combinators was a good decision, IMO.
2020-12-04 14:32:55 +0100 <merijn> Now, I know it's unfortunate that haddock doesn't (yet) support nice re-exports for whole module, but that can be solved by explicitly naming each re-export. Yes, explicitly listing all of Control.Monad.Combinators is an awkward tedious job, but for something as polished as megaparsec it's a shame it doesn't
2020-12-04 14:33:19 +0100 <merijn> hekkaidekapus: Irrelevanat, they could still list the re-exports and thereby get inline haddocks for them in the Text.Megaparsec module
2020-12-04 14:33:30 +0100 <merijn> Instantly improving the usability for both beginners *and* experts
2020-12-04 14:34:11 +0100forcer1(~forcer@185.204.1.185)
2020-12-04 14:34:20 +0100 <hekkaidekapus> No argument there, docs improvements are always welcome.
2020-12-04 14:34:56 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-12-04 14:35:01 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
2020-12-04 14:35:28 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-12-04 14:36:42 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
2020-12-04 14:36:57 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2020-12-04 14:37:02 +0100 <hekkaidekapus> carbolymer: More to the point, `let eclP = choice (chunk <$> yourList); runParser eclP "" "brn"` will work like a charm with megaparsec.
2020-12-04 14:38:33 +0100seveg(~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk)
2020-12-04 14:39:34 +0100 <hekkaidekapus> merijn: Guess what? “Control.Monad.Combinators documentation should be reexported.” <https://github.com/mrkkrp/megaparsec/issues/417>
2020-12-04 14:39:36 +0100drbean_(~drbean@TC210-63-209-150.static.apol.com.tw) (Ping timeout: 240 seconds)
2020-12-04 14:40:17 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2020-12-04 14:40:17 +0100gentauro(~gentauro@unaffiliated/gentauro) (Read error: Connection reset by peer)
2020-12-04 14:40:27 +0100drbean(~drbean@TC210-63-209-157.static.apol.com.tw)
2020-12-04 14:40:58 +0100gentauro(~gentauro@unaffiliated/gentauro)
2020-12-04 14:41:33 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-04 14:41:39 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds)
2020-12-04 14:41:42 +0100 <hekkaidekapus> Paging lyxia…
2020-12-04 14:41:49 +0100 <hekkaidekapus> lyxia: Are you there?
2020-12-04 14:43:38 +0100Vulfe(~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Remote host closed the connection)
2020-12-04 14:43:47 +0100Vulfe_(~vulfe@2600:1702:31b0:34e0:cce9:14da:222:dd1d)
2020-12-04 14:44:02 +0100obfusk(~quassel@a82-161-150-56.adsl.xs4all.nl) (Ping timeout: 265 seconds)
2020-12-04 14:45:13 +0100phaul(~phaul@ruby/staff/phaul)
2020-12-04 14:45:29 +0100drbean(~drbean@TC210-63-209-157.static.apol.com.tw) (Ping timeout: 265 seconds)
2020-12-04 14:45:33 +0100danso(~dan@69-165-210-185.cable.teksavvy.com)
2020-12-04 14:45:35 +0100obfusk(~quassel@a82-161-150-56.adsl.xs4all.nl)
2020-12-04 14:48:09 +0100 <cheater> geekosaur: thanks. are implicit view functions implemented in ghc?
2020-12-04 14:48:14 +0100drincruz_(~adriancru@ool-44c748be.dyn.optonline.net)
2020-12-04 14:48:21 +0100 <cheater> the foo (-> 4) stuff
2020-12-04 14:48:39 +0100 <hekkaidekapus> {-# language ViewPatterns #-}
2020-12-04 14:49:22 +0100 <merijn> hekkaidekapus: tbh, I'd argue that implicit re-exports of modules from another package are a misfeature anyway, as there's no way to do that and stay PVP compliant unless you maintain strict upperbounds
2020-12-04 14:49:56 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 256 seconds)
2020-12-04 14:50:42 +0100 <hekkaidekapus> It could be configurable as lyxia proposed.
2020-12-04 14:50:47 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-12-04 14:50:56 +0100 <maerwald> someone said "upper bounds"? :p
2020-12-04 14:51:06 +0100cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it)
2020-12-04 14:51:18 +0100 <hekkaidekapus> haha…
2020-12-04 14:51:30 +0100da39a3ee5e6b4b0d(~da39a3ee5@mx-ll-171.5.167-167.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-04 14:52:00 +0100 <merijn> maerwald: hmm?
2020-12-04 14:52:01 +0100 <hekkaidekapus> maerwald says: “CI and tooling are better.” :p
2020-12-04 14:52:31 +0100 <merijn> maerwald: https://i.kym-cdn.com/entries/icons/facebook/000/006/759/both.jpg
2020-12-04 14:52:55 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-04 14:53:07 +0100 <merijn> CI is nice for detecting breakage, but doesn't help you get non-broken buildplans
2020-12-04 14:53:40 +0100 <maerwald> If I'd have time I'd make a study about why software is so crappy these days. I think there are two main reasons: git and semver. It allows to move fast and break stuff as much as you like.
2020-12-04 14:54:26 +0100 <maerwald> And I'm not saying I blame git or semver, but I think those are observable effects.
2020-12-04 14:54:36 +0100 <maerwald> But we can argue about causality
2020-12-04 14:55:36 +0100sleblanc(~sleblanc@unaffiliated/sebleblanc) (Quit: Leaving)
2020-12-04 14:55:59 +0100 <hekkaidekapus> We could also adopt a solution available right now: follow the PVP and write down those bounds.
2020-12-04 14:57:21 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-12-04 14:58:04 +0100 <maerwald> hekkaidekapus: did anyone think of the security implications of that approach? :) I think it's a safe bet that bugfixes are never backporeted to major previous versions
2020-12-04 14:58:30 +0100 <merijn> maerwald: That's an entirely different issue
2020-12-04 14:58:34 +0100 <maerwald> doing semver properly is really hight maintenance load
2020-12-04 14:58:37 +0100 <maerwald> and ppl are lazy af
2020-12-04 14:58:52 +0100 <merijn> "Should you develop against the latest version as much as possible?" 'yes'
2020-12-04 14:58:59 +0100 <hekkaidekapus> Devops is also high maintenance.
2020-12-04 14:59:13 +0100 <merijn> Should you *package* versions so that they have less chance of breaking retro-actively (i.e. add upperbounds)? Also yes
2020-12-04 14:59:42 +0100 <merijn> maerwald: I work a lot with scientific code. Security is a non-issue, but the ability to reasonably reive 10 year old code is a big deal
2020-12-04 15:00:24 +0100 <merijn> Do upperbounds help you avoid security issues and what not? No. Do they help ensure that a package that builds correctly *now* has a non-zero chance of building as-is ten years from now? Yes.
2020-12-04 15:00:30 +0100 <maerwald> I don't mind semver if 1. I get build time warnings saying "this major version is going EOL in 1 year", so I can prepare and assign tickets to interns, 2. major versions are maintained for at least a couple of years
2020-12-04 15:00:51 +0100 <merijn> maerwald: That's an entirely separate concern, though
2020-12-04 15:01:18 +0100 <merijn> maerwald: You care about "how long/well will this be supported?" which is a valid concern, but no one is pretending upperbounds address that at all
2020-12-04 15:02:11 +0100 <exarkun> I see a lot of socket types on hoogle. is Network.Socket the correct answer?
2020-12-04 15:02:16 +0100 <merijn> Upperbounds address a single (trivial from a distribution/operations perspective, but important nonetheless) issue of "if it builds now, it should build 10 years from now using the compiler from 10 years ago"
2020-12-04 15:02:36 +0100 <maerwald> merijn: they don't even address that well
2020-12-04 15:02:54 +0100 <maerwald> freeze files, stack and nix address that
2020-12-04 15:02:54 +0100 <merijn> maerwald: Sure, but do you have a *better* solution?
2020-12-04 15:03:05 +0100 <hekkaidekapus> What amazes me is a subset of people rallying against upper-bounds, but happily writing down Nix expressions to lock down deps up to exact commits (not maerwald, obviously. :p)
2020-12-04 15:03:25 +0100 <maerwald> if I want to build something in 10 years, an upper bound isn't enough for me, I want to reproduce the environment
2020-12-04 15:03:35 +0100 <merijn> hekkaidekapus: "oh, but I don't wanna write upperbounds, because it's tedious :((("
2020-12-04 15:03:42 +0100 <maerwald> hekkaidekapus: yeah, nix is a nightmare if you care about security
2020-12-04 15:03:59 +0100 <merijn> hekkaidekapus: 5 minutes later "why am I stuck in cabal hell and nothing's building when I try to use this 6 year old package?!?!?"
2020-12-04 15:04:10 +0100 <hekkaidekapus> lol
2020-12-04 15:04:23 +0100 <merijn> Man...fuck those people >.>
2020-12-04 15:04:51 +0100 <hekkaidekapus> That escalated quickly. >.>
2020-12-04 15:04:56 +0100 <maerwald> lolo
2020-12-04 15:05:16 +0100 <maerwald> merijn: take a sip of Laphroaig
2020-12-04 15:05:24 +0100 <maerwald> good for your blood pressure
2020-12-04 15:05:24 +0100 <merijn> maerwald: It's only 3 PM >.>
2020-12-04 15:05:37 +0100 <hekkaidekapus> Friday PM is ok.
2020-12-04 15:05:56 +0100 <maerwald> No one will mind
2020-12-04 15:06:01 +0100 <merijn> hekkaidekapus: See, the great thing of hypothetical strawmen is that you can rage against them without anyone getting upset!
2020-12-04 15:06:16 +0100 <merijn> (Well, if you keep your rage to a somehwat acceptable level)
2020-12-04 15:07:00 +0100 <hekkaidekapus> In before maerwald talks about blood pressure and insurance costs induced by upper bounds…
2020-12-04 15:07:05 +0100 <merijn> maerwald: I'm writing C++ right now, my bloodpressure can't be saved
2020-12-04 15:08:41 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2020-12-04 15:08:46 +0100 <maerwald> C++ is like weed... if you're already paranoid, it will CRACK you
2020-12-04 15:09:04 +0100 <kuribas> merijn: I cannot imagine what clojure would do to you :)
2020-12-04 15:09:15 +0100 <maerwald> ok, yes, clojure is worse
2020-12-04 15:09:55 +0100 <maerwald> You can randomly delete lines and it still compiles, but instead of showing a web page with account information, will start to compute mandelbrots and send them over a blockchain
2020-12-04 15:10:57 +0100 <kuribas> clojure is way to lenient
2020-12-04 15:11:04 +0100 <kuribas> even more than common lisp.
2020-12-04 15:11:16 +0100 <kuribas> Anyway, that's offtopic...
2020-12-04 15:11:19 +0100 <geekosaur> @remember maerwald ok, yes, clojure is worse. You can randomly delete lines and it still compiles, but instead of showing a web page with account information, will start to compute mandelbrots and send them over a blockchain
2020-12-04 15:11:19 +0100 <lambdabot> Good to know.
2020-12-04 15:11:38 +0100phaul(~phaul@ruby/staff/phaul)
2020-12-04 15:12:48 +0100falafel_(~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net)
2020-12-04 15:16:00 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Disconnected by services)
2020-12-04 15:16:00 +0100hyperisco_(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2020-12-04 15:17:13 +0100carlomagno(~cararell@148.87.23.11)
2020-12-04 15:18:08 +0100da39a3ee5e6b4b0d(~da39a3ee5@mx-ll-171.5.167-167.dynamic.3bb.co.th)
2020-12-04 15:18:44 +0100ubert(~Thunderbi@p200300ecdf1e53c9e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2020-12-04 15:19:18 +0100carlomagno1(~cararell@148.87.23.11) (Ping timeout: 272 seconds)
2020-12-04 15:20:12 +0100drincruz_(~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 256 seconds)
2020-12-04 15:26:07 +0100falafel_(~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net) (Ping timeout: 246 seconds)
2020-12-04 15:27:34 +0100jasperr(~gazso@91-82-250-42.pool.digikabel.hu) (Remote host closed the connection)
2020-12-04 15:27:43 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 260 seconds)
2020-12-04 15:29:17 +0100knupfer(~Thunderbi@200116b82c9bc000c8b7568bc99cc3b4.dip.versatel-1u1.de) (Quit: knupfer)
2020-12-04 15:29:27 +0100kritzefitz(~kritzefit@fw-front.credativ.com)
2020-12-04 15:29:29 +0100knupfer(~Thunderbi@200116b82c9bc000a8fd43d85d8a07f6.dip.versatel-1u1.de)
2020-12-04 15:29:47 +0100drincruz_(~adriancru@ool-44c748be.dyn.optonline.net)
2020-12-04 15:31:46 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-04 15:34:42 +0100 <lyxia> hekkaidekapus: did you ping me
2020-12-04 15:34:47 +0100knupfer(~Thunderbi@200116b82c9bc000a8fd43d85d8a07f6.dip.versatel-1u1.de) (Quit: knupfer)
2020-12-04 15:34:58 +0100knupfer(~Thunderbi@200116b82c9bc000adff544b4545b020.dip.versatel-1u1.de)
2020-12-04 15:36:25 +0100qwfpluykh(2e050550@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de)
2020-12-04 15:36:28 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-12-04 15:40:13 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
2020-12-04 15:43:32 +0100 <tdammers> maerwald: well, duh, just don't delete those lines then XD
2020-12-04 15:43:41 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-12-04 15:43:49 +0100mimagic(~mimagic@201.82.37.29)
2020-12-04 15:44:16 +0100 <maerwald> :D
2020-12-04 15:44:36 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-04 15:44:53 +0100mimagic(~mimagic@201.82.37.29) (Remote host closed the connection)
2020-12-04 15:45:09 +0100mimagic(~mimagic@201.82.37.29)
2020-12-04 15:46:55 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
2020-12-04 15:47:12 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection)
2020-12-04 15:48:10 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
2020-12-04 15:49:40 +0100mimagic(~mimagic@201.82.37.29) (Ping timeout: 256 seconds)
2020-12-04 15:52:30 +0100son0p(~son0p@181.136.122.143)
2020-12-04 15:52:50 +0100 <typetetris> Sorry for asking again: Which metric in ekg indicates gc pause times? Which metric in `GHC.Stats`?
2020-12-04 15:52:59 +0100 <typetetris> Or can they only be seen with an eventlog?
2020-12-04 15:53:22 +0100knupfer(~Thunderbi@200116b82c9bc000adff544b4545b020.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-12-04 15:53:35 +0100knupfer(~Thunderbi@200116b82c9bc0005da51f6efb192e42.dip.versatel-1u1.de)
2020-12-04 15:54:20 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de) (Quit: WeeChat 2.9)
2020-12-04 15:55:55 +0100xff0x_(~fox@2001:1a81:53bd:d700:8f93:fd62:22df:b06f) (Ping timeout: 272 seconds)
2020-12-04 15:55:56 +0100drincruz_(~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 240 seconds)
2020-12-04 15:56:29 +0100xff0x_(~fox@2001:1a81:53bd:d700:e925:a6a8:c96:2dfe)
2020-12-04 15:57:56 +0100drincruz_(~adriancru@ool-44c748be.dyn.optonline.net)
2020-12-04 15:58:09 +0100stree(~stree@50-108-78-9.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception)
2020-12-04 15:58:41 +0100hackagerhbzquery 0.1.1 - Bugzilla query tool https://hackage.haskell.org/package/rhbzquery-0.1.1 (JensPetersen)
2020-12-04 16:05:32 +0100 <merijn> hmm
2020-12-04 16:06:05 +0100 <merijn> Is there a convenient way to run a number of megaparsec parsers in non-deterministic order?
2020-12-04 16:07:04 +0100berberman(~berberman@unaffiliated/berberman)
2020-12-04 16:07:44 +0100berberman_(~berberman@unaffiliated/berberman) (Ping timeout: 240 seconds)
2020-12-04 16:07:56 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck)
2020-12-04 16:08:10 +0100 <sm[m]> choice $ map try $ randomizeList [p1,p2,p3] ?
2020-12-04 16:08:33 +0100 <merijn> sm[m]: That still only parses one
2020-12-04 16:08:44 +0100 <merijn> I mean "I need to parse N things in an unknown order"
2020-12-04 16:08:44 +0100 <Mrbuck> hi some I think haskell a good choice for distributed systems? Any serious known project related to that domain
2020-12-04 16:09:17 +0100 <merijn> sm[m]: So "try to parse p1-p3, check which succeeds, then continue with the remaining two"
2020-12-04 16:09:31 +0100 <sm[m]> merijn: oh.. yes there is something in megaparsec for that. "permute" ?
2020-12-04 16:09:53 +0100 <merijn> Not permute at least :p
2020-12-04 16:10:31 +0100 <merijn> sm[m]: Text.Megaparsec.Perm used to exist, but got nuked, apparently
2020-12-04 16:10:53 +0100bcasiello_(~brian@071-088-110-201.res.spectrum.com)
2020-12-04 16:11:23 +0100 <merijn> ah, it's in parser-combinators now
2020-12-04 16:11:31 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection)
2020-12-04 16:12:39 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
2020-12-04 16:13:11 +0100 <sm[m]> yup runPermutation
2020-12-04 16:13:37 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2020-12-04 16:14:02 +0100bcasiello(~brian@071-088-110-201.res.spectrum.com) (Ping timeout: 256 seconds)
2020-12-04 16:16:44 +0100 <exarkun> Okay, nobody gonna warn me away from Network.Socket?
2020-12-04 16:17:37 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Ping timeout: 260 seconds)
2020-12-04 16:17:49 +0100bitmagie(~Thunderbi@200116b80685200000259323389592bf.dip.versatel-1u1.de)
2020-12-04 16:18:38 +0100 <Philonous> exarkun, If you need to work with sockets, then network's Network.Socket is the way to go.
2020-12-04 16:19:06 +0100bitmagie(~Thunderbi@200116b80685200000259323389592bf.dip.versatel-1u1.de) (Client Quit)
2020-12-04 16:19:07 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-12-04 16:19:16 +0100Ranhir(~Ranhir@157.97.53.139) (Remote host closed the connection)
2020-12-04 16:19:22 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-12-04 16:19:36 +0100shaprhugs exarkun
2020-12-04 16:20:32 +0100 <exarkun> Heya shapr
2020-12-04 16:20:37 +0100alp(~alp@2a01:e0a:58b:4920:39c3:c410:f47e:16f5) (Ping timeout: 272 seconds)
2020-12-04 16:21:21 +0100__monty__(~toonn@unaffiliated/toonn)
2020-12-04 16:23:08 +0100 <Philonous> I have a series of requests and each requests carries a nonce and a time stamp, so I want to check if I have seen that nonce before. To limit the amount of space I need I want to only store a sliding window of them, and now I'm wondering which data structure to use. If I use a »Map UTCTime Nonce« I can drop old entries using dropWhileAntitone or split on O(log(n)) , but looking for the nonce is O(n). If I use a »Map Nonce UTCTime« I
2020-12-04 16:23:09 +0100 <Philonous> can find the nonce in O(log(n)), but dropping old entries is O(n)
2020-12-04 16:23:30 +0100 <Philonous> Is there a clever data structure that has insert, drop-old and lookup, all in log(n) ?
2020-12-04 16:25:15 +0100catchme(uid355354@gateway/web/irccloud.com/x-efeidyvsbqvqtcow)
2020-12-04 16:26:04 +0100Ranhir(~Ranhir@157.97.53.139)
2020-12-04 16:26:51 +0100falafel_(~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net)
2020-12-04 16:27:34 +0100 <__monty__> Is there a workaround to use ghcid in a multi-package project? Running it for a single project at a time would be fine but `ghcid -c 'cabal repl Project:exe:Myexe'` doesn't work, it doesn't report any syntax errors I introduce in my sources.
2020-12-04 16:27:41 +0100hackageproteaaudio 0.9.0 - Simple audio library for Windows, Linux, OSX. https://hackage.haskell.org/package/proteaaudio-0.9.0 (CsabaHruska)
2020-12-04 16:29:12 +0100hackagestack-all 0.1.1 - CLI tool for building across Stackage major versions https://hackage.haskell.org/package/stack-all-0.1.1 (JensPetersen)
2020-12-04 16:29:22 +0100DTZUZU(~DTZUZU@205.ip-149-56-132.net) (Quit: WeeChat 2.9)
2020-12-04 16:29:44 +0100DTZUZU(~DTZUZU@205.ip-149-56-132.net)
2020-12-04 16:29:46 +0100 <sm[m]> monty: yes, pass additional -iDIR arguments
2020-12-04 16:30:14 +0100lightwave(~chris@bras-vprn-nwmkon8540w-lp130-10-142-112-210-136.dsl.bell.ca)
2020-12-04 16:30:42 +0100hackageproteaaudio-sdl 0.9.0 - Simple audio library for SDL. https://hackage.haskell.org/package/proteaaudio-sdl-0.9.0 (CsabaHruska)
2020-12-04 16:31:06 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-04 16:31:36 +0100 <lightwave> I'm hitting a wall on my Haskell journey when I'm reading the "Haskell Programing from first principal" book.
2020-12-04 16:32:04 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-04 16:32:13 +0100 <sm[m]> "make ghcid" in hledger's Makefile is an example. Also I think one of the tools, probably stack, allows "stack ghci all" or some such
2020-12-04 16:33:20 +0100 <lightwave> While reading about Maybe and Either in chapter 12, I ran into this paragraph about Lifted and Unlifted types. '''Lifted and unlifted types To be precise, kind * is the kind of all standard lifted types, while types that have the kind # are unlifted. A lifted type, which includes any datatype you could define yourself, is any that can be inhabited by bottom. Lifted types are represented by a pointer and include
2020-12-04 16:33:21 +0100 <lightwave> we’ve seen and most that you’re likely to encounter and use. Unlifted types are any types that cannot be inhabited by bottom. Types of kind # are often native machine types and raw pointers. Newtypes are a special case in that they are kind *, but they are unlifted, because their representation is identical to that of the type they contain, so a newtype itself is not creating any new pointer beyond that of t
2020-12-04 16:33:21 +0100 <lightwave> fact means that the newtype itself cannot be inhabited by bottom—only the thing it contains can be—so newtypes are unlifted. The default kind of concrete, fully-applied datatypes in GHC is kind *.'''
2020-12-04 16:33:37 +0100xff0x_(~fox@2001:1a81:53bd:d700:e925:a6a8:c96:2dfe) (Ping timeout: 260 seconds)
2020-12-04 16:33:43 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck) (Ping timeout: 240 seconds)
2020-12-04 16:33:56 +0100 <sm[m]> lightwave: phew
2020-12-04 16:34:19 +0100xff0x_(~fox@2001:1a81:53bd:d700:34e2:7dfe:e47a:7867)
2020-12-04 16:34:50 +0100 <lightwave> What is a lifted/unlifted type? I am thoroughly confused. My apology for pasting the paragraph.... didn't look that big ono the PDF. LOL
2020-12-04 16:34:55 +0100 <sm[m]> and this is the book we send beginners to :)
2020-12-04 16:35:34 +0100 <merijn> sm[m]: Pretty sure that's an aside :)
2020-12-04 16:35:37 +0100falafel_(~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net) (Ping timeout: 264 seconds)
2020-12-04 16:36:00 +0100 <merijn> lightwave: it's not really that important right now, just a mental note for "later"
2020-12-04 16:36:15 +0100 <merijn> lightwave: Incidentally, do you happen to know Java or C#?
2020-12-04 16:36:38 +0100 <lightwave> I used to write Java. :-)
2020-12-04 16:36:44 +0100 <xerox_> this is just a proposal or is it implemented somewhere? https://gitlab.haskell.org/ghc/ghc/-/wikis/view-patterns#implicit-view-functions
2020-12-04 16:36:52 +0100 <boxscape> hmmm I wish I could use `compare `on` fst` to compare (String, String) with (String, String -> Bool)
2020-12-04 16:37:52 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck)
2020-12-04 16:37:55 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-12-04 16:38:03 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
2020-12-04 16:38:54 +0100 <lightwave> merijn: It's not shown as an aside in the book. In this book, I'm hitting a lot of these "aside" things in the middle of learning the basics. hahaha
2020-12-04 16:38:55 +0100jollygood2(~bc8165ab@217.29.117.252)
2020-12-04 16:39:16 +0100dxld(~dxld@80-109-136-248.cable.dynamic.surfer.at) (Remote host closed the connection)
2020-12-04 16:39:18 +0100 <merijn> lightwave: Right, so do you have a sense of the difference between "int" and "Integer"?
2020-12-04 16:39:23 +0100 <xerox_> boxscape: maybe there's a way passing through Arg
2020-12-04 16:39:26 +0100 <boxscape> Seems like that section from a book is a little outdated as well, since kinds of Unlifted types now have different names
2020-12-04 16:39:51 +0100 <xerox_> boxscape: scratch that, the types wouldn't match anyway
2020-12-04 16:40:07 +0100 <lightwave> merijn: Yes, int is a primitive while Integer is a boxed int.
2020-12-04 16:40:20 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2020-12-04 16:40:23 +0100 <lightwave> merijn: kind of like the newtype thingy in haskell?
2020-12-04 16:40:44 +0100 <merijn> lightwave: "lifted" = boxed (roughly) "unlifted" = unboxed/primitive (roughly)
2020-12-04 16:41:57 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-12-04 16:42:11 +0100 <merijn> lightwave: GHC actually has a slightly more nuanced distinction of types, but that's close enough
2020-12-04 16:42:12 +0100z0k(~user@101.50.127.33) (Read error: Connection reset by peer)
2020-12-04 16:42:12 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2020-12-04 16:42:30 +0100dxld(~dxld@rush.pub.dxld.at)
2020-12-04 16:42:43 +0100 <merijn> lightwave: Boxing exists for the same reason too, to accommodate parametric polymorphism (aka Java's generics)
2020-12-04 16:42:52 +0100 <lightwave> merijn: What does "A lifted type is any that can be inhabited by bottom." mean? Bottom (in the british sense) vs. a?? in the american sense? LOL
2020-12-04 16:43:25 +0100 <merijn> lightwave: Bottom in type theory terms is "non-terminating computation"
2020-12-04 16:43:40 +0100da39a3ee5e6b4b0d(~da39a3ee5@mx-ll-171.5.167-167.dynamic.3bb.co.th) (Read error: Connection reset by peer)
2020-12-04 16:44:52 +0100 <merijn> lightwave: Since Haskell is turing complete it's possible to write infinite computations for any possible type. "bottom" is the term used to describe any "non-terminating computation" and any "normal type" can (via laziness) harbor such a non-terminating computation inside
2020-12-04 16:45:31 +0100 <merijn> lightwave: otoh, a machine integer isn't lazy. It's just a machine integer, and thus cannot secretly be infinite
2020-12-04 16:45:54 +0100 <merijn> lightwave: It's a bit weird that it's going into that, because this is some fairly nuanced GHC implementation details stuff :p
2020-12-04 16:46:49 +0100 <lightwave> merijn: I see... so if bottom is in the set for the type, the type is a lifted type?
2020-12-04 16:46:57 +0100 <__monty__> sm[m]: Hmm, I think this might not work for me because I'm making use of cabal's generated data-files modules and ghci can't find those. So I think I need cabal repl. I also don't think -i solves my problem, I don't have deps in other directories.
2020-12-04 16:47:11 +0100 <merijn> lightwave: If you have "x :: Int" then (due to laziness) you can't tell whether you have 1) an actual number or 2) a lazy computation returning a number
2020-12-04 16:47:27 +0100britva(~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119) (Quit: This computer has gone to sleep)
2020-12-04 16:47:39 +0100 <merijn> lightwave: Whereas with "x :: Int#" (the unlifted integer type, thinkg Java's "int") you *know* you have a number
2020-12-04 16:47:39 +0100 <lightwave> What's the best intuitive way to wrap my head around "lift" or "lifted" type...? English is not my language....
2020-12-04 16:48:00 +0100z0k(~user@101.50.127.33)
2020-12-04 16:48:17 +0100 <merijn> lightwave: tbh, mentally replacing "lifted"/"unlifted" with Java's "boxed"/"unboxed" (or primitive) is cloe enough
2020-12-04 16:48:59 +0100 <merijn> It's not 100% accurate, but it's, say, ~95% accurate which is more than good enough for beginners :p
2020-12-04 16:49:30 +0100 <lightwave> Knowing less is more in my Haskell journey... LOL
2020-12-04 16:50:22 +0100 <merijn> lightwave: tbh, for a long time "boxed" was also used in GHC/papers talking about GHC, so it's not that weird to use
2020-12-04 16:50:42 +0100hyperisco_(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Quit: Curry, you fools!)
2020-12-04 16:50:53 +0100 <lightwave> I'm 466 pages into this book and I'm still no where near writing any "fun" program to sratch my itch.
2020-12-04 16:51:04 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2020-12-04 16:51:26 +0100 <merijn> It's...not a "quickly start hacking book", no. There are other, shorter books, though :)
2020-12-04 16:51:27 +0100 <lightwave> Still 800 pages to go. LOL
2020-12-04 16:51:28 +0100jonathanx_(~jonathan@dyn-8-sc.cdg.chalmers.se)
2020-12-04 16:51:31 +0100jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Read error: Connection reset by peer)
2020-12-04 16:52:23 +0100Franciman(~franko@host-212-171-88-43.retail.telecomitalia.it)
2020-12-04 16:52:50 +0100 <Franciman> Hi, what is stackage made of?
2020-12-04 16:52:56 +0100 <lightwave> I told my wife I'm not going to buy a Nintendo Switch until I finish this book by end of year. Bad decision...
2020-12-04 16:53:10 +0100 <Franciman> is there any file representing a stackage snapshot?
2020-12-04 16:53:37 +0100 <sm[m]> big mistake ! :)
2020-12-04 16:54:14 +0100 <hyperisco> https://hackage.haskell.org/package/foldl-1.4.10/docs/Control-Foldl.html#t:EndoM is there another formulation or source of this?
2020-12-04 16:54:18 +0100 <merijn> lightwave: That said, you don't have to stop yourself from writing stuff until you finish the book :p
2020-12-04 16:54:21 +0100 <hyperisco> particularly for folding
2020-12-04 16:54:29 +0100 <hyperisco> Foldable f => f (a -> m a) -> a -> m a
2020-12-04 16:55:24 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
2020-12-04 16:56:05 +0100 <sm[m]> Franciman: build-constraints.yaml in the stackage repo
2020-12-04 16:56:48 +0100 <lightwave> merijn: My brain is constantly distracting me with ideas on how to "rewrite" an existing system with Haskell. Kind of like day-dreaming about the utopia of 100% Haskell & PureScript code base. :-)
2020-12-04 16:57:12 +0100 <Franciman> sm[m], thank shon
2020-12-04 16:57:18 +0100 <lightwave> I'm sure that happens to lots of beginners...
2020-12-04 16:57:52 +0100 <sm[m]> yup
2020-12-04 16:58:08 +0100 <monochrom> IMO it is the fault of HFFP to bring up unlifted types this early. (Yes, 400 pages into is still too early.)
2020-12-04 16:58:16 +0100 <merijn> monochrom: I agree
2020-12-04 16:58:25 +0100 <merijn> I don't recall them being in there, let alone that early
2020-12-04 16:58:27 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-12-04 16:58:36 +0100 <merijn> I'm sure my girlfriend would've been confused and asked me...
2020-12-04 16:58:37 +0100 <monochrom> In fact for most practical purposes you don't even need to know for your entire life.
2020-12-04 16:58:49 +0100 <merijn> lightwave: ^^^ that
2020-12-04 16:59:01 +0100 <lightwave> I'm beginning to see why Haskell is harder to learn for seasoned programmer.
2020-12-04 16:59:14 +0100 <jollygood2> hi. I need to compare images of different size for similarity. what haskell package or packages do you recommend?
2020-12-04 16:59:23 +0100 <sm[m]> HFFFP is the book #haskell would write given unlimited time :)
2020-12-04 16:59:28 +0100 <merijn> lightwave: Naah, this is just poor pedagogical timing
2020-12-04 16:59:38 +0100 <merijn> lightwave: (of the book)
2020-12-04 16:59:48 +0100 <monochrom> When do you need to know: you read asm code generated by GHC, or you want to write the next generation vector library, or you contribute to GHC... low-level stuff.
2020-12-04 16:59:53 +0100alp(~alp@88.126.45.36)
2020-12-04 17:00:05 +0100 <sm[m]> lightwave: there are other books that move along faster
2020-12-04 17:00:18 +0100 <merijn> lightwave: unlifted types are interesting if you wanna, say, write super high performance code/etc. not for "I wanna write a simple application"
2020-12-04 17:00:27 +0100 <Taneb> I've been writing Haskell for like a decade now and I don't think I've ever really needed to know about unlifted types
2020-12-04 17:00:47 +0100 <Taneb> Except for when I was trying to a write a program that would go faster than the one my friend wrote in C++ or something
2020-12-04 17:01:08 +0100 <monochrom> Well, I avoided the magic trigger word "performance" because everyone goes overboard with "performance".
2020-12-04 17:01:21 +0100 <lightwave> sm[m]: I was reading PureScript by Example and then found it to be too sparse in details.
2020-12-04 17:01:25 +0100 <merijn> monochrom: Also true
2020-12-04 17:02:10 +0100 <merijn> monochrom: That's because most programmers don't understand shit about performance :)
2020-12-04 17:02:11 +0100 <lightwave> monochrom: hear hear
2020-12-04 17:02:13 +0100 <sm[m]> lightwave: it's good to have a place to turn when you want more details, maybe LHFFP is that
2020-12-04 17:02:48 +0100 <lightwave> sm[m]: What's LHFFP?
2020-12-04 17:03:04 +0100 <Franciman> sm[m], wait, but in the build-constraints I see no constraints :)
2020-12-04 17:03:23 +0100 <sm[m]> I'm trying to remember the acronym for the book you're talking about, and probably failing. Even that is too long for me :)
2020-12-04 17:03:49 +0100 <Franciman> Learning Haskell for Future Proof
2020-12-04 17:03:51 +0100 <Franciman> ?
2020-12-04 17:04:05 +0100benjamingr__(uid23465@gateway/web/irccloud.com/x-jwefvpayxcoyisfw)
2020-12-04 17:04:15 +0100 <sm[m]> Franciman: they're implied somehow, I forget the details but read me should say
2020-12-04 17:04:23 +0100 <Franciman> oh great, thanks
2020-12-04 17:04:43 +0100 <lightwave> Oh the book I'm reading is "Haskell Programming from first principal"
2020-12-04 17:05:04 +0100 <sm[m]> HPFFP. Thank you
2020-12-04 17:05:44 +0100 <sm[m]> very unmemorable alas
2020-12-04 17:06:48 +0100 <lightwave> The book "Real World Haskell" is more appealing but perhaps a bit dated?
2020-12-04 17:06:58 +0100 <boxscape> sm[m] I just think of it as haskellbook
2020-12-04 17:07:02 +0100 <boxscape> @where haskellbook
2020-12-04 17:07:02 +0100 <lambdabot> http://haskellbook.com
2020-12-04 17:07:19 +0100ubert(~Thunderbi@p200300ecdf1e53c9e6b318fffe838f33.dip0.t-ipconnect.de)
2020-12-04 17:07:27 +0100 <sm[m]> lightwave: yes. One I like is
2020-12-04 17:07:27 +0100 <sm[m]> @where HTAC
2020-12-04 17:07:27 +0100 <lambdabot> "Haskell Tutorial and Cookbook" by Mark Watson in 2017-09-04 at <https://leanpub.com/haskell-cookbook>
2020-12-04 17:07:28 +0100 <boxscape> lightwave definitely dated
2020-12-04 17:07:33 +0100 <ski> @where HPFFP
2020-12-04 17:07:33 +0100 <lambdabot> "Haskell Programming: from first principles - Pure functional programming without fear or frustration" by Chistopher Allen (bitemyapp),Julie Moronuki at <http://haskellbook.com/>,#haskell-beginners
2020-12-04 17:07:47 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-04 17:08:00 +0100skiisn't really fond of the name "haskellbook"
2020-12-04 17:08:28 +0100 <sm[m]> yup, we have more than one
2020-12-04 17:09:27 +0100 <int-e> ski: quick, register thehaskellbook.com
2020-12-04 17:11:18 +0100 <int-e> https://haskellbooks.com/ haha
2020-12-04 17:11:26 +0100 <int-e> (fair enough)
2020-12-04 17:11:50 +0100conal(~conal@64.71.133.70)
2020-12-04 17:12:21 +0100 <int-e> (and in fact the existence of that domain makes haskellbook.com slightly more questionable to my mind)
2020-12-04 17:12:39 +0100 <maerwald> boxscape: have the lawsuits around that book settled? >:)
2020-12-04 17:12:45 +0100 <boxscape> no clue
2020-12-04 17:12:58 +0100 <merijn> I thought they were settled out of court?
2020-12-04 17:13:01 +0100 <Franciman> oh I found out about jenga, such a great project
2020-12-04 17:13:13 +0100 <Franciman> soon stack will be useless, except for being hipster
2020-12-04 17:13:52 +0100 <maerwald> there's also stack2cabal
2020-12-04 17:14:09 +0100 <maerwald> and jenga is deprecated
2020-12-04 17:14:14 +0100 <Franciman> oh :<
2020-12-04 17:14:15 +0100 <Franciman> why
2020-12-04 17:14:19 +0100 <sm[m]> ha I'd take that bet
2020-12-04 17:14:22 +0100 <maerwald> because it says so on hackage
2020-12-04 17:14:24 +0100 <sm[m]> damn too late
2020-12-04 17:14:25 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-04 17:15:01 +0100 <merijn> Readme of that still mentions sandboxes :p
2020-12-04 17:15:02 +0100 <Franciman> why don't we create our own version of stackage that doesn't rely on amazon?
2020-12-04 17:15:11 +0100 <Franciman> ah, because we are poor
2020-12-04 17:15:16 +0100 <merijn> Franciman: So..."hackage"? :p
2020-12-04 17:15:25 +0100 <Franciman> merijn, does hackage provide snapshots?
2020-12-04 17:15:33 +0100 <Franciman> of working together packages?
2020-12-04 17:15:36 +0100 <Franciman> like a distro
2020-12-04 17:15:46 +0100 <maerwald> Franciman: yes, it's called stackages snapshots :D
2020-12-04 17:15:52 +0100 <Franciman> lolz
2020-12-04 17:15:53 +0100 <maerwald> those are just version infos
2020-12-04 17:15:59 +0100 <maerwald> so you just use that
2020-12-04 17:16:01 +0100 <merijn> Franciman: Sure, just make a freeze file :p
2020-12-04 17:16:09 +0100 <lightwave> What? Stackage will be gone? Why?
2020-12-04 17:16:15 +0100 <Franciman> no it won't
2020-12-04 17:16:26 +0100 <merijn> lightwave: That was wishful thinking by some people :)
2020-12-04 17:16:31 +0100 <Franciman> merijn, if I can translate stackage files fo cabal freezes
2020-12-04 17:16:38 +0100 <Franciman> it'd be great
2020-12-04 17:16:48 +0100 <maerwald> well, stack has a saner file format than Cabal, that you can actually use and parse yourself
2020-12-04 17:17:03 +0100 <sm[m]> Franciman: I think stackage provides that somewhere
2020-12-04 17:17:21 +0100conal(~conal@64.71.133.70) (Read error: Connection reset by peer)
2020-12-04 17:17:27 +0100 <maerwald> so I wouldn't want it to die, just so I can still abuse stack2cabal to generate my cabal.project files for me
2020-12-04 17:17:36 +0100 <lightwave> Any haskeller here using PureScript to build the front-end?
2020-12-04 17:17:41 +0100conal(~conal@64.71.133.70)
2020-12-04 17:18:09 +0100 <Franciman> sm[m], it's a bit obscure where
2020-12-04 17:18:10 +0100 <Franciman> yeah
2020-12-04 17:18:16 +0100 <merijn> maerwald: Hard disagree on any implication that YAML is sane >.>
2020-12-04 17:18:16 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
2020-12-04 17:18:38 +0100 <maerwald> merijn: don't tell me cabal file format is sane :o
2020-12-04 17:18:53 +0100 <Franciman> what would be a cool format?
2020-12-04 17:18:58 +0100 <maerwald> and there are zero tools that can deal with it other than a huge 300module monolith
2020-12-04 17:19:00 +0100 <merijn> maerwald: I didn't say so, but at least that one is improving, unlike YAML
2020-12-04 17:19:03 +0100 <Franciman> let's write a compiler
2020-12-04 17:19:16 +0100 <Franciman> I like TOML
2020-12-04 17:19:17 +0100 <Franciman> topkek
2020-12-04 17:19:29 +0100 <maerwald> yes, toml, yaml, anything is better than cabal format
2020-12-04 17:19:44 +0100 <merijn> maerwald: Tools can only "deal" with yaml in the sense that it can turn your file into a nested dictionary
2020-12-04 17:19:53 +0100 <maerwald> yes, that's already a huge win
2020-12-04 17:19:57 +0100 <merijn> maerwald: If you wanna actually parse it you still gotta write a parser on top of that
2020-12-04 17:20:21 +0100 <maerwald> so tools like stack2cabal don't really need to interface or depend on stack, they can just easily parse the yaml themselves
2020-12-04 17:20:25 +0100 <Franciman> I agree with maerwald about cabal being an arcane format only supported by a huge lib
2020-12-04 17:20:35 +0100 <maerwald> with cabal, you have to depend on Cabal the library and that's no fun :)
2020-12-04 17:20:38 +0100 <merijn> maerwald: The latest CABAL spec is already more parseable. Splitting of a seperate parser lib is feasible, but someone would have to actually do it
2020-12-04 17:21:54 +0100 <maerwald> custom file formats are always a bad idea for things that will be used by a large number of ppl
2020-12-04 17:22:06 +0100 <Franciman> agree
2020-12-04 17:22:48 +0100 <operand> Hi, I'm trying to use Megaparsec's Lexer components, but I feel like I'm misunderstanding something.
2020-12-04 17:23:05 +0100 <merijn> YAML doesn't eliminate any of the customness. It just means parsing dictionaries instead of text
2020-12-04 17:23:36 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
2020-12-04 17:23:41 +0100 <operand> Is the 'lexeme' function (when supplied with a space consumer) not supposed to strip trailing whitespace and then run the parser on the result?
2020-12-04 17:23:47 +0100 <operand> Is it the other way around, perhaps?
2020-12-04 17:23:54 +0100 <dcoutts_> yaml was not a popular format when the original Cabal spec was written
2020-12-04 17:23:58 +0100dcoutts_dcoutts
2020-12-04 17:24:18 +0100 <merijn> XML was popular when Cabal was written :p
2020-12-04 17:24:25 +0100 <dcoutts> yeah, exactly
2020-12-04 17:24:29 +0100 <Franciman> still better than cabal, imho
2020-12-04 17:24:32 +0100 <merijn> So be happy you don't have Maven's insanity
2020-12-04 17:24:45 +0100 <merijn> Franciman: What, specifically, is so bad about the format?
2020-12-04 17:24:51 +0100 <maerwald> I have PTSD from XML, no thanks
2020-12-04 17:24:54 +0100cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone)
2020-12-04 17:25:01 +0100 <Franciman> the fact that you don't have a simple library for parsing it
2020-12-04 17:25:03 +0100 <merijn> Sure, the fact that *currently* the only parser is embedded in Cabal itself is unfortunate
2020-12-04 17:25:07 +0100 <Franciman> is a huge downside
2020-12-04 17:25:08 +0100Axma88579(~Axman6@pdpc/supporter/student/Axman6) (Read error: Connection reset by peer)
2020-12-04 17:25:10 +0100 <lightwave> maerwald: I still have to suffer from XML torture...
2020-12-04 17:25:14 +0100 <merijn> Franciman: *that* is not a complaint about the format
2020-12-04 17:25:24 +0100Axman6(~Axman6@pdpc/supporter/student/Axman6)
2020-12-04 17:25:26 +0100 <Franciman> well it is a complain about the choices made
2020-12-04 17:25:29 +0100 <maerwald> merijn: it is, because common formats already have all the tools
2020-12-04 17:25:36 +0100 <merijn> Franciman: That's a complaint about the lack of an external parser. Which is valid, but different
2020-12-04 17:25:40 +0100 <merijn> maerwald: Which tools?
2020-12-04 17:25:48 +0100 <maerwald> parsers, formatters, anything
2020-12-04 17:25:53 +0100 <dcoutts> but you don't just want a parser, but all the types for representing the contents
2020-12-04 17:25:56 +0100 <merijn> Franciman: There was no "choice made" to not have an external parser
2020-12-04 17:26:01 +0100 <int-e> merijn: the real complaint I have is about the awkwardness of multi-line text fields (synopsis)
2020-12-04 17:26:12 +0100 <merijn> Franciman: No one has implemented one, therefore there is none
2020-12-04 17:26:12 +0100 <maerwald> schemas, validators
2020-12-04 17:26:27 +0100 <merijn> maerwald: There is a schema and validator it's just in Cabal.
2020-12-04 17:26:44 +0100 <Franciman> fair point, but still
2020-12-04 17:26:49 +0100 <merijn> I'll be the first to say that splitting up Cabal is probably a wise decisions
2020-12-04 17:27:21 +0100 <Franciman> also using a non custom format, implies more support
2020-12-04 17:27:23 +0100 <merijn> But given that all of Cabal and cabal-install is maintained by like 1.5 people, I suggest that if you want things to be better, you start coding this better world
2020-12-04 17:27:55 +0100 <int-e> And I'm really glad that it's not XML.
2020-12-04 17:28:08 +0100 <merijn> tbh, phadej is already performing minor miracles as it is
2020-12-04 17:28:25 +0100 <merijn> Complaining is easy
2020-12-04 17:28:44 +0100 <Franciman> merijn, I'm not complaining, though, I'm discussing
2020-12-04 17:28:48 +0100 <Franciman> not saying cabal sucks
2020-12-04 17:28:52 +0100 <Franciman> or else
2020-12-04 17:29:04 +0100 <Franciman> I said that not using a custom format, could have been easier
2020-12-04 17:29:11 +0100 <maerwald> merijn: cabal development is pretty closed doors afais, for some historical reasons. I'd say that may be one of the reasons it doesn't attract many contributors (apart from the complexity)
2020-12-04 17:29:19 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 246 seconds)
2020-12-04 17:29:23 +0100 <merijn> Franciman: Easy to say, 16 (?) years later
2020-12-04 17:29:36 +0100 <Franciman> yes, that's why I'm saying it :P
2020-12-04 17:29:47 +0100 <merijn> maerwald: How so? You get contributor access by simply opening a PR, pretty much >.>
2020-12-04 17:30:11 +0100 <Franciman> I think maerwald means that it is hard to get started at understanding what is going on both now and in the future directions
2020-12-04 17:30:15 +0100 <Franciman> at least that's what I felt
2020-12-04 17:30:45 +0100 <int-e> Franciman: IIRC the state of the art at the time were 1) key=value config files with [sections] and no nesting and 2) XML.
2020-12-04 17:30:48 +0100 <maerwald> merijn: Well, there are some plans about upcoming cabal features, which I was told about *in private* :)
2020-12-04 17:31:02 +0100 <maerwald> And I did not leak them
2020-12-04 17:31:07 +0100 <merijn> Franciman: Development is pretty "I need this driven"
2020-12-04 17:31:21 +0100 <int-e> XML is godawful for writing by hand, and lack of nesting ruled out config files
2020-12-04 17:31:29 +0100 <maerwald> so it seems sharing visions and directions is done behind closed doors in private meetings and conversations
2020-12-04 17:31:33 +0100 <lightwave> More like "I need this yesterday"
2020-12-04 17:32:08 +0100 <merijn> maerwald: Most of the discussions is on IRC in #hackage and/or github issues, tbh
2020-12-04 17:32:18 +0100 <maerwald> merijn: and I think the historical reason is that nix-style builds was in fact *planned* prior to stack, but stack then implemented it first
2020-12-04 17:32:37 +0100 <maerwald> (announced even)
2020-12-04 17:32:42 +0100 <merijn> maerwald: v2 implementation started prior to stack
2020-12-04 17:32:48 +0100 <merijn> (not just planning)
2020-12-04 17:32:50 +0100 <maerwald> yeah
2020-12-04 17:32:56 +0100 <Franciman> int-e, ok right
2020-12-04 17:33:04 +0100 <Franciman> then it seems a forced decision
2020-12-04 17:33:17 +0100 <merijn> maerwald: There's no real "behind closed doors", tbh
2020-12-04 17:33:53 +0100 <merijn> maerwald: It's more "there's no real venue for design discussions at all, and most of the vision is spread by osmosis", I think :p
2020-12-04 17:34:29 +0100 <maerwald> sure, I'm just speculating... hard to verify either theory
2020-12-04 17:34:40 +0100 <sm[m]> Franciman: later hpack came along and made it easy to write cabal files in yaml. Stack integrated this as an option but cabal-install didn't (yet!)
2020-12-04 17:34:49 +0100boxscape(54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) (Quit: Ping timeout (120 seconds))
2020-12-04 17:35:01 +0100 <merijn> maerwald: Well, I like to think I'm keep a close track of cabal development and the occasional patch and *I* don't know of any such venue :p
2020-12-04 17:35:03 +0100 <maerwald> hpack was a good idea, but ppl used it wrong
2020-12-04 17:35:12 +0100 <merijn> sm[m]: It's not happening
2020-12-04 17:35:21 +0100Yumasi(~guillaume@2a01:e0a:5cb:4430:e1ea:8f38:f518:4e69) (Ping timeout: 272 seconds)
2020-12-04 17:35:24 +0100 <dolio> YAML only helps get you a concrete parse tree, so the hypothetical wider 'support' would probably be a bunch of buggy tools that each implement their own incorrect version of the actual cabal file format.
2020-12-04 17:35:45 +0100 <maerwald> dolio: that's web scale
2020-12-04 17:35:51 +0100 <merijn> dolio: Sure, but no one wants to admit that harsh truth
2020-12-04 17:36:01 +0100 <sm[m]> Re closed doors, it takes extra time and energy to lead things in an open transparent manner, stack has had a bit more of that kind of leadership
2020-12-04 17:36:03 +0100 <merijn> dolio: Everything's just strings!
2020-12-04 17:36:19 +0100zaquest(~notzaques@5.128.210.178)
2020-12-04 17:36:20 +0100 <int-e> merijn: let's hack something in perl with regular expressions
2020-12-04 17:36:20 +0100zaquest(~notzaques@5.128.210.178) (Remote host closed the connection)
2020-12-04 17:36:30 +0100 <int-e> (is that redundant?)
2020-12-04 17:37:02 +0100 <merijn> sm[m]: hpack is basically an anti-feature and one of these days I'll get around to writing a bunch of blogs on why >.>
2020-12-04 17:37:09 +0100 <dcoutts> maerwald: what makes you think it's closed world. It's all there on github. Same as everything else. We'd really like more contributors. The problem is the lack of contributors.
2020-12-04 17:37:46 +0100 <merijn> dcoutts: Well, one problem is that there is, afaik, no high level overview of what is roughly where in the codebase
2020-12-04 17:37:53 +0100 <maerwald> dcoutts: open source alone doesn't imply "open development". I make a distinction of those
2020-12-04 17:38:04 +0100 <maerwald> And this is without any judgement
2020-12-04 17:38:06 +0100 <merijn> dcoutts: So every time I do something I spend ages delving through code and bugging phadej if he knows
2020-12-04 17:38:32 +0100 <maerwald> open development can also crash a project (the SVN devs talked about that once)
2020-12-04 17:38:50 +0100 <merijn> dcoutts: Especially the inversion of cabal-install calling into Cabal messes me up every single time
2020-12-04 17:40:21 +0100 <maerwald> (e.g. I consider NixOS too much of open development)
2020-12-04 17:40:51 +0100Guest_68(48307fac@72.48.127.172)
2020-12-04 17:40:58 +0100neiluj(~jco@91-167-203-101.subs.proxad.net)
2020-12-04 17:41:49 +0100phaul(~phaul@ruby/staff/phaul)
2020-12-04 17:42:23 +0100 <dcoutts> merijn: would something like this be useful, if it were more comprehensive? https://github.com/haskell/cabal/wiki/Source-Guide
2020-12-04 17:43:25 +0100 <dcoutts> merijn: what do you mean by inversion? Confusing that cabal calls into the Cabal lib, or that is runs the Setup.hs exe, or both or?
2020-12-04 17:44:13 +0100 <maerwald> dcoutts: well, one other way I could think of is that big companies allow employees to spend some time on e.g. cabal and get paid for that as well. It happens with GHC, why is cabal a 2nd class citizen here?
2020-12-04 17:44:13 +0100alx741(~alx741@186.178.110.235) (Ping timeout: 260 seconds)
2020-12-04 17:45:07 +0100Guest_68(48307fac@72.48.127.172) (Remote host closed the connection)
2020-12-04 17:45:35 +0100 <dcoutts> maerwald: do you realise that IOHK does pay for 0.5 FTE on cabal?
2020-12-04 17:45:45 +0100 <maerwald> :o
2020-12-04 17:47:52 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 246 seconds)
2020-12-04 17:47:58 +0100 <sm[m]> I did not. Thanks IOHK!
2020-12-04 17:48:18 +0100 <maerwald> Yeah, where's the banner in the README :)
2020-12-04 17:48:33 +0100 <sm[m]> where is that time being spent I wonder. The ghc work has some great monthly reporting
2020-12-04 17:48:39 +0100urek(~urek@2804:7f1:e10a:9644:2492:fd7b:c739:6641) (Ping timeout: 272 seconds)
2020-12-04 17:50:21 +0100 <maerwald> sm[m]: you just look up the commit history of phadej :p
2020-12-04 17:50:27 +0100 <maerwald> there's no other metric
2020-12-04 17:51:11 +0100phaul(~phaul@ruby/staff/phaul)
2020-12-04 17:51:58 +0100 <sm[m]> phadej seemed a bit conflicted about working on cabal last time we chatted
2020-12-04 17:52:21 +0100ubert1(~Thunderbi@p200300ecdf1e53cfe6b318fffe838f33.dip0.t-ipconnect.de)
2020-12-04 17:52:22 +0100 <merijn> dcoutts: cabal-install parsing everything, then serialising back into strings to pass to Cabal
2020-12-04 17:52:22 +0100ubert(~Thunderbi@p200300ecdf1e53c9e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-12-04 17:52:23 +0100ubert1ubert
2020-12-04 17:52:32 +0100 <sm[m]> maybe 1.0 FTE would make a big difference, dunno
2020-12-04 17:52:48 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
2020-12-04 17:52:59 +0100 <Uniaika> merijn: sweet hell
2020-12-04 17:52:59 +0100 <merijn> dcoutts: Ah, I think that was missing when I last hacked on it
2020-12-04 17:53:01 +0100 <sm[m]> Like (I assume) bgamari is a FTE for ghc
2020-12-04 17:53:09 +0100 <merijn> Uniaika: hmm?
2020-12-04 17:53:40 +0100 <merijn> dcoutts: tbh, mostly it's Cabal's option parser that is confusing as fuck
2020-12-04 17:53:47 +0100zaquest(~notzaques@5.128.210.178)
2020-12-04 17:54:02 +0100 <Uniaika> merijn: the string serialisation between the cli tool and the lib
2020-12-04 17:54:03 +0100 <dcoutts> merijn: cli parser you mean?
2020-12-04 17:54:03 +0100zaquest(~notzaques@5.128.210.178) (Remote host closed the connection)
2020-12-04 17:54:07 +0100 <merijn> dcoutts: Yeah
2020-12-04 17:54:19 +0100sm[m]thinks what real world cli parser isn't
2020-12-04 17:54:23 +0100 <merijn> dcoutts: Like, it took me 5+ days to add an option to a command
2020-12-04 17:54:32 +0100 <merijn> sm[m]: Clearly you have not looked at Cabal's
2020-12-04 17:55:08 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-12-04 17:55:37 +0100 <dcoutts> merijn: to get rid of the serialsing back to strings, we'd have to eliminate the build-type Custom, and stop invoking Setup.hs scripts as external processes.
2020-12-04 17:55:58 +0100 <merijn> I can't even explain why it's so confusing because my understanding is insufficient to describe it well enough to point it out
2020-12-04 17:56:08 +0100 <merijn> dcoutts: I know *why* it exists
2020-12-04 17:56:20 +0100 <merijn> dcoutts: But tht doesn't make it any easier to work on :p
2020-12-04 17:56:36 +0100 <dcoutts> eliminating build-type custom would make a lot of things easier, but also break a lot of packages
2020-12-04 17:56:40 +0100 <dcoutts> it's quite awkward
2020-12-04 17:56:55 +0100alx741(~alx741@186.178.110.235)
2020-12-04 17:57:00 +0100 <merijn> dcoutts: And really, the serialising to strings wouldn't be so bad if Cabal's CLI was understandable by mere mortals without losing their mind like a Lovecraft protagonist ;)
2020-12-04 17:58:27 +0100mimagic(~mimagic@201.82.37.29)
2020-12-04 17:58:31 +0100Ariakenom(~Ariakenom@h-98-128-229-53.NA.cust.bahnhof.se)
2020-12-04 18:01:28 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-npckdfwtcapekmuw)
2020-12-04 18:04:33 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Remote host closed the connection)
2020-12-04 18:05:18 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
2020-12-04 18:06:00 +0100vicfred(~vicfred@unaffiliated/vicfred)
2020-12-04 18:08:04 +0100knupfer(~Thunderbi@200116b82c9bc0005da51f6efb192e42.dip.versatel-1u1.de) (Ping timeout: 240 seconds)
2020-12-04 18:08:31 +0100Codaraxis_(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 246 seconds)
2020-12-04 18:09:31 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-12-04 18:10:11 +0100hackagetime-compat 1.9.5 - Compatibility package for time https://hackage.haskell.org/package/time-compat-1.9.5 (phadej)
2020-12-04 18:10:17 +0100Codaraxis_(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2020-12-04 18:10:31 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-12-04 18:11:18 +0100DavidEichmann(~david@62.110.198.146.dyn.plus.net)
2020-12-04 18:14:32 +0100Varis(~Tadas@unaffiliated/varis)
2020-12-04 18:16:29 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272)
2020-12-04 18:16:53 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-12-04 18:17:31 +0100kuribas(~user@ptr-25vy0i8rcepunzqy0n7.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2020-12-04 18:18:22 +0100Codaraxis_(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Remote host closed the connection)
2020-12-04 18:18:49 +0100Codaraxis_(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2020-12-04 18:22:31 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2020-12-04 18:23:08 +0100Codaraxis_(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Remote host closed the connection)
2020-12-04 18:23:34 +0100Codaraxis_(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2020-12-04 18:23:59 +0100falafel_(~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net)
2020-12-04 18:24:01 +0100urek(~urek@191.32.138.229)
2020-12-04 18:24:28 +0100falafel_(~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net) (Remote host closed the connection)
2020-12-04 18:25:32 +0100urek(~urek@191.32.138.229) (Remote host closed the connection)
2020-12-04 18:25:38 +0100xff0x_(~fox@2001:1a81:53bd:d700:34e2:7dfe:e47a:7867) (Ping timeout: 260 seconds)
2020-12-04 18:25:59 +0100urek(~urek@2804:7f1:e10a:a8d:f425:3992:76ae:78b0)
2020-12-04 18:26:16 +0100xff0x_(~fox@2001:1a81:53bd:d700:fbfe:51a:3f37:b15)
2020-12-04 18:27:44 +0100Codaraxis_(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Remote host closed the connection)
2020-12-04 18:28:09 +0100Codaraxis_(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2020-12-04 18:28:36 +0100coot(~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-12-04 18:31:34 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-12-04 18:31:35 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-12-04 18:31:44 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-12-04 18:32:17 +0100coot(~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl)
2020-12-04 18:32:38 +0100 <koz_> :t (*>)
2020-12-04 18:32:39 +0100 <lambdabot> Applicative f => f a -> f b -> f b
2020-12-04 18:35:33 +0100conal(~conal@64.71.133.70)
2020-12-04 18:35:55 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
2020-12-04 18:36:04 +0100ubert(~Thunderbi@p200300ecdf1e53cfe6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-12-04 18:37:19 +0100 <koz_> :t (>>)
2020-12-04 18:37:20 +0100 <lambdabot> Monad m => m a -> m b -> m b
2020-12-04 18:37:24 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-04 18:37:25 +0100 <koz_> Today I realized.
2020-12-04 18:38:55 +0100gioyik(~gioyik@186.112.99.244)
2020-12-04 18:39:02 +0100 <merijn> :p
2020-12-04 18:40:07 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272) (Remote host closed the connection)
2020-12-04 18:42:40 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru)
2020-12-04 18:43:32 +0100 <dsal> I think >> is in monad of no return
2020-12-04 18:43:56 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds)
2020-12-04 18:46:48 +0100alp(~alp@88.126.45.36) (Ping timeout: 256 seconds)
2020-12-04 18:47:05 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2020-12-04 18:47:27 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection)
2020-12-04 18:47:29 +0100phaul(~phaul@ruby/staff/phaul)
2020-12-04 18:48:14 +0100coot(~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-12-04 18:51:03 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck) (Ping timeout: 240 seconds)
2020-12-04 18:53:49 +0100pokid(~pokid@unaffiliated/pokid)
2020-12-04 18:54:50 +0100jamm_(~jamm@unaffiliated/jamm)
2020-12-04 18:56:25 +0100urek(~urek@2804:7f1:e10a:a8d:f425:3992:76ae:78b0) (Ping timeout: 272 seconds)
2020-12-04 18:58:34 +0100urek(~urek@179.187.114.53.dynamic.adsl.gvt.net.br)
2020-12-04 18:59:04 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds)
2020-12-04 19:00:32 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2020-12-04 19:02:14 +0100jneira(5127ade4@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.228) (Ping timeout: 272 seconds)
2020-12-04 19:02:25 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272)
2020-12-04 19:05:23 +0100raichoo(~raichoo@213.240.178.58) (Quit: Lost terminal)
2020-12-04 19:06:52 +0100 <ezzieyguywuf> glguy: why is the arguement order in Config.Schema.Spec.reqSection' as it is, rather than "reqSection' :: Text -> Text -> ValueSpec a -> SectionSpec a"? it'd seem that flipping the last two would make it easier to describe nested specs in-line
2020-12-04 19:07:44 +0100 <glguy> ezzieyguywuf: because I expected the documentation string to be long and probably on a separate line
2020-12-04 19:08:12 +0100 <ezzieyguywuf> hrm, I see
2020-12-04 19:08:41 +0100 <glguy> ezzieyguywuf: and I try to name the nested things, I haven't built very complicated things to use locally with reqSection
2020-12-04 19:08:58 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection)
2020-12-04 19:09:28 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2020-12-04 19:09:44 +0100 <ezzieyguywuf> glguy: yea, I was just thinking that naming them probably makes the most sense anyway
2020-12-04 19:10:52 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
2020-12-04 19:11:01 +0100jneira(02896aa1@gateway/web/cgi-irc/kiwiirc.com/ip.2.137.106.161)
2020-12-04 19:11:06 +0100 <Franciman> Hi, do you prefer github or gitlab for contributing to haskell and/or ghc?
2020-12-04 19:11:21 +0100 <Franciman> haskell projects*
2020-12-04 19:13:08 +0100 <sm[m]> ghc uses gitlab, most others use github
2020-12-04 19:14:13 +0100gioyik(~gioyik@186.112.99.244) (Ping timeout: 265 seconds)
2020-12-04 19:14:58 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-04 19:15:21 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-04 19:17:57 +0100 <Franciman> yes I mean what would be your personal preference?
2020-12-04 19:18:23 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds)
2020-12-04 19:19:45 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2020-12-04 19:19:46 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2020-12-04 19:20:15 +0100 <jle`> it will probably depend on what haskell project you want to contribute to
2020-12-04 19:20:27 +0100 <jle`> unless you are asking, if you could decide for other people
2020-12-04 19:21:06 +0100pavonia(~user@unaffiliated/siracusa)
2020-12-04 19:22:36 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds)
2020-12-04 19:22:51 +0100 <maerwald> Franciman: I self-host and use github as an availability mirror
2020-12-04 19:22:53 +0100chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2020-12-04 19:23:27 +0100 <Franciman> jle`, if you could decide, yes
2020-12-04 19:24:30 +0100 <merijn> Ideally neither, since those both involve using git ;)
2020-12-04 19:24:42 +0100 <Franciman> :')
2020-12-04 19:24:49 +0100 <Franciman> are you a pijul user?
2020-12-04 19:25:02 +0100 <merijn> It's on my list to play with Soon (TM)
2020-12-04 19:25:02 +0100 <Franciman> or you like exponential merge problems?
2020-12-04 19:25:11 +0100 <merijn> But I wanted to wait until it's out of alpha
2020-12-04 19:25:22 +0100 <merijn> Franciman: I mostly use Mercurial :p
2020-12-04 19:25:27 +0100 <Franciman> i learnt there is some project for darcs 3, can't wait
2020-12-04 19:25:33 +0100 <Franciman> merijn, rly? I found it really hard
2020-12-04 19:25:42 +0100 <maerwald> branches are weird in mercurial
2020-12-04 19:25:49 +0100 <merijn> Franciman: What? It's soo much simpler than git
2020-12-04 19:26:00 +0100 <maerwald> you can't force push your development branch
2020-12-04 19:26:03 +0100 <Franciman> ehe I don't know, I couldn't learn it, but maybe I'll give it another go
2020-12-04 19:26:11 +0100xff0x_(~fox@2001:1a81:53bd:d700:fbfe:51a:3f37:b15) (Ping timeout: 272 seconds)
2020-12-04 19:26:12 +0100 <merijn> maerwald: no they're not, you just gotta realised that "named branched" /= "git branches"
2020-12-04 19:26:29 +0100xff0x_(~fox@2001:1a81:53bd:d700:8188:2e86:d7e3:d195)
2020-12-04 19:26:38 +0100 <merijn> maerwald: Also, you can force push if you're pushing to a "non-publishing" repo
2020-12-04 19:26:50 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-04 19:26:57 +0100 <merijn> In fact, the phase distinction and evolve are major reasons why I think mercurial is better than git
2020-12-04 19:27:01 +0100 <maerwald> yeah, I created a PR and wanted to update it... but I couldn't
2020-12-04 19:27:04 +0100 <maerwald> great
2020-12-04 19:27:23 +0100 <merijn> (although I'm currently using Mercurial as user-friendly UI for git)
2020-12-04 19:27:51 +0100 <maerwald> git rebases are awful, but the concept of everything is state is probably easier for most ppl
2020-12-04 19:28:06 +0100 <merijn> Easier than what?
2020-12-04 19:28:12 +0100 <maerwald> everything is a patch
2020-12-04 19:28:13 +0100 <Franciman> i rly like darcs, honestly, but too scared of the exponential merge problem
2020-12-04 19:28:34 +0100 <dolio> Saying something about exponential merges is how you know someone's knowledge about darcs is like 10 years old.
2020-12-04 19:28:47 +0100 <Franciman> dolio, PLZ EXPLAIN SAR
2020-12-04 19:28:49 +0100 <Franciman> are they solved?
2020-12-04 19:28:53 +0100 <Franciman> I mean always
2020-12-04 19:28:58 +0100 <Franciman> can't they happen anymore?
2020-12-04 19:29:48 +0100 <Franciman> I'd read with darcs 2, it got harder to get into exp merges, but they still can happen
2020-12-04 19:29:51 +0100 <Franciman> I'm scared AF
2020-12-04 19:30:12 +0100 <dolio> Did you know Hindley-Milner is double-exponential?
2020-12-04 19:30:18 +0100 <Franciman> I do
2020-12-04 19:30:20 +0100 <Franciman> so what
2020-12-04 19:30:30 +0100 <Franciman> pijul doesn't have exp merges
2020-12-04 19:30:57 +0100 <dolio> Because what matters is whether cases where it happens actually come up.
2020-12-04 19:31:07 +0100 <Franciman> not from the theoretical standpoint
2020-12-04 19:31:18 +0100 <Franciman> it's interesting if you can solve it
2020-12-04 19:32:00 +0100 <tomsmeding> I thought I'd heard that HM is only exponential if the inferred type is also exponentially-sized, but perhaps that's a misunderstanding on my side?
2020-12-04 19:32:30 +0100 <dolio> I think it is unknown whether the only cases are 'large types', but those are the obvious ones.
2020-12-04 19:33:10 +0100 <tomsmeding> because for type checking I think having reasonable complexity in inputsize+outputsize is fine, even if that means it's exponential in just inputsize
2020-12-04 19:33:36 +0100 <dolio> Anyhow, the original statement wasn't that it is 'theoretically interesting' to fix all possible merge problems. It was that you are "scared" of using a tool for practical purposes.
2020-12-04 19:33:54 +0100 <tomsmeding> but ah, if it's unknown then TIL :)
2020-12-04 19:34:07 +0100 <Franciman> dolio, no, I don't use darcs
2020-12-04 19:34:08 +0100plakband(~plakband@softbank126074182017.bbtec.net)
2020-12-04 19:34:09 +0100 <Franciman> I'm scared of it
2020-12-04 19:34:19 +0100texasmynsted(~texasmyns@212.102.44.36) ()
2020-12-04 19:34:24 +0100texasmynsted(~texasmyns@212.102.44.36)
2020-12-04 19:34:34 +0100 <Franciman> because its theory still contemplates the possibility of exp merges
2020-12-04 19:34:51 +0100texasmynsted(~texasmyns@212.102.44.36) ()
2020-12-04 19:34:55 +0100 <tomsmeding> hence dolio's point, do you also not use HM because you're scared of it?
2020-12-04 19:34:57 +0100 <Franciman> I meant from the theoretical point of view
2020-12-04 19:35:21 +0100texasmynsted(~texasmyns@212.102.44.36)
2020-12-04 19:35:35 +0100 <Franciman> if there were a better solution, yes I would be scared of it
2020-12-04 19:36:00 +0100 <geekosaur> you're not making a whole lot of sense right now
2020-12-04 19:36:07 +0100 <Franciman> why?
2020-12-04 19:36:59 +0100 <merijn> Because, presumably, you *are* using Haskell, despite the type checking being (theoretically) exponential
2020-12-04 19:37:14 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-12-04 19:37:20 +0100thc202(~thc202@unaffiliated/thc202) (Quit: thc202)
2020-12-04 19:37:37 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-04 19:37:50 +0100 <Franciman> now that I know, I won't anymore
2020-12-04 19:37:52 +0100 <Franciman> eaz
2020-12-04 19:38:08 +0100 <Franciman> but the question is, is there a better typechecking algorithm?
2020-12-04 19:38:23 +0100 <Franciman> if yes, I shall use it, if not, I shall use Haskell
2020-12-04 19:38:29 +0100 <Franciman> eaz
2020-12-04 19:38:40 +0100 <Franciman> that's the whole point. I see no problem
2020-12-04 19:38:42 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-ngjtmooaohvreyum)
2020-12-04 19:38:45 +0100 <Franciman> where am I being blind to you?
2020-12-04 19:41:32 +0100 <merijn> The fact that no real Haskell program hits the exponential case
2020-12-04 19:41:52 +0100 <merijn> And similarly, the darcs exponential case only mattters if it occurs during real use, rather than merely hypothetically
2020-12-04 19:42:00 +0100 <Franciman> wait
2020-12-04 19:42:19 +0100 <Franciman> are you saying I should use haskell's typechecker even if there was a better solution?
2020-12-04 19:42:26 +0100 <Franciman> in this case, pijul
2020-12-04 19:42:34 +0100 <Franciman> having a better solution than darcs
2020-12-04 19:42:35 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
2020-12-04 19:43:08 +0100gioyik(~gioyik@186.112.99.244)
2020-12-04 19:43:23 +0100 <geekosaur> also ghc doesn't use H-M, it uses System Fc… which if you take one limit off of it is Turing-complete and therefore can be worse than exponential. is this something to be scared of, and if so how do you ever use any programming language?
2020-12-04 19:44:02 +0100 <Franciman> geekosaur, so, if you have a polynomial algorithm for SAT, you'd still use the combinatorial approach
2020-12-04 19:44:09 +0100 <Franciman> because for your problems in practice, it's good enough?
2020-12-04 19:44:52 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca)
2020-12-04 19:44:54 +0100 <merijn> If it's easier, yes
2020-12-04 19:45:10 +0100phaul(~phaul@ruby/staff/phaul)
2020-12-04 19:45:15 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272) (Remote host closed the connection)
2020-12-04 19:45:30 +0100 <Franciman> I find this cringeworthy
2020-12-04 19:45:38 +0100 <Franciman> I want to always use the fastest solution
2020-12-04 19:46:18 +0100 <Franciman> but ok I can understand
2020-12-04 19:46:22 +0100 <Franciman> it's engineering after all
2020-12-04 19:46:35 +0100 <Franciman> bridges aren't the best solution, but they work
2020-12-04 19:46:43 +0100 <Franciman> capitalism is not the best, but it works
2020-12-04 19:46:45 +0100 <sm[m]> I think your reaction to darcs exponential merge is reasonable since it is always brought up and darcs hasn't really laid the issue to rest.. but just FYI, darcs users don't experience it / have learned usage patterns that avoid it
2020-12-04 19:48:09 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-12-04 19:48:30 +0100coot(~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl)
2020-12-04 19:48:49 +0100toorevitimirp(~tooreviti@117.182.181.85) (Remote host closed the connection)
2020-12-04 19:49:02 +0100 <sm[m]> what's better than a bridge btw ? :)
2020-12-04 19:49:40 +0100borne(~fritjof@200116b864198500f60f2508b10af3d6.dip.versatel-1u1.de)
2020-12-04 19:50:42 +0100 <tomsmeding> 19:45:38 Franciman | I want to always use the fastest solution
2020-12-04 19:50:49 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds)
2020-12-04 19:50:51 +0100 <tomsmeding> the fastest solution in practice is not always the one with the lowest complexity
2020-12-04 19:51:07 +0100 <tomsmeding> see simplex vs interior point method for linear programming
2020-12-04 19:51:41 +0100 <tomsmeding> also naive/strassen vs the insane theoretical algorithms with n^2.4 complexity or so for matrix multiplication
2020-12-04 19:51:57 +0100 <Franciman> sm[m], I don't know :P
2020-12-04 19:52:01 +0100 <Franciman> I'm not making much sense tonight
2020-12-04 19:52:03 +0100conal(~conal@64.71.133.70)
2020-12-04 19:52:14 +0100 <tomsmeding> you're battling against pragmatists at the moment :p
2020-12-04 19:52:19 +0100 <tomsmeding> well "battling"
2020-12-04 19:52:24 +0100 <tomsmeding> speaking
2020-12-04 19:52:29 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272)
2020-12-04 19:52:30 +0100phaul(~phaul@ruby/staff/phaul)
2020-12-04 19:52:30 +0100 <sm[m]> transporter beams, isn't it :)
2020-12-04 19:53:39 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-12-04 19:54:07 +0100alp(~alp@2a01:e0a:58b:4920:282f:2d06:cff3:827d)
2020-12-04 19:54:34 +0100 <monochrom> The fallacy is in assuming there is one single "fastest" for all cases.
2020-12-04 19:54:46 +0100 <monochrom> Well, actually, there is, but it is not what you think.
2020-12-04 19:54:50 +0100 <Franciman> eheheheheheheheheheh
2020-12-04 19:55:02 +0100 <typetetris> Why does persistent needs the types in a database schema to be PathPieces, ToHttpApiData, and {From,To}JSON ?
2020-12-04 19:55:13 +0100 <tomsmeding> (correction: ellipsoid method, not interior point method)
2020-12-04 19:55:19 +0100 <monochrom> For example, sorting. Oh let's even confine to comparison-based sorting, none of those radix sort tricks.
2020-12-04 19:55:25 +0100 <Franciman> monochrom, the fallacy is that you don't know what your users are gonna do
2020-12-04 19:55:30 +0100geekosaurwas also going to raise the question of e.g. access vs. modify complexity/time
2020-12-04 19:55:44 +0100 <monochrom> For input sizes below 10 or so, use a handcoded decision tree.
2020-12-04 19:55:48 +0100 <Franciman> perfect solutions don't exist
2020-12-04 19:55:48 +0100 <Franciman> ok
2020-12-04 19:55:52 +0100 <geekosaur> re "always want the fastest" — so, fastest for what?
2020-12-04 19:55:53 +0100 <Franciman> I'll acknowledge
2020-12-04 19:56:00 +0100 <Franciman> I was answering to SAT problems
2020-12-04 19:56:03 +0100 <Franciman> it was a particular case
2020-12-04 19:56:22 +0100 <Franciman> but heh, I unerstand you like Unix more than plan9 because it works fine
2020-12-04 19:56:31 +0100Shadorain_(uid453914@gateway/web/irccloud.com/x-zacharxypgsnvrfo)
2020-12-04 19:56:33 +0100 <Franciman> am I right? Are you pursuing that case?
2020-12-04 19:56:39 +0100LKoen(~LKoen@105.175.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2020-12-04 19:56:43 +0100 <merijn> no
2020-12-04 19:56:55 +0100 <monochrom> For input sizes between 10 and 1000 or something, use mergesort. For input sizes above 1000 or something, use some variant of quicksort. Or something.
2020-12-04 19:57:04 +0100 <merijn> He's pursuing the case that all live is a complicated multi-objective optimisation with no single "best" solution
2020-12-04 19:57:21 +0100 <monochrom> Generally, do a case analaysis on the input size, then switch to an algorithm optimized for that size range.
2020-12-04 19:57:30 +0100 <merijn> It's trade-offs all the way down, one of which is "how much of my life do I waste on researching this?"
2020-12-04 19:57:35 +0100 <Franciman> not sure I buy it, it just that we are stupid as humankind
2020-12-04 19:58:03 +0100 <monochrom> So, it is not true that "one single algorithm" is the fastest. But it is true that if you switch algorithms based on input size, you can do it.
2020-12-04 19:58:13 +0100 <sm[m]> Franciman: getting back to your q, I think you know but: if contributing to a project I'll use their vcs. If starting a project and I want contributors I'll pick a vcs and hub they'll use. In the past that was darcs for haskell projects but for now it's git and github. If starting a project and only concerned about my convenience it's still git because tools integrate best with it
2020-12-04 19:58:13 +0100 <Franciman> I mean people thought there didn't exist continuous function that are not differentiable, but they exist, in abundance even :P
2020-12-04 19:58:15 +0100 <merijn> Franciman: Here you go: https://homepages.uc.edu/~martinj/Philosophy%20and%20Religion/Arguments%20for%20the%20Existence%20…
2020-12-04 19:58:16 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds)
2020-12-04 19:58:24 +0100 <monochrom> But this is never in the minds of people who claim "I want the fastest".
2020-12-04 19:58:35 +0100 <merijn> monochrom: No, even that doesn't work in general
2020-12-04 19:58:46 +0100 <Franciman> I see sm[m], thanks
2020-12-04 19:58:48 +0100 <merijn> monochrom: There are algorithms where implementation choice depends on things other than size
2020-12-04 19:58:58 +0100 <monochrom> Yeah see, that too.
2020-12-04 19:59:05 +0100 <Franciman> lol frameworks
2020-12-04 19:59:15 +0100 <Franciman> merijn, is it from analytic philosophers?
2020-12-04 19:59:15 +0100 <monochrom> IIRC GMP actually does this for multiplication.
2020-12-04 19:59:47 +0100danso(~dan@69-165-210-185.cable.teksavvy.com) (Quit: WeeChat 2.9)
2020-12-04 19:59:47 +0100 <tomsmeding> it does, it has limits for switching between algorithms that you can tune for your machine if you compile it yourself
2020-12-04 19:59:50 +0100 <monochrom> Below a certain threshold, it doesn't use the FFT algorithm. Because doesn't win there.
2020-12-04 20:00:14 +0100 <Franciman> ok I think I get your point
2020-12-04 20:00:30 +0100 <Franciman> you are right
2020-12-04 20:00:46 +0100 <Franciman> but still, can I say I'd prefer a theory which avoid exponential merges?
2020-12-04 20:00:59 +0100 <Franciman> it's not a problem of darcs or what else
2020-12-04 20:01:04 +0100 <Franciman> but I'd find it neater
2020-12-04 20:01:10 +0100 <merijn> Franciman: Depends, what if the theory that avoid exponential merges is 10x slower for "normal" operations?
2020-12-04 20:01:12 +0100 <Franciman> ok I'm gonna use darcs from now on
2020-12-04 20:01:27 +0100 <merijn> Franciman: Are you willing to accept 10x slowdown on all operations if it guarantees no exponential case?
2020-12-04 20:01:30 +0100 <monochrom> And all this time we have been leaving out: What about programmer's time? Isn't it much more expensive than computer time?
2020-12-04 20:01:43 +0100 <Franciman> merijn, I'd say it dependes, as you have taught me
2020-12-04 20:01:48 +0100 <Franciman> but let me be more precise
2020-12-04 20:01:54 +0100 <Franciman> I prefer pijul's theory to darcs, now
2020-12-04 20:01:55 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 246 seconds)
2020-12-04 20:02:01 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 264 seconds)
2020-12-04 20:02:03 +0100 <Franciman> since it's at least as fast, and avoid exponential merges
2020-12-04 20:02:39 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272) (Remote host closed the connection)
2020-12-04 20:02:55 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds)
2020-12-04 20:03:25 +0100berberman(~berberman@unaffiliated/berberman)
2020-12-04 20:03:31 +0100iqubic(~user@2601:602:9500:4870:55f6:de24:d001:bc51)
2020-12-04 20:04:48 +0100kritzefitz(~kritzefit@fw-front.credativ.com) (Remote host closed the connection)
2020-12-04 20:06:33 +0100 <sm[m]> Franciman: we're a bit off topic here, but have you used pijul much ? I wonder which operations are still slow with it
2020-12-04 20:06:44 +0100phaul(~phaul@ruby/staff/phaul) (Remote host closed the connection)
2020-12-04 20:06:46 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2020-12-04 20:08:32 +0100phaul(~phaul@ruby/staff/phaul)
2020-12-04 20:08:38 +0100 <Xnuk> :t (>>>) >>> (>>>) fmap
2020-12-04 20:08:40 +0100 <lambdabot> Functor f => (a1 -> f a2) -> (a2 -> b) -> a1 -> f b
2020-12-04 20:08:51 +0100 <Xnuk> :t let f = (>>>) >>> (>>>) in f fmap
2020-12-04 20:08:53 +0100 <lambdabot> Functor f => (((a -> b) -> c1) -> c2) -> ((f a -> f b) -> c1) -> c2
2020-12-04 20:10:05 +0100Shadorain_Shadorain
2020-12-04 20:10:37 +0100 <Franciman> sm[m], i tried it
2020-12-04 20:10:40 +0100 <Franciman> it looked ok
2020-12-04 20:10:51 +0100 <Franciman> but i'm mostly basing my judgement on the docs
2020-12-04 20:11:21 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-12-04 20:12:35 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds)
2020-12-04 20:12:42 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2020-12-04 20:12:56 +0100neiluj(~jco@91-167-203-101.subs.proxad.net) (Ping timeout: 256 seconds)
2020-12-04 20:14:28 +0100neiluj(~jco@91-167-203-101.subs.proxad.net)
2020-12-04 20:15:16 +0100 <sm[m]> #darcs is a good place to discuss deeper, if you didn't know
2020-12-04 20:17:07 +0100coot(~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2020-12-04 20:17:19 +0100abhixec(~abhixec@c-67-169-141-95.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
2020-12-04 20:17:45 +0100coot(~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl)
2020-12-04 20:18:38 +0100jespada(~jespada@90.254.245.49) (Quit: Leaving)
2020-12-04 20:19:29 +0100abhixec(~abhixec@c-67-169-141-95.hsd1.ca.comcast.net)
2020-12-04 20:20:49 +0100asthasr(~asthasr@162.210.29.120) (Quit: asthasr)
2020-12-04 20:21:01 +0100 <typetetris> Shouldn't ` [mkPersist (sqlSettings {mpsEntityJSON = Nothing})]` prevent persistent from trying to generate `FromJSON` und `ToJSON` instances? Doesn't seem to work for me.
2020-12-04 20:22:29 +0100phaul(~phaul@ruby/staff/phaul) (Remote host closed the connection)
2020-12-04 20:23:03 +0100phaul(~phaul@ruby/staff/phaul)
2020-12-04 20:26:05 +0100son0p(~son0p@181.136.122.143) (Quit: Lost terminal)
2020-12-04 20:26:21 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-12-04 20:26:37 +0100macrover(~macrover@2600:8801:1100:2f14:20e6:98ee:438:fb7c)
2020-12-04 20:27:42 +0100hackagekubernetes-client 0.3.2.0 - Client library for Kubernetes https://hackage.haskell.org/package/kubernetes-client-0.3.2.0 (axeman)
2020-12-04 20:29:06 +0100SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!)
2020-12-04 20:31:03 +0100conal(~conal@64.71.133.70)
2020-12-04 20:31:32 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-12-04 20:38:03 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
2020-12-04 20:40:22 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 256 seconds)
2020-12-04 20:40:41 +0100phaul(~phaul@ruby/staff/phaul)
2020-12-04 20:40:44 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-12-04 20:41:27 +0100SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net)
2020-12-04 20:42:46 +0100 <ezzieyguywuf> neat, coc is pretty nice.
2020-12-04 20:42:54 +0100 <ezzieyguywuf> but so far all the diagnostics it's giving me I also already get from ghcid
2020-12-04 20:43:05 +0100 <ezzieyguywuf> ghcid = life
2020-12-04 20:43:09 +0100joaoh82(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection)
2020-12-04 20:43:27 +0100alp(~alp@2a01:e0a:58b:4920:282f:2d06:cff3:827d) (Ping timeout: 272 seconds)
2020-12-04 20:43:42 +0100joaoh82(~joaoh82@157-131-134-210.dedicated.static.sonic.net)
2020-12-04 20:45:45 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-04 20:50:18 +0100pokid(~pokid@unaffiliated/pokid) ()
2020-12-04 20:50:20 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-12-04 20:51:34 +0100softwarm(4408f588@ip68-8-245-136.sd.sd.cox.net)
2020-12-04 20:51:53 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-04 20:52:34 +0100hexfive(~hexfive@50-47-142-195.evrt.wa.frontiernet.net)
2020-12-04 20:54:13 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Client Quit)
2020-12-04 20:57:02 +0100softwarm(4408f588@ip68-8-245-136.sd.sd.cox.net) (Remote host closed the connection)
2020-12-04 20:58:07 +0100knupfer(~Thunderbi@200116b82c9bc000e4e06ffffe2f9d0e.dip.versatel-1u1.de)
2020-12-04 20:58:07 +0100knupfer(~Thunderbi@200116b82c9bc000e4e06ffffe2f9d0e.dip.versatel-1u1.de) (Client Quit)
2020-12-04 20:58:16 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 256 seconds)
2020-12-04 20:58:24 +0100knupfer(~Thunderbi@87.123.206.78)
2020-12-04 20:58:48 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-12-04 21:00:30 +0100Deide(~Deide@217.155.19.23)
2020-12-04 21:00:54 +0100alp(~alp@2a01:e0a:58b:4920:c8c1:4453:2d45:c47f)
2020-12-04 21:03:03 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272)
2020-12-04 21:03:33 +0100conal_(~conal@64.71.133.70)
2020-12-04 21:06:08 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com)
2020-12-04 21:08:21 +0100BenSima[m](bensimatim@gateway/shell/matrix.org/x-uoybmhbnttuhdmnm)
2020-12-04 21:08:24 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272) (Ping timeout: 240 seconds)
2020-12-04 21:09:19 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272)
2020-12-04 21:10:31 +0100phaul(~phaul@ruby/staff/phaul)
2020-12-04 21:14:05 +0100kritzefitz(~kritzefit@212.86.56.80)
2020-12-04 21:16:32 +0100solonarv(~solonarv@astrasbourg-552-1-28-212.w90-13.abo.wanadoo.fr)
2020-12-04 21:24:09 +0100abhixec(~abhixec@c-67-169-141-95.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2020-12-04 21:29:09 +0100SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!)
2020-12-04 21:29:36 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds)
2020-12-04 21:32:23 +0100ggole(~ggole@2001:8003:8119:7200:1065:53ac:b0e7:6308) (Quit: Leaving)
2020-12-04 21:33:09 +0100SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net)
2020-12-04 21:36:07 +0100conal_(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-12-04 21:38:11 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272) (Remote host closed the connection)
2020-12-04 21:38:36 +0100conal(~conal@64.71.133.70)
2020-12-04 21:41:11 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-04 21:42:01 +0100Lycurgus(~niemand@cpe-45-46-137-210.buffalo.res.rr.com)
2020-12-04 21:43:01 +0100phaul(~phaul@ruby/staff/phaul)
2020-12-04 21:47:25 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
2020-12-04 21:47:42 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272)
2020-12-04 21:48:04 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus) (Quit: ...zzzZZZ)
2020-12-04 21:50:00 +0100ddellacosta(dd@gateway/vpn/mullvad/ddellacosta)
2020-12-04 21:52:25 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 264 seconds)
2020-12-04 21:53:53 +0100phaul(~phaul@ruby/staff/phaul)
2020-12-04 21:57:33 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds)
2020-12-04 21:58:57 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-12-04 21:59:15 +0100jollygood2(~bc8165ab@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2020-12-04 22:02:19 +0100bcasiello_(~brian@071-088-110-201.res.spectrum.com) (Quit: Leaving)
2020-12-04 22:02:53 +0100bcasiello(~brian@071-088-110-201.res.spectrum.com)
2020-12-04 22:04:12 +0100mimagic(~mimagic@201.82.37.29) (Remote host closed the connection)
2020-12-04 22:04:19 +0100conal(~conal@64.71.133.70)
2020-12-04 22:04:32 +0100mimagic(~mimagic@201.82.37.29)
2020-12-04 22:04:46 +0100plakband(~plakband@softbank126074182017.bbtec.net) (Quit: WeeChat 2.9)
2020-12-04 22:06:35 +0100okfinesangy(~mnrmnaugh@unaffiliated/mnrmnaugh) (Read error: Connection reset by peer)
2020-12-04 22:07:09 +0100whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2020-12-04 22:08:15 +0100whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2020-12-04 22:08:37 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 264 seconds)
2020-12-04 22:08:46 +0100mimagic(~mimagic@201.82.37.29) (Ping timeout: 256 seconds)
2020-12-04 22:09:09 +0100whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2020-12-04 22:09:55 +0100phaul(~phaul@ruby/staff/phaul)
2020-12-04 22:10:16 +0100whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2020-12-04 22:13:24 +0100forcer1(~forcer@185.204.1.185) (Remote host closed the connection)
2020-12-04 22:14:25 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds)
2020-12-04 22:15:11 +0100hackagederive-storable-plugin 0.2.3.2 - GHC core plugin supporting the derive-storable package. https://hackage.haskell.org/package/derive-storable-plugin-0.2.3.2 (mkloczko)
2020-12-04 22:15:24 +0100alx741(~alx741@186.178.110.235) (Ping timeout: 272 seconds)
2020-12-04 22:15:24 +0100urek(~urek@179.187.114.53.dynamic.adsl.gvt.net.br) (Ping timeout: 256 seconds)
2020-12-04 22:16:10 +0100Shadorain(uid453914@gateway/web/irccloud.com/x-zacharxypgsnvrfo) (Quit: Connection closed for inactivity)
2020-12-04 22:16:58 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-04 22:18:25 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-04 22:20:10 +0100whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2020-12-04 22:21:16 +0100whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2020-12-04 22:22:10 +0100whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Read error: Connection reset by peer)
2020-12-04 22:23:05 +0100Tops2(~Tobias@dyndsl-095-033-016-243.ewe-ip-backbone.de)
2020-12-04 22:23:17 +0100whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2020-12-04 22:23:32 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com)
2020-12-04 22:24:13 +0100conal(~conal@64.71.133.70) (Ping timeout: 264 seconds)
2020-12-04 22:25:12 +0100knupfer(~Thunderbi@87.123.206.78) (Ping timeout: 256 seconds)
2020-12-04 22:26:43 +0100conal(~conal@64.71.133.70)
2020-12-04 22:27:26 +0100 <shinobi_> How is the List.Sort method only defined for ordinal members? If I have a list of Foos and Foo is not part of the Ord typeclass is the method hidden?
2020-12-04 22:27:50 +0100alx741(~alx741@186.178.110.235)
2020-12-04 22:28:05 +0100 <geekosaur> it won't typecheck
2020-12-04 22:28:18 +0100 <geekosaur> if you apply it to a list of Foos
2020-12-04 22:28:37 +0100 <glguy> % data Foos = Foos
2020-12-04 22:28:37 +0100 <yahb> glguy:
2020-12-04 22:28:42 +0100benoitj(~benoitj@bras-base-mtrlpq3708w-grc-25-76-65-84-134.dsl.bell.ca) (Quit: leaving)
2020-12-04 22:28:47 +0100 <glguy> % :t sort ([] :: [Foos])
2020-12-04 22:28:48 +0100 <yahb> glguy: ; <interactive>:1:1: error:; * No instance for (Ord Foos) arising from a use of `sort'; * In the expression: sort ([] :: [Foos])
2020-12-04 22:29:56 +0100 <shinobi_> geekosaur, Understood but the implementation of the List object must state that the sort method can only be used on Ords
2020-12-04 22:30:06 +0100 <geekosaur> :t sort
2020-12-04 22:30:09 +0100 <lambdabot> Ord a => [a] -> [a]
2020-12-04 22:30:19 +0100 <solonarv> the terms you're using indicate some confusion
2020-12-04 22:30:23 +0100 <dolio> What's a list object?
2020-12-04 22:30:24 +0100 <geekosaur> and you sound like you're thinking in terms of OO. stop now, this can only get you in trouble
2020-12-04 22:30:44 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-12-04 22:30:54 +0100 <shinobi_> geekosaur: I'm trying :)
2020-12-04 22:31:17 +0100 <geekosaur> anyway Ord is not intrinsic to lists, as I showed above with the type of "sort".
2020-12-04 22:31:26 +0100 <solonarv> there is no great big complicated "implementation of the List object", there is simply data List a = Empty | Cons a (List a) (syntax sugar aside)
2020-12-04 22:31:27 +0100 <merijn> shinobi_: "sort" isn't part of "the List object"
2020-12-04 22:31:53 +0100 <merijn> shinobi_: There's no list object, just a list type and the sort function happens to accept inputs that are lists
2020-12-04 22:31:56 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds)
2020-12-04 22:32:03 +0100 <shinobi_> ok. 1st. If it's not a class then what would you call it in Haskell?
2020-12-04 22:32:04 +0100conal(~conal@64.71.133.70)
2020-12-04 22:32:06 +0100 <dsal> :t sort
2020-12-04 22:32:08 +0100 <lambdabot> Ord a => [a] -> [a]
2020-12-04 22:32:11 +0100 <shinobi_> ok
2020-12-04 22:32:13 +0100 <dsal> It's just a function.
2020-12-04 22:32:16 +0100 <merijn> shinobi_: A type or datatype
2020-12-04 22:32:29 +0100 <merijn> And sort is just a function, it's not part of anything
2020-12-04 22:32:43 +0100 <geekosaur> sort is a function that happens to make use of the Ord typeclass. lists are just a data type
2020-12-04 22:32:53 +0100Harekiet1(~Harekiet@84.39.117.57)
2020-12-04 22:33:33 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-12-04 22:33:39 +0100 <geekosaur> Ord is the typeclass for things that can be compared; it requires the Eq typeclass, and provides `compare` and the usual comparison operators aside from `==` and `/=` which come from Eq
2020-12-04 22:34:01 +0100 <shinobi_> ok, so I'm still a little unclear. The list datatype defines a sort function and the typeclass defintion for that function enforces that it is only for Ords?
2020-12-04 22:34:21 +0100cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it)
2020-12-04 22:34:23 +0100 <jle`> hm, i wouldn't say that the list datatype defines a sort function
2020-12-04 22:34:24 +0100 <iqubic> No. The list datatype does not define a sort function.
2020-12-04 22:34:29 +0100 <merijn> shinobi_: "the list datatype defines a sort function" <- no
2020-12-04 22:34:31 +0100conal(~conal@64.71.133.70)
2020-12-04 22:34:39 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-12-04 22:34:40 +0100 <jle`> functions are just there...they have no owner
2020-12-04 22:34:46 +0100 <jle`> they are 'top-level' things
2020-12-04 22:34:47 +0100 <merijn> Functions aren't tied to types
2020-12-04 22:35:29 +0100conal(~conal@64.71.133.70)
2020-12-04 22:35:32 +0100 <jle`> sort is a polymorphic function, meaning that you can pick what type you want to use for the 'a'
2020-12-04 22:35:36 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-12-04 22:35:37 +0100 <jle`> kind of like head :: [a] -> a
2020-12-04 22:35:46 +0100 <jle`> so if you pick a for Int, you get head :: [Int] -> Int
2020-12-04 22:35:57 +0100 <jle`> if you pick Bool, you get head :: [Bool] -> Bool, etc.
2020-12-04 22:36:09 +0100 <jle`> a typeclass constraint restricts the types you are allowed to pick for 'a'
2020-12-04 22:36:22 +0100 <jle`> so sort :: Ord a => [a] -> [a], you could pick a is Int and get sort :: [Int] -> [Int]
2020-12-04 22:36:41 +0100 <jle`> but you can't pick a as Foo and get sort :: [Foo] -> [Foo], if Foo doesn't have an Ord instance
2020-12-04 22:37:25 +0100 <shinobi_> I see
2020-12-04 22:37:52 +0100 <jle`> and you can write a function to do something similar, not attached to any data type
2020-12-04 22:38:07 +0100 <jle`> % let myFunc x y = x * y + 3
2020-12-04 22:38:07 +0100 <yahb> jle`:
2020-12-04 22:38:10 +0100 <jle`> % :t myFunc
2020-12-04 22:38:10 +0100 <yahb> jle`: Num a => a -> a -> a
2020-12-04 22:38:24 +0100 <jle`> myFunc is a polymorphic function so you can pick which 'a' you want to use it with
2020-12-04 22:38:32 +0100 <jle`> i could set a to Int and get myFunc :: Int -> Int -> Int
2020-12-04 22:38:50 +0100 <jle`> but Num a restricts the allowed 'a'; i can't, for instance, use Bool, since Bool has no Num instance
2020-12-04 22:38:54 +0100 <jle`> % myFunc True False
2020-12-04 22:38:54 +0100 <yahb> jle`: ; <interactive>:6:1: error:; * No instance for (Num Bool) arising from a use of `myFunc'; * In the expression: myFunc True False; In an equation for `it': it = myFunc True False
2020-12-04 22:39:19 +0100 <jle`> maybe i used a poor choice of words in saying "for instance", heh
2020-12-04 22:39:40 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-04 22:39:49 +0100 <jle`> note that it isn't true that "the num datatype defines a myFunc function"
2020-12-04 22:39:58 +0100 <jle`> Num didn't do anything... (it's not even a datatype). i did it :)
2020-12-04 22:40:34 +0100L29Ah(~L29Ah@unaffiliated/l29ah) (Ping timeout: 260 seconds)
2020-12-04 22:42:00 +0100cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone)
2020-12-04 22:43:26 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
2020-12-04 22:43:51 +0100 <shinobi_> So would the methods that get imported with import Data.List are "top level" i.e. independent of the List datatype?
2020-12-04 22:44:44 +0100 <jle`> yup
2020-12-04 22:45:21 +0100 <jle`> well, methods has a slightly different meaning in haskell that actually sort of has an interesting twist in this discussion
2020-12-04 22:45:34 +0100 <jle`> sort is not a method, it's just a normal function here
2020-12-04 22:45:57 +0100 <jle`> and Data.List exports functions, but no methods
2020-12-04 22:46:27 +0100 <jle`> one of those functions being 'sort'
2020-12-04 22:47:45 +0100 <shinobi_> Yes, I used the wrong term here. I should have said function. I've not learned about Haskell methods yet.
2020-12-04 22:47:57 +0100 <shinobi_> Thanks
2020-12-04 22:47:59 +0100 <merijn> Because they don't exist :)
2020-12-04 22:48:16 +0100 <shinobi_> scratch that off my list. :)
2020-12-04 22:48:17 +0100 <jle`> haskell has methods, but they mean a little bit different than they do in OOP languages D:
2020-12-04 22:48:28 +0100 <jle`> at least, the word means something different
2020-12-04 22:48:31 +0100 <merijn> jle`: Eh, how so?
2020-12-04 22:48:33 +0100 <jle`> definitions are weird
2020-12-04 22:48:49 +0100 <merijn> You mean typeclasses? I've not heard those described as methods before
2020-12-04 22:48:52 +0100 <jle`> methods things like (==), compare, show
2020-12-04 22:48:56 +0100Vulfe_(~vulfe@2600:1702:31b0:34e0:cce9:14da:222:dd1d) (Remote host closed the connection)
2020-12-04 22:49:04 +0100 <monochrom> (==) is a method of Eq. This is the wording in the Haskell Report.
2020-12-04 22:49:41 +0100 <jle`> so there is sort of a wonky analogy between the OOP usage of method and the haskell usage
2020-12-04 22:49:45 +0100 <monochrom> And BTW you also never saw the spelling "type class" because it is in the Haskell Report.
2020-12-04 22:50:12 +0100 <jle`> "typeclasses" contain "methods" which have "instances" (types)
2020-12-04 22:50:13 +0100 <merijn> monochrom: That assumes all of us have *only* read the report :p
2020-12-04 22:50:15 +0100 <monochrom> Basically everything the Haskell Report says, no one has ever seen.
2020-12-04 22:50:27 +0100 <merijn> oh, the reverse
2020-12-04 22:50:32 +0100 <merijn> Reading is hard
2020-12-04 22:50:33 +0100 <jle`> in java, "classes" contain "methods" which have "instances" ('values')
2020-12-04 22:50:51 +0100 <jle`> but i don't think the connection is particularly useful heh
2020-12-04 22:50:51 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:cce9:14da:222:dd1d)
2020-12-04 22:51:19 +0100 <monochrom> I really have no idea where "typeclass" came from, apart from one day accidentally a German made that typo and everyone thought it was official.
2020-12-04 22:51:22 +0100 <jle`> er, the typeclasses have instances, not the methods
2020-12-04 22:51:44 +0100 <jle`> saves invisible ink :)
2020-12-04 22:52:44 +0100 <dsal> typoclass
2020-12-04 22:53:17 +0100nf(~n@monade.li) (Quit: Fairfarren.)
2020-12-04 22:53:30 +0100 <monochrom> Here is another one for you. The Haskell Report has wordings like "the Maybe type", "the IO type".
2020-12-04 22:53:44 +0100 <glguy> why is that surprising?
2020-12-04 22:54:04 +0100 <monochrom> In my mind that settles the question "since Maybe :: * -> *, not *, is it still a type?"
2020-12-04 22:54:05 +0100 <jle`> slightly confusing because there is a distinction between 'type' and 'Type'
2020-12-04 22:54:20 +0100urek(~urek@2804:7f1:e10a:a8d:9d56:f4b3:72da:42fc)
2020-12-04 22:54:27 +0100nf(~n@monade.li)
2020-12-04 22:54:36 +0100 <jle`> yeah, i feel like it shooouuld be a unanimous thing in haskell that Maybe is considered a type, in the way that True is a value
2020-12-04 22:54:39 +0100 <jle`> er, Just is a value
2020-12-04 22:54:51 +0100 <jle`> but people still argue with me so idk
2020-12-04 22:54:53 +0100 <monochrom> glguy, I don't know about surprising, but I swear to you a lot of people swear that it's wrong.
2020-12-04 22:54:58 +0100 <merijn> monochrom: Was anyone disagreeing with that? Besides people who are wrong >.<
2020-12-04 22:54:59 +0100 <jle`> ^
2020-12-04 22:55:42 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:cce9:14da:222:dd1d) (Ping timeout: 260 seconds)
2020-12-04 22:55:43 +0100Vulfe_(~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283)
2020-12-04 22:55:52 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 246 seconds)
2020-12-04 22:56:36 +0100 <jle`> back in the day i feel like i got in an argument about this every few weeks
2020-12-04 22:58:03 +0100christo(~chris@81.96.113.213)
2020-12-04 22:58:59 +0100pfurla(~pfurla@227.15.195.173.client.static.strong-in52.as13926.net)
2020-12-04 22:59:39 +0100 <monochrom> Well, I guess ever since DataKinds and dependent Haskell, the liberal people have won, i.e., if something has a kind, then it is a type, oh the kind is a little funny, that's OK.
2020-12-04 23:00:28 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272) (Remote host closed the connection)
2020-12-04 23:00:38 +0100Vulfe_(~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) (Ping timeout: 264 seconds)
2020-12-04 23:01:01 +0100 <monochrom> But really, before that, in the old days, the conservative people were very vocal and influential in "Maybe is a type constructor, not a type" or "a type function, not a type".
2020-12-04 23:01:09 +0100 <merijn> monochrom: I will acknowledge the existence of TypeInType over my dead body >.<
2020-12-04 23:01:17 +0100 <merijn> Madness, madness, I say!
2020-12-04 23:01:32 +0100 <monochrom> Fortunately the "type constructor" camp and the "type function" camp also had much in-fighting. That's good for the rest of us.
2020-12-04 23:01:41 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2020-12-04 23:02:04 +0100britva(~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119)
2020-12-04 23:02:09 +0100 <merijn> monochrom: Well it is a type constructor, however that doesn't mean it isn't also a type. That's like saying "id" is a function, sure, but it's also a value
2020-12-04 23:03:30 +0100Franciman(~franko@host-212-171-88-43.retail.telecomitalia.it) (Ping timeout: 256 seconds)
2020-12-04 23:04:07 +0100 <monochrom> I have a cunning plan! I never liked the name "Type". What do you think of "Valuable"? Integer :: Valuable.
2020-12-04 23:04:22 +0100heatsink(~heatsink@2600:1700:bef1:5e10:b861:e4c1:4a1a:c272)
2020-12-04 23:04:33 +0100 <jle`> M.lookup monochomArgument
2020-12-04 23:04:39 +0100 <jle`> => "What about Void?"
2020-12-04 23:04:57 +0100 <jle`> * M.lookup monochromArgument pedanticNonsense
2020-12-04 23:05:07 +0100Franciman(~franko@host-212-171-88-43.retail.telecomitalia.it)
2020-12-04 23:05:25 +0100L29Ah(~L29Ah@unaffiliated/l29ah)
2020-12-04 23:05:36 +0100 <monochrom> We accept bottom as a value. That covers Void. The thing is non-Type types don't even have bottom.
2020-12-04 23:05:45 +0100 <jle`> to be clear the idea is that "What about Void" is the pedantic nonsense in response to your valid idea :)
2020-12-04 23:06:11 +0100 <jle`> ah yeah, haskell's bottom
2020-12-04 23:06:47 +0100 <jle`> how about type * = FullySaturatedTypeConstructor
2020-12-04 23:06:55 +0100 <dolio> How about: who gives a shit?
2020-12-04 23:07:23 +0100cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it)
2020-12-04 23:07:23 +0100 <jle`> clearly it is our favorite thing to be talking about on a friday night :)
2020-12-04 23:07:29 +0100delYsid(~user@vra-173-158.tugraz.at)
2020-12-04 23:09:02 +0100cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it) (Client Quit)
2020-12-04 23:12:26 +0100cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it)
2020-12-04 23:13:38 +0100britva(~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119) (Quit: This computer has gone to sleep)
2020-12-04 23:14:37 +0100Lycurgus(~niemand@cpe-45-46-137-210.buffalo.res.rr.com) (Quit: Exeunt)
2020-12-04 23:15:27 +0100alp(~alp@2a01:e0a:58b:4920:c8c1:4453:2d45:c47f) (Ping timeout: 272 seconds)
2020-12-04 23:15:41 +0100britva(~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119)
2020-12-04 23:15:50 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Quit: vfaronov)
2020-12-04 23:19:53 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2020-12-04 23:21:08 +0100alp(~alp@88.126.45.36)
2020-12-04 23:22:08 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283)
2020-12-04 23:23:36 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-12-04 23:24:00 +0100nf(~n@monade.li) (Quit: Fairfarren.)
2020-12-04 23:25:16 +0100nf(~n@monade.li)
2020-12-04 23:26:17 +0100joaoh82_(~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
2020-12-04 23:27:33 +0100 <texasmynsted> I am sure I used an online repl for haskell where I could turn on vim key bindings. Can't find it.
2020-12-04 23:27:56 +0100pfurla(~pfurla@227.15.195.173.client.static.strong-in52.as13926.net) (Ping timeout: 240 seconds)
2020-12-04 23:28:01 +0100neiluj(~jco@91-167-203-101.subs.proxad.net) (Quit: leaving)
2020-12-04 23:28:27 +0100 <texasmynsted> anybody recall this?
2020-12-04 23:28:32 +0100 <monochrom> repl.it
2020-12-04 23:28:52 +0100 <monochrom> I don't know about vim key bindings.
2020-12-04 23:28:53 +0100z0(~z0@188.251.84.254)
2020-12-04 23:29:03 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-04 23:29:17 +0100z0Guest41303
2020-12-04 23:29:47 +0100 <Guest41303> what's the syntax for binary literals? ghci is giving me an error on 0b10
2020-12-04 23:29:57 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) (Remote host closed the connection)
2020-12-04 23:30:46 +0100joaoh82(~joaoh82@157-131-134-210.dedicated.static.sonic.net) (Ping timeout: 272 seconds)
2020-12-04 23:30:58 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2020-12-04 23:31:06 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283)
2020-12-04 23:31:16 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) (Remote host closed the connection)
2020-12-04 23:31:37 +0100timCF(~i.tkachuk@m91-129-106-3.cust.tele2.ee)
2020-12-04 23:31:38 +0100 <monochrom> You need to turn on the relevant extension.
2020-12-04 23:31:40 +0100conal(~conal@64.71.133.70)
2020-12-04 23:31:47 +0100 <monochrom> It's all in the GHC user's guide. What does it say?
2020-12-04 23:31:54 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283)
2020-12-04 23:32:41 +0100 <timCF> Hello guys! Can anybody help me with small example of Haskell code? https://gist.github.com/tim2CF/221616992d89d9ef458df8080bfa4a28
2020-12-04 23:34:03 +0100xcmw(~textual@cpe-69-133-55-43.cinci.res.rr.com)
2020-12-04 23:34:06 +0100zzz(~zzz@46.101.134.251) (Ping timeout: 256 seconds)
2020-12-04 23:34:30 +0100zzz(~zzz@2a03:b0c0:3:d0::3095:3001)
2020-12-04 23:34:40 +0100qwfpluykh(2e050550@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 245 seconds)
2020-12-04 23:34:42 +0100kritzefitz(~kritzefit@212.86.56.80) (Remote host closed the connection)
2020-12-04 23:35:22 +0100 <monochrom> timCF, my advice is don't bother constraining b, at least for now.
2020-12-04 23:35:33 +0100 <monochrom> Premature design constraint or something.
2020-12-04 23:36:14 +0100 <monochrom> After you have fleshed out some actual operations on Money, then maybe it will become clear how much you need to constrain b, and by what mechanism.
2020-12-04 23:36:59 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) (Ping timeout: 272 seconds)
2020-12-04 23:37:06 +0100 <monochrom> If you only have a type, no operations, basically the type is meaningless. The real meaning is always in the functions that operate on that type. Programmers keep forgetting this.
2020-12-04 23:38:15 +0100 <timCF> monochrom: Well, it's just simple example :) In real life these types are implementing a bunch of classes
2020-12-04 23:39:24 +0100Franciman(~franko@host-212-171-88-43.retail.telecomitalia.it) (Quit: Leaving)
2020-12-04 23:39:39 +0100 <timCF> I just simplified it to understand is it possible in principle to do such type constraints - not just `b` but only some of given types
2020-12-04 23:41:12 +0100xff0x_(~fox@2001:1a81:53bd:d700:8188:2e86:d7e3:d195) (Ping timeout: 260 seconds)
2020-12-04 23:41:48 +0100xff0x_(~fox@2001:1a81:53bd:d700:a2a1:7119:15d0:7c3f)
2020-12-04 23:41:56 +0100 <monochrom> I'll tell you a story. In this story, I was on the receiving end of the advice I give you today.
2020-12-04 23:42:42 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283)
2020-12-04 23:42:42 +0100 <monochrom> I had a function, I only intended to allow the user to use it on Integer, it's f :: Integer -> [Integer], f x = [x, x, x]. Or something like that.
2020-12-04 23:42:48 +0100rprije(~rprije@14-201-170-17.tpgi.com.au)
2020-12-04 23:43:03 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283) (Remote host closed the connection)
2020-12-04 23:43:08 +0100 <monochrom> An expert saw that and pointed out why not a -> [a].
2020-12-04 23:43:10 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:2542:c60f:3a80:283)
2020-12-04 23:43:29 +0100 <monochrom> I replied I wanted to restrict its use case, the user should only use it on Integer.
2020-12-04 23:43:40 +0100 <monochrom> The expert pointed out a greater lesson.
2020-12-04 23:44:24 +0100 <monochrom> The type a->[a] gives the user a much stronger assurance than the type Integer->[Integer]. Equivalently and flipsidely, it gives me much fewer room for bugs.
2020-12-04 23:44:59 +0100 <monochrom> If my intention is "I turn one number ot a list of numbers, but all those numbers are the same, in fact the same as the input number"
2020-12-04 23:45:23 +0100 <monochrom> a->[a] assures that. Integer->[Integer] doesn't.
2020-12-04 23:45:46 +0100 <monochrom> By leaving b unconstrained, you may actually be doing yourself and your users a great service.
2020-12-04 23:45:46 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2020-12-04 23:46:46 +0100 <hpc> for optimally bug-free code, use the type signature a -> b
2020-12-04 23:46:54 +0100 <monochrom> haha
2020-12-04 23:47:01 +0100p8m(p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 264 seconds)
2020-12-04 23:47:12 +0100 <monochrom> that probably is also liveness-free
2020-12-04 23:47:30 +0100 <timCF> input -> output
2020-12-04 23:47:52 +0100 <timCF> but thanks for advice
2020-12-04 23:48:07 +0100 <texasmynsted> hmm maybe not repl.it unless I get different results if I create an account
2020-12-04 23:49:08 +0100 <monochrom> ah, maybe code world?
2020-12-04 23:49:25 +0100p8m(p8m@gateway/vpn/protonvpn/p8m)
2020-12-04 23:49:28 +0100 <monochrom> nah, code world uses its own language, not exactly Haskell
2020-12-04 23:49:31 +0100 <texasmynsted> Is there a nice tutorial for converting String based code to Text? Example: https://gist.github.com/mmynsted/7831dbd552c1f874143c0e0d5807a4c8
2020-12-04 23:50:24 +0100 <monochrom> No. It's just conceptually easy, time consuming chore. E.g., change "take" to "T.take"
2020-12-04 23:50:42 +0100 <texasmynsted> I did and ... splode with errors
2020-12-04 23:51:01 +0100 <hpc> easy, just fix the errors :D
2020-12-04 23:51:28 +0100 <sm[m]> texasmynsted: change one small piece at a time
2020-12-04 23:52:06 +0100 <sm[m]> sprinkle T.[un]pack as needed
2020-12-04 23:52:11 +0100 <hpc> usuallly that means you've just missed some places
2020-12-04 23:52:41 +0100hackagepostgresql-tx 0.2.0.0 - A safe transaction monad for use with various PostgreSQL Haskell libraries. https://hackage.haskell.org/package/postgresql-tx-0.2.0.0 (carymrobbins)
2020-12-04 23:53:46 +0100 <monochrom> OK, I misread, you have [Text], you're doing take on that, that's still []'s take.
2020-12-04 23:54:07 +0100 <monochrom> This one you're just missing Data.Text.IO.putStrLn
2020-12-04 23:54:11 +0100hackagepostgresql-tx-monad-logger 0.2.0.0 - postgresql-tx interfacing for use with monad-logger. https://hackage.haskell.org/package/postgresql-tx-monad-logger-0.2.0.0 (carymrobbins)
2020-12-04 23:54:39 +0100fendor_(~fendor@178.115.130.110.wireless.dyn.drei.com) (Remote host closed the connection)
2020-12-04 23:54:57 +0100 <monochrom> Oh, and f::Int->Text
2020-12-04 23:55:44 +0100borne(~fritjof@200116b864198500f60f2508b10af3d6.dip.versatel-1u1.de) (Ping timeout: 240 seconds)
2020-12-04 23:57:00 +0100 <monochrom> left my comment (really code) on that.
2020-12-04 23:57:58 +0100borne(~fritjof@200116b864198500f60f2508b10af3d6.dip.versatel-1u1.de)
2020-12-04 23:58:00 +0100 <monochrom> Doesn't my avatar look monochrome? :)
2020-12-04 23:58:04 +0100mimagic(~mimagic@201.82.37.29)
2020-12-04 23:58:06 +0100 <texasmynsted> okay
2020-12-04 23:58:43 +0100 <texasmynsted> I really did miss a bunch of stuff by not just fixing one thing at a time
2020-12-04 23:58:44 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-12-04 23:59:17 +0100 <texasmynsted> I did not see the fact that I should be using the take from list. I think that will help
2020-12-04 23:59:23 +0100Tario(~Tario@201.192.165.173)
2020-12-04 23:59:45 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)