Home liberachat/#haskell: Logs Calendar

Logs on 2022-02-23 (liberachat/#haskell)

00:00:45 <Axman6> oh nice, I didn't realise that was in the parsers package. More parsers should use that, I hate that I can write a parser for Aeson that can't tell the parser what keys are allowable ahead of time. IIRC Waargonaut has this (after I pestered Sean several times about it)
00:03:07 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:106a:7188:c314:3535)
00:05:36 Null_A joins (~null_a@2601:645:8700:2290:44bc:7304:7645:6729)
00:05:59 <Axman6> dons: so are you back in Aus? Saw your tweet from the sydney ~bus~ boat
00:09:57 × Null_A quits (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds)
00:12:54 × max22- quits (~maxime@2a01cb088335980027fe609829d061d7.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
00:15:43 × alt-romes quits (~romes@44.190.189.46.rev.vodafone.pt) (Quit: WeeChat 3.4)
00:16:15 alx741 joins (~alx741@157.100.197.240)
00:17:39 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
00:20:41 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
00:29:57 lavaman joins (~lavaman@98.38.249.169)
00:30:11 Topsi joins (~Tobias@dyndsl-095-033-025-181.ewe-ip-backbone.de)
00:30:59 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
00:31:30 × jgeerds quits (~jgeerds@d53600c5.access.ecotel.net) (Ping timeout: 260 seconds)
00:33:34 cynomys joins (~cynomys@user/cynomys)
00:34:59 × dvdrw quits (~dvdrw@user/dvdrw) (Quit: leaving)
00:37:25 alx741 joins (~alx741@157.100.197.240)
00:38:10 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
00:40:46 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
00:41:01 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
00:42:04 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
00:42:04 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
00:42:04 wroathe joins (~wroathe@user/wroathe)
00:43:37 gentauro joins (~gentauro@user/gentauro)
00:44:54 × ravella quits (~ravella@user/ryanavella) (Remote host closed the connection)
00:45:37 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 240 seconds)
00:49:23 mvk joins (~mvk@2607:fea8:5cdc:bf00::99e7)
00:56:03 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
00:57:40 alx741 joins (~alx741@181.199.42.143)
00:57:55 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4)
01:01:36 × califax quits (~califax@user/califx) (Remote host closed the connection)
01:02:07 lavaman joins (~lavaman@98.38.249.169)
01:02:32 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
01:03:10 alx741 joins (~alx741@181.199.42.143)
01:06:08 <hololeap_> I'm getting an error when trying to compile mustache-2.4.0 on ghc-8.10.6, but it compiles fine on ghc-9.0.2. the error seems related to parsec, but both systems have the same version
01:06:22 <hololeap_> so I'm confused as to what could be the underlying error http://sprunge.us/RmBexL
01:06:50 hololeap_ is now known as hololeap
01:06:56 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds)
01:07:19 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
01:08:17 × cynomys quits (~cynomys@user/cynomys) (Ping timeout: 272 seconds)
01:09:09 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
01:09:30 <hololeap> the instance it's complaining about is defined in the version of parsec they both have installed: https://hackage.haskell.org/package/parsec-3.1.14.0/docs/Text-Parsec.html#t:Stream
01:10:38 Ranhir joins (~Ranhir@157.97.53.139)
01:10:46 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:11:53 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:106a:7188:c314:3535) (Remote host closed the connection)
01:13:06 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
01:13:19 lavaman joins (~lavaman@98.38.249.169)
01:13:27 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
01:13:43 lavaman joins (~lavaman@98.38.249.169)
01:13:50 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
01:14:07 lavaman joins (~lavaman@98.38.249.169)
01:14:14 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
01:14:21 <hololeap> here is the source code for the module: https://github.com/JustusAdam/mustache/blob/master/src/Text/Mustache/Parser.hs
01:14:28 lavaman joins (~lavaman@98.38.249.169)
01:14:37 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
01:14:42 ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
01:16:14 <ski> hm, i guess it may not be picking up `Monad Data.Functor.Identity', for whatever reason ?
01:16:26 <ski> (considering how there's an instance `Monad m => Stream Text m Char')
01:16:52 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:18:31 × komikat quits (~komikat@183.82.154.239) (Ping timeout: 256 seconds)
01:20:10 ravella joins (~ravella@user/ryanavella)
01:20:12 <hololeap> I added `import Data.Functor.Monad` to the module, and now it's saying: No instance for (Stream Text Identity Char)
01:20:43 <hololeap> it could be my environment or something like that
01:20:46 komikat joins (~komikat@183.82.154.239)
01:20:55 cynomys joins (~cynomys@user/cynomys)
01:24:32 alx741 joins (~alx741@181.199.42.143)
01:25:55 <hololeap> this did the trick. I have no idea why it is needed, though: http://sprunge.us/JDw9pW
01:26:01 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 272 seconds)
01:27:51 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
01:28:04 <hololeap> when I apply that patch to my 9.0.2 system, it gives an overlapping instance error
01:29:37 lavaman joins (~lavaman@98.38.249.169)
01:29:40 hyiltiz joins (~quassel@31.220.5.250)
01:31:20 <pareto-optimal-d> Is "always write the most polymorphic version of your function first" a hot take?
01:31:21 × ravella quits (~ravella@user/ryanavella) (Remote host closed the connection)
01:32:09 <Axman6> the more polymorphic the function is, the harder it is to get wrong generally
01:33:08 <dolio> The answer is, "yes."
01:34:33 <pareto-optimal-d> dolio: Okay, that was my suspicion after telling a coworker I created a note in zettlekasten with that today 😅
01:35:24 × emf quits (~emf@c-73-97-137-43.hsd1.wa.comcast.net) (Quit: emf)
01:35:30 <hololeap> ok, this is weird, if I unpack mustache on the 8.10.6 system and then run `cabal build` it says "parsec-3.1.14.0 (lib) (requires download & build)"
01:35:43 <hololeap> but `ghc-pkg field parsec version` says: "version: 3.1.14.0"
01:35:48 <pareto-optimal-d> Axman6: that's essentially what led me to write about it today and then others reaction made me want to ask here.
01:36:39 <dolio> Don't give, "always X," advice.
01:36:56 <hololeap> so it almost seems like the system-installed parsec is visible to ghc-pkg but not to cabal
01:37:17 <monochrom> My answer is no. I don't do it. Sometimes I think I did it, but turns out no, my version is not the most polymorphic possible. Overall, it sounds like dangerously close to perfection OCD and the joke about "what happens if you ask a software dev to make a toaster".
01:38:41 × Pickchea quits (~private@user/pickchea) (Ping timeout: 272 seconds)
01:39:14 <Axman6> My advice is always don't give "always X" advice
01:39:42 <pareto-optimal-d> The disagreement made me think there is a useful question along the lines of "are free theorems and their benefits enough to be worth more than monomorphic functions that have better errors and are easier for beginners to reason about".
01:40:17 <pareto-optimal-d> and "is having a policy preventing or limiting premature monomorphizing to get more theorems for free additive? Additive multiplicatively?"
01:41:06 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:106a:7188:c314:3535)
01:41:19 <monochrom> My policy is against premature generalizations. Premature polymorphization is a special case.
01:43:47 yauhsien_ joins (~yauhsien@61-231-19-150.dynamic-ip.hinet.net)
01:44:36 × Guest68 quits (~Guest68@134.101.5.46) (Ping timeout: 256 seconds)
01:44:46 alx741 joins (~alx741@157.100.197.240)
01:46:12 <pareto-optimal-d> monochrom: mine used to be, but after some years working in a codebase that takes a strong stance against premature generalization I see some downsides.
01:46:12 <pareto-optimal-d> What are your thoughts of the example at 14:00 in this video:
01:46:12 <pareto-optimal-d> https://youtu.be/BHjIl81HgfE
01:48:02 <pareto-optimal-d> <Axman6> "My advice is always don't give..." <- I like to create "always do X" and "always do Y" in my notes because they motivate writing "why 'always do X' was a dumb idea"
01:48:04 alMalsamo joins (~alMalsamo@gateway/tor-sasl/almalsamo)
01:48:33 × yauhsien_ quits (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
01:48:43 <dons> Axman6, yep back in Syd
01:48:50 <pareto-optimal-d> I'll look at one and be outraged
01:49:01 Null_A joins (~null_a@2601:645:8700:2290:44bc:7304:7645:6729)
01:50:22 justsomeguy joins (~justsomeg@user/justsomeguy)
01:52:35 <justsomeguy> Is there some way to write types like Map, Set, and Sequence as literals?
01:54:33 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
01:54:34 <jackdk> -XOverloadedLists
01:56:14 <justsomeguy> I had something in mind like Sets: { "one":1, "two":2 }, Maps: {"one","two"}, Vectors: (1,3) [1,2,3]. It seems like OverloadedLists can do a lot, though.
01:57:37 × alp quits (~alp@user/alp) (Ping timeout: 240 seconds)
01:58:59 <monochrom> fromList [(key0, val0), (key1, val1)]; fromList [member0, member1]; [item0, item1].
01:59:17 × turlando quits (~turlando@user/turlando) (Ping timeout: 240 seconds)
02:00:55 <justsomeguy> I don't really understand templateHaskell, but can it do things like this?
02:01:32 justsomeguy is just curious about what options are available, regardless of how impractical they are to use.
02:05:08 <justsomeguy> I'll definitely be using OverloadedLists for personal stuff, I think.
02:06:12 × Null_A quits (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 250 seconds)
02:07:54 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:106a:7188:c314:3535) (Remote host closed the connection)
02:09:00 × jao quits (~jao@68.235.43.174) (Ping timeout: 240 seconds)
02:09:19 <justsomeguy> Do fromList and toList get evaulated at compile time, if the values are used elsewhere in the program?
02:10:31 <monochrom> No.
02:10:35 <Cale> Never. The best you'll manage is that if you define a constant, they'll get evaluated at most once during the execution of the program.
02:10:55 deadmarshal joins (~deadmarsh@95.38.112.124)
02:10:57 alx741 joins (~alx741@181.199.42.143)
02:11:32 <Cale> It would be nice to be able to force that kind of thing to happen statically when you want it, but there's really not much of a way to express it.
02:11:39 <Cale> (at present)
02:12:30 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:106a:7188:c314:3535)
02:13:05 × jonathanx__ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
02:13:12 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
02:13:22 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
02:13:26 jonathanx__ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
02:15:45 × deadmarshal quits (~deadmarsh@95.38.112.124) (Ping timeout: 256 seconds)
02:19:06 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4)
02:20:42 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
02:20:57 × derelict quits (derelict@user/derelict) (Quit: bye)
02:21:59 derelict joins (derelict@user/derelict)
02:22:09 × little_mac quits (~little_ma@2601:410:4300:3ce0:283e:efa7:e0c6:e848) (Remote host closed the connection)
02:24:35 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
02:30:17 alx741 joins (~alx741@157.100.197.240)
02:35:07 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
02:36:39 Null_A joins (~null_a@2601:645:8700:2290:44bc:7304:7645:6729)
02:36:40 × justAstache quits (~justache@user/justache) (Read error: Connection reset by peer)
02:37:38 justAstache joins (~justache@user/justache)
02:40:57 × Null_A quits (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds)
02:41:10 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
02:42:40 × juhp quits (~juhp@128.106.188.82) (Quit: juhp)
02:42:53 juhp joins (~juhp@128.106.188.82)
02:45:02 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 240 seconds)
02:45:40 bontaq` is now known as bontaq
02:46:02 × xff0x quits (~xff0x@2001:1a81:5372:9200:4da8:4717:4e75:17ef) (Ping timeout: 240 seconds)
02:47:46 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
02:47:56 xff0x joins (~xff0x@2001:1a81:53ab:2800:b38f:e60b:4875:f7ef)
02:51:43 <Axman6> dons: welcome home
02:52:50 alx741 joins (~alx741@181.199.42.143)
02:57:21 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
02:58:29 × neurocyte0917090 quits (~neurocyte@user/neurocyte) (Ping timeout: 272 seconds)
03:02:03 mbuf joins (~Shakthi@171.61.250.50)
03:05:40 ravella joins (~ravella@user/ryanavella)
03:06:31 yauhsien_ joins (~yauhsien@61-231-19-150.dynamic-ip.hinet.net)
03:06:49 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
03:07:18 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 250 seconds)
03:07:38 × hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection)
03:08:22 lavaman joins (~lavaman@98.38.249.169)
03:08:26 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
03:08:58 lavaman joins (~lavaman@98.38.249.169)
03:09:52 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
03:09:53 notzmv joins (~zmv@user/notzmv)
03:11:03 Null_A joins (~null_a@2601:645:8700:2290:44bc:7304:7645:6729)
03:13:16 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
03:13:37 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
03:14:12 alx741 joins (~alx741@157.100.197.240)
03:15:59 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
03:15:59 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
03:15:59 wroathe joins (~wroathe@user/wroathe)
03:20:36 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
03:21:43 hololeap joins (~hololeap@user/hololeap)
03:22:54 × td_ quits (~td@muedsl-82-207-238-240.citykom.de) (Ping timeout: 256 seconds)
03:23:54 × Ranhir quits (~Ranhir@157.97.53.139) (Remote host closed the connection)
03:24:24 td_ joins (~td@94.134.91.238)
03:24:35 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
03:26:24 Ranhir joins (~Ranhir@157.97.53.139)
03:29:17 × Null_A quits (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds)
03:30:24 × zachel quits (~zachel@user/zachel) (Quit: Quit: Leaving!)
03:33:08 zachel joins (~zachel@user/zachel)
03:33:09 × CiaoSen quits (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
03:35:13 × komikat quits (~komikat@183.82.154.239) (Ping timeout: 272 seconds)
03:36:48 komikat joins (~komikat@183.82.154.239)
03:39:52 <Sqaure> Is there some goto library for simple text replacement, like say "blabla ${var}blabla"
03:40:15 little_mac joins (~little_ma@2601:410:4300:3ce0:25e4:decc:c8da:26b5)
03:41:04 × terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
03:41:17 alx741 joins (~alx741@157.100.197.240)
03:41:58 <jackdk> Sqaure: several. interpolation, neat-interpolation, string-interpolate, ... They use -XQuasiQuotes so you write something like `[i|blabla #{var}blabla]`
03:42:00 terrorjack joins (~terrorjac@static.3.200.12.49.clients.your-server.de)
03:42:25 <jackdk> I am not aware of a clear winner
03:44:55 × vysn quits (~vysn@user/vysn) (Quit: WeeChat 3.4)
03:45:49 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
03:46:53 deadmarshal joins (~deadmarsh@95.38.112.124)
03:48:07 <Sqaure> jackdk, ah thanks
03:53:20 × xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer)
03:57:02 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
04:00:52 × yauhsien_ quits (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
04:01:34 yauhsien_ joins (~yauhsien@61-231-19-150.dynamic-ip.hinet.net)
04:01:54 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
04:02:34 azimut joins (~azimut@gateway/tor-sasl/azimut)
04:03:49 alx741 joins (~alx741@157.100.197.240)
04:06:09 Guest|39 joins (~Guest|39@190.195.205.199)
04:06:15 × yauhsien_ quits (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
04:06:42 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
04:07:46 <Guest|39> how to install haskell on windows
04:11:36 <Sqaure> Guest|39, im not running windows myself but i believe it should be detailed here https://www.haskell.org/downloads/
04:12:25 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
04:12:25 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
04:12:25 wroathe joins (~wroathe@user/wroathe)
04:12:25 × Guest|39 quits (~Guest|39@190.195.205.199) (Remote host closed the connection)
04:15:44 <janus> Sqaure: i like https://github.com/yesodweb/shakespeare
04:18:42 Null_A joins (~null_a@2601:645:8700:2290:44bc:7304:7645:6729)
04:19:22 <Sqaure> janus, thanks. Looks like i might have more than i need. Just dealing with simple texts here.
04:20:15 <Sqaure> it*
04:20:50 alp joins (~alp@user/alp)
04:22:55 alx741 joins (~alx741@181.199.42.143)
04:23:25 yauhsien_ joins (~yauhsien@61-231-19-150.dynamic-ip.hinet.net)
04:23:45 × yauhsien_ quits (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Remote host closed the connection)
04:24:06 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 256 seconds)
04:24:28 yauhsien_ joins (~yauhsien@61-231-19-150.dynamic-ip.hinet.net)
04:31:19 × benin quits (~benin@59.92.239.104) (Quit: Ping timeout (120 seconds))
04:31:40 benin joins (~benin@59.92.239.104)
04:31:42 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
04:31:47 × yauhsien_ quits (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Remote host closed the connection)
04:32:24 alx741 joins (~alx741@157.100.197.240)
04:32:49 yauhsien_ joins (~yauhsien@61-231-19-150.dynamic-ip.hinet.net)
04:35:00 × Null_A quits (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds)
04:38:33 × yauhsien_ quits (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
04:41:17 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
04:44:06 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
04:45:05 × alp quits (~alp@user/alp) (Remote host closed the connection)
04:45:25 alp joins (~alp@user/alp)
04:45:54 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
04:48:57 × deadmarshal quits (~deadmarsh@95.38.112.124) (Ping timeout: 240 seconds)
04:49:25 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
04:51:09 × alp quits (~alp@user/alp) (Remote host closed the connection)
04:51:28 alp joins (~alp@user/alp)
04:54:10 Erutuon joins (~Erutuon@user/erutuon)
04:54:48 × komikat quits (~komikat@183.82.154.239) (Remote host closed the connection)
04:55:00 komikat joins (~komikat@183.82.154.239)
04:57:31 alx741 joins (~alx741@157.100.197.240)
05:01:41 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
05:02:37 × shapr quits (~user@pool-173-73-44-186.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
05:03:37 × mvk quits (~mvk@2607:fea8:5cdc:bf00::99e7) (Ping timeout: 240 seconds)
05:04:23 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
05:05:24 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
05:06:17 × alp quits (~alp@user/alp) (Ping timeout: 240 seconds)
05:08:57 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 272 seconds)
05:11:34 Erutuon joins (~Erutuon@user/erutuon)
05:12:17 pokhu joins (~rishi@103.206.114.88)
05:13:22 × little_mac quits (~little_ma@2601:410:4300:3ce0:25e4:decc:c8da:26b5) (Quit: Leaving)
05:13:39 little_mac joins (~little_ma@2601:410:4300:3ce0:25e4:decc:c8da:26b5)
05:19:04 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
05:20:01 Null_A joins (~null_a@2601:645:8700:2290:44bc:7304:7645:6729)
05:20:02 alx741 joins (~alx741@157.100.197.240)
05:21:40 yauhsien_ joins (~yauhsien@61-231-19-150.dynamic-ip.hinet.net)
05:22:45 × Topsi quits (~Tobias@dyndsl-095-033-025-181.ewe-ip-backbone.de) (Ping timeout: 256 seconds)
05:22:58 Topsi joins (~Tobias@dyndsl-095-033-018-046.ewe-ip-backbone.de)
05:24:37 × Null_A quits (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds)
05:24:37 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
05:24:41 hgolden joins (~hgolden2@cpe-172-114-81-123.socal.res.rr.com)
05:24:43 <jackdk> Sqaure: if that's your use case, I like the `formatting` library. it's more of a FP-ish take on printf I guess
05:25:58 × yauhsien_ quits (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 250 seconds)
05:26:00 <Sqaure> jackdk, okok. Ill check that out. I realize i down want quasi quotes. Atm i just want runtime interpolation (with risk of breaking)
05:26:10 <Sqaure> I don't*
05:26:12 × cynomys quits (~cynomys@user/cynomys) (Ping timeout: 240 seconds)
05:27:07 <jackdk> Sqaure: `format ("Person's name is " % t % ", age is " % int) "Dave" 54` is an example inspired by the docs
05:28:20 <Sqaure> downloading it now
05:31:23 × little_mac quits (~little_ma@2601:410:4300:3ce0:25e4:decc:c8da:26b5) (Quit: Leaving)
05:31:39 little_mac joins (~little_ma@2601:410:4300:3ce0:25e4:decc:c8da:26b5)
05:31:59 × mbuf quits (~Shakthi@171.61.250.50) (Quit: Leaving)
05:35:26 <Sqaure> jackdk, you don't happen to know if it have functions to parse plain text into these text functions?
05:35:47 <jackdk> Sqaure: can you please rephrase your question? I don't understand
05:38:43 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 272 seconds)
05:40:40 <Sqaure> jackdk, my texts (that should be able to contain replacement expressions) are loaded from a yaml file. In "Formatting", the uninterpolated texts in the examples are all haskell expressions. So I was wondering if there was an easy way to turn the plain text from yaml into these functions Formatting works with?
05:41:18 <jackdk> Sqaure: ah, I see. No, formatting won't help you there. I would go looking for a templating library
05:41:29 <Sqaure> gotcha. Thanks
05:42:25 yauhsien_ joins (~yauhsien@61-231-19-150.dynamic-ip.hinet.net)
05:43:07 alx741 joins (~alx741@157.100.197.240)
05:47:41 × yauhsien_ quits (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
05:51:49 × little_mac quits (~little_ma@2601:410:4300:3ce0:25e4:decc:c8da:26b5) (Quit: Leaving)
05:52:07 little_mac joins (~little_ma@2601:410:4300:3ce0:25e4:decc:c8da:26b5)
05:52:48 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
05:53:56 <Sqaure> The library "template" seems to do what i want.
05:55:38 × little_mac quits (~little_ma@2601:410:4300:3ce0:25e4:decc:c8da:26b5) (Client Quit)
05:55:54 little_mac joins (~little_ma@2601:410:4300:3ce0:25e4:decc:c8da:26b5)
05:58:20 cynomys joins (~cynomys@user/cynomys)
06:00:26 yauhsien_ joins (~yauhsien@61-231-19-150.dynamic-ip.hinet.net)
06:00:26 × Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Quit: Leaving)
06:00:31 coot joins (~coot@213.134.190.95)
06:04:32 × modnar quits (~modnar@shell.sonic.net) (Ping timeout: 250 seconds)
06:05:55 × Giovanni quits (~Giovanni@176.67.166.45) (Read error: Connection reset by peer)
06:05:57 × yauhsien_ quits (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
06:06:04 modnar joins (~modnar@shell.sonic.net)
06:07:31 bahamas joins (~lucian@84.232.140.52)
06:09:13 alx741 joins (~alx741@181.199.42.143)
06:11:18 Giovanni joins (~Giovanni@176.67.166.45)
06:12:59 Null_A joins (~null_a@2601:645:8700:2290:44bc:7304:7645:6729)
06:13:06 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
06:13:25 nattiestnate joins (~nate@182.2.41.240)
06:13:41 alx741 joins (~alx741@157.100.197.240)
06:17:31 iqubic joins (~user@2601:602:9502:c70:f02e:17f5:f781:f107)
06:18:24 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
06:18:46 yauhsien_ joins (~yauhsien@61-231-19-150.dynamic-ip.hinet.net)
06:19:04 iqubic parts (~user@2601:602:9502:c70:f02e:17f5:f781:f107) ()
06:22:07 × yauhsien_ quits (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Remote host closed the connection)
06:23:01 yauhsien_ joins (~yauhsien@61-231-19-150.dynamic-ip.hinet.net)
06:26:56 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
06:27:10 pokhu parts (~rishi@103.206.114.88) ()
06:28:02 × Null_A quits (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds)
06:28:12 × yauhsien_ quits (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
06:28:18 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:28:29 × bahamas quits (~lucian@84.232.140.52) (Ping timeout: 256 seconds)
06:30:11 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Read error: Connection reset by peer)
06:30:53 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:32:27 × cynomys quits (~cynomys@user/cynomys) (Ping timeout: 256 seconds)
06:34:00 × shriekingnoise quits (~shrieking@201.231.16.156) (Quit: Quit)
06:34:41 alx741 joins (~alx741@181.199.42.143)
06:35:20 geekosaur joins (~geekosaur@xmonad/geekosaur)
06:39:33 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
06:40:10 alx741 joins (~alx741@181.199.42.143)
06:45:02 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
06:45:39 alx741 joins (~alx741@157.100.197.240)
06:46:45 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
06:47:02 azimut joins (~azimut@gateway/tor-sasl/azimut)
06:49:08 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
06:55:26 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
06:55:39 vglfr joins (~vglfr@coupling.penchant.volia.net)
06:56:18 gdown joins (~gavin@h69-11-150-165.kndrid.broadband.dynamic.tds.net)
06:57:16 Null_A joins (~null_a@2601:645:8700:2290:44bc:7304:7645:6729)
07:01:48 × Null_A quits (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds)
07:03:22 sander joins (~sander@user/sander)
07:03:50 mikoto-chan joins (~mikoto-ch@213.177.151.239)
07:06:03 × bliminse quits (~bliminse@host86-158-241-239.range86-158.btcentralplus.com) (Ping timeout: 252 seconds)
07:06:50 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
07:07:13 alx741 joins (~alx741@157.100.197.240)
07:07:16 vglfr joins (~vglfr@coupling.penchant.volia.net)
07:08:01 bliminse joins (~bliminse@host109-152-150-162.range109-152.btcentralplus.com)
07:10:51 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
07:12:01 × mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 245 seconds)
07:14:07 × monochrom quits (trebla@216.138.220.146) (Quit: NO CARRIER)
07:14:36 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
07:14:58 ccntrq joins (~Thunderbi@2a01:e34:eccb:b060:ea23:2b79:a0de:4996)
07:15:11 Null_A joins (~null_a@2601:645:8700:2290:44bc:7304:7645:6729)
07:22:01 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
07:22:26 vglfr joins (~vglfr@coupling.penchant.volia.net)
07:25:50 Pickchea joins (~private@user/pickchea)
07:28:01 monochrom joins (trebla@216.138.220.146)
07:28:37 alx741 joins (~alx741@157.100.197.240)
07:28:55 gehmehgeh joins (~user@user/gehmehgeh)
07:31:23 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
07:31:48 vglfr joins (~vglfr@coupling.penchant.volia.net)
07:33:05 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
07:33:16 × LiaoTao quits (~LiaoTao@gateway/tor-sasl/liaotao) (Ping timeout: 240 seconds)
07:33:24 × Null_A quits (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds)
07:33:47 dextaa_ joins (~dextaa@user/dextaa)
07:33:56 LiaoTao joins (~LiaoTao@gateway/tor-sasl/liaotao)
07:35:50 cynomys joins (~cynomys@user/cynomys)
07:38:25 × yrlnry quits (~mjd@pool-74-109-20-19.phlapa.fios.verizon.net) (Ping timeout: 272 seconds)
07:39:19 yrlnry joins (~mjd@pool-74-109-20-19.phlapa.fios.verizon.net)
07:39:21 alp joins (~alp@user/alp)
07:41:36 × vorpuni quits (~pvorp@2001:861:3881:c690:d322:f659:136d:eef6) (Ping timeout: 250 seconds)
07:45:21 benin7 joins (~benin@117.202.69.195)
07:46:44 × dextaa_ quits (~dextaa@user/dextaa) (Remote host closed the connection)
07:47:15 × benin quits (~benin@59.92.239.104) (Ping timeout: 256 seconds)
07:47:15 benin7 is now known as benin
07:47:56 MajorBiscuit joins (~MajorBisc@c-001-017-039.client.tudelft.eduvpn.nl)
07:49:10 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
07:49:46 alx741 joins (~alx741@157.100.197.240)
07:50:01 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
07:50:08 vglfr joins (~vglfr@coupling.penchant.volia.net)
07:51:49 deadmarshal joins (~deadmarsh@95.38.230.132)
07:52:19 × nattiestnate quits (~nate@182.2.41.240) (Quit: WeeChat 3.4)
07:52:35 <dminuoso> Cale: You said never, what about TH splices?
07:54:14 lortabac joins (~lortabac@2a01:e0a:541:b8f0:65ac:9e8f:4b5e:2c6b)
07:54:15 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
07:54:50 yauhsien_ joins (~yauhsien@61-231-19-150.dynamic-ip.hinet.net)
07:56:36 × deadmarshal quits (~deadmarsh@95.38.230.132) (Ping timeout: 256 seconds)
07:57:11 Ariakenom joins (~Ariakenom@h-82-196-111-63.NA.cust.bahnhof.se)
07:59:22 mc47 joins (~mc47@xmonad/TheMC47)
07:59:41 jstolarek joins (~jstolarek@staticline-31-183-182-85.toya.net.pl)
08:03:23 × yauhsien_ quits (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Remote host closed the connection)
08:03:24 Null_A joins (~null_a@2601:645:8700:2290:44bc:7304:7645:6729)
08:04:07 zeenk joins (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5)
08:04:17 yauhsien_ joins (~yauhsien@61-231-19-150.dynamic-ip.hinet.net)
08:04:25 × yauhsien quits (~Yau-Hsien@61-231-19-150.dynamic-ip.hinet.net) (Read error: Connection reset by peer)
08:05:45 kuribas joins (~user@ptr-25vy0ial5agu2xq2mv8.18120a2.ip6.access.telenet.be)
08:07:57 × Null_A quits (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds)
08:09:17 × yauhsien_ quits (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
08:09:24 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
08:10:42 alx741 joins (~alx741@157.100.197.240)
08:15:32 cfricke joins (~cfricke@user/cfricke)
08:17:42 × jstolarek quits (~jstolarek@staticline-31-183-182-85.toya.net.pl) (Quit: leaving)
08:19:17 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
08:19:17 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
08:19:32 vglfr joins (~vglfr@coupling.penchant.volia.net)
08:20:01 vickyHaskell joins (~textual@49.37.169.2)
08:21:26 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
08:22:36 × Pickchea quits (~private@user/pickchea) (Ping timeout: 240 seconds)
08:25:33 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 250 seconds)
08:25:41 acidjnk joins (~acidjnk@dynamic-089-204-137-076.89.204.137.pool.telefonica.de)
08:28:37 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
08:29:13 vglfr joins (~vglfr@coupling.penchant.volia.net)
08:33:49 yauhsien joins (~yauhsien@61-231-19-150.dynamic-ip.hinet.net)
08:34:18 cosimone joins (~user@93-34-132-33.ip49.fastwebnet.it)
08:34:44 jgeerds joins (~jgeerds@d53600c5.access.ecotel.net)
08:35:44 alx741 joins (~alx741@157.100.197.240)
08:36:33 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
08:37:06 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:37:25 mbuf joins (~Shakthi@122.178.120.57)
08:38:22 fendor joins (~fendor@178.165.167.221.wireless.dyn.drei.com)
08:39:21 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
08:39:34 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
08:39:47 vglfr joins (~vglfr@coupling.penchant.volia.net)
08:40:43 × komikat quits (~komikat@183.82.154.239) (Remote host closed the connection)
08:43:09 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
08:44:14 vysn joins (~vysn@user/vysn)
08:44:17 × cynomys quits (~cynomys@user/cynomys) (Ping timeout: 272 seconds)
08:44:35 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
08:45:58 komikat joins (~komikat@183.82.154.239)
08:45:58 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
08:47:14 vglfr joins (~vglfr@coupling.penchant.volia.net)
08:49:53 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
08:50:34 machinedgod joins (~machinedg@24.105.81.50)
08:50:43 × komikat quits (~komikat@183.82.154.239) (Ping timeout: 256 seconds)
08:51:15 vglfr joins (~vglfr@coupling.penchant.volia.net)
08:51:18 chele joins (~chele@user/chele)
08:53:00 × juhp quits (~juhp@128.106.188.82) (Quit: juhp)
08:53:13 juhp joins (~juhp@128.106.188.82)
08:53:51 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
08:54:03 vglfr joins (~vglfr@coupling.penchant.volia.net)
08:54:31 komikat joins (~komikat@183.82.154.239)
08:55:39 jespada joins (~jespada@85.255.234.190)
08:57:08 alx741 joins (~alx741@157.100.197.240)
08:59:09 abhixec joins (~abhinav@c-67-169-139-16.hsd1.ca.comcast.net)
09:00:55 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
09:01:27 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
09:01:34 vglfr joins (~vglfr@coupling.penchant.volia.net)
09:02:52 cynomys joins (~cynomys@user/cynomys)
09:03:00 max22- joins (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr)
09:03:49 × jgeerds quits (~jgeerds@d53600c5.access.ecotel.net) (Ping timeout: 240 seconds)
09:04:52 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
09:05:18 chege joins (~chege@197.237.199.183)
09:09:17 × chege quits (~chege@197.237.199.183) (Quit: Client closed)
09:11:10 Null_A joins (~null_a@2601:645:8700:2290:44bc:7304:7645:6729)
09:12:36 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
09:12:36 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
09:13:36 vglfr joins (~vglfr@coupling.penchant.volia.net)
09:19:22 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:106a:7188:c314:3535) (Remote host closed the connection)
09:19:39 alx741 joins (~alx741@157.100.197.240)
09:20:25 ProfSimm joins (~ProfSimm@87.227.196.109)
09:23:37 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 240 seconds)
09:24:09 × analognoise quits (~analognoi@185.202.221.26) (Read error: Connection reset by peer)
09:26:41 × gdown quits (~gavin@h69-11-150-165.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection)
09:28:01 × coot quits (~coot@213.134.190.95) (Quit: coot)
09:28:12 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
09:28:50 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
09:29:05 vglfr joins (~vglfr@coupling.penchant.volia.net)
09:29:24 × Null_A quits (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds)
09:29:48 × little_mac quits (~little_ma@2601:410:4300:3ce0:25e4:decc:c8da:26b5) (Ping timeout: 240 seconds)
09:29:51 bahamas joins (~lucian@84.232.140.52)
09:30:00 dvdrw joins (~dvdrw@user/dvdrw)
09:45:25 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
09:46:04 vglfr joins (~vglfr@coupling.penchant.volia.net)
09:46:35 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
09:46:55 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
09:47:11 alx741 joins (~alx741@157.100.197.240)
09:48:15 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
09:48:29 vglfr joins (~vglfr@coupling.penchant.volia.net)
09:50:30 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
09:50:54 vglfr joins (~vglfr@coupling.penchant.volia.net)
09:51:03 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
09:51:45 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:57:43 <Unhammer> is there something special about filter (< someDay) that makes it strict?
09:58:36 <Unhammer> λ> filter (< 10) $ take 10 (iterate (+1 ) 1)
09:58:39 <Unhammer> [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ]
09:58:41 <Unhammer> λ> take 10 $ filter (< 10) (iterate (+1 ) 1)
09:58:43 <Unhammer> Interrupted.
09:59:05 <Unhammer> hangs
09:59:50 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
10:00:36 × bahamas quits (~lucian@84.232.140.52) (Ping timeout: 240 seconds)
10:00:41 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
10:00:55 <Unhammer> seeing this in both compiled and ghci, 8.10.7
10:00:57 <dminuoso> % filter (< 10) $ take 10 (iterate (+1 ) 1)
10:00:57 <yahb> dminuoso: [1,2,3,4,5,6,7,8,9]
10:01:01 <dminuoso> Works for me?
10:01:33 <Ferdirand> you're off by one
10:01:58 fef joins (~thedawn@user/thedawn)
10:02:09 <dminuoso> Ah
10:02:29 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
10:02:57 vglfr joins (~vglfr@coupling.penchant.volia.net)
10:04:34 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 260 seconds)
10:04:43 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:05:22 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
10:06:00 ubert1 joins (~Thunderbi@2a02:8109:9880:303c:34eb:c52f:ccd4:3473)
10:06:32 vglfr joins (~vglfr@coupling.penchant.volia.net)
10:07:27 alx741 joins (~alx741@157.100.197.240)
10:08:20 coot joins (~coot@213.134.190.95)
10:11:20 acidjnk_new joins (~acidjnk@p200300d0c714a49878af4a2b338b7680.dip0.t-ipconnect.de)
10:12:08 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
10:12:09 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
10:12:21 vglfr joins (~vglfr@coupling.penchant.volia.net)
10:13:16 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 240 seconds)
10:14:05 chexum joins (~quassel@gateway/tor-sasl/chexum)
10:14:05 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
10:15:02 × acidjnk quits (~acidjnk@dynamic-089-204-137-076.89.204.137.pool.telefonica.de) (Ping timeout: 240 seconds)
10:15:13 vglfr joins (~vglfr@coupling.penchant.volia.net)
10:17:25 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
10:17:26 Null_A joins (~null_a@2601:645:8700:2290:44bc:7304:7645:6729)
10:17:58 × vysn quits (~vysn@user/vysn) (Remote host closed the connection)
10:18:12 vglfr joins (~vglfr@coupling.penchant.volia.net)
10:19:47 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d024:453c:94af:7479)
10:20:14 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
10:20:26 vglfr joins (~vglfr@coupling.penchant.volia.net)
10:20:42 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
10:20:51 vglfr joins (~vglfr@coupling.penchant.volia.net)
10:21:03 <kuribas> > take 9 $ take 10 $ filter (< 10) (iterate (+1 ) 1)
10:21:06 <lambdabot> [1,2,3,4,5,6,7,8,9]
10:21:15 <kuribas> it's lazy :)
10:23:20 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
10:23:31 <kuribas> > take 10 $ filter (< 10) (iterate (+1 ) 1)
10:23:37 <lambdabot> mueval-core: Time limit exceeded
10:23:42 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
10:23:53 vglfr joins (~vglfr@coupling.penchant.volia.net)
10:23:56 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
10:24:31 <kuribas> but "drop 9 $ filter (< 10) (iterate (+1 ) 1)" is _|_
10:25:00 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d024:453c:94af:7479) (Ping timeout: 240 seconds)
10:25:19 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
10:25:50 ProfSimm joins (~ProfSimm@87.227.196.109)
10:25:55 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Ping timeout: 256 seconds)
10:28:08 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
10:28:08 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
10:28:08 × komikat quits (~komikat@183.82.154.239) (Read error: Connection reset by peer)
10:28:19 komikat joins (~komikat@183.82.154.239)
10:28:23 alx741 joins (~alx741@157.100.197.240)
10:28:53 vglfr joins (~vglfr@coupling.penchant.volia.net)
10:28:56 × shailangsa quits (~shailangs@host86-186-127-164.range86-186.btcentralplus.com) (Remote host closed the connection)
10:31:02 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
10:31:15 vglfr joins (~vglfr@coupling.penchant.volia.net)
10:31:39 <tomsmeding> in my ghci it nicely evaluates the first 9 elements for the 'take 10 (filter (<10) [1..])' variant, showing precisely what happens
10:31:39 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
10:31:40 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
10:31:47 vglfr joins (~vglfr@coupling.penchant.volia.net)
10:33:49 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
10:35:14 vglfr joins (~vglfr@coupling.penchant.volia.net)
10:35:24 × Null_A quits (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds)
10:35:49 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
10:36:15 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
10:38:42 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
10:41:49 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
10:42:48 Pickchea joins (~private@user/pickchea)
10:44:56 deadmarshal joins (~deadmarsh@95.38.230.132)
10:44:57 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
10:45:57 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
10:46:12 × ishutin quits (~ishutin@92-249-150-129.static.digikabel.hu) (Read error: Connection reset by peer)
10:46:12 × yauhsien quits (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Remote host closed the connection)
10:46:15 vglfr joins (~vglfr@coupling.penchant.volia.net)
10:48:24 alx741 joins (~alx741@157.100.197.240)
10:50:21 ishutin joins (~ishutin@fibhost-66-208-172.fibernet.hu)
10:51:57 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
10:53:46 × drdo quits (~drdo@roach0.drdo.eu) (Quit: Ping timeout (120 seconds))
10:54:05 drdo joins (~drdo@roach0.drdo.eu)
10:54:18 yauhsien joins (~Yau-Hsien@61-231-19-150.dynamic-ip.hinet.net)
11:01:40 × glguy quits (x@libera/staff/glguy) (Read error: Connection reset by peer)
11:02:02 glguy joins (x@libera/staff/glguy)
11:02:18 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
11:02:33 × coot quits (~coot@213.134.190.95) (Quit: coot)
11:02:35 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
11:08:41 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
11:09:36 vglfr joins (~vglfr@coupling.penchant.volia.net)
11:09:49 jakalx parts (~jakalx@base.jakalx.net) ()
11:10:00 alx741 joins (~alx741@157.100.197.240)
11:13:15 jakalx joins (~jakalx@base.jakalx.net)
11:13:19 × zaquest quits (~notzaques@5.130.79.72) (Quit: Leaving)
11:14:08 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
11:17:32 fendor_ joins (~fendor@91.141.59.141.wireless.dyn.drei.com)
11:17:45 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
11:17:56 vglfr joins (~vglfr@coupling.penchant.volia.net)
11:19:30 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
11:20:05 Null_A joins (~null_a@2601:645:8700:2290:44bc:7304:7645:6729)
11:20:40 Vajb joins (~Vajb@2001:999:600:5133:28cb:83bf:5ecf:4314)
11:20:42 × fendor quits (~fendor@178.165.167.221.wireless.dyn.drei.com) (Ping timeout: 272 seconds)
11:26:51 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
11:27:29 vglfr joins (~vglfr@coupling.penchant.volia.net)
11:30:41 Benzi-Junior joins (~BenziJuni@dsl-149-64-179.hive.is)
11:32:33 alx741 joins (~alx741@157.100.197.240)
11:34:13 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
11:34:24 vglfr joins (~vglfr@coupling.penchant.volia.net)
11:35:37 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
11:36:36 __monty__ joins (~toonn@user/toonn)
11:37:23 nil joins (~user@134.209.106.31)
11:37:24 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
11:37:33 vglfr joins (~vglfr@coupling.penchant.volia.net)
11:38:17 × Null_A quits (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds)
11:38:29 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
11:38:38 vglfr joins (~vglfr@coupling.penchant.volia.net)
11:38:46 coot joins (~coot@213.134.190.95)
11:40:48 × komikat quits (~komikat@183.82.154.239) (Remote host closed the connection)
11:43:20 × juhp quits (~juhp@128.106.188.82) (Quit: juhp)
11:43:34 juhp joins (~juhp@128.106.188.82)
11:44:27 komikat joins (~komikat@183.82.154.239)
11:48:41 × juhp quits (~juhp@128.106.188.82) (Quit: juhp)
11:48:56 juhp joins (~juhp@128.106.188.82)
11:52:23 × nil quits (~user@134.209.106.31) (Ping timeout: 272 seconds)
11:53:57 alx741 joins (~alx741@181.199.42.143)
11:54:02 × juhp quits (~juhp@128.106.188.82) (Quit: juhp)
11:54:15 juhp joins (~juhp@128.106.188.82)
11:55:44 × Akiva quits (~Akiva@user/Akiva) (Ping timeout: 256 seconds)
11:56:40 × yrlnry quits (~mjd@pool-74-109-20-19.phlapa.fios.verizon.net) (Remote host closed the connection)
11:57:26 × benin quits (~benin@117.202.69.195) (Ping timeout: 256 seconds)
12:00:29 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
12:03:02 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
12:03:10 × whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
12:03:21 vglfr joins (~vglfr@coupling.penchant.volia.net)
12:06:27 zaquest joins (~notzaques@5.130.79.72)
12:11:29 Null_A joins (~null_a@2601:645:8700:2290:44bc:7304:7645:6729)
12:12:10 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Ping timeout: 256 seconds)
12:13:26 vglfr joins (~vglfr@coupling.penchant.volia.net)
12:13:27 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
12:13:50 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
12:15:12 vglfr joins (~vglfr@coupling.penchant.volia.net)
12:19:42 × dvdrw quits (~dvdrw@user/dvdrw) (Quit: leaving)
12:19:55 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
12:21:41 × vickyHaskell quits (~textual@49.37.169.2) (Quit: Textual IRC Client: www.textualapp.com)
12:22:04 <Unhammer> yeah it's only when the filter is on the inside it hangs
12:22:12 × xff0x quits (~xff0x@2001:1a81:53ab:2800:b38f:e60b:4875:f7ef) (Ping timeout: 240 seconds)
12:22:24 <Unhammer> filter . take -- fine
12:22:27 <Unhammer> take . filter -- hangs
12:22:47 <merijn> Which makes sense
12:23:45 <Unhammer> I don't understand
12:24:06 <merijn> Unhammer: take *always* returns a finite list
12:24:13 <merijn> filter on a finite list always terminates
12:24:17 <Unhammer> that part i get
12:24:26 <Unhammer> what I don't get is why it hangs when it's backwards
12:24:31 <merijn> filter on an infinite list will infinitely keep chasing that list to see if something else matches
12:24:36 × cynomys quits (~cynomys@user/cynomys) (Ping timeout: 240 seconds)
12:24:45 <Unhammer> but it can't give the matches to take and then be lazily cut off?
12:24:49 <merijn> Unhammer: Filter doesn't know your list is monotonically increasing
12:24:53 <merijn> Unhammer: It does
12:24:59 <merijn> Unhammer: But take tries to match 1 more
12:25:10 <merijn> So, filter keeps chasing for the "next" unfiltered element
12:25:14 <merijn> Which it will never find
12:25:32 <merijn> Unhammer: Classic case of confusing "filter" with 'takeWhile"
12:25:48 <Unhammer> oooh
12:25:51 <Unhammer> doh
12:26:32 <Unhammer> thank you for clearing that up, will help me sleep tonight :)
12:26:35 <merijn> Like, it's obvious to *us* that in an ever increasing list there will never be another elements (<10), but GHC and filter don't know that
12:26:37 × Null_A quits (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds)
12:26:41 xff0x joins (~xff0x@2001:1a81:53ab:2800:b38f:e60b:4875:f7ef)
12:27:09 <merijn> filter can only check every individual element of a list and see if it matches. It's just, you know, taking infinitely long to check all elements of an infinite list :)
12:27:09 <hpc> if it helps, just think, filter = grep
12:27:40 <merijn> takeWhile, on the other hand, aborts at the first failure and stops
12:27:48 <merijn> > takeWhile (<10) [1..]
12:27:50 <lambdabot> [1,2,3,4,5,6,7,8,9]
12:27:58 <merijn> > take 10 [1..]
12:28:00 <lambdabot> [1,2,3,4,5,6,7,8,9,10]
12:28:01 <merijn> as does take
12:28:10 <Unhammer> $ yes|head|grep no
12:28:13 <Unhammer> $ yes|grep no|head
12:28:15 <Unhammer> ^C
12:28:17 <Unhammer> ok
12:28:17 <merijn> > filter (<1) [1..]
12:28:20 <Unhammer> :)
12:28:20 <hpc> (added bonus, if you're like me and think "filter stuff out", you can keep track of if you need to negate your predicate)
12:28:24 <lambdabot> mueval-core: Time limit exceeded
12:28:29 <merijn> > filter (<2) [1..]
12:28:36 <lambdabot> mueval-core: Time limit exceeded
12:28:37 <merijn> aww
12:28:41 <merijn> not lazy enough :p
12:29:04 <hpc> > filter (<3) [1..]
12:29:10 <lambdabot> mueval-core: Time limit exceeded
12:29:17 <merijn> hpc: I don't think I ever used filter without having to check in ghci using "filter even [1..10]" to remember how it works :p
12:29:31 <hpc> hmm, i guess it's only exceptions that give partial output
12:29:43 <hpc> merijn: now you can uses the grep trick too then :D
12:30:07 alx741 joins (~alx741@181.199.42.143)
12:30:12 <hpc> fun fact: in perl filter is a keyword and it's actually called grep
12:31:24 <tomsmeding> doesn't lambdabot give partial output only when its output buffer is filled before the time limit?
12:31:25 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
12:31:31 vglfr joins (~vglfr@coupling.penchant.volia.net)
12:31:31 × jespada quits (~jespada@85.255.234.190) (Read error: Connection reset by peer)
12:32:10 ph88 joins (~ph88@ip5f5af71f.dynamic.kabel-deutschland.de)
12:32:22 × komikat quits (~komikat@183.82.154.239) (Remote host closed the connection)
12:32:53 <tomsmeding> let f n | n < 2 = 1 | True = f (n-1) + f (n`div`2) in map f [1..]
12:32:53 yauhsien_ joins (~yauhsien@61-231-19-150.dynamic-ip.hinet.net)
12:32:55 <tomsmeding> > let f n | n < 2 = 1 | True = f (n-1) + f (n`div`2) in map f [1..]
12:33:01 <lambdabot> mueval-core: Time limit exceeded
12:33:05 <tomsmeding> > [1..]
12:33:07 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,...
12:33:46 <hpc> > [1, 2, error "also this"]
12:33:46 <tomsmeding> hm, apparently not, that prefix of the f thing should finish _very_ quickly
12:33:48 <lambdabot> [1,2,*Exception: also this
12:34:10 <tomsmeding> > take 30 $ let f n | n < 2 = 1 | True = f (n-1) + f (n`div`2) in map f [1..]
12:34:12 <lambdabot> [1,2,3,5,7,10,13,18,23,30,37,47,57,70,83,101,119,142,165,195,225,262,299,346...
12:34:14 <tomsmeding> longer prefix
12:34:22 × juhp quits (~juhp@128.106.188.82) (Quit: juhp)
12:34:35 juhp joins (~juhp@128.106.188.82)
12:35:15 komikat joins (~komikat@183.82.154.239)
12:38:38 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
12:40:37 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
12:41:35 vglfr joins (~vglfr@coupling.penchant.volia.net)
12:43:48 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
12:44:02 juhp parts (~juhp@128.106.188.82) (Good Bye)
12:44:04 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
12:45:47 acidjnk joins (~acidjnk@p200300d0c718c027c4e2756bf84aaa21.dip0.t-ipconnect.de)
12:46:30 × acidjnk_new quits (~acidjnk@p200300d0c714a49878af4a2b338b7680.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
12:46:51 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
12:47:43 vglfr joins (~vglfr@coupling.penchant.volia.net)
12:49:06 burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk)
12:49:32 × zeenk quits (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) (Quit: Konversation terminated!)
12:50:25 × burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Remote host closed the connection)
12:50:51 burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk)
12:53:23 × bliminse quits (~bliminse@host109-152-150-162.range109-152.btcentralplus.com) (Quit: leaving)
12:55:21 × burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 245 seconds)
12:55:23 alx741 joins (~alx741@157.100.197.240)
12:57:16 × alMalsamo quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
12:57:37 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Ping timeout: 272 seconds)
13:01:57 × komikat quits (~komikat@183.82.154.239) (Remote host closed the connection)
13:02:28 alMalsamo joins (~alMalsamo@gateway/tor-sasl/almalsamo)
13:02:53 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
13:04:41 bliminse joins (~bliminse@host109-152-150-162.range109-152.btcentralplus.com)
13:06:02 komikat joins (~komikat@183.82.154.239)
13:08:00 × komikat quits (~komikat@183.82.154.239) (Remote host closed the connection)
13:15:34 <dminuoso> Is there some convenience thing that lets me generate all possible unary constructors for a data type?
13:16:08 <dminuoso> Originally I thought Enum was that, but that lacks Bounded as a superclass
13:16:55 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
13:18:55 <dminuoso> The least painful way seems to cook up something with Data like `gen :: Data a => [a]`
13:19:13 <dminuoso> Sorry. I meant *nullary* constructors of course.
13:19:26 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
13:19:34 vglfr joins (~vglfr@coupling.penchant.volia.net)
13:19:39 <tomsmeding> are there also non-nullary constructors that you want to skip?
13:20:10 <dminuoso> No, or rather I dont care either way
13:20:26 komikat joins (~komikat@183.82.154.239)
13:20:32 shapr joins (~user@pool-173-73-44-186.washdc.fios.verizon.net)
13:20:35 <tomsmeding> type Enum' a = (Enum a, Bounded a)
13:20:40 <tomsmeding> does that help? :p
13:20:51 <dminuoso> tomsmeding: Is Bounded deriveable?
13:20:58 <dminuoso> % data Foo = Foo | Bar deriving Bounded
13:20:58 <yahb> dminuoso:
13:21:00 <dminuoso> Oh wow.
13:21:02 <dminuoso> I did not expect that
13:21:06 alx741 joins (~alx741@157.100.197.240)
13:21:13 <dminuoso> % minBound :: Foo
13:21:13 <yahb> dminuoso: ; <interactive>:19:1: error:; * No instance for (Show Foo) arising from a use of `print'; * In a stmt of an interactive GHCi command: print it
13:21:19 <dminuoso> % data Foo = Foo | Bar deriving (Bounded, Show)
13:21:19 <yahb> dminuoso:
13:21:19 <tomsmeding> heh
13:21:24 <dminuoso> % minBound :: Foo
13:21:24 <yahb> dminuoso: Foo
13:21:28 <dminuoso> % maxBound :: Foo
13:21:28 <yahb> dminuoso: Bar
13:21:33 <dminuoso> tomsmeding: Alright, yes. That will work!
13:21:35 <tomsmeding> :D
13:22:39 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d024:453c:94af:7479)
13:22:53 burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk)
13:23:50 × acidjnk quits (~acidjnk@p200300d0c718c027c4e2756bf84aaa21.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
13:25:29 <tomsmeding> :t [minBound..maxBound]
13:25:29 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
13:25:30 <lambdabot> (Bounded a, Enum a) => [a]
13:26:12 geekosaur joins (~geekosaur@xmonad/geekosaur)
13:26:12 dimsuz joins (~dimsuz@185.17.131.184)
13:26:22 <dminuoso> tomsmeding: I did not even conceive to try whether Bounded was deriveable until you mentioned it
13:26:27 <dminuoso> :)
13:26:42 × ccntrq quits (~Thunderbi@2a01:e34:eccb:b060:ea23:2b79:a0de:4996) (Remote host closed the connection)
13:27:02 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d024:453c:94af:7479) (Ping timeout: 240 seconds)
13:27:23 <tomsmeding> I guess it kind of makes sense given that Enum is derivable, and deriving Enum basically requires having at least a lower bound
13:27:47 <dimsuz> Hi! If I have a list of Maybes and from each of them I want to perform an IO action in a do block if it's a Just, how to proceed? I want something like "whenMaybe val $ do ..."
13:28:37 <dimsuz> I could write "case", but its Nothing block would always be "return ()"
13:28:46 <dminuoso> tomsmeding: Honestly, Enum very deeply flawed though.
13:29:08 <dminuoso> `toEnum :: Int -> a`
13:29:11 <dminuoso> That thing shouldn't exist
13:29:42 ccntrq joins (~Thunderbi@2a01:e34:eccb:b060:801:2c01:d0ac:b063)
13:29:46 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
13:30:26 <dminuoso> And Im also not entirely happy about `fromEnum :: a -> Int` either
13:30:48 <dminuoso> They are very awkward and are sometimes abused for typical enum/integer mappings in protocol settings
13:31:21 <lortabac> dimsuz: you can use 'for_'
13:31:49 <tomsmeding> dminuoso: not vouching for quality of the design of Enum :p
13:31:58 zeenk joins (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5)
13:32:05 jippiedoe joins (~david@2a02-a44c-e14e-1-e90c-8e2f-189d-dd38.fixed6.kpn.net)
13:32:14 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 260 seconds)
13:32:42 <merijn> dimsuz: See also "maybe (return ()) f"
13:32:53 <merijn> although for_/forM_ may look cleaner
13:33:09 <lortabac> dimsuz: or alternatively you can use 'catMaybes' on the list and 'sequenceA' to perform the actions
13:33:44 <dminuoso> Also, `wither` is a very functional thing
13:33:58 <dminuoso> % wither f t = catMaybes <$> traverse f t
13:33:58 <yahb> dminuoso:
13:34:02 <dminuoso> % :t wither
13:34:02 <yahb> dminuoso: Applicative f => (a1 -> f (Maybe a2)) -> [a1] -> f [a2]
13:34:04 <merijn> dimsuz: How did you get the list of maybes?
13:34:10 <dminuoso> Is something I very frequently define in my projects. :)
13:34:24 <merijn> 'cause maybe you just want mapMaybe instead
13:34:26 <merijn> :t mapMaybe
13:34:27 <lambdabot> (a -> Maybe b) -> [a] -> [b]
13:34:43 <lortabac> merijn: +1
13:35:03 <dimsuz> merijn, lortabac I wrongly said "I have a list of Maybe's". I meant I have four distinct maybe's on which I need to act separately :) So  I guess it's either mapMaybe or maybe
13:35:38 <dimsuz> Initially I hoped to do with a list of Maybe's, but that's not going to work and it's another question, I guess I'll ask it separately (one moment)
13:35:56 <dminuoso> dimsuz: Also, do-notation with Maybe can be very elegant.
13:36:22 <dminuoso> Just throwing in additional bits that might help *shrugs*
13:36:44 <lortabac> dimsuz: if you have a single value of type Maybe, you can use either 'for_' or 'maybe (pure ())'
13:42:15 alx741 joins (~alx741@157.100.197.240)
13:42:59 acidjnk joins (~acidjnk@dynamic-089-204-137-076.89.204.137.pool.telefonica.de)
13:43:08 <dimsuz> I was trying to build an Sqlite.Simple update query where a set of update parameters comes from user. He can decide to update 1 up to 4 params. I wanted to create a named query
13:43:08 <dimsuz> let params = ["param1 = :param1", "param2 = :param2", ...]
13:43:09 <dimsuz>      args = [":param1" := param1, ":param2" := param2, ...]
13:43:10 <dimsuz> in (executeNamed ("UPDATE table SET " <> params) args)
13:43:10 <dimsuz> where params and args are build from list of Maybe's coming from user input but Sqlite.Simple doesn't allow me to build Query from non-literal strings (understandably though).
13:43:11 <dimsuz> I have resorted to doing 1-4 separate updates instead of dynamically building from list. Is it OK?
13:43:29 <dimsuz> sorry for multiline. I have just recalled I should've used hpaste :(
13:45:49 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
13:45:59 <geekosaur> hpaste is gone, sadly
13:46:07 <geekosaur> @where paste
13:46:07 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
13:47:41 <dimsuz> thanks! will use it next time! also I have realzed this may be offtopic, as it's some DB-library specific question
13:47:42 × burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Remote host closed the connection)
13:47:58 Null_A joins (~null_a@2601:645:8700:2290:44bc:7304:7645:6729)
13:49:20 <geekosaur> it's still a Haskell question. and I am not sure your list idea would even work since a list hasto have items allof the same type
13:49:37 <geekosaur> you can't stuff aMaybe Int and a Maybe Text into the same list
13:51:26 <dimsuz> I was converting them to Sqlite.Simple's NamedParam types so it worked type-wise right up until I stubled on this "newtype Query = Text" which only has IsString and is not possible to build other than from literal strings (for protection from injection)
13:51:39 acidjnk_new joins (~acidjnk@dynamic-089-204-137-076.89.204.137.pool.telefonica.de)
13:52:00 Ash[m] joins (~signal-wa@2001:470:69fc:105::1:2318)
13:52:08 <tomsmeding> (you can use Data.String.fromString, but that's explicitly working around the protection, so think hard before you do that)
13:52:43 × max22- quits (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) (Ping timeout: 250 seconds)
13:53:45 <tomsmeding> dimsuz: how are you doing the separate updates? If the column name is coming from user input, how does that even work in the first place?
13:53:47 <dimsuz> Oh, nice. thanks! Yes, I understand this is risky. And 4 distinct updates instead of 1 do not sound bad actually, it's just that they are a bit uglier in code. But I doubt I'll ever have more
13:54:17 × acidjnk quits (~acidjnk@dynamic-089-204-137-076.89.204.137.pool.telefonica.de) (Ping timeout: 240 seconds)
13:54:58 <dimsuz> tomsmeding users sends in a PUT containing json with either full set of fields to update or some of them. From this json I derive a list of table columns to update
14:01:07 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
14:02:17 alx741 joins (~alx741@181.199.42.143)
14:02:26 <tomsmeding> dimsuz: I guess my question is, how are you getting a user-specified column name into the query in the first place. If you can do that, why can't you do four of them?
14:04:33 jespada joins (~jespada@85.255.234.190)
14:04:57 × Null_A quits (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds)
14:06:07 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
14:06:07 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
14:06:46 alx741 joins (~alx741@181.199.42.143)
14:06:56 vglfr joins (~vglfr@coupling.penchant.volia.net)
14:08:41 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
14:08:41 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
14:09:49 vglfr joins (~vglfr@coupling.penchant.volia.net)
14:10:19 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
14:10:29 CiaoSen joins (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
14:11:41 × komikat quits (~komikat@183.82.154.239) (Remote host closed the connection)
14:13:59 komikat joins (~komikat@183.82.154.239)
14:14:43 × jippiedoe quits (~david@2a02-a44c-e14e-1-e90c-8e2f-189d-dd38.fixed6.kpn.net) (Quit: Leaving)
14:15:40 lavaman joins (~lavaman@98.38.249.169)
14:16:02 max22- joins (~maxime@2a01cb08833598005699785cb4ec772c.ipv6.abo.wanadoo.fr)
14:17:02 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
14:17:26 vglfr joins (~vglfr@coupling.penchant.volia.net)
14:17:35 <dimsuz> tomsmeding it's not strictly user defined, it's mapped into my record type by aeson. All json fields are Maybe's. User can fill either all or some. Then I thought I could pair up each of record fields with it's db column name, put them in a list and construct an update query using catMaybe's. But restriction on having literal string queries
14:17:36 <dimsuz> prevents this. So I'm currently going with 4 distinct `for_`'s as suggested above. Would be troublesome if I had 100 of those, but nowhere near this :)
14:18:11 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
14:18:11 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
14:18:11 wroathe joins (~wroathe@user/wroathe)
14:18:12 Null_A joins (~null_a@2601:645:8700:2290:44bc:7304:7645:6729)
14:19:01 jkaye joins (~jkaye@2601:281:8300:7530:1f3b:3a8f:f843:9a79)
14:19:16 burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk)
14:20:07 jao joins (~jao@static-68-235-44-77.cust.tzulo.com)
14:21:27 × cosimone quits (~user@93-34-132-33.ip49.fastwebnet.it) (Remote host closed the connection)
14:22:03 × komikat quits (~komikat@183.82.154.239) (Remote host closed the connection)
14:22:17 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
14:26:19 × yauhsien_ quits (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Remote host closed the connection)
14:27:06 yauhsien_ joins (~yauhsien@61-231-19-150.dynamic-ip.hinet.net)
14:27:06 alx741 joins (~alx741@181.199.42.143)
14:27:29 zer0bitz joins (~zer0bitz@2001:2003:f74d:b800:b4a7:dec3:a543:4b87)
14:30:05 × burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 272 seconds)
14:30:05 × Vajb quits (~Vajb@2001:999:600:5133:28cb:83bf:5ecf:4314) (Read error: Connection reset by peer)
14:30:34 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
14:31:08 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
14:31:48 × yauhsien_ quits (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
14:32:23 mvk joins (~mvk@2607:fea8:5cdc:bf00::99e7)
14:32:43 × alMalsamo quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection)
14:33:00 alMalsamo joins (~alMalsamo@gateway/tor-sasl/almalsamo)
14:34:11 komikat joins (~komikat@183.82.154.239)
14:34:11 shriekingnoise joins (~shrieking@201.231.16.156)
14:35:50 yauhsien_ joins (~yauhsien@61-231-19-150.dynamic-ip.hinet.net)
14:36:44 × Null_A quits (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 250 seconds)
14:36:55 doyougnu joins (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com)
14:38:41 dalek_caan joins (~Thunderbi@109.252.124.86)
14:43:23 Sgeo joins (~Sgeo@user/sgeo)
14:46:57 × yauhsien_ quits (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Remote host closed the connection)
14:47:21 alx741 joins (~alx741@181.199.42.143)
14:47:50 yauhsien_ joins (~yauhsien@61-231-19-150.dynamic-ip.hinet.net)
14:48:51 × dimsuz quits (~dimsuz@185.17.131.184) (Ping timeout: 256 seconds)
14:48:52 × jespada quits (~jespada@85.255.234.190) (Read error: Connection reset by peer)
14:49:08 × yauhsien quits (~Yau-Hsien@61-231-19-150.dynamic-ip.hinet.net) (Quit: Leaving)
14:49:16 burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk)
14:50:32 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
14:54:17 bahamas joins (~lucian@84.232.140.52)
14:56:13 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
14:57:00 × xff0x quits (~xff0x@2001:1a81:53ab:2800:b38f:e60b:4875:f7ef) (Ping timeout: 240 seconds)
14:58:20 vysn joins (~vysn@user/vysn)
14:58:59 xff0x joins (~xff0x@2001:1a81:53c8:8500:d186:ea73:d14c:679b)
14:59:27 × acidjnk_new quits (~acidjnk@dynamic-089-204-137-076.89.204.137.pool.telefonica.de) (Read error: Connection reset by peer)
15:00:27 acidjnk joins (~acidjnk@dynamic-089-204-137-076.89.204.137.pool.telefonica.de)
15:00:32 ec joins (~ec@gateway/tor-sasl/ec)
15:02:04 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
15:02:05 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
15:02:05 wroathe joins (~wroathe@user/wroathe)
15:05:36 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
15:05:41 Null_A joins (~null_a@2601:645:8700:2290:44bc:7304:7645:6729)
15:07:35 alx741 joins (~alx741@157.100.197.240)
15:07:36 ec joins (~ec@gateway/tor-sasl/ec)
15:09:21 × Pickchea quits (~private@user/pickchea) (Ping timeout: 272 seconds)
15:10:06 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
15:10:17 × Null_A quits (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds)
15:10:44 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
15:11:48 × Megant quits (megant@user/megant) (Ping timeout: 256 seconds)
15:12:30 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 272 seconds)
15:12:45 × AlexNoo quits (~AlexNoo@178.34.160.252) (Quit: Leaving)
15:13:27 Megant joins (megant@user/megant)
15:14:07 × AlexZenon quits (~alzenon@178.34.160.252) (Quit: ;-)
15:14:27 × Alex_test quits (~al_test@178.34.160.252) (Quit: ;-)
15:20:52 × acidjnk quits (~acidjnk@dynamic-089-204-137-076.89.204.137.pool.telefonica.de) (Ping timeout: 256 seconds)
15:20:55 mikoto-chan joins (~mikoto-ch@213.177.151.239)
15:21:22 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:65ac:9e8f:4b5e:2c6b) (Quit: WeeChat 2.8)
15:23:33 kadobanana joins (~mud@user/kadoban)
15:23:59 × mud quits (~mud@user/kadoban) (Ping timeout: 256 seconds)
15:24:21 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d024:453c:94af:7479)
15:25:32 arjun` joins (~user@103.57.87.142)
15:25:40 <arjun`> hi
15:25:56 <geekosaur> hi
15:25:57 <arjun`> is there a way to see what AST haskell generates for a file ?
15:26:06 × komikat quits (~komikat@183.82.154.239) (Remote host closed the connection)
15:26:13 <arjun`> geekosaur \o
15:26:33 <arjun`> how've ya been
15:26:56 <Franciman> arjun`: i think you can use ghc as a library https://wiki.haskell.org/GHC/As_a_library
15:27:08 <Franciman> not sure if this is what you are looking for, though
15:27:29 <geekosaur> you generally can't see the AST itself directly, but -ddump-ds shows what it transforms your program into before applying optimizations and such
15:27:43 <geekosaur> ("ghc core")
15:28:01 <arjun`> i've been reading up on template haskell lately, and am curious
15:28:36 <arjun`> as to how does the entire process of it happens, start to end, what compiles where and what do we end up with
15:28:36 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d024:453c:94af:7479) (Ping timeout: 240 seconds)
15:29:13 alx741 joins (~alx741@181.199.42.143)
15:29:40 <arjun`> the haskell AST isn't the same as the one we get with `runQ` is it? InfixE (LitE (Just (IntegerE 1))) or something like that
15:29:55 <geekosaur> ah. this has a complication: the AST TH works with isn't actually the AST GHC works with internally
15:30:13 <geekosaur> but I don't know the details there
15:31:16 <arjun`> when ghc parses stuff, and comes across template haskell, it has to then parse that AST and add it to the FILE's AST so that it can treat it as regular code of a function or a type declaration right
15:32:10 <arjun`> then there's this curious flag -fexternal-interpreter
15:33:22 <geekosaur> what's curious about it?
15:33:23 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
15:35:36 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
15:36:50 <merijn> arjun`: -fexternal-interpreter is related to cross-compilation
15:36:58 <merijn> arjun`: Because TH has some nasty edges
15:37:32 <merijn> arjun`: Like "what if TH generates code based on the size of an Int, but the GHC on *this* CPU has size 8, while the GHC on the cross-compilation target uses size 4?"
15:38:13 ec joins (~ec@gateway/tor-sasl/ec)
15:38:17 × vysn quits (~vysn@user/vysn) (Remote host closed the connection)
15:38:38 komikat joins (~komikat@183.82.154.239)
15:39:28 bjourne joins (~bjourne@2001:6b0:1:1140:42bf:ff4:f8fa:50e5)
15:39:49 <arjun`> merijn: i see
15:39:51 <merijn> arjun`: There is actually a definition of what (conceptually!) is evaluated when. Specifically, TH can see/refer to all code *above* it, but not below it. So if you have a file consisting of 5 code segments "1 A 2 B 3" where A and B are TH splice, the *generated* A code can refer to 1, but not 2, B, or 3.
15:40:32 vysn joins (~vysn@user/vysn)
15:40:38 <arjun`> sure, those are the declarations groups
15:40:50 <arjun`> if i understood correctly
15:41:27 <arjun`> but i was curious, why does TH need separate GHC process to run itself, if it was just an AST insertion
15:41:36 × alMalsamo quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
15:41:37 <arjun`> i think i had the wrong idea
15:41:50 <geekosaur> as merijn said, -fexternal-interpreter is for cross compilation
15:41:56 <geekosaur> normally you wouldn't use it
15:42:13 <geekosaur> but if you're cross-compiling, the TH needs to run on the target
15:42:17 × mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 272 seconds)
15:42:34 <arjun`> i've been interested in the "lets create a js backend for GHC issue"
15:42:50 <geekosaur> it's also sometimes useful on limited memory machines like arduinos
15:43:14 <arjun`> and the author asked me to look into TH and GHC and ghcjs
15:43:46 <arjun`> and i think node is used with -fexternal-interpreter there ?
15:44:02 <geekosaur> I couldn't tell you about ghcjs
15:44:37 alMalsamo joins (~alMalsamo@gateway/tor-sasl/almalsamo)
15:44:37 <arjun`> nah, that's fine, i was wondering how it worked in GHC first
15:45:02 <arjun`> seems TH isn't a ast to ast splice and TH code must be compiled separately?
15:45:48 × abhixec quits (~abhinav@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
15:46:31 <geekosaur> well, TH is code that generates an AST, not simply an AST
15:46:47 × komikat quits (~komikat@183.82.154.239) (Remote host closed the connection)
15:47:06 <geekosaur> which is where most of its power lies
15:47:21 <arjun`> so, it must first run somewhere right?
15:47:23 dalek_caan parts (~Thunderbi@109.252.124.86) ()
15:47:27 komikat joins (~komikat@183.82.154.239)
15:48:04 <arjun`> and to run it must be interpreted or compiled if i have the right idea?
15:49:01 <geekosaur> yes. so typically it is compiled by the bytecode compiler (think ghci) and immediately interpreted. with -fexternal-interpreter the compilation is done locally but the interpretation is done by an external process which may be running on a different machine, as with cross-compilation
15:49:31 ShalokShalom joins (~ShalokSha@2a02:1748:dd5e:7f60:c55f:bc58:d177:838)
15:49:35 <ShalokShalom> Hi there
15:49:47 × yauhsien_ quits (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Remote host closed the connection)
15:50:16 <arjun`> geekosaur: that makes so much sense to me rn
15:50:19 <ShalokShalom> I try to build stack on my phone, in Termux and I always get a straight 'Bus error' out of a 'stack setup'
15:50:19 <geekosaur> and it's intepreted because it's simpler and it's assumed that the overhead of compilation to object code would be more expensive than interpreting it (this tends to be false with some of the fancier uses of TH these days)
15:50:37 alx741 joins (~alx741@181.199.42.143)
15:50:44 <ShalokShalom> Hi all
15:50:53 <arjun`> hi !
15:51:51 <ShalokShalom> Also running just 'stack' gives me Bus error
15:51:53 <geekosaur> I am noyt sure how well stack or indeed any haskell program would work with termux; it plays too many games to pretend android is a full OS
15:52:42 <ShalokShalom> Doesnt nessecerily pile up to be a helpful error message.
15:52:52 <ShalokShalom> Yeah, probably
15:53:02 <ShalokShalom> I just want to compile one package with it
15:53:15 <ShalokShalom> Its prebuild binaries are sadly not for arm64
15:54:35 <geekosaur> haskell does not produce that error message; the shell does
15:55:17 <geekosaur> it indicates that stack crashed on an OS signal
15:55:18 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
15:55:31 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
15:55:35 <arjun`> geekosaur: so now hypothetically suppose if, we have a working JS backend for GHC, in theory, TH code would be compiled to JS (instead of bytecode)? and then run on node (instead of the ghc interpreter)? and then the result then somehow used in the (still on going) compilation process?
15:55:55 <ShalokShalom> Ah, it seems there is something
15:55:57 <ShalokShalom> https://www.reddit.com/r/haskell/comments/55p0jb/stackghc_on_termux/
15:56:09 Pickchea joins (~private@user/pickchea)
15:56:09 <geekosaur> arjun`, I believe that's what ghcjs does now, yes
15:57:32 yauhsien joins (~yauhsien@61-231-19-150.dynamic-ip.hinet.net)
15:58:25 <arjun`> thanks a ton for helping me wrap my head around this geekosaur
15:59:58 <geekosaur> I wouldn't be too surprised if stack runs out of memory trying to download the list of resolvers. For that matter I'm amazed ghc didn't run out of memory
16:02:01 × yauhsien quits (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 245 seconds)
16:03:40 × ShalokShalom quits (~ShalokSha@2a02:1748:dd5e:7f60:c55f:bc58:d177:838) (Ping timeout: 256 seconds)
16:05:04 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 256 seconds)
16:10:23 × mbuf quits (~Shakthi@122.178.120.57) (Quit: Leaving)
16:11:59 alx741 joins (~alx741@157.100.197.240)
16:12:43 <bjourne> has anyone of you heard the term "skeleton programming" when referring to parallel execution of higher order functions?
16:15:04 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
16:15:11 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
16:16:41 zebrag joins (~chris@user/zebrag)
16:17:43 little_mac joins (~little_ma@2601:410:4300:3ce0:25e4:decc:c8da:26b5)
16:17:55 jespada joins (~jespada@85.255.234.190)
16:25:23 × Pickchea quits (~private@user/pickchea) (Ping timeout: 252 seconds)
16:25:55 mikoto-chan joins (~mikoto-ch@213.177.151.239)
16:26:01 × komikat quits (~komikat@183.82.154.239) (Remote host closed the connection)
16:31:19 × mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 250 seconds)
16:31:19 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 250 seconds)
16:31:58 xkuru joins (~xkuru@user/xkuru)
16:32:01 alx741 joins (~alx741@181.199.42.143)
16:35:50 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
16:36:06 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
16:36:30 alx741 joins (~alx741@181.199.42.143)
16:38:41 × vysn quits (~vysn@user/vysn) (Ping timeout: 250 seconds)
16:40:52 vickyHaskell joins (~textual@49.37.169.2)
16:43:04 arjun joins (~arjun@user/arjun)
16:43:25 arjun` parts (~user@103.57.87.142) (ERC 5.4.1 (IRC client for GNU Emacs 29.0.50))
16:45:14 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
16:46:36 Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net)
16:50:45 komikat joins (~komikat@183.82.154.239)
16:51:31 phma_ joins (phma@2001:5b0:2172:8c78:5f9d:f266:1ca1:f0c)
16:51:32 × alp quits (~alp@user/alp) (Ping timeout: 240 seconds)
16:52:07 analognoise joins (~analognoi@ip98-176-154-48.sd.sd.cox.net)
16:54:19 analognoise1 joins (~analognoi@192.145.80.4)
16:54:37 × phma quits (~phma@host-67-44-208-227.hnremote.net) (Ping timeout: 240 seconds)
16:54:56 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
16:55:15 geekosaur joins (~geekosaur@xmonad/geekosaur)
16:57:14 × vickyHaskell quits (~textual@49.37.169.2) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:57:37 × analognoise quits (~analognoi@ip98-176-154-48.sd.sd.cox.net) (Ping timeout: 240 seconds)
16:59:53 Null_A joins (~null_a@2601:645:8700:2290:44bc:7304:7645:6729)
17:01:49 alx741 joins (~alx741@157.100.197.240)
17:02:18 × MajorBiscuit quits (~MajorBisc@c-001-017-039.client.tudelft.eduvpn.nl) (Ping timeout: 256 seconds)
17:03:39 × coot quits (~coot@213.134.190.95) (Quit: coot)
17:04:12 × Null_A quits (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds)
17:04:30 × Natch quits (~natch@c-4db8e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection)
17:05:09 wootehfoot joins (~wootehfoo@user/wootehfoot)
17:05:22 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
17:07:41 Akiva joins (~Akiva@user/Akiva)
17:10:35 lavaman joins (~lavaman@98.38.249.169)
17:15:31 × sprout quits (~quassel@2a02:a467:ccd6:1:3d23:94e0:3c0f:8df3) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
17:15:53 sprout joins (~quassel@2a02:a467:ccd6:1:940d:dbf8:92f5:3d86)
17:16:21 AlexZenon joins (~alzenon@178.34.160.252)
17:16:32 <maerwald> anyone has an example with servants custom monads, but not with Handler, but with wai's Application?
17:16:34 Null_A joins (~null_a@2601:645:8700:2290:44bc:7304:7645:6729)
17:16:44 AlexNoo joins (~AlexNoo@178.34.160.252)
17:17:53 × jao quits (~jao@static-68-235-44-77.cust.tzulo.com) (Ping timeout: 256 seconds)
17:18:53 Alex_test joins (~al_test@178.34.160.252)
17:19:01 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
17:20:07 jao joins (~jao@66.63.167.125)
17:20:51 vicfred joins (~vicfred@user/vicfred)
17:21:36 × ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec)
17:21:51 alx741 joins (~alx741@157.100.197.240)
17:24:32 coot joins (~coot@213.134.190.95)
17:25:54 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d024:453c:94af:7479)
17:29:42 ShalokShalom joins (~ShalokSha@2a02:1748:dd5e:7f60:f56a:2bb4:a975:dd85)
17:30:12 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d024:453c:94af:7479) (Ping timeout: 240 seconds)
17:30:17 <ShalokShalom> ./stack-2.7.1-linux-aarch64.bin setup
17:30:17 <ShalokShalom> Could not parse '/root/.stack/config.yaml':
17:30:18 <ShalokShalom> Aeson exception:
17:30:18 <ShalokShalom> Error in $: parsing ConfigMonoid failed, expected Object, but encountered Null
17:30:19 <ShalokShalom> See http://docs.haskellstack.org/en/stable/yaml_configuration/
17:30:40 <ShalokShalom> So, I downloaded just the binary, is it complaining now, that I lack a yaml?
17:32:16 Natch joins (~natch@c-4db8e255.014-297-73746f25.bbcust.telenor.se)
17:32:36 <ShalokShalom> Why dont they create one, or put one to the download?
17:32:49 <c_wraith> ... far more important, why is it looking in /root ?
17:33:01 × dons quits (~dons@user/dons) (Quit: Lost terminal)
17:33:22 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
17:34:05 <ShalokShalom> I did it in home, same
17:34:36 × Null_A quits (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds)
17:35:37 <c_wraith> I'd be super wary of file ownership issues breaking all sorts of things at this point.
17:35:53 <c_wraith> since you clearly ran some commands as root
17:36:29 × ShalokShalom quits (~ShalokSha@2a02:1748:dd5e:7f60:f56a:2bb4:a975:dd85) (Quit: Ping timeout (120 seconds))
17:37:10 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
17:37:52 × jkaye quits (~jkaye@2601:281:8300:7530:1f3b:3a8f:f843:9a79) (Remote host closed the connection)
17:38:13 jkaye joins (~jkaye@2601:281:8300:7530:1f3b:3a8f:f843:9a79)
17:38:14 × ubert1 quits (~Thunderbi@2a02:8109:9880:303c:34eb:c52f:ccd4:3473) (Remote host closed the connection)
17:40:29 akegalj joins (~akegalj@93-139-180-172.adsl.net.t-com.hr)
17:42:46 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
17:42:46 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
17:42:46 wroathe joins (~wroathe@user/wroathe)
17:44:59 zincy_ joins (~zincy@2a00:23c8:970c:4801:e530:c2a8:6798:30a9)
17:47:53 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
17:49:29 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
17:50:32 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
17:50:47 Guest60 joins (~Guest60@134.101.5.46)
17:51:26 alx741 joins (~alx741@157.100.197.240)
17:53:38 <Guest60> is it possible to change a last element in a list of strings? for example list of names, ["Arnold, "1000 more names", "NameToChange"]?  Or even if I want to add a specific element, is it possible?
17:53:55 <Guest60> not add, but change a specific element of the list let's say at the index 10
17:53:56 <dminuoso> Yes, but not comfortably
17:54:14 <dminuoso> What I would do is write `map1 :: (a -> a) -> [a] -> [a]` that maps over the first element
17:54:17 × kuribas quits (~user@ptr-25vy0ial5agu2xq2mv8.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
17:54:25 <dminuoso> And then write `reverse . map1 f . reverse`
17:55:08 <dminuoso> But really, random manipulation lists is not convenient due to how lists are made. At the end lists are more like control structure rather than data structure
17:55:24 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
17:55:46 <Guest60> I was thinking about a similar solution with reverse, the idea is that I have a list of names and I want to separate them with semicolons, and I want to get rid of the last semicolon, I though about reversing a list and taking all chars except the last without a semicolon and reversing it back..any better solution?
17:56:23 <Guest60> so I want to populate a list with ["A";"B"; ...; "Z";] and get rid of the last semicolon
17:56:29 × ccntrq quits (~Thunderbi@2a01:e34:eccb:b060:801:2c01:d0ac:b063) (Remote host closed the connection)
17:56:35 <dminuoso> Guest60: You might be interested in the following primitives
17:56:37 <dminuoso> % :t intercalate
17:56:37 <yahb> dminuoso: [a] -> [[a]] -> [a]
17:56:51 <dminuoso> % :t intersperse
17:56:51 <yahb> dminuoso: a -> [a] -> [a]
17:57:02 <dminuoso> Are these, by any chance, helpful to you?
17:57:18 <dminuoso> % intercalate ";" ["foo", "bar", "quux"]
17:57:18 <yahb> dminuoso: "foo;bar;quux"
17:59:08 <Guest60> I wll check this out, ty.
18:00:51 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d024:453c:94af:7479)
18:00:55 × burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Remote host closed the connection)
18:01:04 × zincy_ quits (~zincy@2a00:23c8:970c:4801:e530:c2a8:6798:30a9) (Remote host closed the connection)
18:01:30 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
18:03:02 × douglaswinship quits (~douglaswi@78.40.148.180) (Remote host closed the connection)
18:05:50 eriol joins (~eriol@user/eriol)
18:06:48 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Remote host closed the connection)
18:07:24 × pooryorick quits (~pooryoric@87-119-174-173.tll.elisa.ee) (Ping timeout: 240 seconds)
18:07:31 sprout is now known as egelbot
18:07:33 vglfr joins (~vglfr@coupling.penchant.volia.net)
18:08:17 zincy_ joins (~zincy@2a00:23c8:970c:4801:e530:c2a8:6798:30a9)
18:08:22 pooryorick joins (~pooryoric@87-119-174-173.tll.elisa.ee)
18:09:54 econo joins (uid147250@user/econo)
18:09:58 vickyHaskell joins (~textual@49.37.169.2)
18:12:00 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 256 seconds)
18:13:38 ProfSimm joins (~ProfSimm@118.125.246.35.bc.googleusercontent.com)
18:13:58 alx741 joins (~alx741@181.199.42.143)
18:14:33 <EvanR> Guest60, to edit the last element of a list (to write a helper that applies a function to the last element of a list), I'd probably define it directly as two equations.
18:14:36 × doyougnu quits (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) (Ping timeout: 240 seconds)
18:14:50 × zincy_ quits (~zincy@2a00:23c8:970c:4801:e530:c2a8:6798:30a9) (Remote host closed the connection)
18:14:56 <EvanR> note that such a function needs special treatment for []
18:15:07 egelbot is now known as sprout
18:15:23 <EvanR> do you crash or react to [] with another []
18:15:36 zincy_ joins (~zincy@2a00:23c8:970c:4801:e530:c2a8:6798:30a9)
18:16:08 cfricke joins (~cfricke@user/cfricke)
18:16:12 <EvanR> if you're dealing with non-empty lists, Data.List.NonEmpty can allow you to avoid the question
18:16:45 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
18:17:18 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
18:17:26 alx741 joins (~alx741@157.100.197.240)
18:17:35 × zincy_ quits (~zincy@2a00:23c8:970c:4801:e530:c2a8:6798:30a9) (Remote host closed the connection)
18:18:36 × fef quits (~thedawn@user/thedawn) (Ping timeout: 240 seconds)
18:20:35 × chele quits (~chele@user/chele) (Remote host closed the connection)
18:20:36 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
18:22:03 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
18:24:50 jgeerds joins (~jgeerds@d53600c5.access.ecotel.net)
18:24:53 sprout is now known as egelbot
18:25:01 × ph88 quits (~ph88@ip5f5af71f.dynamic.kabel-deutschland.de) (Quit: Leaving)
18:25:53 egelbot is now known as sprout
18:27:26 zincy_ joins (~zincy@2a00:23c8:970c:4801:e530:c2a8:6798:30a9)
18:27:26 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
18:28:09 vglfr joins (~vglfr@coupling.penchant.volia.net)
18:28:29 wonko joins (~wjc@user/wonko)
18:34:31 burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk)
18:38:46 emf joins (~emf@c-73-97-137-43.hsd1.wa.comcast.net)
18:38:46 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
18:39:00 alx741 joins (~alx741@181.199.42.143)
18:39:12 × zincy_ quits (~zincy@2a00:23c8:970c:4801:e530:c2a8:6798:30a9) (Remote host closed the connection)
18:40:07 vglfr joins (~vglfr@coupling.penchant.volia.net)
18:40:15 × burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 272 seconds)
18:40:21 turlando joins (~turlando@93-42-250-112.ip89.fastwebnet.it)
18:40:21 × turlando quits (~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host)
18:40:22 turlando joins (~turlando@user/turlando)
18:41:48 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
18:41:58 zincy_ joins (~zincy@2a00:23c8:970c:4801:e530:c2a8:6798:30a9)
18:42:28 alx741 joins (~alx741@181.199.42.143)
18:42:42 <sm> can you publish a haskell app in the microsoft app store, does anyone know ?
18:44:14 <maerwald> sm: tell me if you figure it out
18:44:21 <maerwald> I'm also interested
18:44:51 <dminuoso> The microsoft store policies dont seem to give a reason against it
18:44:59 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
18:45:05 <dminuoso> https://docs.microsoft.com/en-us/windows/uwp/publish/store-policies#102-security
18:45:05 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
18:45:10 <sm> https://docs.microsoft.com/en-us/windows/uwp/publish/
18:45:28 <dminuoso> Appears to be the only section that somewhat relates to what's inside. So as long as you conform to that
18:45:39 × ProfSimm quits (~ProfSimm@118.125.246.35.bc.googleusercontent.com) (Remote host closed the connection)
18:45:50 vglfr joins (~vglfr@coupling.penchant.volia.net)
18:46:24 emf_ joins (~emf@2620:10d:c090:400::5:e9f1)
18:46:38 <sm> https://docs.microsoft.com/en-us/windows/uwp/publish/msiexe/overview is useful
18:46:57 <sm> but it seems quite hard to be certain without going through it. Or finding an existing app.. can't think of one offhand
18:47:28 <sm> dminuoso: thanks
18:47:54 <dminuoso> sm: the policies are very short.
18:48:12 <dminuoso> If you go through it thoroughly, it seems like a 15 minute read
18:48:33 <dminuoso> 30 if you're being extra careful I guess
18:48:57 × emf quits (~emf@c-73-97-137-43.hsd1.wa.comcast.net) (Ping timeout: 240 seconds)
18:49:07 <sm> I still won't be certain
18:49:50 <dminuoso> You never will be. At the end you're at the mercy of some random store algorithm's whim.
18:49:53 <sm> for my particular app at least, which is slightly harder than "any haskell app in principle"
18:49:54 <dminuoso> Or some admins whim.
18:51:30 × zincy_ quits (~zincy@2a00:23c8:970c:4801:e530:c2a8:6798:30a9) (Remote host closed the connection)
18:51:30 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
18:51:54 zincy_ joins (~zincy@2a00:23c8:970c:4801:e530:c2a8:6798:30a9)
18:52:37 × zincy_ quits (~zincy@2a00:23c8:970c:4801:e530:c2a8:6798:30a9) (Remote host closed the connection)
18:52:45 vglfr joins (~vglfr@coupling.penchant.volia.net)
18:52:50 <sm> I'll be certain if I do it and succeed
18:53:53 <sm> but if anyone thinks of an existing windows app store haskell app, do let us know
18:54:11 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 272 seconds)
18:55:52 Pickchea joins (~private@user/pickchea)
18:56:16 × sprout quits (~quassel@2a02:a467:ccd6:1:940d:dbf8:92f5:3d86) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
18:56:38 sprout joins (~quassel@2a02:a467:ccd6:1:940d:dbf8:92f5:3d86)
18:59:21 × vickyHaskell quits (~textual@49.37.169.2) (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:59:26 slack1256 joins (~slack1256@45.4.2.52)
18:59:29 × Batzy quits (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
18:59:57 <slack1256> Has anyone seen this error before launching a binary inside docker? "a.out: internal error: Itimer: Failed to spawn thread: Operation not permitted"
19:00:14 × komikat quits (~komikat@183.82.154.239) (Remote host closed the connection)
19:01:32 komikat joins (~komikat@183.82.154.239)
19:01:45 alx741 joins (~alx741@181.199.42.143)
19:01:54 Batzy joins (~quassel@user/batzy)
19:02:15 × jespada quits (~jespada@85.255.234.190) (Read error: Connection reset by peer)
19:02:28 × Guest60 quits (~Guest60@134.101.5.46) (Quit: Client closed)
19:04:03 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.)
19:05:36 chexum joins (~quassel@gateway/tor-sasl/chexum)
19:06:20 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
19:07:19 × Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
19:08:21 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
19:09:31 MajorBiscuit joins (~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e)
19:10:09 ProfSimm joins (~ProfSimm@118.125.246.35.bc.googleusercontent.com)
19:12:44 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
19:12:54 benin joins (~benin@223.182.225.201)
19:13:00 × deadmarshal quits (~deadmarsh@95.38.230.132) (Ping timeout: 240 seconds)
19:15:23 Null_A joins (~null_a@c-98-210-133-39.hsd1.ca.comcast.net)
19:19:53 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d024:453c:94af:7479) (Remote host closed the connection)
19:20:08 × arjun quits (~arjun@user/arjun) (Ping timeout: 250 seconds)
19:22:37 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
19:22:49 vglfr joins (~vglfr@coupling.penchant.volia.net)
19:23:09 alx741 joins (~alx741@157.100.197.240)
19:29:30 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
19:29:33 × Topsi quits (~Tobias@dyndsl-095-033-018-046.ewe-ip-backbone.de) (Read error: Connection reset by peer)
19:30:00 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
19:30:08 vglfr joins (~vglfr@coupling.penchant.volia.net)
19:32:45 × Null_A quits (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
19:42:06 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
19:45:13 × ProfSimm quits (~ProfSimm@118.125.246.35.bc.googleusercontent.com) (Ping timeout: 256 seconds)
19:46:15 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
19:46:22 alx741 joins (~alx741@181.199.42.143)
19:46:49 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
19:46:58 vglfr joins (~vglfr@coupling.penchant.volia.net)
19:47:23 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds)
19:47:48 ProfSimm joins (~ProfSimm@87.227.196.109)
19:48:59 Lord_of_Life_ is now known as Lord_of_Life
19:49:45 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
19:49:48 × MajorBiscuit quits (~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e) (Ping timeout: 240 seconds)
19:52:52 × coot quits (~coot@213.134.190.95) (Ping timeout: 256 seconds)
20:00:45 coot joins (~coot@213.134.190.95)
20:01:17 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d024:453c:94af:7479)
20:02:10 Null_A joins (~null_a@c-98-210-133-39.hsd1.ca.comcast.net)
20:03:28 <Cale> dminuoso: TH splices will somehow give you an expression, but that expression will generally need to be evaluated. In cases where you have access to the data constructors for the type you're constructing, that can be helpful, but for stuff like Map/Set, it's quite inconvenient at the very least, and for ByteString/Text, you're still out of luck, since we can't have ByteString literals.
20:04:15 Erutuon joins (~Erutuon@user/erutuon)
20:04:29 × slack1256 quits (~slack1256@45.4.2.52) (Ping timeout: 272 seconds)
20:06:33 × jgeerds quits (~jgeerds@d53600c5.access.ecotel.net) (Read error: Connection reset by peer)
20:06:35 alx741 joins (~alx741@181.199.42.143)
20:07:01 × Null_A quits (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Ping timeout: 272 seconds)
20:09:26 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
20:10:05 alx741 joins (~alx741@181.199.42.143)
20:10:37 _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl)
20:14:02 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
20:16:24 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
20:16:54 wroathe joins (~wroathe@user/wroathe)
20:17:32 zero joins (~z@user/zero)
20:17:36 wennefer0 joins (~wennefer0@192.160.51.50)
20:18:51 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.4)
20:19:49 × zzz quits (~z@user/zero) (Ping timeout: 240 seconds)
20:20:02 Null_A joins (~null_a@2601:645:8700:2290:44bc:7304:7645:6729)
20:20:50 × wennefer0 quits (~wennefer0@192.160.51.50) (Client Quit)
20:22:49 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d024:453c:94af:7479) (Remote host closed the connection)
20:22:54 × wonko quits (~wjc@user/wonko) (Ping timeout: 260 seconds)
20:23:00 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
20:23:50 python476 joins (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7)
20:24:45 × bahamas quits (~lucian@84.232.140.52) (Ping timeout: 272 seconds)
20:25:23 doyougnu joins (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com)
20:26:17 cynomys joins (~cynomys@user/cynomys)
20:27:22 slack1256 joins (~slack1256@45.4.2.52)
20:28:16 × fendor_ quits (~fendor@91.141.59.141.wireless.dyn.drei.com) (Remote host closed the connection)
20:31:07 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 256 seconds)
20:32:50 × theproffesor quits (~theproffe@user/theproffesor) (Remote host closed the connection)
20:32:56 python476 parts (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7) (ERC 5.4.1 (IRC client for GNU Emacs 29.0.50))
20:33:27 alx741 joins (~alx741@181.199.42.143)
20:34:43 × coot quits (~coot@213.134.190.95) (Quit: coot)
20:37:16 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
20:37:55 alx741 joins (~alx741@157.100.197.240)
20:38:23 <ehammarstrom> Does anyone know of a good visualisation of function cardinality? |a -> b| = |b| ^ |a|
20:40:28 bahamas joins (~lucian@84.232.140.52)
20:40:38 <slack1256> You mean diagrams? There are some blog post that I can search if that is what you want.
20:41:00 × Null_A quits (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds)
20:41:40 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
20:43:07 × doyougnu quits (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) (Ping timeout: 272 seconds)
20:43:11 <ehammarstrom> slack1256: Yes. I would appreciate that.
20:43:20 <ehammarstrom> My google-fu is not getting me anywhere
20:45:18 burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk)
20:45:39 × Katarushisu quits (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Ping timeout: 272 seconds)
20:46:18 dextaa_ joins (~dextaa@user/dextaa)
20:46:33 <slack1256> ehammarstrom: https://www.youtube.com/watch?v=YScIPA8RbVE That is the "pretties" exposition on the subject in terms of style. You can get it summaried on the blogpost linked.
20:46:52 <slack1256> But yeah, the function cardinality is the hardest one and you already got it.
20:48:36 <slack1256> s_pretties_prettiest_
20:50:42 <ehammarstrom> slack1256: Looks like a great talk. What blogpost are you referring to?
20:52:05 slac23112 joins (~slack1256@45.4.2.52)
20:52:15 × _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
20:53:09 <slac23112> ehammarstrom: Oh, I swear I saw it on the video description. https://gist.github.com/gregberns/5e9da0c95a9a8d2b6338afe69310b945
20:53:48 <slac23112> The author had it formatted differently on various sites, but the general idea is the same and it is well exposed on that gist.
20:54:13 × mrkajetanp quits (~mrkajetan@88.98.245.28) (Read error: Connection reset by peer)
20:55:00 × bahamas quits (~lucian@84.232.140.52) (Ping timeout: 240 seconds)
20:55:03 <[exa]> ehammarstrom: a good intuition is to use `b` as coordinates in an |a|-dimensional space and just draw it as a flimsy 3D-ish vector space. It kinda breaks if the magnitudes get real, but at that point most people will see it.
20:55:13 × slack1256 quits (~slack1256@45.4.2.52) (Ping timeout: 250 seconds)
20:55:54 bendo joins (~bendo@ip5f5bebbb.dynamic.kabel-deutschland.de)
20:56:15 <ehammarstrom> So I guess my question is, what happens when |a| < |b|? When enumerating functions which would map elements of a to elements of b I feel like I get functions that are not total (?)
20:56:15 mrkajetanp joins (~mrkajetan@2a01:4b00:ea36:6c00:7994:941c:3f5d:2b88)
20:56:20 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds)
20:56:36 <ehammarstrom> I am not sure total is the correct wording
20:57:08 pavonia joins (~user@user/siracusa)
20:57:25 <ehammarstrom> E.g. `Bool -> Quad` where `data Quad = A | B | C | D`
20:57:37 <[exa]> if the set sizes differ, the function may become surjective or bijective, totality is a different problem
20:57:41 vorpuni joins (~pvorp@2001:861:3881:c690:d322:f659:136d:eef6)
20:57:50 <[exa]> s/bijective/injective/ whoops
20:59:23 alx741 joins (~alx741@181.199.42.143)
20:59:39 <ehammarstrom> [exa]: I see, it seem that |a -> b| becomes injective if |a| < |b|. But thanks for pointing the terms out, I'll have to do some more digging
21:00:14 alp joins (~alp@user/alp)
21:01:58 <[exa]> otoh I'm totally unaware of a cardinality theory (where you usually only consider well-behaved proper function that are total) that would work with partial functions, other than perhaps trivially adding the bottom as a part of `b`
21:02:35 × benin quits (~benin@223.182.225.201) (Read error: Connection reset by peer)
21:02:59 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
21:07:04 × Ariakenom quits (~Ariakenom@h-82-196-111-63.NA.cust.bahnhof.se) (Quit: Leaving)
21:08:13 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d024:453c:94af:7479)
21:08:19 × zeenk quits (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) (Quit: Konversation terminated!)
21:08:34 yauhsien joins (~yauhsien@61-231-19-150.dynamic-ip.hinet.net)
21:08:40 × vorpuni quits (~pvorp@2001:861:3881:c690:d322:f659:136d:eef6) (Quit: bye)
21:09:25 acidjnk joins (~acidjnk@p5487dbd8.dip0.t-ipconnect.de)
21:10:23 <dolio> ehammarstrom: Functions a -> b with |a| < |b| are not necessarily injective.
21:10:44 <dolio> If |a| > |b| then they are necessarily not injective, though.
21:13:03 × yauhsien quits (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
21:16:20 lavaman joins (~lavaman@98.38.249.169)
21:19:39 alx741 joins (~alx741@157.100.197.240)
21:20:45 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
21:22:07 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
21:24:55 Null_A joins (~null_a@c-98-210-133-39.hsd1.ca.comcast.net)
21:25:25 machinedgod joins (~machinedg@24.105.81.50)
21:25:30 × komikat quits (~komikat@183.82.154.239) (Remote host closed the connection)
21:29:46 × Null_A quits (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
21:34:34 komikat joins (~komikat@183.82.154.239)
21:37:01 × xff0x quits (~xff0x@2001:1a81:53c8:8500:d186:ea73:d14c:679b) (Ping timeout: 245 seconds)
21:38:14 xff0x joins (~xff0x@2001:1a81:53c8:8500:acc6:628c:c348:430)
21:38:45 alx741 joins (~alx741@157.100.197.240)
21:38:48 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
21:39:24 × komikat quits (~komikat@183.82.154.239) (Ping timeout: 256 seconds)
21:41:25 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
21:44:07 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
21:47:39 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
21:49:44 <dibblego> @src (>>=) []
21:49:44 <lambdabot> Source not found. You untyped fool!
21:49:48 <dibblego> @src [] (>>=)
21:49:48 <lambdabot> xs >>= f = concatMap f xs
21:49:50 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
21:51:04 kenran joins (~kenran@200116b82bed0b0071c8f52489bfb401.dip.versatel-1u1.de)
21:51:31 <dibblego> @src concatMap
21:51:32 <lambdabot> concatMap f = foldr ((++) . f) []
21:54:11 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
21:57:52 × euandreh quits (~euandreh@2804:14c:33:9fe5:fb55:f4b:9349:d06d) (Ping timeout: 250 seconds)
21:59:12 × kenran quits (~kenran@200116b82bed0b0071c8f52489bfb401.dip.versatel-1u1.de) (Quit: WeeChat info:version)
21:59:17 alx741 joins (~alx741@157.100.197.240)
22:00:32 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
22:01:04 slac23112 is now known as slack1256
22:01:17 gehmehgeh joins (~user@user/gehmehgeh)
22:03:55 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
22:04:10 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
22:04:56 × zer0bitz quits (~zer0bitz@2001:2003:f74d:b800:b4a7:dec3:a543:4b87) (Ping timeout: 245 seconds)
22:05:35 ec joins (~ec@gateway/tor-sasl/ec)
22:06:20 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d024:453c:94af:7479) (Remote host closed the connection)
22:06:32 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
22:07:16 once_upon_a_pota joins (~once_upon@117.55.252.24)
22:13:02 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
22:13:48 <sm> nice, joeyh's recent arduino/copilot talk got published: https://www.youtube.com/watch?v=l-luyVRgWVU
22:15:40 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
22:15:50 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
22:15:58 zincy_ joins (~zincy@2a00:23c8:970c:4801:e530:c2a8:6798:30a9)
22:17:13 Null_A joins (~null_a@2601:645:8700:2290:44bc:7304:7645:6729)
22:20:02 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
22:20:25 alx741 joins (~alx741@181.199.42.143)
22:22:45 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
22:24:40 jgeerds joins (~jgeerds@d53600c5.access.ecotel.net)
22:28:08 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
22:28:20 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
22:33:17 × Null_A quits (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds)
22:35:36 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
22:35:50 abhixec joins (~abhinav@c-67-169-139-16.hsd1.ca.comcast.net)
22:35:57 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:36:38 machinedgod joins (~machinedg@24.105.81.50)
22:39:44 alx741 joins (~alx741@181.199.42.143)
22:40:59 × zincy_ quits (~zincy@2a00:23c8:970c:4801:e530:c2a8:6798:30a9) (Remote host closed the connection)
22:41:44 × once_upon_a_pota quits (~once_upon@117.55.252.24) (Quit: Client closed)
22:42:26 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
22:43:59 × CiaoSen quits (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
22:51:33 deadmarshal joins (~deadmarsh@95.38.230.238)
22:56:11 × deadmarshal quits (~deadmarsh@95.38.230.238) (Ping timeout: 256 seconds)
22:58:37 × emf_ quits (~emf@2620:10d:c090:400::5:e9f1) (Ping timeout: 240 seconds)
22:59:06 alx741 joins (~alx741@157.100.197.240)
23:00:35 zincy_ joins (~zincy@host86-160-236-152.range86-160.btcentralplus.com)
23:01:01 emf joins (~emf@2620:10d:c090:400::5:3ef2)
23:01:15 Null_A joins (~null_a@2601:645:8700:2290:44bc:7304:7645:6729)
23:01:28 × zincy_ quits (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Remote host closed the connection)
23:05:37 × Null_A quits (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds)
23:06:35 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
23:12:32 <jackdk> sm: this is very interesting, thanks for the link
23:13:25 <sm> np
23:13:52 <monochrom> ski: Last time you used the names "stage" and "costage" for the maps between Hom(F x, y) and Hom(x, G y) when F -| G. Do other category theorists use that name too? What is the etymology of those names? Or what inspired them?
23:18:00 lavaman joins (~lavaman@98.38.249.169)
23:20:17 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
23:22:01 × TonyStone quits (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Ping timeout: 256 seconds)
23:23:14 TonyStone joins (~TonyStone@2603-7080-8607-c36a-f50c-7cae-60f9-8617.res6.spectrum.com)
23:23:43 × burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Remote host closed the connection)
23:24:34 alx741 joins (~alx741@181.199.42.143)
23:25:00 × shapr quits (~user@pool-173-73-44-186.washdc.fios.verizon.net) (Remote host closed the connection)
23:25:16 shapr joins (~user@pool-173-73-44-186.washdc.fios.verizon.net)
23:27:50 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
23:31:48 × TonyStone quits (~TonyStone@2603-7080-8607-c36a-f50c-7cae-60f9-8617.res6.spectrum.com) (Ping timeout: 240 seconds)
23:32:06 TonyStone joins (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
23:32:13 <ski> monochrom : i more or less made them up on the spot. for `stage' going from `G . F >---> H' to `G >---> F -> H', i was first thinking of `curry', but then thought that could be confusing. but it in some sense separates the stages of dealing with the outer `G' structure, and then the inner `F' structure. and `costage' (rather than say `unstage', which would suggest inverse; or perhaps rather than something
23:32:19 <ski> else), for duality (there might be a nicer name, i didn't think of one)
23:33:23 <monochrom> Ah thanks.
23:35:29 × shapr quits (~user@pool-173-73-44-186.washdc.fios.verizon.net) (Remote host closed the connection)
23:35:37 × jrm quits (~jrm@156.34.173.250) (Ping timeout: 240 seconds)
23:36:11 <ski> (i think i've seen some name somewhere for going in one or other direction, in the Hom-set natural isomorphism formulation of adjunctions, but i can't quite recall. maybe "transpose", or something)
23:38:17 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 240 seconds)
23:38:46 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Quit: ERC (IRC client for Emacs 27.1))
23:38:55 <ski> .. i've been trying to think a little, now and then, about a language where one would have terms/expressions of a type that is a functor (so, `F', rather than `F T'). the idea is that in e.g. `[[Integer]]', you'd give one name to the outer list struction, another to the inner, and a third to the `Integer's
23:39:27 <monochrom> In the case of FreeMonoid -| Forgetful, Monoid(FreeMonoid x, y) becomes foldMap in Haskell, and I think it inspires the "free" package for free monads to say "foldFree" for Monad(Free m, n). So I am inspired to say "fold" in general. For the reverse direction Set(x, Forgetful y), I am thinking "core" because it feels like some kind of kernal function of the fold.
23:39:30 yauhsien joins (~yauhsien@61-231-19-150.dynamic-ip.hinet.net)
23:39:52 <ski> using such notation e.g. emphasizes seeing monads as monoids. also seems to be helpful for algebras over a monad, seeing them as a monoid action
23:39:54 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:40:15 <monochrom> I have seen "transpose" BTW, yeah.
23:40:46 <ski> (i think i've seen "transpose" used for both `curry f' and `uncurry g', too, btw)
23:41:37 shapr joins (~user@pool-173-73-44-186.washdc.fios.verizon.net)
23:42:15 <ski> @type Control.Monad.Free.foldFree
23:42:16 <lambdabot> Monad m => (forall x. f x -> m x) -> Control.Monad.Free.Free f a -> m a
23:42:21 <ski> s/struction/structure/
23:43:02 <monochrom> Emily Riehl also uses sharps and flats, but that's a bit traumatising for me, flash back to the old days when I struggled to read Patrick Cousot's abstract interpretation papers. :)
23:43:36 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
23:43:45 <ski> hm, i think i've seen such notation in places, too. (sometimes with stars, or exclamation marks)
23:43:48 × yauhsien quits (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
23:44:49 alx741 joins (~alx741@157.100.197.240)
23:45:17 × np quits (~nerdypepp@user/nerdypepper) (Quit: bye)
23:46:26 <monochrom> Oh oops, typo. Set(x, ForgetFul y)->Monoid(FreeMonoid x, y) becomes foldMap; Functor(f, Forgetful m)->Monad(Free f, m) is foldFree.
23:47:20 <ski> (btw, in case it wasn't too clear, my `costage' above wasn't the inverse of `stage', but rather the `Lan' counterpart version of the one for `Ran')
23:47:40 <monochrom> so Monoid(FreeMonoid x, y)->Set(x, Forgetful y) feels like extracting the "core" of a monoid homomorphism.
23:48:02 <monochrom> Ah OK, it was specific to Kan extensions.
23:48:33 <ski> yes, that was the situation i was trying to give a reasonable name for, there
23:49:10 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
23:50:03 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
23:52:17 <ski> looking at <https://hackage.haskell.org/package/free-5.1.7/docs/Control-Monad-Free.html>, to see what this `core' would be there
23:52:37 <ski> hm, i guess it's (when applied to `id') `lift' in `MonadTrans'
23:53:04 <monochrom> I think no one cares, but it's liftF id.
23:53:31 <monochrom> If you squint, liftF is analogous to singleton :: a -> FreeMonoid a, e.g., \x -> [x].
23:53:55 <ski> ah .. i guess. (i ignored looking at `MonadFree')
23:54:27 <monochrom> I had a recent revelation that singleton and core are expressible in each other.
23:54:27 <ski> .. yes
23:54:49 <ski> ("Oh oops, typo. .." -- yea, i figured)
23:55:23 <ski> why `core' ? ("kernal function" ?)
23:56:13 ski . o O ( <https://en.wikipedia.org/wiki/KERNAL> )
23:57:23 × acidjnk quits (~acidjnk@p5487dbd8.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
23:57:46 <monochrom> If you give me a monoid homomorphism phi : FreeMonoid x -> y, it is equivalent to giving me a set function g : x -> Forgetful y and letting me extend that to phi. So g is some kind of kernal of phi. And then I decided to say "core" because I want to have the same number of letters as "fold".

All times are in UTC on 2022-02-23.