Home freenode/#haskell: Logs Calendar

Logs on 2020-12-04 (freenode/#haskell)

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

All times are in UTC on 2020-12-04.