Home liberachat/#haskell: Logs Calendar

Logs on 2022-04-13 (liberachat/#haskell)

00:01:14 × califax quits (~califax@user/califx) (Remote host closed the connection)
00:02:14 califax joins (~califax@user/califx)
00:02:22 × asthasr quits (~asthasr@208.80.78.154) (Quit: asthasr)
00:02:23 <sm> g'day dons
00:02:42 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
00:02:42 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
00:02:42 wroathe joins (~wroathe@user/wroathe)
00:03:16 seydar joins (~seydar@154-27-113-252.starry-inc.net)
00:05:34 <dons> I'm writing Angle all day today. It's typed datalog, with sums and products. It's like talking to a database via an SMT solver, where the performance model is based on table indexes.
00:05:41 <dons> really fun programming model
00:05:56 <dons> reminds me a bit of NDP.
00:06:02 <dons> all the bulk operations
00:07:22 <dons> worked out how to do fmap over a Maybe type :) https://github.com/donsbot/Glean/commit/edb1fe60a164373608daf74735686be109e0737b#diff-dd773c64bb12b7a88f860d0208e56415b0abc16858496c7ef193ccb8eeb11762R292 in case you're curious what it looks like
00:07:56 × seydar quits (~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 250 seconds)
00:12:40 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 248 seconds)
00:14:39 <Axman6> can you write a higher order fmap for maybe?
00:19:24 <dons> not enough of a type system i think. no type parameters.
00:20:45 <dons> its basically a glue language for talking to rocksdb, so closer to some sort of SSD-optimized SQL model, but with this weird feature that you can lookup things by using structured types as keys (records, tuples etc)
00:20:59 seydar joins (~seydar@154-27-113-252.starry-inc.net)
00:21:44 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
00:26:07 × seydar quits (~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 240 seconds)
00:26:45 vysn joins (~vysn@user/vysn)
00:28:02 × xff0x quits (~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp) (Ping timeout: 272 seconds)
00:30:15 seydar joins (~seydar@154-27-113-252.starry-inc.net)
00:30:47 <Axman6> fair enough - is Angel a Glean specific thing?
00:31:44 <dons> its the "SQL" of Glean, yeah. programming language for query / table layout in glean over rocksdb.
00:32:10 <dons> datalog-style queries for facts, DAG traversals
00:32:32 <Axman6> shapr: is there some more background to this article? You haven't really stated what problem you're trying to solve in the first couple of sections
00:35:35 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
00:35:36 notzmv joins (~zmv@user/notzmv)
00:38:08 abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
00:40:20 × kimjetwav quits (~user@2607:fea8:2363:8f00:db41:6ba5:4d54:8708) (Quit: ERC 5.4.1 (IRC client for GNU Emacs 29.0.50))
00:45:51 × gurkenglas quits (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
00:50:23 × zeenk quits (~zeenk@2a02:2f04:a313:d600:8d26:ec9f:3ff6:fc94) (Quit: Konversation terminated!)
00:50:34 × lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
00:50:52 lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
00:50:58 × lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
00:52:08 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 250 seconds)
00:56:17 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
01:06:20 xff0x joins (~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp)
01:10:28 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
01:10:54 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:17:01 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:17:17 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
01:28:57 × redb quits (~nmh@136.49.49.211) (Ping timeout: 248 seconds)
01:33:55 andrey__ joins (~andrey@p200300dbcf07c100b04d34d7ed81db16.dip0.t-ipconnect.de)
01:35:49 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
01:36:24 × andrey_ quits (~andrey@p200300dbcf112f00ea6a6fd122b4be68.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
01:36:35 deadmarshal_ joins (~deadmarsh@95.38.117.55)
01:38:20 × seydar quits (~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 272 seconds)
01:38:29 abastro joins (~abab9579@143.248.229.192)
01:40:27 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
01:41:06 × deadmarshal_ quits (~deadmarsh@95.38.117.55) (Ping timeout: 250 seconds)
01:44:22 seydar joins (~seydar@154-27-113-252.starry-inc.net)
01:44:33 yauhsien joins (~yauhsien@61-231-36-20.dynamic-ip.hinet.net)
01:45:36 × Akiva quits (~Akiva@user/Akiva) (Quit: WeeChat 3.5)
01:47:12 × raehik1 quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
01:49:11 × seydar quits (~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 256 seconds)
01:52:12 kanin_ joins (~kanin_@2001:da8:d800:196:888d:5adb:9959:8fba)
01:52:55 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
01:53:09 × kanin_ quits (~kanin_@2001:da8:d800:196:888d:5adb:9959:8fba) (Read error: Connection reset by peer)
01:53:38 redb joins (~nmh@136.49.49.211)
01:53:53 seydar joins (~seydar@154-27-113-252.starry-inc.net)
01:54:43 × sammelweis_ quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Remote host closed the connection)
01:55:32 lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
01:55:38 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
01:58:11 × redb quits (~nmh@136.49.49.211) (Ping timeout: 260 seconds)
01:58:39 × seydar quits (~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 260 seconds)
01:59:06 hsw joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
02:01:46 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
02:04:14 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
02:09:15 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 246 seconds)
02:10:29 redb joins (~nmh@136.49.49.211)
02:10:30 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
02:11:22 seydar joins (~seydar@154-27-113-252.starry-inc.net)
02:15:15 × redb quits (~nmh@136.49.49.211) (Ping timeout: 256 seconds)
02:15:44 Sgeo joins (~Sgeo@user/sgeo)
02:19:18 frost joins (~frost@user/frost)
02:20:34 kaph joins (~kaph@dynamic-adsl-78-12-162-98.clienti.tiscali.it)
02:27:16 redb joins (~nmh@136.49.49.211)
02:27:54 × lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 250 seconds)
02:29:41 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
02:30:02 <Axman6> I'm currently learning about Rust modules, and they seem ... complex isn't the right word, but it feels like a lot of hoops to jump through. The only time I've really wanted as much control as (in Haskell) it gives you is when I want to export things so that tests can use them, but others can't, and usually that just means using a .Internal module
02:31:20 × redb quits (~nmh@136.49.49.211) (Ping timeout: 248 seconds)
02:31:42 <zero> ,
02:32:03 <Axman6> oh no, zero has fallen into a comma!
02:34:30 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
02:36:52 <zero> a -> b -> (a,b)
02:39:24 <abastro> Well, one of the gripes of haskell is the namespace things
02:39:46 <abastro> What does rust module system allow?
02:39:58 <abastro> allow control?
02:42:09 <Axman6> you can read the chapter in the book if you like: https://doc.rust-lang.org/book/ch07-00-managing-growing-projects-with-packages-crates-and-modules.html
02:43:11 × terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
02:43:26 <Axman6> I find it odd that you can define a module as not public, and then a module inside it as public. also specifying whether individual struct fiends can be public feels weird to me, though languages with mutability often do/need to do things like that I guess
02:44:19 <Axman6> It is interesting seeing how many features of Rust appear to have come directly from Haskell, occasionally you read something and realise you already understand it
02:44:25 terrorjack joins (~terrorjac@2a01:4f8:1c1e:509a::1)
02:45:24 <Axman6> Something I've wanted in Haskell for a while is the ability to rename things on import, like module Data.HashMap (HashMap as Map) or something
02:48:39 Henson joins (~kvirc@107-179-133-201.cpe.teksavvy.com)
02:50:01 <abastro> Directly from haskell?
02:50:22 <abastro> Well yea I also want the ability to rename, but I heard that it would require breaking change :/
02:50:25 × yauhsien quits (~yauhsien@61-231-36-20.dynamic-ip.hinet.net) (Remote host closed the connection)
02:50:46 <abastro> Accessibility control is for encapsulation I think, rather than for mutation
02:51:01 <abastro> Fine-grained encapsulation
02:52:26 redb joins (~nmh@136.49.49.211)
02:53:04 yauhsien joins (~yauhsien@61-231-36-20.dynamic-ip.hinet.net)
02:53:31 <abastro> I guess in corporate settings, you don't want to grant usage access of code portion for those who are not counted responsible for that code section
02:55:26 lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
02:56:33 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:56:33 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:56:33 finn_elija is now known as FinnElija
02:56:56 × redb quits (~nmh@136.49.49.211) (Ping timeout: 250 seconds)
02:58:14 × yauhsien quits (~yauhsien@61-231-36-20.dynamic-ip.hinet.net) (Ping timeout: 250 seconds)
03:04:03 russruss joins (~russruss@my.russellmcc.com)
03:07:04 × mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 248 seconds)
03:09:20 × lbseale quits (~ep1ctetus@user/ep1ctetus) (Read error: Connection reset by peer)
03:11:12 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
03:18:48 × seydar quits (~seydar@154-27-113-252.starry-inc.net) (Read error: Connection reset by peer)
03:18:55 × euandreh quits (~euandreh@2804:14c:33:9fe5:f1f:1f2:988a:6dea) (Ping timeout: 260 seconds)
03:19:49 euandreh joins (~euandreh@2804:14c:33:9fe5:2b05:e929:4a1b:5380)
03:20:58 cdman joins (~dcm@user/dmc/x-4369397)
03:23:47 × lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 240 seconds)
03:25:09 z0k joins (~z0k@39.40.5.37)
03:25:53 redb joins (~nmh@136.49.49.211)
03:27:16 × abastro quits (~abab9579@143.248.229.192) (Ping timeout: 250 seconds)
03:28:26 seydar joins (~seydar@154-27-113-252.starry-inc.net)
03:31:09 × redb quits (~nmh@136.49.49.211) (Ping timeout: 246 seconds)
03:32:08 redb joins (~nmh@136.49.49.211)
03:32:54 × seydar quits (~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 246 seconds)
03:34:21 × cdman quits (~dcm@user/dmc/x-4369397) (Quit: Leaving)
03:34:35 × z0k quits (~z0k@39.40.5.37) (Ping timeout: 256 seconds)
03:36:24 × redb quits (~nmh@136.49.49.211) (Ping timeout: 246 seconds)
03:38:15 redb joins (~nmh@136.49.49.211)
03:40:07 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
03:40:56 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
03:41:28 z0k joins (~z0k@39.40.97.184)
03:42:21 × redb quits (~nmh@136.49.49.211) (Ping timeout: 246 seconds)
03:48:07 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 240 seconds)
03:48:28 cdman joins (~dcm@27.2.216.167)
03:48:29 × cdman quits (~dcm@27.2.216.167) (Changing host)
03:48:29 cdman joins (~dcm@user/dmc/x-4369397)
03:51:41 lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
03:54:03 axeman joins (~quassel@2a02:8109:a380:78:e9e7:400a:2ff3:71f1)
03:55:26 yauhsien joins (~yauhsien@61-231-36-20.dynamic-ip.hinet.net)
03:56:41 × BlackboardN quits (~Blackboar@user/BlackboardN) (Ping timeout: 248 seconds)
03:59:46 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 250 seconds)
04:00:07 × yauhsien quits (~yauhsien@61-231-36-20.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
04:07:35 × Henson quits (~kvirc@107-179-133-201.cpe.teksavvy.com) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
04:08:33 seydar joins (~seydar@154-27-113-252.starry-inc.net)
04:09:13 × cdman quits (~dcm@user/dmc/x-4369397) (Quit: Leaving)
04:10:27 redb joins (~nmh@136.49.49.211)
04:11:52 vicfred joins (~vicfred@user/vicfred)
04:13:12 × seydar quits (~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 250 seconds)
04:14:28 × goepsilongo quits (~chacho@2603-7000-ab00-62ed-0000-0000-0000-0bd0.res6.spectrum.com) (Quit: Konversation terminated!)
04:14:35 mbuf joins (~Shakthi@223.184.55.97)
04:14:56 × redb quits (~nmh@136.49.49.211) (Ping timeout: 250 seconds)
04:16:07 × z0k quits (~z0k@39.40.97.184) (Ping timeout: 240 seconds)
04:19:48 × lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 246 seconds)
04:26:23 yauhsien joins (~yauhsien@61-231-36-20.dynamic-ip.hinet.net)
04:29:11 bahamas joins (~lucian@84.232.140.158)
04:35:07 redb joins (~nmh@136.49.49.211)
04:36:11 bgt32 joins (~keutoi@223.182.17.205)
04:37:49 deadmarshal_ joins (~deadmarsh@95.38.117.55)
04:38:31 z0k joins (~z0k@39.40.127.26)
04:39:20 × redb quits (~nmh@136.49.49.211) (Ping timeout: 248 seconds)
04:43:30 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
04:44:12 <bgt32> In Data.Ix we have index :: (a, a) -> a -> Int; is there an inverse for it? f :: (a, a) -> Int -> a , that gives nth element of that range. I could use range (a, b) !! n, but that seems in efficient.
04:44:26 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
04:46:43 redb joins (~nmh@136.49.49.211)
04:49:29 × axeman quits (~quassel@2a02:8109:a380:78:e9e7:400a:2ff3:71f1) (Ping timeout: 248 seconds)
05:02:46 king_gs joins (~Thunderbi@2806:103e:29:1de5:8bc8:f08f:4d70:424)
05:03:33 × bahamas quits (~lucian@84.232.140.158) (Ping timeout: 256 seconds)
05:07:35 seydar joins (~seydar@154-27-113-252.starry-inc.net)
05:10:41 axeman joins (~quassel@2a02:8109:a380:78:87db:6d2e:f3e4:fc07)
05:11:11 cdman joins (~dcm@user/dmc/x-4369397)
05:11:52 × deadmarshal_ quits (~deadmarsh@95.38.117.55) (Ping timeout: 248 seconds)
05:17:41 × cdman quits (~dcm@user/dmc/x-4369397) (Remote host closed the connection)
05:19:44 cdman joins (~dcm@27.2.216.167)
05:19:44 × cdman quits (~dcm@27.2.216.167) (Changing host)
05:19:44 cdman joins (~dcm@user/dmc/x-4369397)
05:21:14 × axeman quits (~quassel@2a02:8109:a380:78:87db:6d2e:f3e4:fc07) (Ping timeout: 250 seconds)
05:23:06 × xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer)
05:30:53 bahamas joins (~lucian@84.232.140.158)
05:31:05 × zyklotomic quits (~ethan@res380d-128-61-83-53.res.gatech.edu) (Ping timeout: 248 seconds)
05:32:14 kenran joins (~kenran@200116b82b0a340003754354c85ff367.dip.versatel-1u1.de)
05:33:20 zyklotomic joins (~ethan@res388d-128-61-89-14.res.gatech.edu)
05:35:17 × bahamas quits (~lucian@84.232.140.158) (Ping timeout: 256 seconds)
05:35:55 axeman joins (~quassel@2a02:8109:a380:78:de22:d343:c0cd:4b29)
05:37:07 × son0p quits (~ff@181.136.122.143) (Ping timeout: 256 seconds)
05:37:51 michalz joins (~michalz@185.246.204.125)
05:39:02 × tomku quits (~tomku@user/tomku) (Remote host closed the connection)
05:39:08 tomku|two joins (~tomku@user/tomku)
05:40:26 <Axman6> iIlI1|
05:40:38 <Axman6> uh, didn't mean to send that. Enjoy your free font test
05:40:49 benin joins (~benin@183.82.204.110)
05:41:07 × seydar quits (~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 240 seconds)
05:41:51 ss- joins (~ss-@187.83.249.216.dyn.smithville.net)
05:41:52 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
05:43:33 <jackdk> you're not the boss of me Axman6
05:43:47 × tomku|two quits (~tomku@user/tomku) (Ping timeout: 240 seconds)
05:44:44 tomku joins (~tomku@user/tomku)
05:44:47 × axeman quits (~quassel@2a02:8109:a380:78:de22:d343:c0cd:4b29) (Ping timeout: 240 seconds)
05:44:53 deadmarshal_ joins (~deadmarsh@95.38.117.55)
05:47:07 seydar joins (~seydar@154-27-113-252.starry-inc.net)
05:47:52 × JimL quits (~quassel@89-162-2-132.fiber.signal.no) (Ping timeout: 272 seconds)
05:50:01 × bgt32 quits (~keutoi@223.182.17.205) (Ping timeout: 256 seconds)
05:51:24 <zero> Axman6: are those not 2 Is ?
05:51:27 × seydar quits (~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 240 seconds)
05:52:02 <Axman6> yeah was supposed to be iIlL1|
05:54:05 JimL joins (~quassel@89-162-2-132.fiber.signal.no)
05:57:23 × tomku quits (~tomku@user/tomku) (Ping timeout: 256 seconds)
05:57:49 tomku joins (~tomku@user/tomku)
05:57:55 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds)
05:58:31 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
05:58:50 kmein joins (~weechat@user/kmein)
06:00:17 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
06:00:44 × yauhsien quits (~yauhsien@61-231-36-20.dynamic-ip.hinet.net) (Remote host closed the connection)
06:01:18 yauhsien joins (~yauhsien@61-231-36-20.dynamic-ip.hinet.net)
06:03:37 × tomku quits (~tomku@user/tomku) (Ping timeout: 256 seconds)
06:04:00 tomku joins (~tomku@user/tomku)
06:04:12 <tdammers> weird, it renders as 27 snowmen and a vomit face for me
06:06:11 coot joins (~coot@213.134.190.95)
06:06:12 × yauhsien quits (~yauhsien@61-231-36-20.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
06:06:26 <Axman6> I think you might need to take your font into the shop and get that checked out
06:07:27 bahamas joins (~lucian@84.232.140.158)
06:07:35 × z0k quits (~z0k@39.40.127.26) (Ping timeout: 256 seconds)
06:09:10 z0k joins (~z0k@39.40.107.216)
06:09:31 × shriekingnoise quits (~shrieking@201.231.16.156) (Quit: Quit)
06:11:04 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds)
06:11:52 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
06:15:42 yauhsien joins (~yauhsien@61-231-36-20.dynamic-ip.hinet.net)
06:15:50 × bahamas quits (~lucian@84.232.140.158) (Ping timeout: 250 seconds)
06:17:30 lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
06:19:46 × zmt00 quits (~zmt00@user/zmt00) (Quit: Leaving)
06:20:37 × benin quits (~benin@183.82.204.110) (Ping timeout: 256 seconds)
06:20:51 × yauhsien quits (~yauhsien@61-231-36-20.dynamic-ip.hinet.net) (Remote host closed the connection)
06:21:29 yauhsien joins (~yauhsien@61-231-36-20.dynamic-ip.hinet.net)
06:23:07 gaff joins (~gaff@49.207.227.93)
06:23:08 benin joins (~benin@183.82.204.110)
06:23:12 × gaff quits (~gaff@49.207.227.93) (Client Quit)
06:23:53 zmt00 joins (~zmt00@user/zmt00)
06:26:51 × yauhsien quits (~yauhsien@61-231-36-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
06:29:03 _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl)
06:29:35 axeman joins (~quassel@2a02:8109:a380:78:b030:2e2d:7f87:c8e6)
06:30:22 acidjnk_new joins (~acidjnk@p200300d0c722df650d0cc85cc0f432cb.dip0.t-ipconnect.de)
06:30:23 odnes joins (~odnes@5-203-221-3.pat.nym.cosmote.net)
06:36:09 × coot quits (~coot@213.134.190.95) (Quit: coot)
06:39:09 bgt32 joins (~keutoi@223.182.17.205)
06:39:11 anomal joins (~anomal@87.227.196.109)
06:39:26 × ss- quits (~ss-@187.83.249.216.dyn.smithville.net) (Quit: Client closed)
06:40:13 alp__ joins (~alp@user/alp)
06:43:31 fendor joins (~fendor@91.141.45.157.wireless.dyn.drei.com)
06:46:16 × axeman quits (~quassel@2a02:8109:a380:78:b030:2e2d:7f87:c8e6) (Ping timeout: 248 seconds)
06:46:54 <jackdk> bgt32: Not to my knowledge, which seems like maybe an oversight?
06:47:27 × deadmarshal_ quits (~deadmarsh@95.38.117.55) (Ping timeout: 240 seconds)
06:48:22 cfricke joins (~cfricke@user/cfricke)
06:50:44 × biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer)
06:52:29 neurocyte8614492 joins (~neurocyte@IP-185117068183.dynamic.medianet-world.de)
06:52:29 × neurocyte8614492 quits (~neurocyte@IP-185117068183.dynamic.medianet-world.de) (Changing host)
06:52:29 neurocyte8614492 joins (~neurocyte@user/neurocyte)
06:56:47 × lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 240 seconds)
07:00:13 mattil joins (~mattil@helsinki.portalify.com)
07:03:07 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 240 seconds)
07:03:26 × tcard quits (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving)
07:06:26 abastro joins (~abab9579@143.248.229.195)
07:06:32 lortabac joins (~lortabac@2a01:e0a:541:b8f0:1bbe:d06f:b37f:2998)
07:07:04 dschrempf joins (~dominik@92-249-159-213.pool.digikabel.hu)
07:07:39 × redb quits (~nmh@136.49.49.211) (Ping timeout: 256 seconds)
07:07:47 × chenqisu1 quits (~chenqisu1@183.217.200.38) (Remote host closed the connection)
07:08:07 chenqisu1 joins (~chenqisu1@183.217.200.38)
07:11:38 biberu joins (~biberu@user/biberu)
07:12:55 CiaoSen joins (~Jura@p200300c9572d40002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
07:13:22 × anomal quits (~anomal@87.227.196.109) (Remote host closed the connection)
07:14:46 × _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
07:16:43 × dschrempf quits (~dominik@92-249-159-213.pool.digikabel.hu) (Ping timeout: 256 seconds)
07:16:57 bahamas joins (~lucian@84.232.140.158)
07:17:01 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
07:22:30 × bahamas quits (~lucian@84.232.140.158) (Ping timeout: 246 seconds)
07:23:38 InstX1 joins (~Liam@2601:6c4:4080:3f80:e90d:eced:aa0c:bcb3)
07:23:48 × InstX1_ quits (~Liam@2601:6c4:4080:3f80:1d4a:af44:f702:f9c0) (Ping timeout: 240 seconds)
07:26:50 redb joins (~nmh@136.49.49.211)
07:26:55 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
07:28:35 InstX1_ joins (~Liam@2601:6c4:4080:3f80:5940:980:e666:cc89)
07:29:29 × CiaoSen quits (~Jura@p200300c9572d40002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
07:30:02 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
07:30:22 × InstX1 quits (~Liam@2601:6c4:4080:3f80:e90d:eced:aa0c:bcb3) (Ping timeout: 250 seconds)
07:32:07 × alp__ quits (~alp@user/alp) (Remote host closed the connection)
07:32:23 alp_ joins (~alp@user/alp)
07:41:07 Midjak joins (~Midjak@82.66.147.146)
07:46:22 × king_gs quits (~Thunderbi@2806:103e:29:1de5:8bc8:f08f:4d70:424) (Quit: king_gs)
07:46:54 akegalj joins (~akegalj@93-138-88-178.adsl.net.t-com.hr)
07:47:23 king_gs joins (~Thunderbi@2806:103e:29:1de5:8bc8:f08f:4d70:424)
07:48:07 machinedgod joins (~machinedg@24.105.81.50)
07:48:17 seydar joins (~seydar@154-27-113-252.starry-inc.net)
07:49:26 son0p joins (~ff@181.136.122.143)
07:49:35 × odnes quits (~odnes@5-203-221-3.pat.nym.cosmote.net) (Remote host closed the connection)
07:49:52 odnes joins (~odnes@5-203-221-3.pat.nym.cosmote.net)
07:51:31 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
07:55:30 × seydar quits (~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 250 seconds)
08:01:06 seydar joins (~seydar@154-27-113-252.starry-inc.net)
08:03:06 lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
08:03:54 gehmehgeh joins (~user@user/gehmehgeh)
08:04:07 jackson99 joins (~bc8147f2@cerf.good1.com)
08:05:35 chele joins (~chele@user/chele)
08:06:01 × seydar quits (~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 256 seconds)
08:06:32 × abastro quits (~abab9579@143.248.229.195) (Remote host closed the connection)
08:07:39 Pickchea joins (~private@user/pickchea)
08:15:07 × elkcl quits (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 240 seconds)
08:16:01 thiross joins (~igloo@173.242.113.143.16clouds.com)
08:16:49 abastro joins (~abab9579@143.248.229.195)
08:17:21 × thiross quits (~igloo@173.242.113.143.16clouds.com) (Remote host closed the connection)
08:19:47 × bgt32 quits (~keutoi@223.182.17.205) (Ping timeout: 240 seconds)
08:20:24 × cosimone quits (~user@93-47-228-79.ip115.fastwebnet.it) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1))
08:20:45 CiaoSen joins (~Jura@p200300c9572d40002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
08:22:11 bgt32 joins (~keutoi@223.182.21.148)
08:25:53 ccntrq joins (~Thunderbi@2a01:e34:eccb:b060:bc3e:467d:7ac2:fff6)
08:37:12 × Pickchea quits (~private@user/pickchea) (Ping timeout: 248 seconds)
08:37:58 × InstX1_ quits (~Liam@2601:6c4:4080:3f80:5940:980:e666:cc89) (Ping timeout: 250 seconds)
08:38:44 jackson100 joins (~bc8147f2@cerf.good1.com)
08:38:51 fef joins (~thedawn@user/thedawn)
08:38:57 InstX1_ joins (~Liam@2601:6c4:4080:3f80:19e5:15a0:708a:70c0)
08:38:58 anomal joins (~anomal@87.227.196.109)
08:41:28 × lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 248 seconds)
08:43:05 × chenqisu1 quits (~chenqisu1@183.217.200.38) (Remote host closed the connection)
08:43:13 × jackson99 quits (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Ping timeout))
08:43:37 × _________ quits (~nobody@user/noodly) (Ping timeout: 248 seconds)
08:44:13 gurkenglas joins (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de)
08:45:43 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
08:46:02 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
08:46:37 × mattil quits (~mattil@helsinki.portalify.com) (Read error: Connection reset by peer)
08:47:39 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
08:47:59 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
08:50:28 jackson100 is now known as jackson99
08:53:09 ubert joins (~Thunderbi@p200300ecdf1588a3ccf7a828925c2eab.dip0.t-ipconnect.de)
08:53:32 dschrempf joins (~dominik@92-249-159-213.pool.digikabel.hu)
08:55:25 × abastro quits (~abab9579@143.248.229.195) (Remote host closed the connection)
08:57:04 ubert1 joins (~Thunderbi@p200300ecdf1588a34b361c912f36e7d5.dip0.t-ipconnect.de)
08:58:05 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
09:02:40 Pickchea joins (~private@user/pickchea)
09:04:23 × fockerized quits (~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Quit: WeeChat 3.3)
09:05:20 × awpr quits (uid446117@id-446117.lymington.irccloud.com) (Quit: Connection closed for inactivity)
09:21:00 yauhsien joins (~yauhsien@61-231-36-20.dynamic-ip.hinet.net)
09:24:28 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
09:25:20 × dschrempf quits (~dominik@92-249-159-213.pool.digikabel.hu) (Quit: WeeChat 3.4.1)
09:27:46 jonathanx joins (~jonathan@dyn-5-sc.cdg.chalmers.se)
09:32:39 jstolarek joins (~jstolarek@staticline-31-183-186-36.toya.net.pl)
09:32:45 × anomal quits (~anomal@87.227.196.109) (Remote host closed the connection)
09:33:05 anomal joins (~anomal@87.227.196.109)
09:33:47 deadmarshal_ joins (~deadmarsh@95.38.117.55)
09:34:43 jakalx parts (~jakalx@base.jakalx.net) ()
09:35:06 <jstolarek> how do I force recompilation of a project without rebuilding dependencies using cabal?
09:38:12 × king_gs quits (~Thunderbi@2806:103e:29:1de5:8bc8:f08f:4d70:424) (Ping timeout: 250 seconds)
09:40:30 × frost quits (~frost@user/frost) (Quit: Client closed)
09:41:11 robosexual1 joins (~robosexua@77.223.90.202)
09:43:31 × jgeerds quits (~jgeerds@d5364b87.access.ecotel.net) (Remote host closed the connection)
09:43:48 jgeerds joins (~jgeerds@d5364b87.access.ecotel.net)
09:44:58 × anomal quits (~anomal@87.227.196.109) (Remote host closed the connection)
09:45:17 frost joins (~frost@user/frost)
09:45:33 jakalx joins (~jakalx@base.jakalx.net)
09:45:51 coot joins (~coot@213.134.190.95)
09:51:25 ub joins (~Thunderbi@p548c8d44.dip0.t-ipconnect.de)
09:51:51 × ubert quits (~Thunderbi@p200300ecdf1588a3ccf7a828925c2eab.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
09:51:52 ub is now known as ubert
09:51:52 ubert is now known as 080AAA3P4
09:51:52 ubert1 is now known as ubert
09:57:27 × xff0x quits (~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp) (Ping timeout: 260 seconds)
09:58:14 mattil joins (~mattil@helsinki.portalify.com)
09:58:48 × gurkenglas quits (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) (Ping timeout: 248 seconds)
09:58:48 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
09:59:13 × akegalj quits (~akegalj@93-138-88-178.adsl.net.t-com.hr) (Quit: leaving)
09:59:34 abastro joins (~abab9579@143.248.229.195)
10:01:03 × deadmarshal_ quits (~deadmarsh@95.38.117.55) (Ping timeout: 246 seconds)
10:02:15 seydar joins (~seydar@154-27-113-252.starry-inc.net)
10:03:19 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
10:03:35 × Natch quits (~natch@c-67bae255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection)
10:06:31 <tomsmeding> jstolarek: `cabal clean` first, or `rm -r dist-newstyle`?
10:07:10 <tomsmeding> that shouldn't rebuild dependencies, unless you mean git repo dependencies in a cabal.project
10:07:41 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
10:07:48 <tomsmeding> (source-repository-package that is, forgot the keyword)
10:08:58 Natch joins (~natch@c-67bae255.014-297-73746f25.bbcust.telenor.se)
10:09:26 <jstolarek> yes, I mean git-repo dependencies that take like 30-40 minutes to rebui;d
10:10:07 × seydar quits (~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 256 seconds)
10:10:18 <jstolarek> for now I'm just using `find src -name "*.hs" | xargs touch` but I thought there's probably a better way
10:10:36 × CiaoSen quits (~Jura@p200300c9572d40002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
10:10:41 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
10:10:42 × redb quits (~nmh@136.49.49.211) (Ping timeout: 250 seconds)
10:10:57 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
10:10:57 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
10:10:57 finn_elija is now known as FinnElija
10:13:51 epolanski joins (uid312403@id-312403.helmsley.irccloud.com)
10:14:16 × acidjnk_new quits (~acidjnk@p200300d0c722df650d0cc85cc0f432cb.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
10:15:34 seydar joins (~seydar@154-27-113-252.starry-inc.net)
10:16:24 × odnes quits (~odnes@5-203-221-3.pat.nym.cosmote.net) (Ping timeout: 248 seconds)
10:16:27 × Pickchea quits (~private@user/pickchea) (Ping timeout: 240 seconds)
10:20:14 × seydar quits (~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 250 seconds)
10:20:31 × coot quits (~coot@213.134.190.95) (Quit: coot)
10:22:04 zmt01 joins (~zmt00@user/zmt00)
10:22:50 × zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 250 seconds)
10:23:13 odnes joins (~odnes@5-203-221-3.pat.nym.cosmote.net)
10:25:44 seydar joins (~seydar@154-27-113-252.starry-inc.net)
10:26:34 × yauhsien quits (~yauhsien@61-231-36-20.dynamic-ip.hinet.net) (Remote host closed the connection)
10:27:35 yauhsien joins (~yauhsien@61-231-36-20.dynamic-ip.hinet.net)
10:27:44 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
10:27:45 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
10:27:45 finn_elija is now known as FinnElija
10:29:08 xff0x joins (~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp)
10:30:16 × seydar quits (~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 248 seconds)
10:31:47 × yauhsien quits (~yauhsien@61-231-36-20.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
10:33:26 coot joins (~coot@213.134.190.95)
10:35:53 seydar joins (~seydar@154-27-113-252.starry-inc.net)
10:37:00 gehmehgeh_ joins (~user@user/gehmehgeh)
10:38:15 × gehmehgeh quits (~user@user/gehmehgeh) (Ping timeout: 240 seconds)
10:39:10 lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
10:40:32 redb joins (~nmh@136.49.49.211)
10:40:43 × seydar quits (~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 256 seconds)
10:42:15 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
10:43:38 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 272 seconds)
10:43:55 Maxdamantus joins (~Maxdamant@user/maxdamantus)
10:44:22 jpds joins (~jpds@gateway/tor-sasl/jpds)
10:44:40 × redb quits (~nmh@136.49.49.211) (Ping timeout: 248 seconds)
10:45:05 Pickchea joins (~private@user/pickchea)
10:45:17 Guest|66 joins (~Guest|66@87.247.98.234)
10:46:03 seydar joins (~seydar@154-27-113-252.starry-inc.net)
10:46:44 × Guest|66 quits (~Guest|66@87.247.98.234) (Client Quit)
10:49:17 × mattil quits (~mattil@helsinki.portalify.com) (Remote host closed the connection)
10:50:07 × abastro quits (~abab9579@143.248.229.195) (Ping timeout: 240 seconds)
10:50:32 × seydar quits (~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 248 seconds)
10:53:02 elkcl joins (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru)
10:53:05 × jstolarek quits (~jstolarek@staticline-31-183-186-36.toya.net.pl) (Quit: leaving)
10:54:00 abastro joins (~abab9579@192.249.26.196)
10:55:52 × InstX1_ quits (~Liam@2601:6c4:4080:3f80:19e5:15a0:708a:70c0) (Ping timeout: 248 seconds)
10:59:40 redb joins (~nmh@136.49.49.211)
10:59:47 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
11:01:38 mattil joins (~mattil@helsinki.portalify.com)
11:04:00 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds)
11:04:00 × Pickchea quits (~private@user/pickchea) (Ping timeout: 250 seconds)
11:04:35 <shapr> Axman6: that's a good point, I thought the writing might be a bit thin
11:05:05 × redb quits (~nmh@136.49.49.211) (Ping timeout: 256 seconds)
11:05:11 <shapr> I'll expand on the intro paragraph
11:05:13 jabra joins (~jabra11@p200300f76f02d600e2d55efffe270715.dip0.t-ipconnect.de)
11:10:50 Inst joins (~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
11:11:02 redb joins (~nmh@136.49.49.211)
11:11:19 × elkcl quits (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 256 seconds)
11:11:57 × swistak quits (~swistak@185.21.216.141) (Ping timeout: 252 seconds)
11:14:49 gurkenglas joins (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de)
11:16:10 CiaoSen joins (~Jura@p200300c9572d40002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
11:16:34 × z0k quits (~z0k@39.40.107.216) (Ping timeout: 250 seconds)
11:17:12 × redb quits (~nmh@136.49.49.211) (Ping timeout: 272 seconds)
11:19:40 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
11:22:07 × Inst quits (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 240 seconds)
11:22:38 × lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 250 seconds)
11:25:15 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
11:25:38 × jabra quits (~jabra11@p200300f76f02d600e2d55efffe270715.dip0.t-ipconnect.de) (Quit: WeeChat 3.5)
11:26:34 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1))
11:29:44 thiross joins (~thiross@173.242.113.143.16clouds.com)
11:30:21 × joo-_ quits (~joo-_@fsf/member/joo--) (Quit: Lost terminal)
11:32:56 Pickchea joins (~private@user/pickchea)
11:35:38 mc47 joins (~mc47@xmonad/TheMC47)
11:37:01 redb joins (~nmh@136.49.49.211)
11:38:25 × fef quits (~thedawn@user/thedawn) (Quit: Leaving)
11:39:42 × odnes quits (~odnes@5-203-221-3.pat.nym.cosmote.net) (Quit: Leaving)
11:41:09 swistak joins (~swistak@185.21.216.141)
11:41:12 joo-_ joins (~joo-_@80-62-116-147-mobile.dk.customer.tdc.net)
11:41:12 × joo-_ quits (~joo-_@80-62-116-147-mobile.dk.customer.tdc.net) (Changing host)
11:41:12 joo-_ joins (~joo-_@fsf/member/joo--)
11:42:07 × redb quits (~nmh@136.49.49.211) (Ping timeout: 240 seconds)
11:43:04 redb joins (~nmh@136.49.49.211)
11:44:21 × joo-_ quits (~joo-_@fsf/member/joo--) (Client Quit)
11:44:44 joo-_ joins (~joo-_@80-62-116-147-mobile.dk.customer.tdc.net)
11:44:44 × joo-_ quits (~joo-_@80-62-116-147-mobile.dk.customer.tdc.net) (Changing host)
11:44:44 joo-_ joins (~joo-_@fsf/member/joo--)
11:48:56 raehik1 joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
11:48:56 × mattil quits (~mattil@helsinki.portalify.com) (Read error: Connection reset by peer)
11:49:30 × bgt32 quits (~keutoi@223.182.21.148) (Ping timeout: 272 seconds)
11:51:19 × thiross quits (~thiross@173.242.113.143.16clouds.com) (Quit: Client closed)
11:51:47 thiross joins (~thiross@183.156.113.134)
11:51:55 akegalj joins (~akegalj@95.168.118.21)
11:53:19 seydar joins (~seydar@154-27-113-252.starry-inc.net)
11:53:19 × seydar quits (~seydar@154-27-113-252.starry-inc.net) (Client Quit)
11:53:29 yauhsien joins (~yauhsien@61-231-36-20.dynamic-ip.hinet.net)
11:54:23 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
11:59:34 anomal joins (~anomal@87.227.196.109)
12:00:28 × anomal quits (~anomal@87.227.196.109) (Remote host closed the connection)
12:01:44 <thiross> @type map
12:01:46 <lambdabot> (a -> b) -> [a] -> [b]
12:04:49 × akegalj quits (~akegalj@95.168.118.21) (Quit: leaving)
12:04:53 × thiross quits (~thiross@183.156.113.134) (Quit: Client closed)
12:06:00 × frost quits (~frost@user/frost) (Quit: Client closed)
12:06:20 <cdman> is there anyone use gedit?
12:07:24 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
12:12:34 <geekosaur> I used to, but it's too heavy for little things and too underpowered for serious editing IMO
12:15:03 z0k joins (~z0k@39.40.107.216)
12:15:49 × yauhsien quits (~yauhsien@61-231-36-20.dynamic-ip.hinet.net) (Remote host closed the connection)
12:18:02 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:18:58 gehmehgeh_ is now known as gehmehgeh
12:22:09 × redb quits (~nmh@136.49.49.211) (Ping timeout: 256 seconds)
12:24:12 thiross joins (~user@183.156.113.134)
12:33:58 <albet70> except zipWith, is there other "fmap" can apply a binary function on two list?
12:34:19 thiross parts (~user@183.156.113.134) (ERC (IRC client for Emacs 27.1))
12:34:22 <albet70> ap?
12:35:26 × z0k quits (~z0k@39.40.107.216) (Ping timeout: 250 seconds)
12:39:29 <abastro> <del>zipWithM</del>
12:43:14 <Zemyla> zipWith and ap encompass the two ways of combining two lists of different types.
12:43:30 elkcl joins (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru)
12:43:37 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
12:43:37 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
12:43:37 wroathe joins (~wroathe@user/wroathe)
12:44:24 <geekosaur> what are you actually trying to do? there might be a better way to approach it
12:44:41 deadmarshal_ joins (~deadmarsh@95.38.117.55)
12:46:04 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
12:46:29 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
12:46:49 mc47 joins (~mc47@xmonad/TheMC47)
12:47:02 × mc47 quits (~mc47@xmonad/TheMC47) (Client Quit)
12:49:03 × deadmarshal_ quits (~deadmarsh@95.38.117.55) (Ping timeout: 246 seconds)
12:50:49 × robosexual1 quits (~robosexua@77.223.90.202) (Quit: WeeChat 3.4)
12:51:17 redb joins (~nmh@136.49.49.211)
12:53:26 <albet70> get a new list from a list, with the next element minus the previous one
12:53:59 <albet70> zipWith (-) (tail a) $ a
12:56:00 × redb quits (~nmh@136.49.49.211) (Ping timeout: 272 seconds)
12:57:31 <abastro> Looks fine to me
12:57:38 z0k joins (~z0k@39.40.62.192)
12:59:02 <geekosaur> aside from the $ being unnecessary and what happens if the list doesn't have at least two elements
12:59:26 <geekosaur> hm
12:59:30 <geekosaur> > tail []
12:59:31 <lambdabot> *Exception: Prelude.tail: empty list
12:59:54 <geekosaur> one element is probably okay, the zipWith will just produce []
13:00:17 deadmarshal_ joins (~deadmarsh@95.38.117.55)
13:00:18 <albet70> I just wonder if this can be done with ap?
13:00:58 <geekosaur> ap aka <*> is something different
13:01:06 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
13:01:51 <abastro> Yea, empty case would be different
13:01:56 <abastro> :t ap
13:01:57 <lambdabot> Monad m => m (a -> b) -> m a -> m b
13:02:13 <abastro> Oh, so ap is what you call <*>
13:02:24 <albet70> > ap zip tail $ [0..90]
13:02:25 <lambdabot> [(0,1),(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,9),(9,10),(10,11),(11,12...
13:03:18 <albet70> :t zip
13:03:19 <geekosaur> well, it's a historical thing
13:03:19 <lambdabot> [a] -> [b] -> [(a, b)]
13:03:30 <geekosaur> Applicative is still fairly "new" as Haskell goes
13:03:45 <geekosaur> so we spelled <$> `liftM` and <*> `ap`
13:04:30 Flow joins (~none@gentoo/developer/flow)
13:04:37 <geekosaur> and there are still a lot of programs that retrofitted Applicative instances by doing `instance Applicative Foo where <*> = ap` because every Monad is an Applicative
13:05:05 <geekosaur> so `ap` has to remain as it is
13:05:29 <albet70> a little confused here, tail [0..90] will get [1..90] and what ap zip [1..90] do? zip need two list
13:06:02 <geekosaur> :t ap zip tail
13:06:04 <lambdabot> [a] -> [(a, a)]
13:06:10 <geekosaur> :t ap zip
13:06:11 <lambdabot> ([a] -> [b]) -> [a] -> [(a, b)]
13:06:47 <geekosaur> bleh, that was less than helpful
13:06:50 <geekosaur> :t ap
13:06:51 <lambdabot> Monad m => m (a -> b) -> m a -> m b
13:08:26 × jgeerds quits (~jgeerds@d5364b87.access.ecotel.net) (Remote host closed the connection)
13:09:04 yauhsien joins (~yauhsien@61-231-36-20.dynamic-ip.hinet.net)
13:10:09 <geekosaur> % :t ap @[]
13:10:09 <yahb> geekosaur: [a -> b] -> [a] -> [b]
13:10:11 jgeerds joins (~jgeerds@d5364b87.access.ecotel.net)
13:10:18 <abastro> I wonder..
13:10:19 <geekosaur> wrong one, sorry
13:10:28 <abastro> % :t ap @((->) _)
13:10:28 <yahb> abastro: (w -> (a -> b)) -> (w -> a) -> w -> b
13:10:39 <abastro> % :t ap zip
13:10:39 <yahb> abastro: ([a] -> [b]) -> [a] -> [(a, b)]
13:10:45 <abastro> Oh Interesting
13:11:09 <abastro> % :t ap zip tail
13:11:09 <yahb> abastro: [a] -> [(a, a)]
13:11:23 <abastro> Now this is point-free style right
13:12:10 zaquest joins (~notzaques@5.130.79.72)
13:12:17 frost joins (~frost@user/frost)
13:12:55 acidjnk_new joins (~acidjnk@p200300d0c722df65bc11ed8127f1571b.dip0.t-ipconnect.de)
13:13:07 <geekosaur> @quote ap.zip
13:13:07 <lambdabot> No quotes match. You untyped fool!
13:13:12 <geekosaur> oh
13:13:18 <geekosaur> @quote zip.ap
13:13:18 <lambdabot> quicksilver says: zip`ap`tail - the Aztec god of consecutive numbers
13:13:37 <geekosaur> not that that helps either :)
13:14:06 <geekosaur> anyway I get lost around here, I still haven't quite figured all of Applicative. need to sit down at some point and work out what's going on
13:14:18 <albet70> more confused
13:14:18 <geekosaur> but ap / <*> is not quite fmap
13:14:51 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
13:14:58 <albet70> :t ap zip tail
13:14:59 <lambdabot> [a] -> [(a, a)]
13:15:27 <abastro> geekosaur well if you say that you are lost.. what about us :/
13:17:31 <geekosaur> I told you I'm far fromexpert
13:17:56 <geekosaur> doesn't help that Applicative came in while I was all but offline
13:18:17 <albet70> f xs = zip xs (tail xs)
13:18:33 <albet70> f = ap zip tail
13:19:57 <geekosaur> that is more or less the ap "pattern"
13:20:02 lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
13:20:04 × deadmarshal_ quits (~deadmarsh@95.38.117.55) (Ping timeout: 272 seconds)
13:21:39 × gurkenglas quits (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
13:23:19 redb joins (~nmh@136.49.49.211)
13:24:46 <albet70> when m~ (->) e is always weird
13:25:19 × jgeerds quits (~jgeerds@d5364b87.access.ecotel.net) (Remote host closed the connection)
13:26:57 <albet70> : t zip (>>=) tail
13:27:27 × redb quits (~nmh@136.49.49.211) (Ping timeout: 240 seconds)
13:27:31 <albet70> :t zip (>>=) tail
13:27:32 <lambdabot> error:
13:27:32 <lambdabot> • Couldn't match expected type ‘[a]’
13:27:32 <lambdabot> with actual type ‘m0 a0 -> (a0 -> m0 b0) -> m0 b0’
13:28:26 jgeerds joins (~jgeerds@d5364b87.access.ecotel.net)
13:29:11 zeenk joins (~zeenk@2a02:2f04:a313:d600:8d26:ec9f:3ff6:fc94)
13:31:29 <abastro> You mean this?
13:31:32 <abastro> :t zip >>= tail
13:31:33 <lambdabot> error:
13:31:33 <lambdabot> • Couldn't match expected type ‘[[b]]’
13:31:33 <lambdabot> with actual type ‘[a0] -> [b0] -> [(a0, b0)]’
13:31:59 <abastro> Still not working hm
13:32:59 × kaph quits (~kaph@dynamic-adsl-78-12-162-98.clienti.tiscali.it) (Ping timeout: 256 seconds)
13:35:44 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
13:37:07 × coot quits (~coot@213.134.190.95) (Quit: coot)
13:40:23 × bliminse quits (~bliminse@host86-185-253-73.range86-185.btcentralplus.com) (Quit: leaving)
13:43:26 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
13:45:06 geekosaur joins (~geekosaur@xmonad/geekosaur)
13:47:24 Inst joins (~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
13:47:32 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
13:50:09 <Zemyla> @let import Data.Profunctor.Mapping -- int-e
13:50:11 <lambdabot> <no location info>: error:
13:50:11 <lambdabot> The package (distributive-0.6.2) is required to be trusted but it isn't!
13:51:21 × cfricke quits (~cfricke@user/cfricke) (Read error: Connection reset by peer)
13:53:08 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
13:54:10 redb joins (~nmh@136.49.49.211)
13:54:13 Everything joins (~Everythin@37.115.210.35)
13:54:13 slack1256 joins (~slack1256@191.126.227.204)
13:58:21 × redb quits (~nmh@136.49.49.211) (Ping timeout: 246 seconds)
14:02:48 × frost quits (~frost@user/frost) (Quit: Client closed)
14:03:46 Sgeo joins (~Sgeo@user/sgeo)
14:04:22 bliminse joins (~bliminse@host86-185-253-73.range86-185.btcentralplus.com)
14:06:03 justsomeguy joins (~justsomeg@user/justsomeguy)
14:07:33 × lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 256 seconds)
14:08:08 cfricke joins (~cfricke@user/cfricke)
14:11:12 redb joins (~nmh@136.49.49.211)
14:11:20 × d34df00d quits (~d34df00d@2600:1700:8c60:3a10::46) (Remote host closed the connection)
14:13:13 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 248 seconds)
14:13:43 deadmarshal_ joins (~deadmarsh@95.38.117.55)
14:15:48 × redb quits (~nmh@136.49.49.211) (Ping timeout: 272 seconds)
14:16:28 <abastro> When doing haskell is quite fun, so I cannot be hired doing haskell :P
14:18:08 × deadmarshal_ quits (~deadmarsh@95.38.117.55) (Ping timeout: 250 seconds)
14:19:26 × lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Quit: meh)
14:19:34 lambdabot joins (~lambdabot@silicon.int-e.eu)
14:19:35 × lambdabot quits (~lambdabot@silicon.int-e.eu) (Changing host)
14:19:35 lambdabot joins (~lambdabot@haskell/bot/lambdabot)
14:20:01 × m1dnight quits (~christoph@78-22-9-5.access.telenet.be) (Quit: WeeChat 3.5)
14:20:03 <int-e> @let import Data.Profunctor.Mapping
14:20:10 <lambdabot> Defined.
14:21:08 <int-e> (all this because import Data.Coerce <-- this module isn't trusted)
14:21:24 m1dnight joins (~christoph@78-22-9-5.access.telenet.be)
14:22:42 × hpc quits (~juzz@ip98-169-35-13.dc.dc.cox.net) (Ping timeout: 260 seconds)
14:23:38 <abastro> Not trusted for a reason right?
14:24:23 hpc joins (~juzz@ip98-169-35-13.dc.dc.cox.net)
14:25:09 <geekosaur> actually Data.Coerce should be fine
14:25:18 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
14:25:20 <int-e> geekosaur: I know.
14:25:28 <geekosaur> it uses unsafeCoerce under the hood, but the typechecker ensures it's always safe
14:25:39 <geekosaur> right, I meant abastro
14:26:43 × hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection)
14:26:59 ph88 joins (~ph88@ip5f5af71f.dynamic.kabel-deutschland.de)
14:27:34 <abastro> I heard that newtype could still be problematic
14:27:43 <int-e> Well it's baked into the Core language, and then gets erased (just like unsafeCoerce) when going to Stg, I think.
14:27:49 <abastro> Somewhere I heard that GeneralizedNewtypeDeriving was deemed unsafe at least
14:27:59 <geekosaur> that was why Coercible exists
14:28:00 <abastro> I guess `coerce` would have similar reason
14:28:02 <int-e> GND is *much* safer these days
14:28:03 hololeap joins (~hololeap@user/hololeap)
14:28:04 <geekosaur> go look at type roles
14:28:42 <abastro> Oh, I guess it deemed unsafe was legacy then
14:28:57 <geekosaur> yes. type roles fixed GND
14:29:00 <albet70> why tail >>= tail is wrong?
14:29:06 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 272 seconds)
14:29:13 <abastro> Ohh, I see
14:29:28 <int-e> Yes, it used to be totally unsafe because it blindly applied unsafeCoerce under the hood. Now it blindly applies coerce under the hood and benefits from the safety guarantees that comes with.
14:29:30 <abastro> What do you expect `tail >>= tail` to do?
14:29:35 <albet70> >>= g f = \x -> f (g x)
14:29:41 <abastro> Unless you mean `tail >=> tail`
14:29:59 <int-e> :t tail >>= tail
14:30:01 <lambdabot> error:
14:30:01 <lambdabot> • Couldn't match expected type ‘[[b]]’
14:30:01 <lambdabot> with actual type ‘[a0] -> [a0]’
14:30:26 × abastro quits (~abab9579@192.249.26.196) (Remote host closed the connection)
14:30:29 <albet70> g is an unary function, f is a binary function
14:30:33 <int-e> :t tail >=> tail
14:30:35 <lambdabot> [[c]] -> [c]
14:30:38 <int-e> :t tail . tail
14:30:40 <lambdabot> [a] -> [a]
14:31:08 <int-e> (the last one seems most likely, really)
14:32:21 × Everything quits (~Everythin@37.115.210.35) (Quit: leaving)
14:32:31 × lagash quits (lagash@lagash.shelltalk.net) (Remote host closed the connection)
14:32:44 <albet70> tail >=> tail that limit m to []
14:33:43 <abastro[m]> Hm but why tho
14:34:31 <albet70> what about tail >>= zip?
14:34:45 <albet70> :t tail (>>=) zip
14:34:46 <lambdabot> error:
14:34:46 <lambdabot> • Couldn't match expected type ‘([a2] -> [b1] -> [(a2, b1)]) -> t’
14:34:46 <lambdabot> with actual type ‘[a1]’
14:35:05 <albet70> :t tail
14:35:07 <lambdabot> [a] -> [a]
14:35:09 <albet70> :t zip
14:35:11 <lambdabot> [a] -> [b] -> [(a, b)]
14:35:15 lagash joins (lagash@lagash.shelltalk.net)
14:35:21 <albet70> :t (>>=)
14:35:22 <lambdabot> Monad m => m a -> (a -> m b) -> m b
14:35:48 dextaa joins (~dextaa@user/dextaa)
14:35:51 × dextaa quits (~dextaa@user/dextaa) (Remote host closed the connection)
14:36:01 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4)
14:36:20 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
14:36:52 <abastro[m]> `tail (>>=)` does not make sense
14:37:27 <abastro[m]> >>= is not a list
14:37:51 <albet70> :t zip <*> tail
14:37:52 <lambdabot> [a] -> [(a, a)]
14:38:08 mikoto-chan joins (~mikoto-ch@213.177.151.239)
14:38:38 <albet70> tail (>>=) m is (->)_?
14:40:17 gurkenglas joins (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de)
14:42:02 <abastro[m]> I don't see a way where `tail (>>=)` would make sense
14:43:17 redb joins (~nmh@136.49.49.211)
14:43:51 maroloccio joins (~marolocci@213.99.23.106)
14:44:14 mmhat joins (~mmh@55d42e6b.access.ecotel.net)
14:44:23 × mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 256 seconds)
14:45:01 <geekosaur> albet70, `tail (>>=)` is tail applied to the operator (>>=). this can't make sense. what are you really trying to say? or do?
14:46:29 lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
14:47:52 × redb quits (~nmh@136.49.49.211) (Ping timeout: 248 seconds)
14:48:08 <abastro[m]> % :t tail
14:48:08 <yahb> abastro[m]: [a] -> [a]
14:48:10 <albet70> nothing to do, just wonder why it can not?
14:48:28 shriekingnoise joins (~shrieking@201.231.16.156)
14:49:12 × jackson99 quits (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Session timeout))
14:49:28 notzmv joins (~zmv@user/notzmv)
14:50:20 <geekosaur> because tail operates on lists, not functions
14:50:34 <geekosaur> and `tail >>=` is something different from `tail (>>=)`
14:50:53 <albet70> "geekosaur :and `tail >>=` is something different from `tail (>>=)`", how so?
14:51:18 <abastro[m]> Operator section is hard
14:51:22 <geekosaur> you wrap an operator in parentheses to turn it into a (prefix) function
14:51:34 <geekosaur> :t + --this is an error
14:51:35 <lambdabot> error: parse error on input ‘+’
14:51:38 <abastro[m]> Ye haskell has too much sugar
14:51:48 <geekosaur> :t (+) -- this is operator `+` turned into a function
14:51:49 <lambdabot> Num a => a -> a -> a
14:52:41 × CiaoSen quits (~Jura@p200300c9572d40002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
14:52:50 <albet70> what about tail >=> tail?
14:53:02 <abastro[m]> > ([] `tail`)
14:53:04 <lambdabot> *Exception: Prelude.tail: empty list
14:53:13 <abastro[m]> Hehe
14:53:24 <abastro[m]> :t (>=>)
14:53:25 <lambdabot> Monad m => (a -> m b) -> (b -> m c) -> a -> m c
14:53:37 <geekosaur> that composes two monads, the monad in question being the list monad
14:53:48 <geekosaur> it's like function composition but for monads
14:53:50 <abastro[m]> It is monadic composition
14:53:56 <geekosaur> :t (>=>)
14:53:57 <lambdabot> Monad m => (a -> m b) -> (b -> m c) -> a -> m c
14:54:06 <geekosaur> :t (>>>) -- flipped (.)
14:54:08 <lambdabot> forall k (cat :: k -> k -> *) (a :: k) (b :: k) (c :: k). Category cat => cat a b -> cat b c -> cat a c
14:54:13 <geekosaur> oh crap
14:54:18 <geekosaur> thanks lambdabot :/
14:54:31 <albet70> wait a sec, what the m is? e-> or []?
14:54:45 <abastro[m]> Haha
14:55:17 <abastro[m]> % :k Category
14:55:17 <yahb> abastro[m]: (k -> k -> *) -> Constraint
14:55:28 <geekosaur> the monad here is [] because that's what tail produces
14:56:08 jgeerds_ joins (~jgeerds@d5364b87.access.ecotel.net)
14:56:41 <albet70> how to express it? >>= or >=> limit or concrete the m by its value?
14:57:03 <geekosaur> neither of those limit m, they have to operate on any Monad m
14:57:18 <geekosaur> the type of `tail` picks m to be []
14:58:31 coot joins (~coot@213.134.190.95)
14:58:56 <albet70> but its value limit m?
14:59:12 <albet70> its parameter
14:59:30 × jgeerds quits (~jgeerds@d5364b87.access.ecotel.net) (Ping timeout: 272 seconds)
14:59:53 <abastro[m]> Type parameter
15:00:05 <albet70> f >>= g, if f is [a] then m is limited to []
15:00:23 <albet70> if f is e-> a then m is limited to e->
15:00:56 bahamas joins (~lucian@84.232.140.158)
15:01:45 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:1bbe:d06f:b37f:2998) (Quit: WeeChat 2.8)
15:02:12 <albet70> :t fmap
15:02:13 <lambdabot> Functor f => (a -> b) -> f a -> f b
15:02:22 × jgeerds_ quits (~jgeerds@d5364b87.access.ecotel.net) (Ping timeout: 260 seconds)
15:03:08 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
15:03:54 <albet70> mapFuc f g = \x -> f (g x)
15:06:03 <albet70> mapList f (x:xs) = (f x):xs
15:07:27 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
15:08:34 <geekosaur> % :t fmap @((->) _)
15:08:34 <yahb> geekosaur: (a -> b) -> (w -> a) -> w -> b
15:08:45 <geekosaur> % :t fmap @[]
15:08:45 <yahb> geekosaur: (a -> b) -> [a] -> [b]
15:08:48 × acidjnk_new quits (~acidjnk@p200300d0c722df65bc11ed8127f1571b.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
15:09:19 <geekosaur> something unclear here is that first one is really (a -> b) -> (w -> a) -> (w -> b)
15:09:39 <geekosaur> but :t strips "unnecessary" parentheses
15:11:01 _________ joins (~nobody@user/noodly)
15:11:02 × cdman quits (~dcm@user/dmc/x-4369397) (Quit: Leaving)
15:11:57 awpr joins (uid446117@id-446117.lymington.irccloud.com)
15:12:03 <albet70> :t tail >=>
15:12:04 <lambdabot> error:
15:12:04 <lambdabot> parse error (possibly incorrect indentation or mismatched brackets)
15:12:29 <albet70> :t (>=>) tail
15:12:30 <lambdabot> (b -> [c]) -> [b] -> [c]
15:12:32 <abastro[m]> Well, you could:
15:12:33 <abastro[m]> :t (tail >=>)
15:12:35 <lambdabot> (b -> [c]) -> [b] -> [c]
15:13:08 <abastro[m]> When parens change meaning..wait
15:14:31 redb joins (~nmh@136.49.49.211)
15:14:36 <albet70> so could I say tail limited the m to [] in (>=>) tail?
15:14:55 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
15:15:24 <albet70> but could [a]-> as m?
15:16:01 <albet70> [] could be m, e-> could be m, [e]-> could be m?
15:16:25 <geekosaur> yes. the third is just a special case of the second
15:16:53 <albet70> if a unary function f, (>=>) f would limited m to e->, right?
15:17:03 <geekosaur> it's e-> where e is [e'] for some e'
15:17:27 <abastro[m]> Fun thing:
15:17:36 <geekosaur> and yuou're still trying to treat (op) and op as the same thing
15:17:37 <abastro[m]> :t (tai >=>)
15:17:38 <lambdabot> error:
15:17:39 <lambdabot> • Variable not in scope: tai :: a -> m b
15:17:39 <lambdabot> • Perhaps you meant one of these:
15:17:42 <abastro[m]> :t (tail >=>)
15:17:43 <geekosaur> consider this:
15:17:44 <lambdabot> (b -> [c]) -> [b] -> [c]
15:17:53 <abastro[m]> :t (>=> tail)
15:17:54 <lambdabot> (a -> [[c]]) -> a -> [c]
15:17:57 <geekosaur> > fmap (+) z [a,b,c]
15:17:59 <lambdabot> error:
15:17:59 <lambdabot> • Couldn't match expected type ‘[Expr] -> a’
15:17:59 <lambdabot> with actual type ‘Expr’
15:18:00 <abastro[m]> Oops.. matrix bridge pls
15:18:04 <geekosaur> whoops
15:18:23 <albet70> then again why (>>=) tail make no sense
15:18:32 <geekosaur> > fmap (+) z [a,b,c] :: FromExpr f => [f]
15:18:34 <lambdabot> error:
15:18:34 <lambdabot> • Couldn't match type ‘a0 -> a0’ with ‘[f1]’
15:18:34 <lambdabot> Expected type: [Expr] -> [f1]
15:18:35 <albet70> when m is [e]->
15:18:50 <geekosaur> again, yyou are treating (>>=) and >>=mas the same. they are not
15:18:52 <abastro[m]> `(>>=) tail` makes sense.
15:18:52 <abastro[m]> `tail (>>=)` doesn't.
15:18:57 × redb quits (~nmh@136.49.49.211) (Ping timeout: 256 seconds)
15:19:19 <albet70> :t (>>=) tail
15:19:21 <lambdabot> ([a] -> [a] -> b) -> [a] -> b
15:19:54 jakalx joins (~jakalx@base.jakalx.net)
15:20:18 <geekosaur> can I have the channel for a second?
15:20:28 <geekosaur> albet70, compare these
15:20:32 <geekosaur> > 2 + 3
15:20:34 <lambdabot> 5
15:20:38 <geekosaur> > (+) 2 3
15:20:40 <lambdabot> 5
15:20:57 CiaoSen joins (~Jura@p200300c9572d40002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
15:21:01 <geekosaur> the first is + as an operator, the second is + as a (prefix) function
15:21:19 <geekosaur> you can't simply treat (+) as the same as +, it is different
15:21:29 <geekosaur> likewise >>=and (>>=) are different
15:21:50 <geekosaur> ok, back to your regularly scheduled confusion :)
15:22:01 <albet70> (>>=) tail is a normal prefix expression, and tail (>>=) is a suffix expression
15:24:05 <[exa]> unfortunately not
15:24:21 <albet70> :t (tail >>=)
15:24:22 <lambdabot> ([a] -> [a] -> b) -> [a] -> b
15:24:43 <albet70> tail >>= is a suffix expression
15:25:33 <[exa]> without the parentheses in place it is a parse error
15:25:38 <abastro[m]> Yea parens are supposed to be only for operator precedence
15:25:44 × lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 250 seconds)
15:25:53 <abastro[m]> But haskell uses it for special treatment for operators as well
15:25:59 <albet70> add parentheses to >>= would make it a prefix expression
15:26:22 <tdammers> "supposed to" according to whom?
15:26:30 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
15:26:54 <tdammers> I would argue that any language is free to define the meaning of its tokens as its designers see fit
15:27:07 × hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Ping timeout: 240 seconds)
15:27:09 redb joins (~nmh@136.49.49.211)
15:27:15 <albet70> then again what's the m in tail >>=?
15:27:37 _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl)
15:27:57 <tdammers> you mean in the type of (tail >>=) ?
15:27:58 <c_wraith> albet70: just follow the types. It's purely mechanical
15:28:00 <albet70> [a]->?
15:28:04 <[exa]> albet70: the (>>=) gets instantiated for `Monad []` there
15:28:15 <abastro[m]> According to math class I guess tdammers
15:28:24 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
15:28:29 <tdammers> abastro[m]: programming isn't math
15:28:46 <[exa]> albet70: ah no sorry, there's really (->) in place :]
15:28:47 <abastro[m]> <del>Oh noo</del>
15:28:53 <tdammers> and guess what, parentheses are also used differently in natural language, in music notation, etc.
15:29:08 <abastro[m]> Welp so much for me to expect programming to be extension of basic math
15:29:34 <abastro[m]> Well then haskell's problem is just having too many syntaxes
15:29:35 <tdammers> math and programming are related, but neither is an "extension" of the other
15:30:03 <tdammers> "haskell's problem" is that you aren't familiar with its syntax
15:30:53 <abastro[m]> Yep, basic math/calc and math are related, but neither is an extension of the other
15:31:08 × dolio quits (~dolio@130.44.130.54) (Quit: ZNC 1.8.2 - https://znc.in)
15:33:41 dolio joins (~dolio@130.44.130.54)
15:33:42 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
15:36:32 <abastro[m]> Sorry albet that I interfered your question
15:37:06 × maroloccio quits (~marolocci@213.99.23.106) (Quit: WeeChat 3.0)
15:37:09 × joo-_ quits (~joo-_@fsf/member/joo--) (Quit: leaving)
15:38:15 Macbethwin joins (~chargen@D964062A.static.ziggozakelijk.nl)
15:39:00 Pickchea joins (~private@user/pickchea)
15:39:09 × jonathanx quits (~jonathan@dyn-5-sc.cdg.chalmers.se) (Remote host closed the connection)
15:39:23 jgeerds joins (~jgeerds@d5364b87.access.ecotel.net)
15:40:24 <albet70> no need, I love haskell, but I can't comprehend
15:42:31 × Macbethwin quits (~chargen@D964062A.static.ziggozakelijk.nl) (Remote host closed the connection)
15:42:39 <geekosaur> you need to work with it more and become familiar with its syntax
15:42:50 Macbethwin joins (~chargen@D964062A.static.ziggozakelijk.nl)
15:42:55 <shapr> yeah, write a bunch of code!
15:42:55 <geekosaur> have you worked your way through a haskell course or book yet?
15:44:12 <albet70> lyah I have read, but it lacks lots of concepts
15:45:33 × stevenxl quits (~stevenxl@c-73-72-2-81.hsd1.il.comcast.net) (Quit: leaving)
15:45:56 <geekosaur> it also lacks exercises for the most part
15:47:16 <geekosaur> @where cis194
15:47:16 <lambdabot> https://www.seas.upenn.edu/~cis194/spring13/lectures.html
15:47:46 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
15:48:48 <geekosaur> that course is well recommended
15:49:48 <geekosaur> unfortunately I'm not the best reference for learning haskell: not only am I a lousy teacher :) but I learned from the original Gentle Introduction — which works best if you have an SML/NJ background (which I do, plus a bunch of other languages)
15:50:29 × jgeerds quits (~jgeerds@d5364b87.access.ecotel.net) (Remote host closed the connection)
15:50:30 <Zemyla> A New Jersey background?
15:50:34 × kenran quits (~kenran@200116b82b0a340003754354c85ff367.dip.versatel-1u1.de) (Quit: WeeChat info:version)
15:51:11 <abastro[m]> I just loled
15:51:17 <dolio> Hey, yo, just learn Haskell.
15:51:18 <geekosaur> https://www.smlnj.org/
15:51:43 <geekosaur> I worked at Carnegie Mellon for a decade and a half, that's smlnj territory
15:51:44 jgeerds joins (~jgeerds@d5364b87.access.ecotel.net)
15:53:10 jackson99 joins (~bc8147f2@cerf.good1.com)
15:53:14 <abastro[m]> Wait SML of New Jersey exists?
15:53:32 <abastro[m]> Wow.
15:53:42 <c_wraith> You're gonna maker Robert Harper cry
15:54:05 <monochrom> I learned from the gentle introduction, and I am a great teacher. :)
15:54:11 <geekosaur> SCS gave zerofucks what crazy people in ECE did :)
15:54:28 × Macbethwin quits (~chargen@D964062A.static.ziggozakelijk.nl) (Remote host closed the connection)
15:54:47 Macbethwin joins (~chargen@D964062A.static.ziggozakelijk.nl)
15:54:55 × FragByte quits (~christian@user/fragbyte) (Ping timeout: 260 seconds)
15:55:27 FragByte joins (~christian@user/fragbyte)
15:55:49 <monochrom> Previous SML or Scheme exposure may or may not help depending on how much you relied on mutable variables in them, in which case you were just as stuck in Algol as everyone else.
15:56:06 <telser> It isn't free but I've had some success in helping onboard people to the language with https://haskellbook.com/ as the primary resource. Also had success with some of the other things already mentioned, lyah, cis194, etc.
15:56:56 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection)
15:56:56 <dolio> It'll still help with some stuff, like using recursion for everything.
15:57:12 × bahamas quits (~lucian@84.232.140.158) (Ping timeout: 248 seconds)
15:57:19 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
15:58:12 <geekosaur> most of my exposure was hoobnobbing with SCS grad students and staff — the latter of whom used a bot speaking smlnj to do system and network queries
15:58:23 vicfred joins (~vicfred@user/vicfred)
15:58:30 <monochrom> That silver lining has tarnish too because tail recursion is overemphasized there...
15:58:52 <abastro[m]> Coming from C background, I personally had great success by writing haskell from get go to solve algorithmic problems
15:59:00 <geekosaur> all declarative (in fact the syntax for declaring variables/functions caught me by surprise later) so a good prep for haskell
15:59:15 <monochrom> Only Larry Paulson has the gut to say in an SML textbook "you spend linear space for linear-sized output, that's fair game".
15:59:25 <c_wraith> monochrom: unfortunately, tail recursion actually is important when your implementation blows up with non-tail recursion
15:59:32 <monochrom> (of "map f (x::xs) = f x :: map f xs")
15:59:41 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
15:59:42 <dolio> A lot of cases of needing mutation in simple examples revolve around not being able to move to proceed to a case where variables have different values without mutable assignment.
16:00:00 <dolio> Because of loops.
16:00:14 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
16:00:34 <abastro[m]> One can use good deal of recursion in C, so C -> Haskell transition could be easy I think
16:00:55 <monochrom> It is true that previous SML exposure conquers the hurdle of accepting sum types.
16:01:06 lbseale joins (~ep1ctetus@user/ep1ctetus)
16:01:08 <dolio> You can, but people aren't taught that way.
16:01:20 <telser> For my learning, my earliest experience was as an undergrad requesting a functional programming course and a professor craming as much of Real World Haskell and SICP as we could handle into a semester. Then I ran with Haskell and tried to use it as much as I could.
16:01:28 <abastro[m]> Oh and C has untagged unions
16:01:29 <dolio> And often don't work that way.
16:01:53 <abastro[m]> Can tag untagged unions to make tagged unions, so I guess that help too
16:01:59 Henson joins (~kvirc@107-179-133-201.cpe.teksavvy.com)
16:02:17 × qwedfg_ quits (~qwedfg@user/qwedfg) (Read error: Connection reset by peer)
16:02:40 × chele quits (~chele@user/chele) (Remote host closed the connection)
16:02:53 <c_wraith> When I was doing the main CS sequence in my university, one of the students there took "you can do anything with recursion or iteration (and some extra bookkeeping)" as a challenge and did every single assignment both ways.
16:02:54 <monochrom> Mutable variables and loops are great temptations. People will not avoid them.
16:03:52 <abastro[m]> Wow, dedicated student
16:04:01 <monochrom> Even in Haskell, there are beginners who would rather learn IO early so they can use IORef.
16:04:04 <dolio> It doesn't help because, "I could implement some Haskell things in C," is not what is required. What is required is experience actually using those things in the same way as Haskell, which isn't what people do in C, typically.
16:04:18 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds)
16:04:19 <c_wraith> On the other hand, I just figured out how to convert between them mechanically and went "ok, yep".
16:05:16 <monochrom> They may even rejoice when they discover the monad-loop package so they can go back to loops again.
16:05:50 <abastro[m]> Hm perhaps I was weird then.
16:05:53 <c_wraith> instead of just writing those loops themselves? Nothing in that package is more than about 3 lines long
16:06:01 <monochrom> The reality is that since it is possible to emulate idiomatic C in Haskell, beginners will do exactly that.
16:06:08 qwedfg joins (~qwedfg@user/qwedfg)
16:06:31 <[exa]> technically, is there any example of algorithm that would be inherently loopy and really better with cycles? I always thought that dynamic programming would be the case, until I implemented levenshtein in haskell :D
16:06:39 <monochrom> As opposed to "since it is possible to emulate idiomatic Haskell in C"... well why would anyone do that?!
16:06:41 <abastro[m]> I recall doing loops as recursion in C
16:07:16 <[exa]> monochrom: but you can do monads with macros!!!11 :D
16:07:22 × yauhsien quits (~yauhsien@61-231-36-20.dynamic-ip.hinet.net) (Remote host closed the connection)
16:07:46 <abastro[m]> My memory might be wrong but I wondered in C if recursion could be optimized to a loop
16:08:00 <monochrom> Haha yeah Racket is looking at this conversation and think we are all dumb, it emulates all of us...
16:08:03 <c_wraith> It's really painful to write haskell-style code in C. all those void* everywhere.
16:08:03 <abastro[m]> So that I could always use easier and more consistent recursion
16:08:04 <geekosaur> depends on the compiler
16:08:18 <abastro[m]> Also since somehow loop is harder for me than recursion
16:08:41 yauhsien joins (~yauhsien@61-231-36-20.dynamic-ip.hinet.net)
16:08:51 <abastro[m]> Yea void* is the hurdle
16:08:56 slac79763 joins (~slack1256@186.11.43.180)
16:09:07 <abastro[m]> But well.. void* and unconstrained casts are unavoidable in C anyway
16:09:11 <monochrom> c_wraith: I once did an exercise on using libffi to write a closure in C --- a function that captures some free variables >:)
16:09:44 <monochrom> void* is really not too bad in comparison. Manual type checking is not that hard.
16:10:02 <abastro[m]> Really?
16:10:03 <c_wraith> I've never used libffi. I just get scared when I see the name.
16:10:47 <monochrom> "f x = let { g y = x + y } in g" though...
16:11:15 × slack1256 quits (~slack1256@191.126.227.204) (Ping timeout: 260 seconds)
16:11:24 <monochrom> Don't worry I did that exercise for the LOL.
16:11:31 <dolio> Most people definitely complain that recursion is much harder than loops, in my experience.
16:11:43 <dolio> I think it's often not taught well, though.
16:12:21 <monochrom> Absolutely.
16:12:57 <abastro[m]> Yeah, I feel that is strange
16:12:57 <abastro[m]> Recursion is often very powerful
16:13:10 <monochrom> I think my https://groups.google.com/g/comp.lang.functional/c/UFLNf1eI95A/m/WXA78_sk31EJ nails it.
16:13:13 <dolio> People try to teach the exact operational semantics, and students get lost thinking about all the 'copies' of a variable on the stack and stuff.
16:13:14 <abastro[m]> I guess this is an artifact of me being more math-based
16:13:15 <abastro[m]> Where recursive definitions are quite normal
16:13:33 <abastro[m]> Yea, that
16:13:58 <c_wraith> A friend of mine made a comment not too long ago that has stuck with me. She started programming really young, and learned a lot about how things work at a low level. She said that she had no trouble learning recursion because it was obvious to her how it was implemented. Knowing the operational semantics made it completely sensible to her.
16:14:00 <abastro[m]> Really, ppl try to teach recursion by stepping and simulating what will happen
16:14:04 <abastro[m]> And then stack comes in
16:14:05 <monochrom> I teach recursion by saying "think of the induction proof".
16:14:23 <abastro[m]> Call-by-value and call-by-reference on top. Eeeh
16:14:40 <abastro[m]> Well but yeah, I understand that math is hard.
16:14:44 <monochrom> http://www.cs.utoronto.ca/~trebla/CSCC24-2021-Summer/01-haskell-basic.html#synev
16:14:55 <abastro[m]> Induction is hard for typical programming beginners
16:15:38 <abastro[m]> Learning by its operational semantics??? Wh
16:15:39 <monochrom> For those who are not in a CS curriculum? Sure.
16:16:05 <monochrom> For those who are in a CS cirriculum? We can exploit a survivor bias there.
16:16:11 <c_wraith> honestly, I made sense of induction by going "oh, this is just recursion made hard". :P
16:16:12 <geekosaur> hm, guess that's another reason I had no trouble picking up basic Haskell. I already knew about proofs with a base case and an inductive case, and seeing functions defined the same way was natural
16:16:33 <monochrom> However, I know of a data point regarding blank-slate kids.
16:16:34 <abastro[m]> Well, CS majors nowadays just begin with python
16:16:48 <abastro[m]> And I see them sticking with python and writing simplest codes
16:17:05 <abastro[m]> I think they won't bother with induction
16:17:16 <monochrom> Some MIT people tried teaching Logo with recursion to kids. The kids loved it. Loved the recursion too. Thought it was so natural.
16:18:08 <monochrom> CS has a 1st-year course that does induction proofs (among other things).
16:18:16 justsomeguy joins (~justsomeg@user/justsomeguy)
16:18:53 cosimone joins (~user@93-47-228-79.ip115.fastwebnet.it)
16:18:57 <abastro[m]> Ok, perhaps this is another regional thing?
16:19:48 <abastro[m]> Discrete math in my uni does not teach proper induction iirc, it just teaches sets, relations, functions, I guess it also teaches trees/graphs
16:19:48 × coot quits (~coot@213.134.190.95) (Read error: Connection reset by peer)
16:20:00 coot joins (~coot@213.134.190.95)
16:20:12 <telser> Definitely, I've seen programs without it or with so little the students didn't really come out with an understanding.
16:20:14 <dolio> Doesn't Python restrict your ability to use recursion by always using stack?
16:20:31 <monochrom> geekosaur: Though, very technically (so don't worry about it, I was just curious), I found that using the principle of induction to prove that recursive definitions are OK seems to require a pretty strong version of choice. I hope I'm missing something.
16:20:32 <abastro[m]> Hmm, Interesting that Logo recursion pedagogy works.
16:20:54 <abastro[m]> Indeed, you can easily get stackoverflow in python by using recursion
16:21:13 <geekosaur> monochrom, I'm not really a mathematician, I never really worried about it
16:21:16 <monochrom> (Well, in the context of set theory and total functions. Of course it's easier in CPOs...)
16:21:23 <abastro[m]> So avoiding recursion is recommended for performance as well
16:21:30 × Macbethwin quits (~chargen@D964062A.static.ziggozakelijk.nl) (Ping timeout: 246 seconds)
16:21:43 <geekosaur> I'mkinda trying to catch up on the actual mathematics now
16:21:46 <dolio> That's more a defect of set theory, if anything.
16:22:20 <abastro[m]> Well checking recursion termination depends on recursion
16:23:10 <abastro[m]> I cannot think of a case where recursion is related with AC though, since everything is at most countable and likely finite
16:23:28 <monochrom> And then calculus of constructions just say "every recursive data type comes with a recursive elimination axiom, what's the problem?" :)
16:24:03 <abastro[m]> Thing is, general recursion needs more than just the recursive elimination
16:24:26 <abastro[m]> I think primitive recursion is related with that one
16:25:02 <abastro[m]> AFAIK when one of the parameters are guaranteed to be decreasing is one of the most trivial cases
16:29:07 × CiaoSen quits (~Jura@p200300c9572d40002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
16:29:21 slack1256 joins (~slack1256@191.125.227.204)
16:30:44 × slac79763 quits (~slack1256@186.11.43.180) (Ping timeout: 250 seconds)
16:33:15 × jackson99 quits (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC)
16:34:21 <exarkun> this conversation gave me flashbacks to using extensions gcc had in the 90s for having closures in C, thanks
16:34:24 × raehik1 quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.5)
16:36:28 <Henson> is there a way I can use filter with a functor? Something like filterFunctor :: Functor f => (a -> Bool) -> [f a] -> [f a] ? I've got some newtypes that wrap around data, and I'd like to filter that wrapped data using a function that operates on the data.
16:37:08 <Henson> or some other type of class that "wraps" around data. I don't need the complexity of Monad, and Applicative doesn't seem right in this case.
16:37:58 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
16:38:24 Codaraxis joins (~Codaraxis@user/codaraxis)
16:39:34 × Inst quits (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 272 seconds)
16:39:56 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
16:40:14 <[exa]> Henson: you'd need to be able to extract the Bool from the functor, which I don't think is possible in the generic case
16:40:32 <Henson> [exa]: ok
16:41:03 <[exa]> but there are similar things, check out filterM or filterA
16:42:43 <[exa]> in your case, you'd basically need the parameter that does `f a -> Bool`, i.e., being able to "unwrap" the functor on itself
16:49:57 × mmhat quits (~mmh@55d42e6b.access.ecotel.net) (Quit: WeeChat 3.5)
16:50:11 × Pickchea quits (~private@user/pickchea) (Ping timeout: 256 seconds)
16:51:11 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
16:53:30 × ccntrq quits (~Thunderbi@2a01:e34:eccb:b060:bc3e:467d:7ac2:fff6) (Remote host closed the connection)
16:53:33 ccntrq1 joins (~Thunderbi@imx92-1-78-204-187-6.fbx.proxad.net)
16:55:52 ccntrq1 is now known as ccntrq
16:56:03 bahamas joins (~lucian@84.232.140.158)
16:56:06 <monochrom> "Functor f => (a -> Bool) -> [f a] -> [f a]" is probably way more general and undoable than your actual problem.
16:56:06 mmhat joins (~mmh@55d42e6b.access.ecotel.net)
16:58:25 razetime joins (~quassel@117.193.4.40)
17:03:45 mikoto-chan joins (~mikoto-ch@213.177.151.239)
17:04:44 deadmarshal_ joins (~deadmarsh@95.38.117.55)
17:07:42 kenran joins (~kenran@200116b82b0a3400d6f6663d91422485.dip.versatel-1u1.de)
17:09:44 Macbethwin joins (~chargen@D964062A.static.ziggozakelijk.nl)
17:12:17 × razetime quits (~quassel@117.193.4.40) (Remote host closed the connection)
17:12:38 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4)
17:15:06 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
17:15:26 kaph joins (~kaph@dynamic-adsl-78-12-162-98.clienti.tiscali.it)
17:19:05 × Macbethwin quits (~chargen@D964062A.static.ziggozakelijk.nl) (Ping timeout: 256 seconds)
17:22:01 slac88559 joins (~slack1256@191.125.99.75)
17:23:09 lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
17:23:47 × slack1256 quits (~slack1256@191.125.227.204) (Ping timeout: 240 seconds)
17:25:27 × kenran quits (~kenran@200116b82b0a3400d6f6663d91422485.dip.versatel-1u1.de) (Quit: WeeChat info:version)
17:25:39 kenran joins (~kenran@200116b82b0a3400d6f6663d91422485.dip.versatel-1u1.de)
17:29:45 × califax quits (~califax@user/califx) (Remote host closed the connection)
17:31:33 × alp_ quits (~alp@user/alp) (Ping timeout: 256 seconds)
17:33:59 califax joins (~califax@user/califx)
17:35:58 <Henson> [exa], monochrom: ok, thanks for the suggestions. I just manually unwrapped, filtered, then rewrapped the data.
17:36:16 <Henson> not as clean, but conceptually what a generic filter would have to do anyway
17:36:54 xkuru joins (~xkuru@user/xkuru)
17:37:35 <[exa]> Henson: btw if you manually unwrapped and rewrapped, you know in advance what functor is there, right?
17:38:08 <Henson> [exa]: yes
17:38:21 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
17:38:39 <Henson> [exa]: I just have a couple different kinds of functors with which my data can be wrapped, and hoping for a generic solution. If there was a lens that could do the filtering I could use that as well.
17:38:45 <Henson> but I don't know if lens does filtering
17:39:00 <geekosaur> :t filtered
17:39:02 <lambdabot> (Choice p, Applicative f) => (a -> Bool) -> Optic' p f a a
17:39:13 <geekosaur> lookslike it :þ
17:39:29 geekosaur just took a guess based on lens naming conventions
17:40:47 × vysn quits (~vysn@user/vysn) (Ping timeout: 240 seconds)
17:41:59 <Henson> geekosaur: awesome, thanks for the helpful guess!
17:43:41 <geekosaur> note that it wants an Applicative instead of just a Functor though
17:44:19 <geekosaur> @hoogle Choice
17:44:19 <lambdabot> Control.Lens.Combinators class Profunctor p => Choice (p :: Type -> Type -> Type)
17:44:19 <lambdabot> Control.Lens.Prism class Profunctor p => Choice (p :: Type -> Type -> Type)
17:44:19 <lambdabot> Network.AWS.Lens class Profunctor p => Choice (p :: Type -> Type -> Type)
17:44:35 zebrag joins (~chris@user/zebrag)
17:45:46 × ccntrq quits (~Thunderbi@imx92-1-78-204-187-6.fbx.proxad.net) (Remote host closed the connection)
17:47:17 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
17:50:48 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
17:51:30 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
17:52:27 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
17:54:42 fendor_ joins (~fendor@91.141.51.137.wireless.dyn.drei.com)
17:56:08 × deadmarshal_ quits (~deadmarsh@95.38.117.55) (Ping timeout: 248 seconds)
17:56:41 × unyu quits (~pyon@user/pyon) (Quit: brb)
17:56:57 unyu joins (~pyon@user/pyon)
17:57:03 × fendor quits (~fendor@91.141.45.157.wireless.dyn.drei.com) (Ping timeout: 256 seconds)
17:57:06 vicfred joins (~vicfred@user/vicfred)
17:58:40 econo joins (uid147250@user/econo)
18:01:26 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
18:01:38 × yauhsien quits (~yauhsien@61-231-36-20.dynamic-ip.hinet.net) (Remote host closed the connection)
18:03:31 hodan joins (~hodan@gw-ste.aim-net.cz)
18:08:57 × elkcl quits (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 246 seconds)
18:08:59 × hodan quits (~hodan@gw-ste.aim-net.cz) (Quit: Leaving)
18:10:55 elkcl joins (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru)
18:12:28 yauhsien joins (~yauhsien@61-231-36-20.dynamic-ip.hinet.net)
18:12:40 × lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 248 seconds)
18:15:20 × mmhat quits (~mmh@55d42e6b.access.ecotel.net) (Ping timeout: 248 seconds)
18:17:20 × yauhsien quits (~yauhsien@61-231-36-20.dynamic-ip.hinet.net) (Ping timeout: 250 seconds)
18:19:00 axeman joins (~quassel@ip5f5aecfe.dynamic.kabel-deutschland.de)
18:22:09 anomal joins (~anomal@87.227.196.109)
18:25:40 lcminer joins (~l@net244-38-245-109.mbb.telenor.rs)
18:29:02 deadmarshal_ joins (~deadmarsh@95.38.117.55)
18:29:23 mmhat joins (~mmh@55d42e6b.access.ecotel.net)
18:29:40 lcminer parts (~l@net244-38-245-109.mbb.telenor.rs) (Leaving)
18:31:24 × immae quits (~immae@2a01:4f8:141:53e7::) (Ping timeout: 240 seconds)
18:33:22 × deadmarshal_ quits (~deadmarsh@95.38.117.55) (Ping timeout: 250 seconds)
18:34:27 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
18:35:38 Inst joins (~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
18:37:22 yauhsien joins (~yauhsien@61-231-36-20.dynamic-ip.hinet.net)
18:38:17 zincy joins (~zincy@2a00:23c8:970c:4801:2944:efb3:93ff:a753)
18:41:27 × zyklotomic quits (~ethan@res388d-128-61-89-14.res.gatech.edu) (Ping timeout: 240 seconds)
18:41:43 slack1256 joins (~slack1256@186.11.40.52)
18:43:46 × slac88559 quits (~slack1256@191.125.99.75) (Ping timeout: 250 seconds)
18:43:48 zyklotomic joins (~ethan@r4-128-61-92-120.res.gatech.edu)
18:44:41 × anomal quits (~anomal@87.227.196.109) (Remote host closed the connection)
18:45:38 odnes joins (~odnes@5-203-221-3.pat.nym.cosmote.net)
18:48:56 Macbethwin joins (~chargen@D964062A.static.ziggozakelijk.nl)
18:56:56 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
18:58:45 geekosaur joins (~geekosaur@xmonad/geekosaur)
18:59:21 × yauhsien quits (~yauhsien@61-231-36-20.dynamic-ip.hinet.net) (Remote host closed the connection)
19:00:31 × xkuru quits (~xkuru@user/xkuru) (Ping timeout: 256 seconds)
19:01:17 × kenran quits (~kenran@200116b82b0a3400d6f6663d91422485.dip.versatel-1u1.de) (Quit: WeeChat info:version)
19:04:26 alp_ joins (~alp@user/alp)
19:05:30 × kaph quits (~kaph@dynamic-adsl-78-12-162-98.clienti.tiscali.it) (Read error: Connection reset by peer)
19:05:47 kaph joins (~kaph@dynamic-adsl-78-12-162-98.clienti.tiscali.it)
19:06:23 anomal joins (~anomal@87.227.196.109)
19:06:52 lortabac joins (~lortabac@2a01:e0a:541:b8f0:eeed:158a:fd38:dd13)
19:08:45 immae joins (~immae@2a01:4f8:141:53e7::)
19:08:49 yauhsien joins (~yauhsien@61-231-36-20.dynamic-ip.hinet.net)
19:12:58 nort joins (~textual@c-73-176-198-132.hsd1.in.comcast.net)
19:13:21 × yauhsien quits (~yauhsien@61-231-36-20.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
19:18:55 kaph_ joins (~kaph@dynamic-adsl-78-12-162-98.clienti.tiscali.it)
19:19:06 × kaph quits (~kaph@dynamic-adsl-78-12-162-98.clienti.tiscali.it) (Read error: Connection reset by peer)
19:22:00 × bahamas quits (~lucian@84.232.140.158) (Ping timeout: 248 seconds)
19:25:40 bahamas joins (~lucian@84.232.140.158)
19:27:33 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
19:28:18 jpds joins (~jpds@gateway/tor-sasl/jpds)
19:28:51 × Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection)
19:29:47 × bahamas quits (~lucian@84.232.140.158) (Ping timeout: 240 seconds)
19:33:41 mastarija joins (~mastarija@2a05:4f46:e04:6000:68d9:b076:ca11:8c6e)
19:33:57 bahamas joins (~lucian@84.232.140.158)
19:36:16 pavonia joins (~user@user/siracusa)
19:36:22 <mastarija> Remind me, how do I connect top level type variables to the ones defined in the `where` part?
19:36:48 <geekosaur> "connect"?
19:36:52 <mastarija> Besides not specifying type
19:37:18 <mastarija> myfunc :: Blah a -> Blah b; where helper :: Blah a
19:37:31 <mastarija> Types not matching cause it can't connect a to a1
19:37:49 <geekosaur> oh. ScopedTypeVariables and specify the type as forall a b. Blah a -> Blah b
19:38:07 × bahamas quits (~lucian@84.232.140.158) (Ping timeout: 240 seconds)
19:38:15 <mastarija> I think I've tried this
19:38:20 <mastarija> But I'll try again :D
19:38:30 <geekosaur> \it doesn't work without the forall
19:38:44 <geekosaur> and youhave to include the b in the forall even if you're not using it
19:38:44 acidjnk joins (~acidjnk@p200300d0c722df657ceecd71e591a56b.dip0.t-ipconnect.de)
19:39:56 <mastarija> geekosaur, thanks
19:43:22 jackson99 joins (~bc8147f2@cerf.good1.com)
19:44:24 slac56075 joins (~slack1256@191.126.99.75)
19:44:25 bahamas joins (~lucian@84.232.140.158)
19:45:42 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.5)
19:46:32 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 248 seconds)
19:46:59 × slack1256 quits (~slack1256@186.11.40.52) (Ping timeout: 256 seconds)
19:49:06 RevoGen joins (~RevoGen@136.167.108.23)
19:49:12 × bahamas quits (~lucian@84.232.140.158) (Ping timeout: 248 seconds)
19:50:44 yauhsien joins (~yauhsien@61-231-36-20.dynamic-ip.hinet.net)
19:50:54 <RevoGen> Quick question, why does "foldr (\x y-> x||y) False (repeat True)" evaluate but not "foldr (\x acc -> acc || (x<100)) False [1..]"?
19:51:06 × zincy quits (~zincy@2a00:23c8:970c:4801:2944:efb3:93ff:a753) (Remote host closed the connection)
19:51:50 Pickchea joins (~private@user/pickchea)
19:53:59 bahamas joins (~lucian@84.232.140.158)
19:54:47 × zyklotomic quits (~ethan@r4-128-61-92-120.res.gatech.edu) (Ping timeout: 240 seconds)
19:54:59 × kranius quits (~pi@user/kranius) (Remote host closed the connection)
19:55:29 × yauhsien quits (~yauhsien@61-231-36-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
19:57:07 zyklotomic joins (~ethan@res380d-128-61-81-14.res.gatech.edu)
19:58:07 × bahamas quits (~lucian@84.232.140.158) (Ping timeout: 240 seconds)
19:58:34 <mastarija> RevoGen, because the second one is not "tail recursive"?
19:59:31 <mastarija> Or rather, because || shortcircuits on the first one
20:00:15 <RevoGen> why does it not short circuit in the second one?
20:00:31 × mbuf quits (~Shakthi@223.184.55.97) (Quit: Leaving)
20:00:42 <mastarija> foldr is right associative e.g. (1 `f_x_acc` ( 2 `f_x_acc` ( 3 `f_x_acc` ... ) ) )
20:00:49 <dolio> Because (||) looks at its first argument first.
20:00:52 <mastarija> so in the first case he sees x first
20:00:53 × odnes quits (~odnes@5-203-221-3.pat.nym.cosmote.net) (Quit: Leaving)
20:01:02 <mastarija> and returns true because x is true
20:01:08 <mastarija> or in my example x would be one
20:01:21 <mastarija> However, in the second case, it first tries to evaluate `acc`
20:01:40 <mastarija> and if you look at the parentheses, acc is `( 2 `f_x_acc` ( 3 `f_x_acc` ... ) )`
20:01:41 × _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
20:01:46 <mastarija> which is infinite and never evaluates
20:02:12 <sshine> > foldr (\x acc -> (x<100) || acc) False [1..]
20:02:14 <lambdabot> True
20:03:11 <RevoGen> ah that's genius! thank you
20:04:26 Guest785 joins (~Guest7@2a00:23c6:2925:8801:a970:2fed:8ee0:243a)
20:04:35 <mastarija> Am I right about it not being tail recursive, I always forget what tail recursion is. It's when we can "produce" stuff while recursion is still running instead of waiting for the whole process to finish, right?
20:04:59 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:eeed:158a:fd38:dd13) (Quit: WeeChat 2.8)
20:05:30 bahamas joins (~lucian@84.232.140.158)
20:05:37 <sshine> > foldr ((||) . (< 100)) False [1..]
20:05:39 <lambdabot> True
20:05:45 <sclv> we had a discussion the other day about this -- tail recursion isn't a useful way of thinking about things in haskel
20:06:09 <sclv> haskell has an equational theory for reasoning that doesn't require you to think about things like "call stack"
20:06:16 <sshine> > any (< 100) [1..]
20:06:18 <lambdabot> True
20:06:19 <jackson99> > any (<100) [1..]
20:06:20 <lambdabot> True
20:06:48 rawley joins (~rawley@142.99.241.242)
20:07:44 × Macbethwin quits (~chargen@D964062A.static.ziggozakelijk.nl) (Read error: Connection reset by peer)
20:08:43 <exarkun> mastarija: in a language like C, you might have a function and the last thing that function says to do is to recurse. that's tail recursion - recursion happens at the "tail" of the function.
20:08:56 × Guest785 quits (~Guest7@2a00:23c6:2925:8801:a970:2fed:8ee0:243a) (Ping timeout: 250 seconds)
20:09:19 <exarkun> mastarija: then, you might have a runtime with the tail call elimination optimization. that optimization notices that the function that is making the call has nothing more to do after the call returns.
20:09:31 <mastarija> Yes, so it does some work first, and then it recurses. It doesn't first recurse and do work.
20:09:49 <exarkun> mastarija: so it can clean up the function (eg reclaim its stack space) on its way into that call, even though strictly speaking the function isn't done yet
20:10:09 <Franciman> > haskell has an equational theory for reasoning that doesn't require you to think about things like "call stack"
20:10:11 <Franciman> WUT?
20:10:11 <lambdabot> error:
20:10:12 <lambdabot> Variable not in scope:
20:10:12 <lambdabot> haskell
20:10:23 zincy joins (~zincy@host86-160-236-152.range86-160.btcentralplus.com)
20:10:26 <Franciman> it only works if equational reasoning is what you need
20:10:28 <geekosaur> Franciman, haskell uses graph reduction
20:10:28 × bahamas quits (~lucian@84.232.140.158) (Ping timeout: 272 seconds)
20:10:36 lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
20:10:36 <sshine> Franciman, you need to import haskell.
20:10:37 <exarkun> mastarija: right. you can't have more work to do after the recursion or the recursion isn't in the tail position and it's not tail recursion.
20:10:42 × RevoGen quits (~RevoGen@136.167.108.23) (Quit: Client closed)
20:10:47 <Franciman> sshine: :D
20:11:07 RevoGen joins (~RevoGen@136.167.108.23)
20:11:20 <Franciman> geekosaur: i see
20:11:24 <Franciman> thanks
20:11:25 <mastarija> so then, right fold is tail recursive, but left fold isn't, right?
20:11:46 <sshine> so to understand Haskell's evaluation in terms of understanding what tail-recursion is, you need to put on 3D glasses.
20:12:09 <mastarija> *puts 3D glasses on
20:13:28 × mmhat quits (~mmh@55d42e6b.access.ecotel.net) (Ping timeout: 250 seconds)
20:13:37 × slac56075 quits (~slack1256@191.126.99.75) (Ping timeout: 256 seconds)
20:14:01 <dolio> I don't see what tail recursion has to do with whether this example terminates.
20:14:18 <sshine> https://stackoverflow.com/a/6889335/235908
20:14:26 <geekosaur> looks to me like trying to understand it procedurally, which doesn't quite work
20:14:41 <geekosaur> you can sort of fake it for this simple example but it falls apart for more complex ones
20:15:45 <dolio> It terminates or not due to the evaluation order, not because of whether memory is being consumed.
20:16:07 × redb quits (~nmh@136.49.49.211) (Ping timeout: 240 seconds)
20:16:27 × coot quits (~coot@213.134.190.95) (Quit: coot)
20:22:41 × axeman quits (~quassel@ip5f5aecfe.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
20:23:48 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
20:23:59 bahamas joins (~lucian@84.232.140.158)
20:24:57 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds)
20:25:07 Lord_of_Life_ is now known as Lord_of_Life
20:26:13 <Henson> does anybody here use vscode on Linux for Haskell development? I've got the problem where the haskell extension for vscode isn't properly recognizing when I'm working on files that are in the test build area of my cabal file. Anything within the main library gets compiled interactively with helpful immediate feedback on errors, but nothing in the test suite does.
20:26:48 × RevoGen quits (~RevoGen@136.167.108.23) (Remote host closed the connection)
20:26:54 Major_Biscuit joins (~MajorBisc@83.22.225.84.ipv4.supernova.orange.pl)
20:27:29 mmhat joins (~mmh@55d42e6b.access.ecotel.net)
20:28:27 × bahamas quits (~lucian@84.232.140.158) (Ping timeout: 240 seconds)
20:28:33 <sclv> tail recursion is unrelated to the example. you can reason purely equationally, as long as you understand (||) is strict in its first argument and nonstrict in its second.
20:30:04 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
20:30:11 × zincy quits (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Remote host closed the connection)
20:31:26 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
20:37:37 × mastarija quits (~mastarija@2a05:4f46:e04:6000:68d9:b076:ca11:8c6e) (Quit: Leaving)
20:41:28 × Major_Biscuit quits (~MajorBisc@83.22.225.84.ipv4.supernova.orange.pl) (Ping timeout: 248 seconds)
20:44:05 redb joins (~nmh@136.49.49.211)
20:48:07 × redb quits (~nmh@136.49.49.211) (Ping timeout: 240 seconds)
20:48:32 × immae quits (~immae@2a01:4f8:141:53e7::) (Quit: WeeChat 3.3)
20:48:33 [_________] joins (~oos95GWG@user/oos95GWG)
20:52:16 × ph88 quits (~ph88@ip5f5af71f.dynamic.kabel-deutschland.de) (Quit: Leaving)
20:55:07 × Inst quits (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 240 seconds)
20:55:57 immae joins (~immae@2a01:4f8:141:53e7::)
20:58:57 × lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 256 seconds)
20:59:55 redb joins (~nmh@136.49.49.211)
21:04:37 × redb quits (~nmh@136.49.49.211) (Ping timeout: 256 seconds)
21:05:02 ec joins (~ec@gateway/tor-sasl/ec)
21:05:28 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds)
21:06:11 <lechner> Hi, is there a difference between running ghc-pkg --global and simply ghc-pkg without --package-db ?
21:12:10 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
21:13:35 <geekosaur> ghc-pkg by default shows both global and user dbs
21:13:47 <geekosaur> --global constrains it to only the global db
21:15:29 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
21:16:23 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
21:16:25 <lechner> geekosaur: thank you!
21:17:48 Major_Biscuit joins (~MajorBisc@83.22.225.84.ipv4.supernova.orange.pl)
21:18:07 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
21:18:22 <lechner> Can I run ghc-pkg in a way that so it looks in both --global and --package-db ?
21:18:35 × oats quits (~thomas@user/oats) (Quit: until later, my friends)
21:19:02 <geekosaur> no, if you specify --package-db it looks only there
21:19:14 <lechner> geekosaur: okay, thanks!
21:19:21 redb joins (~nmh@136.49.49.211)
21:24:36 oats joins (~thomas@user/oats)
21:26:30 lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
21:26:47 × rawley quits (~rawley@142.99.241.242) (Remote host closed the connection)
21:32:07 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 240 seconds)
21:36:24 × fendor_ quits (~fendor@91.141.51.137.wireless.dyn.drei.com) (Remote host closed the connection)
21:47:40 × anomal quits (~anomal@87.227.196.109) (Remote host closed the connection)
21:47:59 anomal joins (~anomal@87.227.196.109)
21:50:12 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving)
21:51:55 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
21:51:57 geekosaur joins (~geekosaur@xmonad/geekosaur)
21:57:12 notzmv joins (~zmv@user/notzmv)
21:58:46 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
21:59:47 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
22:01:18 × lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 272 seconds)
22:02:59 × Major_Biscuit quits (~MajorBisc@83.22.225.84.ipv4.supernova.orange.pl) (Ping timeout: 256 seconds)
22:06:10 × michalz quits (~michalz@185.246.204.125) (Remote host closed the connection)
22:18:56 <koz> Does anyone know if 'subsequence' here: https://hackage.haskell.org/package/hedgehog-1.1.1/docs/Hedgehog-Gen.html#v:subsequence produces _strict_ subsequences?
22:19:11 <koz> (meaning that whatever I get back will be _strictly_ shorter than what I put in)
22:19:16 <koz> I _assume_ yes, but I want to be sure.
22:23:25 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
22:24:40 Guest27 joins (~Guest27@2601:281:d47f:1590:768c:7129:aa80:96d9)
22:24:44 × z0k quits (~z0k@39.40.62.192) (Ping timeout: 272 seconds)
22:28:03 <dolio> My guess would be no.
22:28:19 bahamas joins (~lucian@84.232.140.158)
22:28:24 lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
22:29:04 <dolio> > subsequences [1,2]
22:29:06 <lambdabot> [[],[1],[2],[1,2]]
22:32:07 × acidjnk quits (~acidjnk@p200300d0c722df657ceecd71e591a56b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
22:32:41 <sshine> https://hackage.haskell.org/package/hedgehog-1.1.1/docs/src/Hedgehog.Internal.Gen.html#subsequence
22:32:51 × bahamas quits (~lucian@84.232.140.158) (Ping timeout: 246 seconds)
22:33:27 <sshine> https://hackage.haskell.org/package/hedgehog-1.1.1/docs/src/Hedgehog.Internal.Shrink.html#list
22:33:33 × 080AAA3P4 quits (~Thunderbi@p548c8d44.dip0.t-ipconnect.de) (Quit: 080AAA3P4)
22:33:41 <sshine> it actually does. the docs could clarify that.
22:33:51 ub joins (~Thunderbi@p200300ecdf1588a3ccf7a828925c2eab.dip0.t-ipconnect.de)
22:35:37 × alp_ quits (~alp@user/alp) (Ping timeout: 248 seconds)
22:38:02 RevoGen joins (~RevoGen@136.167.108.23)
22:39:08 machinedgod joins (~machinedg@24.105.81.50)
22:42:17 × gurkenglas quits (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) (Read error: Connection reset by peer)
22:42:45 gurkenglas joins (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de)
22:46:07 <shapr> sshine: put up a PR?
22:50:12 × RevoGen quits (~RevoGen@136.167.108.23) (Remote host closed the connection)
22:50:27 <shapr> hm, I don't have a contribution to hedgehog, *I* could put up a PR
22:50:29 RevoGen joins (~RevoGen@136.167.108.23)
22:51:10 <sshine> shapr, oops, sorry :)
22:56:33 × RevoGen quits (~RevoGen@136.167.108.23) (Remote host closed the connection)
22:57:04 × Guest27 quits (~Guest27@2601:281:d47f:1590:768c:7129:aa80:96d9) (Ping timeout: 250 seconds)
22:58:01 RevoGen joins (~RevoGen@136.167.108.23)
23:01:50 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
23:02:58 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
23:03:03 × lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 256 seconds)
23:04:35 × ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec)
23:04:39 Guest27 joins (~Guest27@2601:281:d47f:1590:768c:7129:aa80:96d9)
23:07:05 × jackson99 quits (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Ping timeout))
23:11:28 Artus joins (~Artus@190.192.80.102)
23:12:37 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Ping timeout: 240 seconds)
23:13:38 × epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
23:15:03 <lechner> Hi, is base 4.13 supposed to ship base-4.13.0.0/Data-Semigroup-Internal.html ?
23:15:34 <lechner> or base-4.13.0.0/Control-Monad-ST-Lazy-Imp.html ?
23:16:06 <davean> lechner: I'm confused by the question
23:16:13 <lechner> the docs in base-compat-0.11.1 refer to them, but i cannot find them
23:16:37 <lechner> davean: generate, i suppose
23:16:44 <abastro[m]> Oh, I guess those are internal modules
23:16:49 <davean> They're in the package, but they're not supposed to be exported - I mean they're .Internal
23:16:55 <abastro[m]> So, not supposed to ship
23:17:00 × RevoGen quits (~RevoGen@136.167.108.23) (Ping timeout: 250 seconds)
23:17:06 <davean> No, "ship" isn't a sensible way to think about this
23:17:08 <davean> they exist
23:17:12 <davean> They're not *exported*
23:17:20 <davean> They're right there.
23:17:31 nightbreak joins (~nightbrea@nat-168-7-239-90.rice.edu)
23:18:17 <lechner> the debian build system looks for those documents when establishing installation prerequisites
23:18:21 jackson99 joins (~bc8147f2@cerf.good1.com)
23:18:23 <davean> And whats "should", things import them - if they weren't there base wouldn't compile.
23:18:40 <davean> lechner: what documents?
23:18:45 <davean> Files?
23:18:53 <jackson99> is there a way to make this shorter or more elegant? I tried using map/filter instead of list comprehensions but it ended up being longer and uglier
23:19:53 × Guest27 quits (~Guest27@2601:281:d47f:1590:768c:7129:aa80:96d9) (Quit: Client closed)
23:19:54 <jackson99> (moment)
23:20:07 <abastro[m]> I thought "ship" was synonym for "exported". Meh
23:20:09 <geekosaur> @where paste
23:20:09 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
23:20:16 <davean> abastro[m]: Absolutely not
23:20:28 <davean> abastro[m]: Ship means "to send", and they're certainly sent in the package.
23:20:56 <abastro[m]> Yep, indeed
23:21:16 <lechner> davean: My new Haskell build system for Debian fails for base-compat http://qa-logs.debian.net/2022/04/12/haskell-base-compat_0.11.1-1_unstable.log
23:21:17 <davean> Which is why this question of lechner's is so confusion. I have no idea what they actually want.
23:21:24 <abastro[m]> I guess I also somehow thought internal modules are inlined in some other modules.. :p
23:21:51 <lechner> i'm trying to figure out if they should be shipped
23:21:57 <jackson99> > let duplicates xs = [x | (x:_:_) <- group (sort xs)] in duplicates [1,2,3,2]
23:21:59 <lambdabot> [2]
23:22:00 <lechner> or ignored
23:22:01 <davean> *WHAT DO YOU MEAN BY SHIPPED!!!*
23:22:07 <jackson99> vs map/filter
23:22:19 <jackson99> > let duplicates = map head . filter ((>1) . length) . group . sort in duplicates [1,2,3,2]
23:22:21 <lambdabot> [2]
23:22:29 <abastro[m]> lechner: What is this debian build system thing?
23:22:48 <abastro[m]> I know of 3 build systems, cabal, stack, nix. But what is debian
23:22:51 <davean> Ok, in that log it looks like you're *trying to generate docs for them*
23:22:52 <jackson99> maybe there's some other function that I am missing that does both things mp and filter do but in one go
23:23:02 <davean> and uh, no, they don't have docs. This build system is broken.
23:23:34 <lechner> davean: shipped here https://packages.debian.org/bullseye/amd64/ghc/filelist
23:24:04 <sclv> de bien is what you say after de tres
23:24:06 <davean> /usr/lib/ghc/base-4.13.0.0/Data/Semigroup/Internal.dyn_hi
23:24:08 <davean> /usr/lib/ghc/base-4.13.0.0/Data/Semigroup/Internal.ih
23:24:10 <davean> Right there?
23:24:17 <davean> Note thats NOT what your log fails on.
23:24:24 <lechner> abastro[m]: this and friends https://tracker.debian.org/pkg/haskell-devscripts
23:24:25 <abastro[m]> jackson99: perhaps instead of checking length, you can use if it is not null. Also.. iirc elements of `group` is neverempty list
23:24:27 <davean> Those are build products from the files.
23:24:45 <geekosaur> abastro[m], length has to be >1 not >0
23:24:55 <jackson99> yes
23:24:57 <abastro[m]> Oh wait
23:24:59 <lechner> the log is looking for the path dpkg-query: no path found matching pattern /usr/share/doc/ghc-doc/html/libraries/base-4.13.0.0/Data-Semigroup-Internal.html
23:25:01 <geekosaur> they want the values which have more than one entry
23:25:16 <davean> lechner: right, and I talked about that
23:25:17 <abastro[m]> I misread :P
23:25:30 <davean> I specificly talked about that
23:26:00 <abastro[m]> In that case, I think mapMaybe might be good to use
23:26:15 <jackson99> :t mapMaybe
23:26:17 <lambdabot> (a -> Maybe b) -> [a] -> [b]
23:26:35 Guest27 joins (~Guest27@2601:281:d47f:1590:768c:7129:aa80:96d9)
23:26:46 × mmhat quits (~mmh@55d42e6b.access.ecotel.net) (Quit: WeeChat 3.5)
23:27:24 abastro[m] sent a hs code block: https://libera.ems.host/_matrix/media/r0/download/libera.chat/930e3f9e027cb92d92d8cca14c67173b902efb06
23:27:45 <lechner> davean: i think i found it. the path has an extra /src/ segment https://packages.debian.org/bullseye/all/ghc-doc/filelist
23:28:04 <lechner> davean: sorry i thought it was related to the module being internal
23:28:06 <abastro[m]> Then it would be
23:28:06 <abastro[m]> (mapMaybe mapper . group . sort)
23:28:23 <jackson99> > let duplicates = mapMaybe (\xs -> case xs of (x:_:_) -> Just x; _ -> Nothing) . group . sort in duplicates [1,2,3,2]
23:28:25 <lambdabot> [2]
23:28:37 <davean> lechner: I mean sorta - thats why it doesn't generate docs. Because docs have nothing to do with code.
23:28:49 <sshine> > let duplicates = Data.Set.toList . Data.Set.fromList in duplicates [1,2,3,1,3,2,4,5,1]
23:28:50 <lambdabot> [1,2,3,4,5]
23:28:56 × gurkenglas quits (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) (Ping timeout: 248 seconds)
23:29:26 <abastro[m]> Well that one also returns those not duplicated :p
23:29:28 <jackson99> sshine, doesn't that do the opposite?
23:29:33 <geekosaur> sshine, 4 and 5 don't belong there
23:29:47 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
23:29:49 <sshine> oh, sorry, I triggered on the word "duplicates" :)
23:29:51 <davean> lechner: The real question is why this build system would ever think haddocs would be generated for those files.
23:30:05 <jackson99> oh right, that is nub
23:30:08 <abastro[m]> I was there too
23:30:26 lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
23:30:48 <abastro[m]> I wonder why nub exists tbh
23:31:07 <sshine> historical reasons
23:31:08 <abastro[m]> > nub [1..100000]
23:31:10 <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,...
23:31:19 <abastro[m]> Oh it computes fast
23:31:19 <sshine> containers has Data.Containers.nubOrd
23:31:21 <geekosaur> and it's simple when you know the list is short
23:31:21 <lechner> davean: because haddock creates HTML anchor referring to local files:/
23:31:45 <abastro[m]> nubOrd needs to be in base imho
23:31:59 <geekosaur> if you have 200 monitors, come to me and we'll change xmonad to use nubOrd :þ
23:32:01 <jackson99> @pl (\xs -> case xs of (x:_:_) -> Just x; _ -> Nothing)
23:32:01 <lambdabot> (line 1, column 24):
23:32:01 <lambdabot> unexpected '_'
23:32:02 <lambdabot> expecting simple term
23:32:09 <abastro[m]> Wait I reached out to can of worms :/
23:32:28 <geekosaur> abastro[m], it can't be in base unless you move part of containers to base as well
23:32:31 <dibblego> haha, main = xmonad config nubOrd
23:32:36 <davean> lechner: https://hackage.haskell.org/package/base-4.13.0.0/docs/src/Data.Semigroup.Internal.html <-- as far as I can tell it creates all the anchors that actually exist if you do it in the right mode.
23:32:38 <abastro[m]> geekosaur: lmao
23:32:50 <abastro[m]> Oh, what does nubOrd use?
23:32:58 <jackson99> I still like list comprehension version. kind of neat that it ignores unmatched patterns
23:32:59 <davean> lechner: You've got the wrong name for the file
23:33:09 <geekosaur> Set, iirc
23:33:17 <abastro[m]> Does it use `Set`????? Duh
23:33:20 × mud quits (~mud@user/kadoban) (Quit: quit)
23:33:25 <abastro[m]> Could you show list comprehension version jackson99
23:33:28 <geekosaur> Set.toList . Set.fromList
23:33:31 <lechner> davean: or Haddock does?
23:33:33 <jackson99> duplicates xs = [x | (x:_:_) <- group (sort xs)]
23:33:50 <davean> lechner: no, haddock everywhere I know of *does* link to the correct file.
23:33:54 <abastro[m]> Ya that's as nice as it could get
23:34:03 <davean> https://hackage.haskell.org/package/base-4.13.0.0/docs/src/Data.Semigroup.html <-- see, its link is right
23:34:30 <geekosaur> that said, if you're nubbing a list then perhaps you should have been using Set to begin with
23:35:29 <abastro[m]> > duplicates [1,2,3,3,2,4,4,5] where duplicates xs = do
23:35:29 <abastro[m]> x : _ : _ <- group (sort xs)
23:35:29 <abastro[m]> pure x
23:35:31 <lambdabot> <hint>:1:30: error: parse error on input ‘where’
23:35:42 <abastro[m]> Wh
23:35:51 <geekosaur> lambdabot doesn't do multiline
23:35:55 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
23:35:57 <abastro[m]> Oh noh
23:36:11 <geekosaur> also you can't attach where to a computation, only a declaration
23:36:44 <abastro[m]> Ouch, right
23:37:07 <geekosaur> let duplicates xs = do { x:_:_ <- group (sort xs); pure x } in duplicates [1,2,3,3,2,4,4,5]
23:37:11 <geekosaur> > let duplicates xs = do { x:_:_ <- group (sort xs); pure x } in duplicates [1,2,3,3,2,4,4,5]
23:37:13 <lambdabot> [2,3,4]
23:37:39 <davean> lechner: Thats the name for the doc file, which doesn't exist - not the source annotation which does.
23:37:52 <davean> lechner: You should only get that if you mark a name for reference that doesn't exist.
23:38:16 <davean> Not from anything Haddock does.
23:38:29 <abastro[m]> Do notation and List comprehension has duplicate niche
23:40:24 × Guest27 quits (~Guest27@2601:281:d47f:1590:768c:7129:aa80:96d9) (Ping timeout: 250 seconds)
23:40:31 <abastro[m]> So nowadays I learned taste towards do notation >:)
23:40:35 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
23:42:16 <sshine> > let duplicates xs = [ x | x:_:_ <- group (sort xs) ] in duplicates [1,2,3,3,2,4,4,5]
23:42:18 <lambdabot> [2,3,4]
23:42:27 × nightbreak quits (~nightbrea@nat-168-7-239-90.rice.edu) (Quit: Signing off for now...)
23:42:41 vicfred joins (~vicfred@user/vicfred)
23:44:16 <abastro[m]> List comprehension exists also for historical reason right
23:44:39 <abastro[m]> Since they could have extended do notation to cover that case if do notation existed beforehand
23:44:39 <jackson99> they used to be monad comprehensions
23:45:47 nort parts (~textual@c-73-176-198-132.hsd1.in.comcast.net) (I Quit!)
23:46:13 <abastro[m]> Monad comprehension?
23:46:39 <jackson99> https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/monad_comprehensions.html
23:48:38 <abastro[m]> Well that one is recent addition though
23:48:39 <jackson99> IIRC they used to be more general monad comprehensions, then they were relegated to list comprehensions only, and after a while we got extensions for monad comprehensions again. but I could be remembering it wrong
23:50:13 <geekosaur> you remember correctly
23:50:21 <geekosaur> haskell98 added a bunch of such restrictions
23:50:47 <dolio> They were list comprehensions first. Then monad comprehensions, then list comprehensions, now optionally monad comprehensions.
23:51:03 <geekosaur> huh
23:51:52 coot joins (~coot@213.134.190.95)
23:52:27 <abastro[m]> Right? List comprehension first
23:52:34 <abastro[m]> It also comes before do notation right
23:52:52 <abastro[m]> (Personally I cannot care for monad comprehension)
23:53:44 <dons> morning all
23:54:03 <sshine> 早 o/
23:54:05 × jackson99 quits (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Ping timeout))
23:54:19 <geekosaur> o/
23:54:35 <abastro[m]> o/
23:56:24 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
23:56:24 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
23:56:24 wroathe joins (~wroathe@user/wroathe)
23:57:35 × zeenk quits (~zeenk@2a02:2f04:a313:d600:8d26:ec9f:3ff6:fc94) (Quit: Konversation terminated!)
23:58:28 bgs joins (~bgs@cpe-212-85-160-171.cable.telemach.net)
23:58:38 Codaraxis_ joins (~Codaraxis@user/codaraxis)
23:58:57 ub1 joins (~Thunderbi@p548c8d44.dip0.t-ipconnect.de)
23:58:58 × coot quits (~coot@213.134.190.95) (Quit: coot)
23:59:25 jackson99 joins (~bc8147f2@cerf.good1.com)
23:59:47 × ub quits (~Thunderbi@p200300ecdf1588a3ccf7a828925c2eab.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)

All times are in UTC on 2022-04-13.