2022/01/09

2022-01-09 00:00:37 +0100Hayek1(~xxx@rrcs-173-196-3-254.west.biz.rr.com) (Ping timeout: 240 seconds)
2022-01-09 00:01:27 +0100Hayek1(~xxx@rrcs-173-196-3-254.west.biz.rr.com)
2022-01-09 00:06:13 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2022-01-09 00:08:42 +0100Inst(~delicacie@c-98-208-218-119.hsd1.fl.comcast.net)
2022-01-09 00:08:47 +0100 <Inst> technically they're infinite if they have type variables
2022-01-09 00:08:49 +0100 <Inst> i suppose multiplication can't break you out of low cardinalities
2022-01-09 00:09:11 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-01-09 00:11:01 +0100stvc(~stvc@192.241.166.39)
2022-01-09 00:12:05 +0100zincy(~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Remote host closed the connection)
2022-01-09 00:13:00 +0100shriekingnoise(~shrieking@186.137.144.80) (Quit: Quit)
2022-01-09 00:15:44 +0100ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
2022-01-09 00:16:41 +0100ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2022-01-09 00:19:23 +0100coolnickname(uid531864@user/coolnickname) (Quit: Connection closed for inactivity)
2022-01-09 00:26:09 +0100alMalsamo(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 276 seconds)
2022-01-09 00:26:13 +0100xb0o2(~xb0o2@user/xb0o2) (Quit: Client closed)
2022-01-09 00:28:09 +0100 <EvanR> if they have type variables, the question of cardinality is deferred until someone plugs in some concrete types
2022-01-09 00:28:36 +0100alMalsamo(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-01-09 00:28:44 +0100 <EvanR> a type indexed family of cardinalities
2022-01-09 00:31:32 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-09 00:31:32 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-09 00:31:32 +0100wroathe(~wroathe@user/wroathe)
2022-01-09 00:35:55 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-01-09 00:37:49 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2022-01-09 00:38:35 +0100deadmarshal(~deadmarsh@95.38.231.124)
2022-01-09 00:40:05 +0100waleee(~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 252 seconds)
2022-01-09 00:41:51 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-01-09 00:42:32 +0100waleee(~waleee@h-98-128-229-110.NA.cust.bahnhof.se)
2022-01-09 00:42:52 +0100deadmarshal(~deadmarsh@95.38.231.124) (Ping timeout: 256 seconds)
2022-01-09 00:43:32 +0100mcgroin(~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-01-09 00:53:51 +0100machinedgod(~machinedg@24.105.81.50)
2022-01-09 00:53:51 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-01-09 00:57:36 +0100ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Ping timeout: 256 seconds)
2022-01-09 01:02:06 +0100SummerSonw(~The_viole@203.77.49.232)
2022-01-09 01:04:30 +0100tremon(~tremon@217-120-53-183.cable.dynamic.v4.ziggo.nl)
2022-01-09 01:05:18 +0100talismanick(~talismani@2601:644:8500:8350::256c)
2022-01-09 01:08:20 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-09 01:08:20 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-09 01:08:20 +0100wroathe(~wroathe@user/wroathe)
2022-01-09 01:09:34 +0100max22-(~maxime@2a01cb08833598001e8492dc42f658f2.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2022-01-09 01:11:25 +0100SummerSonw(~The_viole@203.77.49.232) (Ping timeout: 240 seconds)
2022-01-09 01:12:51 +0100jakalx(~jakalx@base.jakalx.net) ()
2022-01-09 01:12:52 +0100burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection)
2022-01-09 01:15:35 +0100jgeerds(~jgeerds@55d4bbed.access.ecotel.net) (Ping timeout: 256 seconds)
2022-01-09 01:17:22 +0100TonyStone(~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com) (Remote host closed the connection)
2022-01-09 01:18:51 +0100burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk)
2022-01-09 01:20:09 +0100jakalx(~jakalx@base.jakalx.net)
2022-01-09 01:23:01 +0100burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
2022-01-09 01:28:15 +0100euandreh(~euandreh@2804:14c:33:9fe5:58c5:6207:2988:1b06) (Ping timeout: 268 seconds)
2022-01-09 01:29:09 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-01-09 01:31:59 +0100tcard(~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving)
2022-01-09 01:34:24 +0100DNH_(~DNH@2a02:8108:1100:16d8:c018:4e56:978b:50e2)
2022-01-09 01:35:05 +0100acidjnk_new3(~acidjnk@p200300d0c7271e2764e98499ffbb1b91.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2022-01-09 01:35:05 +0100acidjnk(~acidjnk@p200300d0c7271e2764e98499ffbb1b91.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2022-01-09 01:35:09 +0100DNH_(~DNH@2a02:8108:1100:16d8:c018:4e56:978b:50e2) (Client Quit)
2022-01-09 01:35:50 +0100tcard(~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp)
2022-01-09 01:36:53 +0100DNH(~DNH@2a02:8108:1100:16d8:1c21:9777:b34f:a2a4) (Ping timeout: 268 seconds)
2022-01-09 01:40:37 +0100mcgroin(~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
2022-01-09 01:41:48 +0100Inst(~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 256 seconds)
2022-01-09 01:45:57 +0100lavaman(~lavaman@98.38.249.169)
2022-01-09 01:46:45 +0100wyrd(~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 276 seconds)
2022-01-09 01:46:54 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2022-01-09 01:48:52 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-09 01:48:52 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-09 01:48:52 +0100wroathe(~wroathe@user/wroathe)
2022-01-09 01:50:13 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
2022-01-09 01:50:52 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 256 seconds)
2022-01-09 01:50:53 +0100pavonia(~user@user/siracusa)
2022-01-09 01:53:17 +0100wyrd(~wyrd@gateway/tor-sasl/wyrd)
2022-01-09 02:01:32 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-01-09 02:05:44 +0100xkuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2022-01-09 02:12:18 +0100Sgeo_(~Sgeo@user/sgeo)
2022-01-09 02:13:07 +0100 <lechner> Hi, is it possible to extend Hasql (or perhaps PostgreSQL.Binary.Encoding) with a data type from an extension?
2022-01-09 02:14:40 +0100Sgeo(~Sgeo@user/sgeo) (Ping timeout: 256 seconds)
2022-01-09 02:21:37 +0100n3rdy1(~n3rdy1@2600:1700:4570:3480::41) (Ping timeout: 240 seconds)
2022-01-09 02:29:36 +0100lbseale(~ep1ctetus@user/ep1ctetus)
2022-01-09 02:35:49 +0100lbseale(~ep1ctetus@user/ep1ctetus) (Ping timeout: 240 seconds)
2022-01-09 02:37:49 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
2022-01-09 02:37:57 +0100son0p(~ff@181.136.122.143) (Ping timeout: 268 seconds)
2022-01-09 02:50:47 +0100kaph(~kaph@net-2-38-107-19.cust.vodafonedsl.it) (Ping timeout: 256 seconds)
2022-01-09 02:53:56 +0100ProfSimm(~ProfSimm@87.227.196.109) (Remote host closed the connection)
2022-01-09 02:55:37 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds)
2022-01-09 02:57:39 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-01-09 03:02:09 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-01-09 03:02:28 +0100little_mac(~little_ma@2601:410:4300:3ce0:b17c:f0c6:752d:8263) (Remote host closed the connection)
2022-01-09 03:03:02 +0100little_mac(~little_ma@2601:410:4300:3ce0:b17c:f0c6:752d:8263)
2022-01-09 03:03:19 +0100SummerSonw(~The_viole@203.77.49.232)
2022-01-09 03:04:12 +0100vysn(~vysn@user/vysn)
2022-01-09 03:05:06 +0100justIrresolute(~justache@user/justache) (Remote host closed the connection)
2022-01-09 03:06:01 +0100TonyStone(~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com)
2022-01-09 03:06:05 +0100justIrresolute(~justache@user/justache)
2022-01-09 03:06:48 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2022-01-09 03:11:02 +0100TonyStone(~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com) (Remote host closed the connection)
2022-01-09 03:11:25 +0100TonyStone(~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com)
2022-01-09 03:14:40 +0100califax-(~califax@user/califx)
2022-01-09 03:15:11 +0100lavaman(~lavaman@98.38.249.169)
2022-01-09 03:18:24 +0100califax(~califax@user/califx) (Ping timeout: 276 seconds)
2022-01-09 03:18:24 +0100califax-califax
2022-01-09 03:19:32 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-01-09 03:21:01 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Client Quit)
2022-01-09 03:21:08 +0100kaph(~kaph@net-2-38-107-19.cust.vodafonedsl.it)
2022-01-09 03:28:11 +0100mixfix41(~homefame@user/mixfix41) (Ping timeout: 256 seconds)
2022-01-09 03:28:55 +0100machinedgod(~machinedg@24.105.81.50)
2022-01-09 03:29:25 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2022-01-09 03:29:36 +0100neurocyte09172(~neurocyte@IP-094016064252.dynamic.medianet-world.de)
2022-01-09 03:29:36 +0100neurocyte09172(~neurocyte@IP-094016064252.dynamic.medianet-world.de) (Changing host)
2022-01-09 03:29:36 +0100neurocyte09172(~neurocyte@user/neurocyte)
2022-01-09 03:31:11 +0100 <lechner> Hi, is 'pure' a suitable no-op in a monadic 'case' expression? Sorry if that language makes no sense
2022-01-09 03:31:25 +0100neurocyte0917(~neurocyte@user/neurocyte) (Ping timeout: 240 seconds)
2022-01-09 03:31:25 +0100neurocyte09172neurocyte0917
2022-01-09 03:33:25 +0100xff0x(~xff0x@2001:1a81:5298:9f00:374f:4390:4780:3d6) (Ping timeout: 240 seconds)
2022-01-09 03:35:34 +0100xff0x(~xff0x@2001:1a81:52d4:9900:80b8:248c:472c:34e)
2022-01-09 03:38:48 +0100 <monochrom> Yes, especially "pure ()"
2022-01-09 03:40:04 +0100 <lechner> monochrom: thanks!
2022-01-09 03:40:27 +0100 <lechner> what should go near the 'Right' please? https://paste.tomsmeding.com/vx0y49YN
2022-01-09 03:41:08 +0100 <lechner> a is ()
2022-01-09 03:43:23 +0100 <monochrom> Go back one step. "Session.run (addVersionSession version committish tags) connection >>= \e -> case e of Left error -> ... Right _ -> ...". Or use do-notation.
2022-01-09 03:43:43 +0100 <monochrom> You have "IO (EIther ...)" not plain "Either ...".
2022-01-09 03:44:58 +0100razetime(~quassel@49.207.213.63)
2022-01-09 03:53:49 +0100Midjak(~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Ping timeout: 240 seconds)
2022-01-09 03:55:12 +0100TonyStone(~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com) (Quit: Leaving)
2022-01-09 03:56:30 +0100ph88(~ph88@2a02:8109:9e00:71d0::7e04) (Quit: Leaving)
2022-01-09 03:56:31 +0100TonyStone(~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com)
2022-01-09 03:56:56 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-01-09 03:58:38 +0100 <lechner> oh, i see. it went back in the monad when i moved it from Right error <- (which caused a missed match on success)
2022-01-09 04:01:37 +0100 <lechner> how does that look with 'do' please?
2022-01-09 04:03:15 +0100 <lechner> i think my issue is simply that i want to do nothing on Right _
2022-01-09 04:05:05 +0100justIrresolute(~justache@user/justache) (Remote host closed the connection)
2022-01-09 04:05:37 +0100 <lechner> Why doesn't that work? Right _ -> pure () I get Couldn't match expected type ‘IO (Either Session.QueryError ())’ like you said
2022-01-09 04:06:04 +0100justIrresolute(~justache@user/justache)
2022-01-09 04:09:07 +0100 <EvanR> expected IO (Either ...
2022-01-09 04:09:22 +0100 <EvanR> so like, return (Right (...
2022-01-09 04:09:35 +0100 <EvanR> or pure (pure (...
2022-01-09 04:11:34 +0100sonny(~sonny@bras-base-london1483w-grc-32-70-52-175-166.dsl.bell.ca)
2022-01-09 04:16:13 +0100dsrt^(~dsrt@wsip-98-188-246-242.mc.at.cox.net) (Ping timeout: 240 seconds)
2022-01-09 04:18:47 +0100 <lechner> i think i tried all combinations...
2022-01-09 04:18:57 +0100little_mac(~little_ma@2601:410:4300:3ce0:b17c:f0c6:752d:8263) (Ping timeout: 240 seconds)
2022-01-09 04:20:29 +0100little_mac(~little_ma@c-24-127-188-93.hsd1.mi.comcast.net)
2022-01-09 04:21:10 +0100wyrd(~wyrd@gateway/tor-sasl/wyrd) (Quit: leaving)
2022-01-09 04:22:38 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
2022-01-09 04:23:13 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
2022-01-09 04:27:07 +0100shailangsa(~shailangs@host86-162-150-202.range86-162.btcentralplus.com) (Ping timeout: 256 seconds)
2022-01-09 04:29:23 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2022-01-09 04:30:46 +0100Topsi(~Tobias@dyndsl-095-033-089-163.ewe-ip-backbone.de)
2022-01-09 04:31:22 +0100Hash(~Hash@hashsecurity.org)
2022-01-09 04:31:24 +0100 <Hash> Hello
2022-01-09 04:31:30 +0100 <Hash> I'm new but have questiona bout Haskell GHC
2022-01-09 04:31:41 +0100 <Hash> I install it on Ubuntu 20.04 and it's very large size.
2022-01-09 04:31:50 +0100 <Hash> Almost 1GB of packages for haskell
2022-01-09 04:31:53 +0100 <xsperry> are you sure you want to return Either wrapped in an IO? so many things can raise exception in IO, so if you return Either (as opposed to throwing) you just have one more type of error to handle
2022-01-09 04:31:56 +0100 <Hash> Is this accurate?
2022-01-09 04:32:16 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-01-09 04:32:26 +0100 <Hash> Is there possible way to get Haskell compiiler/xmonad without having 1GB of ghc dependencies?
2022-01-09 04:32:34 +0100 <Hash> Why is haskell compiler so huge?
2022-01-09 04:32:56 +0100ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2022-01-09 04:33:36 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net)
2022-01-09 04:33:43 +0100 <sonny> maybe it's possible to install only ghc
2022-01-09 04:34:43 +0100 <Topsi> ummm, for me on Windows the size of the folder at C:\Users\Username\AppData\Local\Programs\stack\x86_64-windows\ghc-9.0.1 is 2,5GB
2022-01-09 04:35:15 +0100 <EvanR> Hash, I'm on ubuntu
2022-01-09 04:35:24 +0100 <EvanR> I used ghcup to get haskell, not packages
2022-01-09 04:35:38 +0100 <yushyin> 4.8G /home/yushyin/.ghcup/ ;D
2022-01-09 04:35:56 +0100 <Hash> holy moly
2022-01-09 04:35:57 +0100 <EvanR> yeah can't speak to the disk foot print, I have a new 1TB drive
2022-01-09 04:36:14 +0100 <EvanR> needless to say that's a lot of 1.44MB floppies
2022-01-09 04:36:14 +0100 <Hash> That's so much :(
2022-01-09 04:36:50 +0100 <xsperry> 1TB hdd is like $30
2022-01-09 04:37:07 +0100 <Topsi> I have ghc-8.6.5, ghc-8.8.2, ghc-8.8.3, ghc-8.8.4, ghc-8.10.1, ghc-8.10.2, ghc-8.10.4 and ghc-9.0.1 installed and my SSD is only 227GB -.-
2022-01-09 04:37:30 +0100ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
2022-01-09 04:37:41 +0100wyrd(~wyrd@gateway/tor-sasl/wyrd)
2022-01-09 04:37:57 +0100 <Topsi> ye I have external hdds as well, but they're slower
2022-01-09 04:38:19 +0100 <EvanR> Hash, GHC is alien tech, sorry
2022-01-09 04:38:50 +0100 <Topsi> I just want to express that I find GHCs size inconvenient
2022-01-09 04:38:56 +0100ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2022-01-09 04:39:22 +0100 <EvanR> the real issue seems to be how much memory it takes to run, which becomes an issue on raspberry pi
2022-01-09 04:40:08 +0100 <Topsi> that too x)
2022-01-09 04:40:23 +0100 <lechner> xsperry: i don't want to return anything. just trying to process the error https://paste.tomsmeding.com/vx0y49YN
2022-01-09 04:41:19 +0100 <EvanR> lechner, all functions return something, be it (), Nothing, or an exploding thunk
2022-01-09 04:41:28 +0100 <EvanR> or a hard freeze
2022-01-09 04:42:00 +0100 <xsperry> lechner, can you paste a test case? (smallest compilable example). "putStrLn $ show error" is the same as "print error", btw
2022-01-09 04:43:56 +0100 <xsperry> lechner, nm, Session.run returns IO, you can't use case with IO
2022-01-09 04:44:16 +0100Hayek1(~xxx@rrcs-173-196-3-254.west.biz.rr.com) (Ping timeout: 256 seconds)
2022-01-09 04:44:35 +0100 <lechner> xsperry: just trying to process the error from 'run' here and do nothing on 'Right' https://hackage.haskell.org/package/hasql-1.4.4/docs/Hasql-Session.html#t:QueryError
2022-01-09 04:44:50 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2022-01-09 04:45:01 +0100td_(~td@94.134.91.205) (Ping timeout: 240 seconds)
2022-01-09 04:45:32 +0100 <lechner> could i use eitherResult <- .... followed by case eitherResult of .....
2022-01-09 04:45:33 +0100 <yushyin> Hash: if that's too much, haskell might be not for you. i have already >10GB in haskell deps
2022-01-09 04:45:39 +0100 <Hash> HJeezus!
2022-01-09 04:45:41 +0100 <Hash> Wow
2022-01-09 04:45:54 +0100kramer2(~bc8147f2@cerf.good1.com)
2022-01-09 04:46:11 +0100 <xsperry> lechner yes that should work
2022-01-09 04:46:13 +0100 <EvanR> 10G, that's like 1/10 or 1/20 of a basic video game now xD
2022-01-09 04:47:05 +0100td_(~td@muedsl-82-207-238-021.citykom.de)
2022-01-09 04:47:19 +0100 <EvanR> :t case Left "!" of Right _ -> return (); Left _ -> return ()
2022-01-09 04:47:20 +0100 <lambdabot> Monad m => m ()
2022-01-09 04:47:31 +0100 <EvanR> lechner, maybe eitherResult is not what you think it is
2022-01-09 04:47:37 +0100 <lechner> xsperry: is there something monadic lke Session.run ... >>= similar to what monochrome wrote?
2022-01-09 04:48:10 +0100 <Topsi> right, the haskell dependencies downloaded by stack stored in C:\sr are 24GB for me
2022-01-09 04:48:23 +0100 <Hash> Wow
2022-01-09 04:48:25 +0100 <lechner> EvanR: i have some type confusion
2022-01-09 04:48:27 +0100 <Hash> that's just so much.
2022-01-09 04:48:36 +0100 <xsperry> lechner, do and <- are just syntax sugar for >>=
2022-01-09 04:48:39 +0100 <Hash> I don't have that kind of space. I use Xmonad only
2022-01-09 04:49:39 +0100sonny(~sonny@bras-base-london1483w-grc-32-70-52-175-166.dsl.bell.ca) (Remote host closed the connection)
2022-01-09 04:50:17 +0100 <Topsi> It accumulates over time
2022-01-09 04:50:17 +0100sagax(~sagax_nb@user/sagax) (Ping timeout: 240 seconds)
2022-01-09 04:50:54 +0100 <EvanR> you can always clear the accumulate ghc stuf
2022-01-09 04:50:59 +0100 <kramer2> lecher, what error are you getting?
2022-01-09 04:51:00 +0100 <Topsi> There's no proper way to delete stuff. I either delete the GHCs installed by stack manually or remove the C:\sr folder by reinstalling stack every now and then.
2022-01-09 04:51:10 +0100 <Topsi> i don't know how else to do it
2022-01-09 04:51:17 +0100 <EvanR> as usual on linux, the proper way is to delete the relevant directory
2022-01-09 04:51:23 +0100 <EvanR> and start over
2022-01-09 04:51:37 +0100 <yushyin> Hash: that said, if you use xmonad, you will need a ghc and yes it will take about 1-2GB of your space. well, probably you could compile xmonad on system x and use only the binary on system y, but then you lose the possibility to quickly reconfigure something.
2022-01-09 04:51:51 +0100 <Hash> Or switch to dwm.
2022-01-09 04:51:55 +0100 <lechner> kramer2: Couldn't match expected type ‘IO (Either Session.QueryError ())’
2022-01-09 04:51:59 +0100 <Hash> But miss out the xmonad extention ecosystem
2022-01-09 04:52:01 +0100 <Hash> :(
2022-01-09 04:52:07 +0100 <EvanR> I used dwm for many years
2022-01-09 04:52:12 +0100 <kramer2> lechner, it looks like you are still matching IO, no Either
2022-01-09 04:52:17 +0100 <EvanR> I'm better now
2022-01-09 04:52:20 +0100 <kramer2> Hash, I'm curious, what is the size of your hard drive?
2022-01-09 04:52:23 +0100 <lechner> Hash: or use sway
2022-01-09 04:52:29 +0100 <Hash> I dunno
2022-01-09 04:52:31 +0100 <Hash> let's see
2022-01-09 04:52:41 +0100 <Hash> /dev/sdd2 30G 22G 7.0G 76% /
2022-01-09 04:52:46 +0100 <Hash> /dev/sdd3 41G 18G 22G 45% /home
2022-01-09 04:53:10 +0100 <Hash> I just need to reinstall.
2022-01-09 04:53:19 +0100 <yushyin> Hash: or any other window manager which doesn't require a whole compiler toolchain for some re-configuration
2022-01-09 04:53:24 +0100 <Hash> over the years you install packages adn forget about them
2022-01-09 04:53:29 +0100 <Hash> ligbs and dev packs and all
2022-01-09 04:54:05 +0100 <EvanR> I can't imagine linux without a ghc
2022-01-09 04:54:13 +0100 <EvanR> how do you even
2022-01-09 04:54:16 +0100 <lechner> Hash: afaik xmonad will never talk wayland
2022-01-09 04:54:23 +0100 <Hash> Whoc ares about wayland
2022-01-09 04:54:26 +0100 <Hash> what is that anyway
2022-01-09 04:54:32 +0100 <Hash> prometheus movie stuff?
2022-01-09 04:54:40 +0100 <Hash> wayland. Stupid name.
2022-01-09 04:54:57 +0100 <kramer2> to be honest, if you're not interested in haskell beyond xmonad, I can understand why needing >1GB of space might raise some eyebrows
2022-01-09 04:55:01 +0100 <Hash> basic xorg window stuff is good
2022-01-09 04:55:13 +0100 <Hash> Do you see my space?
2022-01-09 04:55:19 +0100 <Hash> Not enough man
2022-01-09 04:55:21 +0100 <Hash> :(
2022-01-09 04:55:40 +0100 <Hash> Oh well.Oh well
2022-01-09 04:55:44 +0100 <Hash> oh well it's what it is.
2022-01-09 04:55:47 +0100 <EvanR> you'll have to delete some of your MP3s to make room for haskell
2022-01-09 04:55:53 +0100 <EvanR> or bootlegs, or whatever
2022-01-09 04:55:54 +0100 <Hash> No this is just / and /home
2022-01-09 04:56:39 +0100 <lechner> or http://www.nongnu.org/ratpoison/
2022-01-09 04:56:55 +0100 <Hash> I have /media and /jorel and /kalel and /valel /zorel
2022-01-09 04:57:03 +0100 <Hash> That's where my data is.
2022-01-09 04:57:15 +0100 <Hash> I'm talking about stupid distro packagsges
2022-01-09 05:01:07 +0100yauhsien_(~yauhsien@118-167-43-90.dynamic-ip.hinet.net)
2022-01-09 05:01:07 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Read error: Connection reset by peer)
2022-01-09 05:05:05 +0100justIrresolute(~justache@user/justache) (Remote host closed the connection)
2022-01-09 05:06:03 +0100justIrresolute(~justache@user/justache)
2022-01-09 05:09:37 +0100shailangsa(~shailangs@host86-185-98-37.range86-185.btcentralplus.com)
2022-01-09 05:09:44 +0100 <EvanR> with ghcup you can sidestep stupid distro packages
2022-01-09 05:12:02 +0100sonny(~sonny@bras-base-london1483w-grc-32-70-52-175-166.dsl.bell.ca)
2022-01-09 05:18:07 +0100Hayek1(~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com)
2022-01-09 05:23:12 +0100Hayek1(~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) (Ping timeout: 268 seconds)
2022-01-09 05:25:02 +0100wyrd(~wyrd@gateway/tor-sasl/wyrd) (Quit: leaving)
2022-01-09 05:31:57 +0100Jing(~hedgehog@240e:390:7c53:a7e1:8890:34c2:e4a2:a79e)
2022-01-09 05:34:32 +0100 <EvanR> Data.List.NonEmpty is cool
2022-01-09 05:34:46 +0100 <EvanR> I don't hate it
2022-01-09 05:46:40 +0100deadmarshal(~deadmarsh@95.38.231.124)
2022-01-09 05:46:54 +0100Deep-Thought(~quantum@2001:8003:7937:cf01:485e:bf6c:57df:1e44)
2022-01-09 05:47:28 +0100Midjak(~Midjak@may53-1-78-226-116-92.fbx.proxad.net)
2022-01-09 05:49:39 +0100Deep-Thought(~quantum@2001:8003:7937:cf01:485e:bf6c:57df:1e44) (Leaving)
2022-01-09 05:52:07 +0100seer(~delicacie@c-98-208-218-119.hsd1.fl.comcast.net)
2022-01-09 05:52:16 +0100waleee(~waleee@h-98-128-229-110.NA.cust.bahnhof.se) (Ping timeout: 256 seconds)
2022-01-09 05:52:41 +0100 <seer> question about custom preludes: which one should I use?
2022-01-09 05:52:43 +0100seerInst
2022-01-09 05:54:23 +0100bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 256 seconds)
2022-01-09 05:55:57 +0100sonny(~sonny@bras-base-london1483w-grc-32-70-52-175-166.dsl.bell.ca) ()
2022-01-09 05:57:31 +0100 <EvanR> none of them probably, if you're unsure
2022-01-09 05:59:34 +0100dsrt^(~dsrt@wsip-98-188-246-242.mc.at.cox.net)
2022-01-09 06:02:13 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
2022-01-09 06:03:20 +0100kimjetwav(~user@2607:fea8:2363:8f00:215b:2bd2:2b33:135e)
2022-01-09 06:05:05 +0100justIrresolute(~justache@user/justache) (Remote host closed the connection)
2022-01-09 06:05:44 +0100wyrd(~wyrd@gateway/tor-sasl/wyrd)
2022-01-09 06:06:03 +0100justIrresolute(~justache@user/justache)
2022-01-09 06:06:11 +0100Hayek1(~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com)
2022-01-09 06:07:41 +0100Topsi1(~Tobias@dyndsl-095-033-023-075.ewe-ip-backbone.de)
2022-01-09 06:09:16 +0100Topsi(~Tobias@dyndsl-095-033-089-163.ewe-ip-backbone.de) (Ping timeout: 256 seconds)
2022-01-09 06:17:54 +0100kitzman(~kitzman@user/dekenevs) (Quit: C-x C-c)
2022-01-09 06:18:45 +0100kitzman(~kitzman@user/dekenevs)
2022-01-09 06:21:59 +0100user0(~aj@154.0.137.32)
2022-01-09 06:22:06 +0100user0(~aj@154.0.137.32) ()
2022-01-09 06:22:19 +0100Jing(~hedgehog@240e:390:7c53:a7e1:8890:34c2:e4a2:a79e) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-01-09 06:26:16 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2022-01-09 06:29:54 +0100slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2022-01-09 06:34:21 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-09 06:34:21 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-09 06:34:21 +0100wroathe(~wroathe@user/wroathe)
2022-01-09 06:39:18 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2022-01-09 06:48:59 +0100 <EvanR> in client server jargon we have verbs like get (request data, not intending to have any other effect), put (here is some data, good luck. I'm not expecting anything else. fire and forget). But what do you call a request for data, but intend for some other effect. Such as a dequeue, bump a counter, move a pointer, at the same time
2022-01-09 06:50:12 +0100 <EvanR> like to get the data you had to rip it out, leaving aftermath
2022-01-09 06:51:49 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com)
2022-01-09 06:52:07 +0100 <EvanR> GetUpdate, SmashAndGrab,
2022-01-09 06:53:25 +0100 <EvanR> Loot
2022-01-09 07:12:35 +0100deadmarshal(~deadmarsh@95.38.231.124) (Ping timeout: 256 seconds)
2022-01-09 07:32:05 +0100aeka(~aeka@user/hiruji) (Ping timeout: 268 seconds)
2022-01-09 07:32:41 +0100zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-01-09 07:35:25 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-01-09 07:37:30 +0100aeka(~aeka@user/hiruji)
2022-01-09 07:43:25 +0100stef204(~stef204@user/stef204) (Ping timeout: 240 seconds)
2022-01-09 07:44:54 +0100deadmarshal(~deadmarsh@95.38.231.124)
2022-01-09 07:49:01 +0100deadmarshal(~deadmarsh@95.38.231.124) (Ping timeout: 240 seconds)
2022-01-09 07:52:36 +0100YoungFrog(~youngfrog@2a02:a03f:c21b:f900:f484:3278:789d:d6a5) (Remote host closed the connection)
2022-01-09 07:52:56 +0100YoungFrog(~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be)
2022-01-09 07:53:04 +0100yauhsien_(~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-09 07:53:36 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net)
2022-01-09 07:58:21 +0100acidjnk(~acidjnk@p200300d0c7271e2764e98499ffbb1b91.dip0.t-ipconnect.de)
2022-01-09 07:58:22 +0100acidjnk_new3(~acidjnk@p200300d0c7271e2764e98499ffbb1b91.dip0.t-ipconnect.de)
2022-01-09 08:03:42 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-09 08:04:13 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 240 seconds)
2022-01-09 08:04:16 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net)
2022-01-09 08:10:34 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-01-09 08:12:28 +0100[_](~itchyjunk@user/itchyjunk/x-7353470)
2022-01-09 08:14:19 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-09 08:14:53 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net)
2022-01-09 08:15:57 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds)
2022-01-09 08:19:53 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2022-01-09 08:20:25 +0100mvk(~mvk@2607:fea8:5cdd:f000::45db) (Quit: Going elsewhere)
2022-01-09 08:20:51 +0100mvk(~mvk@2607:fea8:5cdd:f000::45db)
2022-01-09 08:24:53 +0100little_mac(~little_ma@c-24-127-188-93.hsd1.mi.comcast.net) (Remote host closed the connection)
2022-01-09 08:24:56 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-09 08:25:31 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net)
2022-01-09 08:25:48 +0100wyrd(~wyrd@gateway/tor-sasl/wyrd) (Remote host closed the connection)
2022-01-09 08:25:56 +0100wyrd(~wyrd@gateway/tor-sasl/wyrd)
2022-01-09 08:30:24 +0100nhatanh02(~satori@123.24.172.30)
2022-01-09 08:33:51 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-01-09 08:35:33 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-09 08:36:08 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net)
2022-01-09 08:38:02 +0100acidjnk_new(~acidjnk@p200300d0c7271e27182831a202be7205.dip0.t-ipconnect.de)
2022-01-09 08:38:32 +0100Brumaire(~quassel@81-64-14-121.rev.numericable.fr)
2022-01-09 08:39:25 +0100Guest49(~Guest49@98.47.16.37)
2022-01-09 08:40:09 +0100Guest49(~Guest49@98.47.16.37) ()
2022-01-09 08:41:09 +0100Hayek1(~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) (Ping timeout: 268 seconds)
2022-01-09 08:41:46 +0100acidjnk_new3(~acidjnk@p200300d0c7271e2764e98499ffbb1b91.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-01-09 08:41:46 +0100acidjnk(~acidjnk@p200300d0c7271e2764e98499ffbb1b91.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-01-09 08:42:16 +0100Inst(~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 256 seconds)
2022-01-09 08:42:47 +0100acidjnk(~acidjnk@p200300d0c7271e27182831a202be7205.dip0.t-ipconnect.de)
2022-01-09 08:44:11 +0100xmyst(~xmyst@ip5f5ac363.dynamic.kabel-deutschland.de)
2022-01-09 08:44:15 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4)
2022-01-09 08:46:11 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-09 08:46:46 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net)
2022-01-09 08:47:26 +0100acidjnk(~acidjnk@p200300d0c7271e27182831a202be7205.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-01-09 08:47:26 +0100acidjnk_new(~acidjnk@p200300d0c7271e27182831a202be7205.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-01-09 08:52:29 +0100 <gentauro> Hash: how many partitions do you have? Cos only 40 (ish) GB for home is pretty "small"
2022-01-09 08:53:28 +0100 <gentauro> I mean, I just had to do some `cloning` of my NVMe cos the `/nix/store` was eating up all my space …
2022-01-09 08:53:42 +0100Inst(~delicacie@c-98-208-218-119.hsd1.fl.comcast.net)
2022-01-09 08:53:58 +0100Inst(~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Read error: Connection reset by peer)
2022-01-09 08:54:01 +0100gentauronot the easiest task, but I was noting everything and I will probably throw a blogpost about it :)
2022-01-09 08:56:48 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-09 08:57:23 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net)
2022-01-09 08:58:36 +0100burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk)
2022-01-09 09:00:31 +0100coolnickname(uid531864@user/coolnickname)
2022-01-09 09:07:09 +0100deadmarshal(~deadmarsh@95.38.231.124)
2022-01-09 09:07:25 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-09 09:08:00 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net)
2022-01-09 09:10:57 +0100Garbanzo(~Garbanzo@2602:304:6eac:dc10::46) (Ping timeout: 240 seconds)
2022-01-09 09:10:57 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 09:11:06 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 09:13:39 +0100 <Hash> gentauro: I'm college student, not many money
2022-01-09 09:13:44 +0100 <Hash> gentauro: small disk
2022-01-09 09:13:58 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2022-01-09 09:14:01 +0100 <Hash> 128gb ssd
2022-01-09 09:14:48 +0100 <Hash> Yeah.
2022-01-09 09:14:52 +0100 <Hash> This is weird.
2022-01-09 09:14:59 +0100 <Hash> I have no idea what I was thinking
2022-01-09 09:15:25 +0100 <Hash> https://i.imgur.com/ko5BgNn.png
2022-01-09 09:15:39 +0100 <Hash> I don't know what on sdd4
2022-01-09 09:15:45 +0100 <Hash> and ... hunh.
2022-01-09 09:16:23 +0100 <Hash> I could move /var out of / and into a sep partition and mount it.
2022-01-09 09:16:48 +0100 <Hash> I really just need to ge tmore funds, get more disks, and stuff
2022-01-09 09:18:02 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-09 09:18:37 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net)
2022-01-09 09:21:09 +0100Hayek1(~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com)
2022-01-09 09:25:33 +0100Hayek1(~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) (Ping timeout: 268 seconds)
2022-01-09 09:28:39 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-09 09:29:14 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net)
2022-01-09 09:32:13 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 09:32:53 +0100xmyst(~xmyst@ip5f5ac363.dynamic.kabel-deutschland.de) (Quit: Connection closed)
2022-01-09 09:32:56 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 09:47:52 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-01-09 09:52:40 +0100coolnickname(uid531864@user/coolnickname) ()
2022-01-09 09:54:07 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2022-01-09 09:56:09 +0100kramer2(~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Session timeout))
2022-01-09 10:00:08 +0100rednaZ[m](~r3dnazmat@2001:470:69fc:105::ba70) (Quit: You have been kicked for being idle)
2022-01-09 10:00:08 +0100TomasJakl[m](~jaklttchn@2001:470:69fc:105::a42) (Quit: You have been kicked for being idle)
2022-01-09 10:03:16 +0100burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection)
2022-01-09 10:05:05 +0100justIrresolute(~justache@user/justache) (Remote host closed the connection)
2022-01-09 10:06:04 +0100justIrresolute(~justache@user/justache)
2022-01-09 10:06:29 +0100thevishy(~Nishant@2405:201:f005:c007:40d9:4255:8f71:3678)
2022-01-09 10:07:14 +0100remexre(~remexre@user/remexre) (Remote host closed the connection)
2022-01-09 10:07:29 +0100remexre(~remexre@user/remexre)
2022-01-09 10:10:55 +0100Hayek1(~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com)
2022-01-09 10:14:18 +0100max22-(~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr)
2022-01-09 10:15:30 +0100Hayek1(~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) (Ping timeout: 268 seconds)
2022-01-09 10:16:35 +0100notzmv(~zmv@user/notzmv)
2022-01-09 10:17:36 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2022-01-09 10:17:36 +0100allbery_b(~geekosaur@xmonad/geekosaur)
2022-01-09 10:17:39 +0100allbery_bgeekosaur
2022-01-09 10:34:49 +0100burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk)
2022-01-09 10:35:06 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2022-01-09 10:36:43 +0100 <[exa]> Hash: what are you trying to achieve? 128GB SSD should be waaaaaaaaaaaaaay more than enough for any haskelling around, unless you like decide to build the whole stackage from scratch or so
2022-01-09 10:39:49 +0100burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
2022-01-09 10:44:28 +0100gehmehgeh(~user@user/gehmehgeh)
2022-01-09 10:45:38 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2022-01-09 10:48:28 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-01-09 10:53:01 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2022-01-09 10:53:24 +0100shailangsa(~shailangs@host86-185-98-37.range86-185.btcentralplus.com) ()
2022-01-09 11:01:07 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 11:01:24 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 11:01:26 +0100Hayek1(~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com)
2022-01-09 11:01:26 +0100sprout_(~quassel@2a02:a467:ccd6:1:d9b7:23d6:79dd:2e64)
2022-01-09 11:04:37 +0100sprout(~quassel@2a02:a467:ccd6:1:48c8:920f:83dd:ae34) (Ping timeout: 240 seconds)
2022-01-09 11:05:25 +0100Hayek1(~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) (Ping timeout: 240 seconds)
2022-01-09 11:06:48 +0100[_](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-01-09 11:12:28 +0100rito_(~rito_gh@45.112.243.206)
2022-01-09 11:22:48 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-01-09 11:24:33 +0100Sgeo_(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-01-09 11:26:02 +0100vglfr(~vglfr@88.155.96.35) (Ping timeout: 256 seconds)
2022-01-09 11:33:07 +0100burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk)
2022-01-09 11:33:21 +0100shailangsa(~shailangs@host86-185-98-37.range86-185.btcentralplus.com)
2022-01-09 11:34:47 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-01-09 11:36:14 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds)
2022-01-09 11:37:33 +0100Lord_of_Life_Lord_of_Life
2022-01-09 11:46:37 +0100razetime(~quassel@49.207.213.63) (Ping timeout: 240 seconds)
2022-01-09 11:49:11 +0100ircs(~ircs@2-111-85-72-cable.dk.customer.tdc.net)
2022-01-09 11:49:50 +0100Hayek1(~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com)
2022-01-09 11:50:08 +0100lavaman(~lavaman@98.38.249.169)
2022-01-09 11:52:20 +0100ircs(~ircs@2-111-85-72-cable.dk.customer.tdc.net) (Read error: Connection reset by peer)
2022-01-09 11:53:57 +0100Hayek1(~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) (Ping timeout: 240 seconds)
2022-01-09 11:56:13 +0100coot(~coot@89-64-85-93.dynamic.chello.pl)
2022-01-09 11:56:52 +0100jakalx(~jakalx@base.jakalx.net) ()
2022-01-09 12:00:17 +0100jakalx(~jakalx@base.jakalx.net)
2022-01-09 12:01:28 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 12:01:49 +0100dsrt^(~dsrt@wsip-98-188-246-242.mc.at.cox.net) (Ping timeout: 240 seconds)
2022-01-09 12:02:34 +0100dsrt^(~dsrt@wsip-98-188-246-242.mc.at.cox.net)
2022-01-09 12:04:04 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-01-09 12:05:59 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-01-09 12:12:31 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 12:12:55 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 12:15:32 +0100cls(~cls@chalk.lubutu.com)
2022-01-09 12:16:27 +0100mc47(~mc47@xmonad/TheMC47)
2022-01-09 12:19:37 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 12:19:43 +0100Guest3(~Guest3@88.220.154.34) (Ping timeout: 256 seconds)
2022-01-09 12:20:22 +0100 <cls> This is a very newbie question, but I'm trying to cabal install ipa for https://hackage.haskell.org/package/ipa-0.3.1.1 and just get "there is no package named 'ipa'". I have run cabal update. Am I doing something wrong?
2022-01-09 12:20:23 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 12:21:30 +0100srk(~sorki@user/srk) (Remote host closed the connection)
2022-01-09 12:21:30 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 12:21:49 +0100srk(~sorki@user/srk)
2022-01-09 12:22:38 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 12:30:17 +0100acidjnk(~acidjnk@p200300d0c7271e27ecbeaa17067bd269.dip0.t-ipconnect.de)
2022-01-09 12:30:17 +0100acidjnk_new(~acidjnk@p200300d0c7271e27ecbeaa17067bd269.dip0.t-ipconnect.de)
2022-01-09 12:31:40 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2022-01-09 12:33:17 +0100zer0bitz(~zer0bitz@196.244.192.60)
2022-01-09 12:33:27 +0100geekosaur(~geekosaur@xmonad/geekosaur)
2022-01-09 12:35:20 +0100 <geekosaur> seems to work here
2022-01-09 12:39:13 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 12:39:25 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 12:39:31 +0100 <cls> I think the issue was because I had an out of date version of GHC. Very out of date (7.10.3)! I've got a fresh install with GHCup and it seems to be installing now.
2022-01-09 12:40:12 +0100 <geekosaur> ghc shouldn't affect finding the package. maybe you got a newer cabal with it?
2022-01-09 12:40:26 +0100antony(~The_viole@203.77.49.232)
2022-01-09 12:40:39 +0100 <cls> Yes, it came with a new cabal as well
2022-01-09 12:41:15 +0100razetime(~quassel@49.207.213.63)
2022-01-09 12:49:31 +0100jeffz`jeffz
2022-01-09 12:49:31 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 12:49:45 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2022-01-09 12:50:17 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 12:50:59 +0100razetime(~quassel@49.207.213.63) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-01-09 12:51:36 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 256 seconds)
2022-01-09 12:52:44 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 12:53:39 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 12:55:44 +0100Hayek1(~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com)
2022-01-09 12:55:45 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 12:56:13 +0100Jing(~hedgehog@240e:390:7c53:a7e1:24aa:cde6:528:d0da)
2022-01-09 12:56:54 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 13:00:09 +0100Hayek1(~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) (Ping timeout: 268 seconds)
2022-01-09 13:03:49 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 13:04:58 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 13:09:15 +0100x88x88x(~x88x88x@149.28.53.172) (Remote host closed the connection)
2022-01-09 13:10:06 +0100x88x88x(~x88x88x@149.28.53.172)
2022-01-09 13:11:35 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-09 13:12:01 +0100__monty__(~toonn@user/toonn)
2022-01-09 13:12:10 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net)
2022-01-09 13:12:39 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 13:13:28 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 13:15:25 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-01-09 13:17:21 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-01-09 13:21:03 +0100xkuru(~xkuru@user/xkuru)
2022-01-09 13:21:04 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 13:21:15 +0100lavaman(~lavaman@98.38.249.169)
2022-01-09 13:22:18 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 13:22:37 +0100talismanick(~talismani@2601:644:8500:8350::256c) (Ping timeout: 240 seconds)
2022-01-09 13:24:29 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 13:25:25 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
2022-01-09 13:25:44 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 13:27:49 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 13:28:41 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 13:31:07 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 13:31:22 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 13:34:31 +0100Tuplanolla(~Tuplanoll@91-159-68-11.elisa-laajakaista.fi) (Ping timeout: 256 seconds)
2022-01-09 13:35:47 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-01-09 13:35:48 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 13:37:06 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 13:38:51 +0100zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-01-09 13:40:23 +0100machinedgod(~machinedg@24.105.81.50)
2022-01-09 13:41:36 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-01-09 13:42:11 +0100yauhsien(~yauhsien@118-167-43-90.dynamic-ip.hinet.net)
2022-01-09 13:42:38 +0100Hanicef(~gustaf@81-229-9-108-no92.tbcn.telia.com)
2022-01-09 13:43:49 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-01-09 13:49:49 +0100Tuplanolla(~Tuplanoll@91-159-69-16.elisa-laajakaista.fi)
2022-01-09 13:52:49 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 13:53:31 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 13:53:57 +0100nhatanh02(~satori@123.24.172.30) (Ping timeout: 240 seconds)
2022-01-09 13:55:23 +0100Hayek1(~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com)
2022-01-09 13:59:37 +0100Hayek1(~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) (Ping timeout: 240 seconds)
2022-01-09 14:02:17 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 14:02:30 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 14:04:33 +0100max22-(~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) (Ping timeout: 256 seconds)
2022-01-09 14:06:58 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 14:07:37 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 14:10:43 +0100coot(~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot)
2022-01-09 14:10:45 +0100Jing(~hedgehog@240e:390:7c53:a7e1:24aa:cde6:528:d0da) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-01-09 14:11:13 +0100coot(~coot@89-64-85-93.dynamic.chello.pl)
2022-01-09 14:11:55 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 14:12:04 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-09 14:12:04 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-09 14:12:04 +0100wroathe(~wroathe@user/wroathe)
2022-01-09 14:12:05 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 14:13:17 +0100ProfSimm(~ProfSimm@87.227.196.109)
2022-01-09 14:14:21 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 14:14:32 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 14:16:09 +0100zincy(~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d)
2022-01-09 14:16:09 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 14:16:37 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2022-01-09 14:17:07 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 14:17:37 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-01-09 14:19:17 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 14:19:58 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 14:20:13 +0100Jing(~hedgehog@240e:390:7c53:a7e1:7c3e:33e9:a263:3716)
2022-01-09 14:22:13 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 14:22:53 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 14:24:57 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 14:25:37 +0100mstksg(~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 240 seconds)
2022-01-09 14:25:42 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 14:27:11 +0100Hayek1(~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com)
2022-01-09 14:27:52 +0100mstksg(~jle`@cpe-23-240-75-236.socal.res.rr.com)
2022-01-09 14:28:23 +0100jackson99(~bc8147f2@cerf.good1.com)
2022-01-09 14:30:13 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 14:30:23 +0100zincy(~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Remote host closed the connection)
2022-01-09 14:30:30 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 14:32:16 +0100lavaman(~lavaman@98.38.249.169)
2022-01-09 14:32:42 +0100SummerSonw(~The_viole@203.77.49.232) (Quit: Leaving)
2022-01-09 14:34:13 +0100Hayek1(~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) (Ping timeout: 240 seconds)
2022-01-09 14:34:32 +0100burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection)
2022-01-09 14:41:47 +0100n3rdy1(~n3rdy1@2600:1700:4570:3480::41)
2022-01-09 14:41:49 +0100xff0x(~xff0x@2001:1a81:52d4:9900:80b8:248c:472c:34e) (Ping timeout: 240 seconds)
2022-01-09 14:42:54 +0100xff0x(~xff0x@2001:1a81:52d4:9900:4d46:915d:4480:7a51)
2022-01-09 14:44:30 +0100x88x88x(~x88x88x@149.28.53.172) (Quit: ZNC - https://znc.in)
2022-01-09 14:52:53 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 14:53:28 +0100slowButPresent(~slowButPr@user/slowbutpresent)
2022-01-09 14:54:02 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 14:55:21 +0100zincy(~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d)
2022-01-09 14:55:41 +0100son0p(~ff@181.136.122.143)
2022-01-09 15:00:37 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2022-01-09 15:01:03 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-01-09 15:02:13 +0100x88x88x(~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb)
2022-01-09 15:02:24 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-01-09 15:02:58 +0100CiaoSen(~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-01-09 15:05:11 +0100deadmarshal(~deadmarsh@95.38.231.124) (Ping timeout: 256 seconds)
2022-01-09 15:07:44 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 15:07:58 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 15:08:27 +0100burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk)
2022-01-09 15:09:15 +0100euandreh(~euandreh@191.181.59.160)
2022-01-09 15:12:37 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 15:12:37 +0100burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
2022-01-09 15:13:19 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 15:14:36 +0100nhatanh02(~satori@123.24.172.30)
2022-01-09 15:15:25 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 15:15:49 +0100zincy(~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Ping timeout: 268 seconds)
2022-01-09 15:15:57 +0100uam(uid360535@id-360535.hampstead.irccloud.com)
2022-01-09 15:16:49 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 15:18:07 +0100cemguresci(~cemguresc@2001:a61:11ff:a001:b826:a072:7137:d00a)
2022-01-09 15:18:12 +0100cemguresci(~cemguresc@2001:a61:11ff:a001:b826:a072:7137:d00a) (Client Quit)
2022-01-09 15:19:01 +0100vglfr(~vglfr@88.155.96.35) (Read error: Connection reset by peer)
2022-01-09 15:19:12 +0100vglfr(~vglfr@88.155.96.35)
2022-01-09 15:20:01 +0100Hayek1(~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com)
2022-01-09 15:21:30 +0100jackson99(~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Ping timeout))
2022-01-09 15:21:46 +0100jassob(~jassob@h-155-4-71-72.A785.priv.bahnhof.se) (Ping timeout: 260 seconds)
2022-01-09 15:22:12 +0100xsperry(~xs@user/xsperry) (Remote host closed the connection)
2022-01-09 15:22:13 +0100max22-(~maxime@2a01cb088335980006a2e176d919440a.ipv6.abo.wanadoo.fr)
2022-01-09 15:22:42 +0100jassob(~jassob@h-155-4-71-72.A785.priv.bahnhof.se)
2022-01-09 15:22:52 +0100Hanicef(~gustaf@81-229-9-108-no92.tbcn.telia.com) (Quit: leaving)
2022-01-09 15:24:29 +0100Hayek1(~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) (Ping timeout: 252 seconds)
2022-01-09 15:28:37 +0100n3rdy1(~n3rdy1@2600:1700:4570:3480::41) (Ping timeout: 240 seconds)
2022-01-09 15:30:54 +0100Hayek1(~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com)
2022-01-09 15:33:40 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2022-01-09 15:34:39 +0100rito_(~rito_gh@45.112.243.206) (Ping timeout: 256 seconds)
2022-01-09 15:39:14 +0100dsrt^(~dsrt@wsip-98-188-246-242.mc.at.cox.net) (Remote host closed the connection)
2022-01-09 15:39:17 +0100zincy(~zincy@host86-151-99-97.range86-151.btcentralplus.com)
2022-01-09 15:40:07 +0100antony(~The_viole@203.77.49.232) (Quit: Leaving)
2022-01-09 15:41:42 +0100n3rdy1(~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293)
2022-01-09 15:41:47 +0100moshet(~moshet@179.33.156.20)
2022-01-09 15:42:44 +0100shapr(~user@2601:7c0:c202:5190:6367:969d:31ac:68f)
2022-01-09 15:43:01 +0100acidjnk(~acidjnk@p200300d0c7271e27ecbeaa17067bd269.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-01-09 15:43:01 +0100acidjnk_new(~acidjnk@p200300d0c7271e27ecbeaa17067bd269.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-01-09 15:43:25 +0100zincy(~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Ping timeout: 240 seconds)
2022-01-09 15:43:39 +0100skreli(~skreli@cpe-72-134-91-230.natsow.res.rr.com)
2022-01-09 15:44:21 +0100skreli(~skreli@cpe-72-134-91-230.natsow.res.rr.com) (Quit: leaving)
2022-01-09 15:45:16 +0100coot(~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot)
2022-01-09 15:45:40 +0100zincy(~zincy@host86-151-99-97.range86-151.btcentralplus.com)
2022-01-09 15:48:15 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2022-01-09 15:49:58 +0100geekosaur(~geekosaur@xmonad/geekosaur)
2022-01-09 15:50:32 +0100bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-01-09 15:50:48 +0100hud(~hud@uwyo-129-72-161-67.uwyo.edu)
2022-01-09 15:53:44 +0100 <hud> hey all, not sure if this is the right place to ask about build dependencies, if I run `cabal repl -b parsec` it
2022-01-09 15:54:16 +0100 <hud> s able to find the package, but if I include that in parsec in `build-depends` of my .cabal file it cant be found
2022-01-09 15:55:18 +0100 <jneira[m]> hmm it should, could you post the .cabal file?
2022-01-09 15:55:19 +0100 <[exa]> just to be sure -- "if I include that _in parsec_ in build-depends" -- there's a parsec section?
2022-01-09 15:55:29 +0100 <[exa]> +1 please pastebin
2022-01-09 15:55:56 +0100 <[exa]> also preferably the error message
2022-01-09 15:56:29 +0100 <hud> https://paste.tomsmeding.com/wCBuVd60
2022-01-09 15:56:46 +0100 <hud> oh I can add multiple files hold on
2022-01-09 15:58:11 +0100 <[exa]> that looks m'kay, let's see the error :]
2022-01-09 15:58:46 +0100 <hud> Oh no wait I think it's just saying its redundant - all good !
2022-01-09 15:59:59 +0100 <hud> https://paste.tomsmeding.com/woIFV49V for completion - all good
2022-01-09 16:01:10 +0100 <[exa]> yeah it's telling you that you should write actual code using it :D
2022-01-09 16:02:59 +0100zincy(~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Ping timeout: 256 seconds)
2022-01-09 16:03:41 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-09 16:03:41 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-09 16:03:41 +0100wroathe(~wroathe@user/wroathe)
2022-01-09 16:04:36 +0100burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk)
2022-01-09 16:09:22 +0100burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
2022-01-09 16:09:56 +0100euandreh(~euandreh@191.181.59.160) (Ping timeout: 256 seconds)
2022-01-09 16:11:36 +0100waleee(~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4)
2022-01-09 16:11:54 +0100Brumaire(~quassel@81-64-14-121.rev.numericable.fr) (Read error: Connection reset by peer)
2022-01-09 16:15:09 +0100nunggu(~q@gateway/tor-sasl/nunggu) (Ping timeout: 276 seconds)
2022-01-09 16:16:26 +0100burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk)
2022-01-09 16:16:54 +0100nunggu(~q@gateway/tor-sasl/nunggu)
2022-01-09 16:17:29 +0100aouestbillie(~gallup@192-222-138-215.qc.cable.ebox.net) (Remote host closed the connection)
2022-01-09 16:17:29 +0100ouestbillie(~gallup@192-222-138-215.qc.cable.ebox.net) (Remote host closed the connection)
2022-01-09 16:21:49 +0100ouestbillie(~gallup@192-222-138-215.qc.cable.ebox.net)
2022-01-09 16:23:04 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-01-09 16:23:33 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2022-01-09 16:32:53 +0100zincy(~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d)
2022-01-09 16:34:40 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-01-09 16:34:56 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-01-09 16:35:49 +0100TonyStone(~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com) (Remote host closed the connection)
2022-01-09 16:36:57 +0100zincy(~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Ping timeout: 240 seconds)
2022-01-09 16:37:52 +0100xsperry(~xs@user/xsperry)
2022-01-09 16:40:34 +0100xb0o2(~xb0o2@user/xb0o2)
2022-01-09 16:41:01 +0100Hayek1(~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) (Ping timeout: 240 seconds)
2022-01-09 16:42:16 +0100stef204(~stef204@user/stef204)
2022-01-09 16:43:57 +0100shapr(~user@2601:7c0:c202:5190:6367:969d:31ac:68f) (Ping timeout: 240 seconds)
2022-01-09 16:45:27 +0100 <albet70> why IOT does not exit?
2022-01-09 16:45:39 +0100 <Hecate> albet70: what
2022-01-09 16:45:44 +0100 <Hecate> what do you mean by IOT?
2022-01-09 16:45:46 +0100 <geekosaur> how could it exist?
2022-01-09 16:45:52 +0100 <Hecate> International Organisation of Truffles?
2022-01-09 16:46:15 +0100 <albet70> like the other transfer
2022-01-09 16:46:20 +0100 <albet70> MaybeT
2022-01-09 16:47:12 +0100 <hpc> albet70: try writing it
2022-01-09 16:47:36 +0100zaquest(~notzaques@5.130.79.72)
2022-01-09 16:47:40 +0100TonyStone(~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com)
2022-01-09 16:47:56 +0100euandreh(~euandreh@2804:14c:33:9fe5:f755:55d9:216b:76f6)
2022-01-09 16:48:34 +0100 <albet70> IOT m (IO a)
2022-01-09 16:48:51 +0100 <Hecate> what :'')
2022-01-09 16:49:59 +0100 <Rembane> International Truffles <3
2022-01-09 16:50:13 +0100 <Rembane> albet70: How many IOT could you layer on top of each other?
2022-01-09 16:50:37 +0100 <geekosaur> and what would this accomplish?
2022-01-09 16:50:53 +0100 <albet70> there's an evil term I think, Inner Orgasme of ...
2022-01-09 16:50:55 +0100 <geekosaur> think also about things like ordering of I/O actions
2022-01-09 16:51:20 +0100zincy(~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d)
2022-01-09 16:51:24 +0100 <hpc> also try not to accidentally imagine things like MaybeT IO while you're working it out ;)
2022-01-09 16:51:40 +0100 <geekosaur> but "try writing it" I think meant try implementing something that would work as e.g. IOT (State Int a)
2022-01-09 16:51:54 +0100 <hpc> IOT (State Int) a
2022-01-09 16:52:02 +0100 <hpc> data IOT m a = ???
2022-01-09 16:52:02 +0100 <geekosaur> yeh, sorry
2022-01-09 16:52:22 +0100 <hpc> instance MonadTrans IOT where ???
2022-01-09 16:52:29 +0100 <hpc> see if you can fill in those blanks
2022-01-09 16:53:13 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-01-09 16:53:15 +0100 <hpc> for comparison, try filling in the same blanks for MaybeT, without looking at the existing definition
2022-01-09 16:53:46 +0100 <hpc> or IdentityT if you like writing code that does nothing :D
2022-01-09 16:54:12 +0100 <albet70> MaybeT m Maybe a
2022-01-09 16:57:32 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2022-01-09 16:58:51 +0100 <albet70> f :: a -> Either a b; traverse f [a]; if that f return Left a, it will return Left a as result, so I wonder when f doing some IO, and how it break and return when IO failed
2022-01-09 17:00:07 +0100Ollie[m](~ollieocha@2001:470:69fc:105::41a5) (Quit: You have been kicked for being idle)
2022-01-09 17:00:12 +0100fsckskye[m](~kmatrixth@2001:470:69fc:105::1:3b2f) (Quit: You have been kicked for being idle)
2022-01-09 17:00:17 +0100 <albet70> for example, f take input from that list and check the database with that input and it may fail
2022-01-09 17:00:18 +0100AlainJourez[m](~sherekahn@2001:470:69fc:105::1:4a71) (Quit: You have been kicked for being idle)
2022-01-09 17:00:31 +0100Ollie[m](~ollieocha@2001:470:69fc:105::41a5)
2022-01-09 17:00:43 +0100fsckskye[m](~kmatrixth@2001:470:69fc:105::1:3b2f)
2022-01-09 17:00:45 +0100fsckskye[m](~kmatrixth@2001:470:69fc:105::1:3b2f) ()
2022-01-09 17:00:55 +0100AlainJourez[m](~sherekahn@2001:470:69fc:105::1:4a71)
2022-01-09 17:00:58 +0100 <albet70> when it failed how to break the next action
2022-01-09 17:02:39 +0100 <hpc> :t traverse
2022-01-09 17:02:40 +0100 <lambdabot> (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
2022-01-09 17:03:27 +0100 <hpc> the effects of f will show up in the result
2022-01-09 17:04:10 +0100 <hpc> since the result is (IO [b]), it just does all the (f a) stuff in sequence
2022-01-09 17:04:32 +0100 <hpc> when t = [], it's just each element from start to end of the list
2022-01-09 17:04:58 +0100 <hpc> for other Traversable types, it could be some more interesting ordering
2022-01-09 17:08:03 +0100zincy(~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Ping timeout: 268 seconds)
2022-01-09 17:09:08 +0100 <albet70> "hpc :since the result is (IO [b]), it just does all the (f a) stuff in sequence", but when IO b failed, I hope it breaks the list and return, not to the end of the list
2022-01-09 17:09:11 +0100YoungFrog(~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in)
2022-01-09 17:09:44 +0100zincy(~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d)
2022-01-09 17:10:30 +0100 <hpc> it will, if f fails in a way that short-circuits
2022-01-09 17:10:34 +0100 <albet70> in other languages, do IO in a for statement, and use break or return to brea the list
2022-01-09 17:10:46 +0100YoungFrog(~youngfrog@2a02:a03f:c21b:f900:f89b:2c73:97b1:7ba3)
2022-01-09 17:11:31 +0100 <albet70> but IO doesn't have the effect of short circuit
2022-01-09 17:12:03 +0100 <albet70> Left a or Nothing can do short circuit
2022-01-09 17:12:19 +0100Jing(~hedgehog@240e:390:7c53:a7e1:7c3e:33e9:a263:3716) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-01-09 17:13:34 +0100 <Rembane> albet70: If you use throwIO IO can shortcircuit.
2022-01-09 17:13:45 +0100 <Rembane> I wonder if this works...
2022-01-09 17:13:56 +0100zincy(~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Ping timeout: 252 seconds)
2022-01-09 17:14:07 +0100 <albet70> "🟢 Rembane :albet70: If you use throwIO IO can shortcircuit.", that's raiseError in some languages
2022-01-09 17:14:17 +0100geekosaurwonders if spoon can do that
2022-01-09 17:14:35 +0100 <albet70> what if f :: a -> IO b -> Either a b?
2022-01-09 17:14:40 +0100 <Rembane> albet70: It is indeed. :)
2022-01-09 17:16:13 +0100 <Rembane> > throwIO Overflow
2022-01-09 17:16:15 +0100 <lambdabot> error:
2022-01-09 17:16:15 +0100 <lambdabot> • No instance for (Typeable a0)
2022-01-09 17:16:15 +0100 <lambdabot> arising from a use of ‘show_M87663382183998972258’
2022-01-09 17:16:17 +0100 <Rembane> Ach.
2022-01-09 17:16:43 +0100 <geekosaur> % throwIO Overflow
2022-01-09 17:16:43 +0100 <yahb> geekosaur: *** Exception: arithmetic overflow
2022-01-09 17:17:26 +0100 <albet70> f :: a -> IO b -> Either a b; traverse f [a]; would this do the trick? if IO b failed, short circuit?
2022-01-09 17:17:27 +0100 <Rembane> There we go. yahb > lambdabot
2022-01-09 17:18:56 +0100coot(~coot@89-64-85-93.dynamic.chello.pl)
2022-01-09 17:19:43 +0100pragma-(~chaos@user/pragmatic-chaos)
2022-01-09 17:20:16 +0100Jing(~hedgehog@240e:390:7c53:a7e1:3074:63b1:2e6b:fa59)
2022-01-09 17:21:01 +0100kaph(~kaph@net-2-38-107-19.cust.vodafonedsl.it) (Ping timeout: 240 seconds)
2022-01-09 17:23:07 +0100 <albet70> can we do some IO in f :: a-> Either a b?
2022-01-09 17:24:00 +0100 <albet70> in Either do notation , can we print something?
2022-01-09 17:24:35 +0100 <geekosaur> no
2022-01-09 17:25:27 +0100 <albet70> no the both? or only the last?
2022-01-09 17:25:28 +0100 <EvanR> that's not purely functional, sorry
2022-01-09 17:25:38 +0100 <geekosaur> no to both
2022-01-09 17:25:42 +0100uam(uid360535@id-360535.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2022-01-09 17:25:45 +0100 <geekosaur> do notation is not what enables I/O
2022-01-09 17:25:51 +0100EvanRpoints at the "purely functional" sign above the door
2022-01-09 17:25:57 +0100 <albet70> and in EitherT?
2022-01-09 17:26:12 +0100 <geekosaur> % putStrLn "hi" >> putStrLn "bye" >> return ()
2022-01-09 17:26:12 +0100 <yahb> geekosaur: hi; bye
2022-01-09 17:26:29 +0100 <EvanR> ExceptT e IO
2022-01-09 17:26:42 +0100 <EvanR> is a monad
2022-01-09 17:26:51 +0100 <EvanR> it can do IO with liftIO
2022-01-09 17:27:23 +0100 <albet70> but ExceptT can't do short circuit
2022-01-09 17:27:33 +0100 <EvanR> that's what ExceptT ... does
2022-01-09 17:27:59 +0100 <EvanR> it's basically EitherT
2022-01-09 17:28:13 +0100 <albet70> can it?
2022-01-09 17:28:22 +0100 <EvanR> it was just a branding issue back in the day
2022-01-09 17:29:08 +0100 <EvanR> it's one of many ways to short circuit
2022-01-09 17:29:21 +0100 <EvanR> cancel a computation early
2022-01-09 17:29:43 +0100 <albet70> so f :: a -> EitherT a m b; traverse f [a]; would short circuit?
2022-01-09 17:29:57 +0100 <albet70> EitherT a IO b
2022-01-09 17:30:17 +0100 <EvanR> just saying I think ExceptT is more idiomatic now for that
2022-01-09 17:30:33 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-01-09 17:30:45 +0100 <EvanR> and yes
2022-01-09 17:31:19 +0100 <EvanR> but to break out of a for loop purposes there is probably a better way
2022-01-09 17:36:10 +0100Jing(~hedgehog@240e:390:7c53:a7e1:3074:63b1:2e6b:fa59) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-01-09 17:36:16 +0100 <albet70> > let f x = do { liftIO print x; if (x>3) then EithertT Left x else return x } in traverse f [1..6]
2022-01-09 17:36:17 +0100 <lambdabot> error:
2022-01-09 17:36:17 +0100 <lambdabot> Data constructor not in scope:
2022-01-09 17:36:17 +0100 <lambdabot> EithertT :: (a1 -> Either a1 b0) -> b1 -> m b1
2022-01-09 17:36:36 +0100 <EvanR> :k ExceptT
2022-01-09 17:36:37 +0100 <lambdabot> * -> (* -> *) -> * -> *
2022-01-09 17:37:37 +0100moshet(~moshet@179.33.156.20) (Ping timeout: 256 seconds)
2022-01-09 17:37:37 +0100 <EvanR> :t runExceptT
2022-01-09 17:37:38 +0100 <lambdabot> ExceptT e m a -> m (Either e a)
2022-01-09 17:38:31 +0100 <EvanR> 😎
2022-01-09 17:38:44 +0100 <albet70> in Either, how the 'return x' know it suppose to be Left a or Right a?
2022-01-09 17:38:58 +0100 <EvanR> convention says Right is pure
2022-01-09 17:39:15 +0100moshet(~moshet@179.33.156.20)
2022-01-09 17:39:28 +0100 <EvanR> Left is an effect
2022-01-09 17:39:32 +0100 <albet70> "EvanR :convention says Right is pure", so Left isn't pure?
2022-01-09 17:39:43 +0100 <EvanR> Left is interpreted as an effect
2022-01-09 17:39:56 +0100 <EvanR> namely, short circuit
2022-01-09 17:40:03 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-01-09 17:41:20 +0100 <EvanR> by pure I meant the API, pure :: a -> Either e a
2022-01-09 17:41:33 +0100 <EvanR> which is the same as return
2022-01-09 17:41:43 +0100 <albet70> EvanR the notorious Cont can do short circuit, right?
2022-01-09 17:42:38 +0100 <EvanR> CPS can do short circuit, and Cont lets you compose CPS programs
2022-01-09 17:43:02 +0100 <EvanR> if you don't want to do it manually
2022-01-09 17:43:39 +0100 <EvanR> either way, black magic
2022-01-09 17:44:17 +0100vysn(~vysn@user/vysn) (Ping timeout: 240 seconds)
2022-01-09 17:44:35 +0100 <albet70> black magic in haskell, not in others?
2022-01-09 17:44:40 +0100zincy(~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d)
2022-01-09 17:44:48 +0100 <EvanR> not really a haskell thing
2022-01-09 17:44:53 +0100 <albet70> or related to lazy strategy
2022-01-09 17:45:15 +0100 <EvanR> continuations is (was?) a big deal in lisps
2022-01-09 17:45:39 +0100 <EvanR> rather, using them in non trivial ways
2022-01-09 17:46:10 +0100 <EvanR> control flow shenanigans
2022-01-09 17:46:21 +0100 <albet70> but in haskell in Cont, capture the fixed point can do loop, this depends on lazy strategy, other languages can't do ir
2022-01-09 17:46:27 +0100 <albet70> do it
2022-01-09 17:46:43 +0100 <EvanR> by itself, just lazy evaluation lets you do many things, Cont or not
2022-01-09 17:47:03 +0100 <EvanR> CPS or not
2022-01-09 17:48:07 +0100 <albet70> the funny thing is lisp use macro to do capture continuation thing
2022-01-09 17:48:14 +0100 <albet70> not the function
2022-01-09 17:49:09 +0100 <albet70> and only a few languages support macro
2022-01-09 17:49:44 +0100 <EvanR> all languages support C preprocessor xD
2022-01-09 17:49:59 +0100 <EvanR> enjoy
2022-01-09 17:51:58 +0100 <albet70> hehe it sounds like all languages can turn to machine languages or assembly languages
2022-01-09 17:55:03 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-01-09 17:55:59 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-01-09 17:57:44 +0100 <EvanR> myLoop k = do{ tired <- ... work work work ...; if tired then k else myLoop k }
2022-01-09 18:02:07 +0100 <albet70> "EvanR :myLoop k = do{ tired <- ... work work work ...; if tired then k else myLoop k }", myLoop k :: ?
2022-01-09 18:02:19 +0100zincy(~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Ping timeout: 268 seconds)
2022-01-09 18:03:38 +0100Franciman(~Franciman@mx1.fracta.dev)
2022-01-09 18:03:40 +0100Franciman(~Franciman@mx1.fracta.dev) (WeeChat 3.4)
2022-01-09 18:04:36 +0100 <EvanR> :t fix \myLoop k -> do { tired <- return False; if tired then k else myLoop k }
2022-01-09 18:04:36 +0100 <lambdabot> error:
2022-01-09 18:04:36 +0100 <lambdabot> Unexpected lambda expression in function application:
2022-01-09 18:04:36 +0100 <lambdabot> \ myLoop k
2022-01-09 18:04:45 +0100 <EvanR> :t fix $ \myLoop k -> do { tired <- return False; if tired then k else myLoop k }
2022-01-09 18:04:46 +0100 <lambdabot> Monad m => m b -> m b
2022-01-09 18:05:04 +0100 <EvanR> k : Monad m => m b
2022-01-09 18:06:35 +0100 <EvanR> k breaks out of the loop
2022-01-09 18:12:27 +0100shapr(~user@2601:7c0:c202:5190:232c:3331:7d0c:8370)
2022-01-09 18:12:36 +0100kaph(~kaph@net-2-38-107-19.cust.vodafonedsl.it)
2022-01-09 18:16:21 +0100 <albet70> fix depends lazy strategy, can u do it in python or js?
2022-01-09 18:16:50 +0100 <EvanR> not a fix thing
2022-01-09 18:16:59 +0100 <hpc> you can write fix for functions, but not for other types of data
2022-01-09 18:17:07 +0100 <hpc> you can do the myLoop thing, but not
2022-01-09 18:17:10 +0100 <hpc> > fix (1:)
2022-01-09 18:17:12 +0100 <lambdabot> [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1...
2022-01-09 18:17:20 +0100 <EvanR> :t let myLoop k = do { tired <- return False; if tired then k else myLoop k } in myLoop
2022-01-09 18:17:21 +0100 <lambdabot> Monad m => m b -> m b
2022-01-09 18:17:29 +0100 <EvanR> no you can't do that in javascript
2022-01-09 18:18:49 +0100 <EvanR> how to do things in javascript is a whole nother channel
2022-01-09 18:20:17 +0100thevishy(~Nishant@2405:201:f005:c007:40d9:4255:8f71:3678) (Quit: Leaving)
2022-01-09 18:20:42 +0100zincy(~zincy@host86-151-99-97.range86-151.btcentralplus.com)
2022-01-09 18:24:57 +0100zincy(~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Ping timeout: 240 seconds)
2022-01-09 18:25:18 +0100 <int-e> EvanR: may I suggest blink >> myLoop k for the last bit ;)
2022-01-09 18:26:02 +0100 <EvanR> what meme is this
2022-01-09 18:26:16 +0100 <[itchyjunk]> https://bpa.st/2O4A
2022-01-09 18:26:43 +0100 <[itchyjunk]> Almost everything i am writing seems to involve writing a helper function then composing it with one of the functions in question :x
2022-01-09 18:27:22 +0100 <EvanR> if you're lucky the helper function is a composition of existing functions
2022-01-09 18:27:28 +0100 <int-e> [itchyjunk]: \x xs -> xs ++ [x] <-- you don't have to name your little helpers
2022-01-09 18:27:53 +0100s2k(~textual@122.172.234.134)
2022-01-09 18:27:53 +0100 <[itchyjunk]> ah right, i keep forgetting i can do that
2022-01-09 18:27:54 +0100 <int-e> now... can we do that with foldr without making it quadratic time? :-P
2022-01-09 18:28:17 +0100 <[itchyjunk]> Hopefully the answer is no (or maybe yes if you are not me).
2022-01-09 18:28:37 +0100econo(uid147250@user/econo)
2022-01-09 18:28:50 +0100 <EvanR> foldr can do anything
2022-01-09 18:28:51 +0100jackson99(~bc8147f2@cerf.good1.com)
2022-01-09 18:28:55 +0100 <int-e> (somewhat hard, it's essentially the "implement foldl in terms of foldr" exercise, and that involves picking the right return type for the foldr)
2022-01-09 18:28:59 +0100Erutuon(~Erutuon@user/erutuon)
2022-01-09 18:29:10 +0100 <EvanR> because that is the only way to access a list, it turns out
2022-01-09 18:29:15 +0100 <[itchyjunk]> can it be applied to itself? answer is probably yet but i don't think i ma ready for it
2022-01-09 18:29:36 +0100 <jackson99> [itchyjunk] you will have an easier time implementing reverse with foldl
2022-01-09 18:29:36 +0100 <[itchyjunk]> hmm how do you mean that's the only way to access a list? :o
2022-01-09 18:30:01 +0100 <[itchyjunk]> jackson99, yeah i think since foldr gave an identity, same thing with foldl might return a reverse function?
2022-01-09 18:30:08 +0100 <[itchyjunk]> foldl (:) [] xs ?
2022-01-09 18:30:13 +0100 <jackson99> close
2022-01-09 18:30:16 +0100 <[itchyjunk]> :<
2022-01-09 18:30:21 +0100 <jackson99> you just have to massage (:) so that types check
2022-01-09 18:30:28 +0100 <[itchyjunk]> hmmm
2022-01-09 18:30:31 +0100 <jackson99> :t foldl
2022-01-09 18:30:32 +0100 <lambdabot> Foldable t => (b -> a -> b) -> b -> t a -> b
2022-01-09 18:31:19 +0100 <jackson99> accumulator (list in your case) is the first argument, element of the list is the second argument
2022-01-09 18:32:03 +0100zincy(~zincy@host86-151-99-97.range86-151.btcentralplus.com)
2022-01-09 18:32:24 +0100 <[itchyjunk]> ah i see
2022-01-09 18:34:13 +0100pragma-(~chaos@user/pragmatic-chaos) (Bye!)
2022-01-09 18:34:48 +0100 <[itchyjunk]> wait `foldl (:) [] xs` where lets say xs = [1..5] would be (:) applies to 5 and [] so `(:) 5 []` right?
2022-01-09 18:35:07 +0100 <EvanR> :t foldl (:) [] [1..5]
2022-01-09 18:35:08 +0100 <lambdabot> error:
2022-01-09 18:35:08 +0100 <lambdabot> • Occurs check: cannot construct the infinite type: a ~ [a]
2022-01-09 18:35:08 +0100 <lambdabot> Expected type: [a] -> [a] -> [a]
2022-01-09 18:35:09 +0100 <EvanR> bzzzz
2022-01-09 18:35:39 +0100 <[itchyjunk]> :t (:)
2022-01-09 18:35:40 +0100 <lambdabot> a -> [a] -> [a]
2022-01-09 18:35:53 +0100 <EvanR> first arg to foldl visitor is the accumulator
2022-01-09 18:36:14 +0100 <EvanR> which should be a reversed list
2022-01-09 18:36:33 +0100zincy(~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Ping timeout: 256 seconds)
2022-01-09 18:36:57 +0100 <jackson99> > foldl _ [] []
2022-01-09 18:37:00 +0100 <lambdabot> error:
2022-01-09 18:37:02 +0100 <lambdabot> • Found hole: _ :: [a] -> a0 -> [a]
2022-01-09 18:37:04 +0100 <lambdabot> Where: ‘a0’ is an ambiguous type variable
2022-01-09 18:37:10 +0100 <[itchyjunk]> oh `foldr f base list` is `f lastElement base` but for `foldl f base list` its `f base lastElement` ?
2022-01-09 18:37:20 +0100 <jackson99> can you write that function? [a] -> a -> [a]
2022-01-09 18:37:23 +0100 <jackson99> using (:)
2022-01-09 18:37:55 +0100 <jackson99> [itchyjunk] yes. base is usually called accumulator
2022-01-09 18:38:21 +0100s2k(~textual@122.172.234.134) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-01-09 18:38:52 +0100 <EvanR> no, foldl f base list becomes f everythingDone []
2022-01-09 18:39:00 +0100 <EvanR> base is buried in a pile of computation by that point
2022-01-09 18:39:18 +0100 <jackson99> it is base on first call
2022-01-09 18:39:42 +0100 <EvanR> in foldl' yes
2022-01-09 18:40:06 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
2022-01-09 18:41:02 +0100 <EvanR> everythingDone is the reversed list in this case
2022-01-09 18:41:28 +0100 <EvanR> the 'first call' never happened yet
2022-01-09 18:42:05 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-01-09 18:43:05 +0100 <jackson99> I'm not sure all this is helpful to someone trying to write [a] -> a -> [a] function
2022-01-09 18:43:57 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 240 seconds)
2022-01-09 18:43:59 +0100 <EvanR> well foldl f base list becoming f base LastElement is wrong
2022-01-09 18:44:17 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-01-09 18:44:20 +0100 <EvanR> at least
2022-01-09 18:45:09 +0100 <[itchyjunk]> hmm, foldl takes the second argument and first element of the list so in `foldl (go2) [] [1..5]`, i take [] and 1 and does `go2 [] x` where go2 xs x = x : xs
2022-01-09 18:45:13 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2022-01-09 18:45:18 +0100aplainze1akind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2022-01-09 18:45:49 +0100 <EvanR> yeah
2022-01-09 18:45:53 +0100 <[itchyjunk]> 1:[] -> 2:1:[]
2022-01-09 18:45:54 +0100 <[itchyjunk]> hmmm
2022-01-09 18:46:11 +0100 <jackson99> > let go2 xs x = x : xs in foldl go2 [] [1..5]
2022-01-09 18:46:13 +0100 <lambdabot> [5,4,3,2,1]
2022-01-09 18:46:19 +0100 <jackson99> we have a function for this btw
2022-01-09 18:46:21 +0100 <jackson99> @src flip
2022-01-09 18:46:21 +0100 <lambdabot> flip f x y = f y x
2022-01-09 18:46:21 +0100 <[itchyjunk]> ahh my code had a typo
2022-01-09 18:46:27 +0100 <[itchyjunk]> i wrote foldr instead of foldl
2022-01-09 18:46:39 +0100 <jackson99> > foldl (flip (:)) [1..5]
2022-01-09 18:46:41 +0100 <lambdabot> <[Integer] -> [Integer]>
2022-01-09 18:46:46 +0100 <jackson99> > foldl (flip (:)) [] [1..5]
2022-01-09 18:46:47 +0100 <lambdabot> [5,4,3,2,1]
2022-01-09 18:46:48 +0100 <EvanR> foldl and foldr are similarly named, but wildly different
2022-01-09 18:47:00 +0100 <EvanR> don't put them in the same drawer in your mind xD
2022-01-09 18:47:09 +0100 <[itchyjunk]> https://bpa.st/DC5A
2022-01-09 18:47:20 +0100 <[itchyjunk]> Yes, this is very trippy.
2022-01-09 18:47:25 +0100zincy(~zincy@host86-151-99-97.range86-151.btcentralplus.com)
2022-01-09 18:47:52 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-01-09 18:48:10 +0100 <EvanR> in general it helps to figure out a way to write out intermediate steps of a lazy computation
2022-01-09 18:48:14 +0100 <EvanR> then you can visualize what's going on
2022-01-09 18:48:58 +0100Sgeo(~Sgeo@user/sgeo)
2022-01-09 18:49:16 +0100 <EvanR> foldl (flip (:)) [] [1,2,3,4,5] is the first step
2022-01-09 18:49:20 +0100 <EvanR> or zeroth step
2022-01-09 18:49:25 +0100 <EvanR> then
2022-01-09 18:49:28 +0100 <polyphem> [itchyjunk] : foldr op nil xs substitutes (:) with op and [] with nil in xs , think that way
2022-01-09 18:50:58 +0100 <[itchyjunk]> hmm
2022-01-09 18:50:59 +0100 <EvanR> foldl (flip (:)) (1:[]) [2,3,4,5] is the next step
2022-01-09 18:51:09 +0100 <EvanR> see
2022-01-09 18:51:18 +0100 <[itchyjunk]> oh flip is a real function? hmmmm
2022-01-09 18:51:21 +0100 <EvanR> yes
2022-01-09 18:51:24 +0100 <c_wraith> I don't think that way. I think about how on non-empty lists, foldr reduces to a call to f, while foldl reduces to a call to foldl. That's the key difference to me.
2022-01-09 18:51:37 +0100 <[itchyjunk]> thought you were using as a placeholder for the idea lol
2022-01-09 18:52:11 +0100 <EvanR> an example of skipping the helper function by using existing functions and putting them together
2022-01-09 18:52:24 +0100 <jackson99> itchyjunk, you don't have to name every trivial function btw, foldl (\acc x -> x : acc) would work too
2022-01-09 18:52:27 +0100 <EvanR> which you can only do after learning the "existing" vocab
2022-01-09 18:52:27 +0100SomeoneElse(~SomeoneEl@c-24-34-241-188.hsd1.ma.comcast.net)
2022-01-09 18:52:57 +0100 <jackson99> or just flip, as was mentioned several times above
2022-01-09 18:53:45 +0100 <polyphem> foldr (+) 0 (1:2:3:[]) == 1+2+3+0
2022-01-09 18:54:17 +0100 <EvanR> [itchyjunk], did you see my two steps above? if you go ahead and write out all 5 (6?) steps I hope it's very clear and beautiful!
2022-01-09 18:54:52 +0100 <jackson99> > foldr (+) z [a,b,c,d]
2022-01-09 18:54:53 +0100 <lambdabot> a + (b + (c + (d + z)))
2022-01-09 18:54:56 +0100 <jackson99> > foldl (+) z [a,b,c,d]
2022-01-09 18:54:57 +0100 <lambdabot> z + a + b + c + d
2022-01-09 18:55:14 +0100SomeoneElse(~SomeoneEl@c-24-34-241-188.hsd1.ma.comcast.net) ()
2022-01-09 18:55:24 +0100 <EvanR> the final form of folding Exprs kind of loses something
2022-01-09 18:55:26 +0100deadmarshal(~deadmarsh@95.38.231.124)
2022-01-09 18:56:14 +0100 <jackson99> hmm, probably easier to visualize:
2022-01-09 18:56:17 +0100 <jackson99> > foldr f z [a,b,c,d]
2022-01-09 18:56:19 +0100 <lambdabot> f a (f b (f c (f d z)))
2022-01-09 18:56:21 +0100 <jackson99> > foldl f z [a,b,c,d]
2022-01-09 18:56:22 +0100 <lambdabot> f (f (f (f z a) b) c) d
2022-01-09 18:56:52 +0100 <[itchyjunk]> yes i can just barely follow along the notation but i think it makes sense
2022-01-09 18:57:04 +0100 <EvanR> my notation was literally haskell expressions xD
2022-01-09 18:57:08 +0100 <EvanR> of your example
2022-01-09 18:58:01 +0100 <[itchyjunk]> right!
2022-01-09 18:58:52 +0100kimjetwav(~user@2607:fea8:2363:8f00:215b:2bd2:2b33:135e) (Remote host closed the connection)
2022-01-09 18:59:00 +0100 <sofviic[m]> foldr = 'accumulates' starting from the right
2022-01-09 18:59:00 +0100 <sofviic[m]> foldl = 'accumulates' starting from the left
2022-01-09 18:59:09 +0100 <EvanR> oof...
2022-01-09 18:59:09 +0100kimjetwav(~user@2607:fea8:2363:8f00:1b40:b56a:3751:6306)
2022-01-09 18:59:22 +0100ouestbillie(~gallup@192-222-138-215.qc.cable.ebox.net) (Ping timeout: 256 seconds)
2022-01-09 18:59:56 +0100 <polyphem> [itchyjunk]: heres a fun tal about intuition for list folds : https://www.youtube.com/watch?v=t9pxo7L8mS0
2022-01-09 19:00:06 +0100 <polyphem> *talk*
2022-01-09 19:01:25 +0100zincy(~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Ping timeout: 240 seconds)
2022-01-09 19:03:03 +0100 <[itchyjunk]> Hm there are conferences where there are talks just about fold? interesting!
2022-01-09 19:04:23 +0100 <EvanR> well, the idea of folding things goes beyond looping through a list
2022-01-09 19:04:33 +0100 <EvanR> IT'S KIND OF A BIG DEAL
2022-01-09 19:04:38 +0100 <[itchyjunk]> ah
2022-01-09 19:06:47 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-01-09 19:07:38 +0100kimjetwav(~user@2607:fea8:2363:8f00:1b40:b56a:3751:6306) (Remote host closed the connection)
2022-01-09 19:07:41 +0100CiaoSen(~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-01-09 19:07:55 +0100kimjetwav(~user@2607:fea8:2363:8f00:62f3:c8e:2d83:a34f)
2022-01-09 19:10:48 +0100dyeplexer(~dyeplexer@user/dyeplexer)
2022-01-09 19:15:01 +0100zincy(~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d)
2022-01-09 19:15:09 +0100jgeerds(~jgeerds@55d4bbed.access.ecotel.net)
2022-01-09 19:15:14 +0100zer0bitz(~zer0bitz@196.244.192.60) (Ping timeout: 256 seconds)
2022-01-09 19:15:24 +0100johnw(~johnw@2607:f6f0:3004:1:c8b4:50ff:fef8:6bf0)
2022-01-09 19:18:57 +0100zincy(~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Ping timeout: 240 seconds)
2022-01-09 19:24:18 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2022-01-09 19:24:22 +0100rito_(~rito_gh@45.112.243.149)
2022-01-09 19:25:48 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-09 19:25:48 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-09 19:25:48 +0100wroathe(~wroathe@user/wroathe)
2022-01-09 19:29:47 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-01-09 19:33:47 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2022-01-09 19:36:44 +0100 <[itchyjunk]> "" is an empty string right?
2022-01-09 19:36:55 +0100 <[itchyjunk]> Is that the best way to talk about nil case of a string?
2022-01-09 19:36:56 +0100 <geekosaur> yes
2022-01-09 19:37:06 +0100 <geekosaur> what is "nil case"?
2022-01-09 19:37:10 +0100 <monochrom> It is one of the many best ways.
2022-01-09 19:37:21 +0100 <geekosaur> also, since String is [Char],
2022-01-09 19:37:28 +0100 <geekosaur> > [] :: String
2022-01-09 19:37:30 +0100 <lambdabot> ""
2022-01-09 19:37:44 +0100 <EvanR> it's literally the empty string (list)
2022-01-09 19:38:50 +0100 <[itchyjunk]> hmm
2022-01-09 19:39:50 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-01-09 19:40:23 +0100 <EvanR> probably falls in the same mindblowing category of tech such as 'zero' and 'no op'
2022-01-09 19:40:29 +0100dyeplexer(~dyeplexer@user/dyeplexer) (Remote host closed the connection)
2022-01-09 19:41:56 +0100 <EvanR> https://en.wikipedia.org/wiki/Zero-ohm_link
2022-01-09 19:42:03 +0100 <monochrom> Nah in this case it is the surprise that since String = [Char], list syntax works.
2022-01-09 19:42:48 +0100CiaoSen(~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-01-09 19:43:32 +0100 <EvanR> yeah I kind of wouldn't complain if String became an abstract type and was not a list
2022-01-09 19:44:31 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-09 19:44:31 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-09 19:44:31 +0100wroathe(~wroathe@user/wroathe)
2022-01-09 19:44:46 +0100 <monochrom> Performance police complains that String is not an abstract type. >:)
2022-01-09 19:44:48 +0100 <jackson99> I wouldn't complain if it became alias for Text
2022-01-09 19:44:49 +0100 <EvanR> though decades of code would probably complain
2022-01-09 19:46:03 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-01-09 19:48:00 +0100 <johnw> or just make lazy Text available through the Prelude
2022-01-09 19:48:20 +0100 <johnw> I never use String, but it means importing and enabling OverloadingStrings everywhere, all the time
2022-01-09 19:48:31 +0100 <johnw> I should make a macro for that
2022-01-09 19:48:51 +0100 <EvanR> standard pile of imports everywhere is another story
2022-01-09 19:49:00 +0100Jupy7er(~Jupy7er@2001:d08:e3:b1:dd4e:c9da:9c60:5d27)
2022-01-09 19:49:40 +0100Jupy7er(~Jupy7er@2001:d08:e3:b1:dd4e:c9da:9c60:5d27) (Client Quit)
2022-01-09 19:49:48 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2022-01-09 19:49:51 +0100 <johnw> I wish I could manage language features in another Haskell module (not cabal) so that I could import that in and have everything. Project preludes.
2022-01-09 19:52:42 +0100zincy(~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d)
2022-01-09 19:56:28 +0100little_mac(~little_ma@2601:410:4300:3ce0:54ff:c767:ef1d:433e)
2022-01-09 19:57:07 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-01-09 19:58:53 +0100kimjetwav(~user@2607:fea8:2363:8f00:62f3:c8e:2d83:a34f) (Remote host closed the connection)
2022-01-09 20:00:17 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-09 20:00:17 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-09 20:00:17 +0100wroathe(~wroathe@user/wroathe)
2022-01-09 20:03:53 +0100max22-(~maxime@2a01cb088335980006a2e176d919440a.ipv6.abo.wanadoo.fr) (Ping timeout: 252 seconds)
2022-01-09 20:04:37 +0100zincy(~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Ping timeout: 240 seconds)
2022-01-09 20:05:27 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2022-01-09 20:08:12 +0100AlexNoo(~AlexNoo@178.34.162.219) (Read error: Connection reset by peer)
2022-01-09 20:08:56 +0100Topsi1(~Tobias@dyndsl-095-033-023-075.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2022-01-09 20:10:12 +0100deadmarshal(~deadmarsh@95.38.231.124) (Ping timeout: 256 seconds)
2022-01-09 20:10:19 +0100s2k(~textual@122.172.234.134)
2022-01-09 20:12:41 +0100AlexNoo(~AlexNoo@178.34.162.219)
2022-01-09 20:15:23 +0100 <[itchyjunk]> I have done confused myself again
2022-01-09 20:15:44 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2022-01-09 20:16:44 +0100 <[itchyjunk]> If i want to take two string and remove every char in second that is also present in one, is my base case take a char and a string and remove that char from the string?
2022-01-09 20:16:50 +0100 <[itchyjunk]> i think so, right?
2022-01-09 20:16:59 +0100kimjetwav(~user@2607:fea8:2363:8f00:62f3:c8e:2d83:a34f)
2022-01-09 20:17:08 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-01-09 20:17:15 +0100lavaman(~lavaman@98.38.249.169)
2022-01-09 20:17:18 +0100 <[itchyjunk]> ah, i think i have solved that case actually
2022-01-09 20:17:19 +0100 <[itchyjunk]> https://bpa.st/7ETQ
2022-01-09 20:17:48 +0100 <[itchyjunk]> i think i just need to tweak my blah so it can take a string and i can recurse through stuff
2022-01-09 20:20:15 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 256 seconds)
2022-01-09 20:20:55 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2022-01-09 20:21:17 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
2022-01-09 20:21:25 +0100hololeap(~hololeap@user/hololeap)
2022-01-09 20:22:42 +0100 <[exa]> iteratee_: sounds like a combination of 'filter' and 'elem'
2022-01-09 20:23:42 +0100 <[exa]> oh sorry, misfired highlight. Originally to [itchyjunk] ^
2022-01-09 20:23:53 +0100 <hololeap> anyone have any idea how to run LogicT branches in parallel?
2022-01-09 20:24:09 +0100 <[itchyjunk]> hmm, well i asks me to use foldr to solve it ;x
2022-01-09 20:24:18 +0100 <hololeap> this is what I tried, but I get nothing but fizzled sparks: parChoice s = runEval . fmap choice . parList s
2022-01-09 20:25:03 +0100 <[exa]> hololeap: is that even possible given there are cuts and everything?
2022-01-09 20:25:13 +0100 <hololeap> I have no idea :/
2022-01-09 20:26:04 +0100 <EvanR> [itchyjunk], did you write filter already using foldr
2022-01-09 20:26:30 +0100 <EvanR> if so, you technically used foldr xD
2022-01-09 20:26:33 +0100 <[exa]> there's the "fair conjunction" and "fair disjunction" combinators that iirc don't go well with parallel
2022-01-09 20:27:36 +0100 <[itchyjunk]> I have not written filter already using foldr (filter at all)
2022-01-09 20:28:00 +0100 <EvanR> oh well,
2022-01-09 20:28:03 +0100 <[itchyjunk]> I should maybe do some filter stuff, but i think i can solve this problem :x i'll look at filter in near (far?) future
2022-01-09 20:28:25 +0100 <EvanR> it sounds like it's doing a lot at once
2022-01-09 20:28:54 +0100 <hololeap> [exa]: my idea was that each branch (in this case) is equally likely to return a result, so have them run in parallel and return the first success
2022-01-09 20:28:56 +0100 <EvanR> since there are two lists I'm not sure you can do with only 1 foldr
2022-01-09 20:29:36 +0100 <[exa]> hololeap: what if it backtracks outside the parallelizable area (restarting your parallel spawner)?
2022-01-09 20:29:56 +0100 <[exa]> anyway my view is pretty much naive on this but I expect trouble :D
2022-01-09 20:30:09 +0100 <hololeap> that's fine. any feedback is welcome
2022-01-09 20:30:41 +0100 <hololeap> I'm also very new to the parallel side of haskell
2022-01-09 20:30:41 +0100 <[exa]> perhaps manually running a few logicTs using a normal parallel strategy would suffice with speed and prevent the possible weirdness?
2022-01-09 20:31:02 +0100max22-(~maxime@2a01cb0883359800fc4f47b740d6e929.ipv6.abo.wanadoo.fr)
2022-01-09 20:32:30 +0100 <hololeap> I'll keep reading/thinking about it
2022-01-09 20:33:06 +0100 <[exa]> if you know all branches, you can just "ping" them with `par` a bit in advance before the branches, and then run the branches normally
2022-01-09 20:33:34 +0100 <[exa]> *before the branching
2022-01-09 20:33:57 +0100 <hololeap> I thought that was what my code did
2022-01-09 20:35:28 +0100 <hololeap> choice is from parser-combinators, btw: https://hackage.haskell.org/package/parser-combinators-1.3.0/docs/Control-Monad-Combinators.html#v…
2022-01-09 20:36:27 +0100 <hololeap> oh, asum is more canonical
2022-01-09 20:36:38 +0100 <hololeap> same thing though
2022-01-09 20:36:44 +0100 <[itchyjunk]> I am trying to understand this error at the bottom of this paste : https://bpa.st/LEVQ
2022-01-09 20:37:05 +0100 <[exa]> hololeap: what's the type after `fmap choice` ?
2022-01-09 20:37:26 +0100 <hololeap> parChoice :: forall m a. Alternative m => Strategy (m a) -> [m a] -> m a
2022-01-09 20:37:31 +0100 <[exa]> [itchyjunk]: likely too much parens around ++
2022-01-09 20:37:53 +0100 <[itchyjunk]> hmm
2022-01-09 20:38:06 +0100 <hololeap> so it's Eval (m a)
2022-01-09 20:38:12 +0100 <[exa]> [itchyjunk]: likely no parens in that line are necessary
2022-01-09 20:38:19 +0100 <[exa]> except for the patternmatch
2022-01-09 20:38:37 +0100 <[itchyjunk]> i was getting ome error without the parens too :<
2022-01-09 20:39:02 +0100 <[itchyjunk]> oh..
2022-01-09 20:39:13 +0100 <[itchyjunk]> the (++) is no good too?
2022-01-09 20:39:14 +0100 <[exa]> perhaps you want `:` instd of `++`
2022-01-09 20:39:27 +0100 <[exa]> because you're adding a single element from the left, yeah?
2022-01-09 20:39:32 +0100 <[itchyjunk]> I originally had : but my blah returns a list right?
2022-01-09 20:39:43 +0100 <[itchyjunk]> returns a string
2022-01-09 20:40:07 +0100 <[exa]> hololeap: anyway I would expect the stuff to expand to something like: branch1val `par` branch2val `par` branch2val `par` LogicT something
2022-01-09 20:40:35 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-01-09 20:40:51 +0100 <[exa]> [itchyjunk]: why does it return a string?
2022-01-09 20:41:05 +0100 <[exa]> maybe we should put a proper name on the blah
2022-01-09 20:41:27 +0100jakalx(~jakalx@base.jakalx.net)
2022-01-09 20:41:29 +0100 <[exa]> what is it supposed to do actually?
2022-01-09 20:41:31 +0100 <[itchyjunk]> blah takes a char c and a string s and removes all occurance of c from s and returns a string
2022-01-09 20:42:04 +0100 <[exa]> it can't because it doesn't recurse
2022-01-09 20:42:15 +0100 <hololeap> [itchyjunk]: the issue is that you have parens around ++
2022-01-09 20:42:28 +0100 <hololeap> `(blah x y ys) (++) (go xs y ys)` is very different than `(blah x y ys) ++ (go xs y ys)`
2022-01-09 20:42:42 +0100 <[exa]> yap ^
2022-01-09 20:42:54 +0100 <[itchyjunk]> [exa], blah is working fine, i test it with myRmv
2022-01-09 20:43:10 +0100 <[itchyjunk]> oh, myRmv takes a char and a string and removes the char from the string
2022-01-09 20:43:19 +0100 <[itchyjunk]> blah is a helper function for myRmv :<
2022-01-09 20:43:26 +0100 <[itchyjunk]> wait, maybe i see the issue
2022-01-09 20:43:37 +0100 <[itchyjunk]> hololeap, right, i removed the ()'s and now it compiles
2022-01-09 20:43:42 +0100 <[itchyjunk]> but I am getting some logical error
2022-01-09 20:44:14 +0100 <[exa]> so blah is `prefixUnlessEqual` or something?
2022-01-09 20:45:47 +0100 <[itchyjunk]> I don't know what that is :x. my `myRmv "apple" 'a'` returns "pple"
2022-01-09 20:46:12 +0100 <EvanR> not exactly a strenuous test
2022-01-09 20:46:15 +0100 <[itchyjunk]> in case of `myRemove` i want `myRemove "apple" "ap"` to return "le"
2022-01-09 20:46:22 +0100remexre(~remexre@user/remexre) (Remote host closed the connection)
2022-01-09 20:46:35 +0100 <EvanR> what about "apapalaea" 'a'
2022-01-09 20:46:36 +0100 <[itchyjunk]> I am getting a "non exhaustive patters for go" as an error currently
2022-01-09 20:46:37 +0100remexre(~remexre@user/remexre)
2022-01-09 20:46:45 +0100 <[itchyjunk]> it reutnrs pple
2022-01-09 20:46:52 +0100 <EvanR> cool
2022-01-09 20:47:04 +0100 <[itchyjunk]> *Main> myRmv "apapalaea" 'a'
2022-01-09 20:47:04 +0100 <[itchyjunk]> "pple"
2022-01-09 20:47:20 +0100 <[itchyjunk]> This is why i am thinking my issue is with the go and/or myRemove function
2022-01-09 20:47:47 +0100 <[itchyjunk]> Maybe i am just missing some base case i need to address
2022-01-09 20:47:49 +0100 <int-e> > "applesauce" \\ "cause"
2022-01-09 20:47:51 +0100 <lambdabot> "pplae"
2022-01-09 20:47:51 +0100 <hololeap> [itchyjunk]: you'll have to scan the first list for every letter in the second list. your blah function really should have the signature: blah :: String -> Char -> String -> String
2022-01-09 20:48:03 +0100 <[itchyjunk]> "*** Exception: myRemove.hs:8:1-42: Non-exhaustive patterns in function go
2022-01-09 20:48:12 +0100 <int-e> oh right, that does this odd multiset difference thing
2022-01-09 20:48:34 +0100 <[itchyjunk]> hololeap, that's my `go` signature
2022-01-09 20:49:03 +0100 <hololeap> true, but I fail to see your point
2022-01-09 20:49:21 +0100 <[exa]> [itchyjunk]: `go` can't handle the end case with empty list
2022-01-09 20:50:02 +0100 <[itchyjunk]> hmm go gets 2 lists and hmmmmm
2022-01-09 20:50:16 +0100[itchyjunk]can't seem to handle the case with empty list either
2022-01-09 20:50:57 +0100 <[itchyjunk]> ah
2022-01-09 20:52:43 +0100 <[exa]> [itchyjunk]: what about doing it the other way, running through the string and allowing letters through only if they are not in the list of forbidden letters?
2022-01-09 20:52:57 +0100 <[exa]> (sounds a bit more like foldr to me)
2022-01-09 20:53:06 +0100 <hololeap> hopefully this isn't too close to giving away the answer, but
2022-01-09 20:53:11 +0100 <hololeap> > blah :: String -> Char -> String -> String ; blah s0 c s = if any (== c) s0 then s else c:s
2022-01-09 20:53:12 +0100 <lambdabot> <hint>:1:44: error: parse error on input ‘;’
2022-01-09 20:53:19 +0100 <hololeap> % blah :: String -> Char -> String -> String ; blah s0 c s = if any (== c) s0 then s else c:s
2022-01-09 20:53:20 +0100 <yahb> hololeap:
2022-01-09 20:53:28 +0100 <EvanR> if you write filter with foldr, and elems with foldr, and combine them, you technically used foldr
2022-01-09 20:53:33 +0100 <EvanR> er, elem
2022-01-09 20:53:38 +0100 <EvanR> :t elem
2022-01-09 20:53:39 +0100 <lambdabot> (Foldable t, Eq a) => a -> t a -> Bool
2022-01-09 20:53:42 +0100 <EvanR> bah
2022-01-09 20:53:46 +0100 <[exa]> it's very foldy, yes
2022-01-09 20:54:02 +0100 <geekosaur> % :t elem @[]
2022-01-09 20:54:02 +0100 <yahb> geekosaur: Eq a => a -> [a] -> Bool
2022-01-09 20:54:17 +0100 <[exa]> [itchyjunk]: if I get the code correctly, the thing you are doing now is kinda headed towards foldl
2022-01-09 20:55:05 +0100 <[itchyjunk]> hmm
2022-01-09 20:56:12 +0100 <[itchyjunk]> go [] y ys = y:ys
2022-01-09 20:56:27 +0100 <[itchyjunk]> if the list of things to removee is empty, just accumulate y into the accumulator, no?
2022-01-09 20:56:40 +0100nhatanh02(~satori@123.24.172.30) (Ping timeout: 256 seconds)
2022-01-09 20:56:42 +0100 <hololeap> aren't you supposed to use foldr?
2022-01-09 20:56:57 +0100 <[itchyjunk]> yes i am using foldr
2022-01-09 20:57:48 +0100 <EvanR> you're using recursion
2022-01-09 20:58:01 +0100 <EvanR> maybe the problem should have said, use foldr and not recursion
2022-01-09 20:58:10 +0100 <[exa]> +1 ^
2022-01-09 20:58:15 +0100 <[itchyjunk]> https://bpa.st/PWZA
2022-01-09 20:58:19 +0100 <hololeap> % foldr (:) "" "abcd"
2022-01-09 20:58:19 +0100 <yahb> hololeap: "abcd"
2022-01-09 20:58:28 +0100 <[itchyjunk]> oh i should be doing this without recursion?
2022-01-09 20:58:34 +0100 <hololeap> foldr is already building the list back in the correct direction
2022-01-09 20:58:35 +0100 <[exa]> likely
2022-01-09 20:58:35 +0100 <EvanR> foldr is all you need
2022-01-09 20:58:37 +0100ouestbillie(~gallup@142.169.33.81)
2022-01-09 20:58:41 +0100 <[itchyjunk]> hmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
2022-01-09 20:58:49 +0100 <[itchyjunk]> maybe i will just start over then
2022-01-09 20:58:54 +0100 <EvanR> though likely to only 1 foldr
2022-01-09 20:58:58 +0100 <EvanR> NOT only 1
2022-01-09 20:59:16 +0100ouestbillie(~gallup@142.169.33.81) (Client Quit)
2022-01-09 20:59:25 +0100moshet(~moshet@179.33.156.20) (Ping timeout: 240 seconds)
2022-01-09 20:59:33 +0100ouestbillie(~gallup@142.169.33.81)
2022-01-09 20:59:53 +0100 <[itchyjunk]> yup, this is too convoluted for my own good. From scratch!
2022-01-09 21:00:03 +0100 <[exa]> [itchyjunk]: if you get "ap" and "apple", imagine the problem as solving a small instance ('a':"pple") and deciding whether to return the whole thing or just continue with the result of processing "pple"
2022-01-09 21:01:33 +0100 <[itchyjunk]> well i wanna take 'a' from "ap" and go through each char of "apple" and see if there is a 'a' in that list. then do the same with 'p' i think?
2022-01-09 21:01:43 +0100 <[exa]> that's foldl
2022-01-09 21:01:46 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 268 seconds)
2022-01-09 21:01:49 +0100 <[itchyjunk]> @_@
2022-01-09 21:01:59 +0100 <[exa]> because you can't produce the result by tiny bits
2022-01-09 21:02:03 +0100 <[itchyjunk]> hmmm
2022-01-09 21:02:16 +0100 <[exa]> do it the other way, take 'a' from apple and decide if you can send it to output or not
2022-01-09 21:03:01 +0100 <[itchyjunk]> interesting.. guess i don't really understand foldr vs foldl very well. okay, get 'a' from "apple" and make a decision. i'll try this
2022-01-09 21:03:16 +0100 <EvanR> "see if x is in list" with foldr is fine
2022-01-09 21:03:28 +0100 <EvanR> then you can cancel early if it is
2022-01-09 21:03:38 +0100 <hololeap> foldr naturally builds the new list in the correct direction. you only have to use (:), not (++)
2022-01-09 21:04:24 +0100 <[exa]> the question is "can you produce partial output"? with recursing over the string, you can decide that "l" will be a part of output before processing the final "l". With recursing over the forbidden characters, you are never sure your output isn't going to get erased by the next forbidden character
2022-01-09 21:04:43 +0100 <[exa]> * the final "e"
2022-01-09 21:05:10 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-01-09 21:05:21 +0100 <hololeap> [itchyjunk]: for starters try to implement filter with foldr. that will get you most of the way to your answer
2022-01-09 21:05:25 +0100 <hololeap> :t filter
2022-01-09 21:05:26 +0100 <lambdabot> (a -> Bool) -> [a] -> [a]
2022-01-09 21:05:35 +0100juhp(~juhp@128.106.188.82) (Ping timeout: 256 seconds)
2022-01-09 21:05:46 +0100 <[itchyjunk]> oh okay. implement filter with foldr it is then
2022-01-09 21:06:31 +0100 <EvanR> someone was asking if the answer to a Bool question can return partial output? xD
2022-01-09 21:07:00 +0100 <[itchyjunk]> Maybe true / Maybe false
2022-01-09 21:07:07 +0100 <EvanR> file not found
2022-01-09 21:07:13 +0100 <hpc> EvanR: :D
2022-01-09 21:07:49 +0100 <[exa]> data Bool' = False | True | :¯\_(ツ)_/¯
2022-01-09 21:07:50 +0100juhp(~juhp@128.106.188.82)
2022-01-09 21:09:21 +0100 <hpc> fun fact, https://thedailywtf.com/articles/What_Is_Truth_0x3f_ is 17 years old
2022-01-09 21:10:41 +0100ouestbillie(~gallup@142.169.33.81) (Read error: Connection reset by peer)
2022-01-09 21:14:15 +0100kronicma1(user76545@neotame.csclub.uwaterloo.ca) (Ping timeout: 250 seconds)
2022-01-09 21:14:44 +0100 <EvanR> old enough to die for your country but not old enough to drink
2022-01-09 21:14:50 +0100 <EvanR> sorry wrong channel
2022-01-09 21:15:34 +0100ouestbillie(~gallup@modemcable053.204-20-96.mc.videotron.ca)
2022-01-09 21:15:57 +0100kronicma1(user27604@neotame.csclub.uwaterloo.ca)
2022-01-09 21:16:37 +0100roboguy(~roboguy@user/roboguy)
2022-01-09 21:17:04 +0100 <[itchyjunk]> It seems to work? https://bpa.st/C4UQ
2022-01-09 21:17:17 +0100 <[itchyjunk]> wait
2022-01-09 21:17:27 +0100 <[itchyjunk]> wth, i never used foldr..
2022-01-09 21:17:32 +0100 <[itchyjunk]> what am i doing? xD
2022-01-09 21:17:46 +0100 <[exa]> [itchyjunk]: yeah now transform to foldr
2022-01-09 21:17:49 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2022-01-09 21:18:55 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-01-09 21:19:17 +0100 <EvanR> you can basically write any function on List with foldr
2022-01-09 21:20:29 +0100 <hpc> not just basically, you actually can
2022-01-09 21:24:38 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-01-09 21:24:52 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-09 21:24:52 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-09 21:24:52 +0100wroathe(~wroathe@user/wroathe)
2022-01-09 21:27:56 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-01-09 21:31:14 +0100Guest80(~Guest80@p200300d5572443000b6ab41968a4cb33.dip0.t-ipconnect.de)
2022-01-09 21:31:30 +0100 <[itchyjunk]> when i implement myFoldFilter using foldr, myFoldFilter :: (a -> Bool) -> [a] -> [a] right?
2022-01-09 21:31:50 +0100 <[itchyjunk]> the signature my the filter function made with foldr would be the same?
2022-01-09 21:33:44 +0100 <polyphem> [itchyjunk]: yes
2022-01-09 21:34:19 +0100 <EvanR> same store front, different back office
2022-01-09 21:34:27 +0100ouestbil1ie(~gallup@142.169.33.81)
2022-01-09 21:34:36 +0100 <[itchyjunk]> lol
2022-01-09 21:34:55 +0100 <ephemient> > let f a k (b:bs) = (a, b) : k bs; f _ _ _ = [] in foldr f (const []) ['a'..] [1..] -- just experimenting out of curiosity. if there's a way to define `f` in terms of `foldr` it's not obvious to me
2022-01-09 21:34:56 +0100 <lambdabot> [('a',1),('b',2),('c',3),('d',4),('e',5),('f',6),('g',7),('h',8),('i',9),('j...
2022-01-09 21:35:03 +0100 <[itchyjunk]> i need to massage the (a -> Bool) to soemthing that works with (a -> b -> b)
2022-01-09 21:35:39 +0100s2k(~textual@122.172.234.134) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-01-09 21:35:49 +0100 <EvanR> or just us the (a -> Bool) in the lambda
2022-01-09 21:35:53 +0100 <EvanR> use
2022-01-09 21:36:09 +0100jakalx(~jakalx@base.jakalx.net)
2022-01-09 21:36:40 +0100Guest80(~Guest80@p200300d5572443000b6ab41968a4cb33.dip0.t-ipconnect.de) (Quit: Client closed)
2022-01-09 21:39:10 +0100 <EvanR> style question
2022-01-09 21:39:38 +0100ouestbillie(~gallup@modemcable053.204-20-96.mc.videotron.ca) (Quit: Lost terminal)
2022-01-09 21:39:45 +0100 <EvanR> according to my flawless proof and understand of this algorithm, the list returned by my IO action will be empty. If it isn't, something is very wrong. So
2022-01-09 21:39:56 +0100 <EvanR> also there's a warning for ignoring the result in do notation
2022-01-09 21:40:30 +0100 <EvanR> do { [] <- myAction; ... carry on } -- if I do this, I appease the warning and dare my proof and understanding to be right. Good idea?
2022-01-09 21:40:50 +0100 <geekosaur> probably a good idea to test that understanding, yes
2022-01-09 21:40:52 +0100 <EvanR> or what's another way to deal with it
2022-01-09 21:41:08 +0100 <geekosaur> although I might prefer to capture the output and print what I got if it wasn't empty
2022-01-09 21:41:12 +0100nattiestnate(~nate@2001:448a:20a0:4134:25e:715f:d637:5263)
2022-01-09 21:41:25 +0100 <geekosaur> help me figure out what I got wrong
2022-01-09 21:41:28 +0100 <EvanR> ah
2022-01-09 21:42:15 +0100 <int-e> > let f a k = fst . foldr (\b ~(_, bs) -> ((a, b) : k bs, b : bs)) ([],[]) in foldr f (const []) ['a'..] [1..] -- ephemient
2022-01-09 21:42:17 +0100 <lambdabot> [('a',1),('b',2),('c',3),('d',4),('e',5),('f',6),('g',7),('h',8),('i',9),('j...
2022-01-09 21:42:28 +0100nattiestnate(~nate@2001:448a:20a0:4134:25e:715f:d637:5263) (Client Quit)
2022-01-09 21:42:31 +0100 <int-e> ephemient: it's quite awkward though
2022-01-09 21:42:47 +0100 <EvanR> I've had advice in the past to not do something like this, so the program has a chance of continuing on despite some horrible error having happened (in writing the code)
2022-01-09 21:43:10 +0100 <geekosaur> nowhere in there did I hear "is a good idea" with respect to writing everything with foldr :)
2022-01-09 21:43:29 +0100koalillo(~koalillo@2a0c:5a81:b804:9900:6f90:e8ce:c737:204c)
2022-01-09 21:43:45 +0100 <ephemient> ah, the fst lets you select between the cases
2022-01-09 21:43:49 +0100 <int-e> ephemient: and if you add a few more tweaks the code is likely to explode
2022-01-09 21:43:50 +0100 <ephemient> that is pretty awkward
2022-01-09 21:43:53 +0100 <geekosaur> EvanR, maybe. but too often ime that kind of logic is the logic of dynamic languages that silently deliver garbage
2022-01-09 21:44:16 +0100ouestbil1ie(~gallup@142.169.33.81) (Ping timeout: 256 seconds)
2022-01-09 21:45:10 +0100 <int-e> ephemient: note also the loss of sharing on `bs` (which becomes relevant if k actually uses it)
2022-01-09 21:45:22 +0100 <EvanR> also, I wonder where "let it crash" fits into this
2022-01-09 21:45:48 +0100 <c_wraith> "let it crash" is "we won't prevent garbage, but at least we won't propagate it"
2022-01-09 21:46:30 +0100 <EvanR> this is kind of like, "not only let it crash, cause it to crash more"
2022-01-09 21:47:54 +0100 <hpc> sometimes the most correct thing to do is be as wrong as possible
2022-01-09 21:47:59 +0100 <EvanR> lol
2022-01-09 21:48:01 +0100Garbanzo(~Garbanzo@2602:304:6eac:dc10::46)
2022-01-09 21:48:06 +0100acidjnk(~acidjnk@p200300d0c7271e945c697a298a149d84.dip0.t-ipconnect.de)
2022-01-09 21:48:06 +0100acidjnk_new(~acidjnk@p200300d0c7271e945c697a298a149d84.dip0.t-ipconnect.de)
2022-01-09 21:48:58 +0100ft(~ft@shell.chaostreff-dortmund.de) (Quit: leaving)
2022-01-09 21:49:11 +0100ft(~ft@shell.chaostreff-dortmund.de)
2022-01-09 21:49:15 +0100 <[exa]> ah the good old full-scale crashes, absolute units of crashage.
2022-01-09 21:50:12 +0100 <hololeap> [itchyjunk]: you'll need to use an if-then-else statement using your (a -> Bool) and the given a to get a -> [a] -> [a]
2022-01-09 21:50:29 +0100 <Hecate> I deeply dislike MonadFail
2022-01-09 21:51:12 +0100 <EvanR> oh ... this is MonadFail territory now, I forgot
2022-01-09 21:51:19 +0100 <c_wraith> I'm happy with MonadFail as much better solution to pattern-match failures than putting "fail" in monad was
2022-01-09 21:51:49 +0100 <Hecate> c_wraith: which instance of MonadFail do you use?
2022-01-09 21:51:55 +0100 <Hecate> (I also deeply dislike fail)
2022-01-09 21:52:22 +0100 <c_wraith> Mostly IO's, but I get some value out of []'s
2022-01-09 21:55:10 +0100 <Hecate> c_wraith: any reason why you don't directly raise exceptions or empty lists?
2022-01-09 21:55:41 +0100 <c_wraith> because the whole point of using a library is to not rewrite its code
2022-01-09 21:59:03 +0100 <ephemient> myIOActionReturningHopefullyNullList >>= unless <$> null <*> fail . show -- ugly but it'll show the list in the IO exception…
2022-01-09 21:59:11 +0100zincy(~zincy@host86-151-99-97.range86-151.btcentralplus.com)
2022-01-09 21:59:23 +0100 <int-e> > let foo :: (a -> b) -> [a] -> [b]; foo f [] = []; foo f (a:as) = f a : (foo (\a -> (f a, f a)) as >>= \(a,b) -> [a,b])
2022-01-09 21:59:25 +0100 <lambdabot> <no location info>: error:
2022-01-09 21:59:25 +0100 <lambdabot> not an expression: ‘let foo :: (a -> b) -> [a] -> [b]; foo f [] = []; fo...
2022-01-09 21:59:32 +0100 <int-e> > let foo :: (a -> b) -> [a] -> [b]; foo f [] = []; foo f (a:as) = f a : (foo (\a -> (f a, f a)) as >>= \(a,b) -> [a,b]) in foo id [1..4]
2022-01-09 21:59:34 +0100 <lambdabot> [1,2,2,3,3,3,3,4,4,4,4,4,4,4,4]
2022-01-09 22:00:22 +0100 <int-e> ephemient: ^^ another thing that will be awkward with foldr (because the type of f changes in the recursive calls)
2022-01-09 22:00:55 +0100 <int-e> though one can probably make it work with an existential
2022-01-09 22:01:52 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-01-09 22:02:33 +0100hololeap_(~hololeap@user/hololeap)
2022-01-09 22:04:12 +0100hololeap(~hololeap@user/hololeap) (Ping timeout: 276 seconds)
2022-01-09 22:04:33 +0100hololeap_hololeap
2022-01-09 22:04:40 +0100 <hololeap> it looks like my earlier question is a subset of how you can run multiple computations in parallel and only return the first one that completes. does anyone know? I'm skimming Marlow's book and I don't see it
2022-01-09 22:05:23 +0100 <Rembane> hololeap: Doesn't the async library have a function for that? I might be misremembering.
2022-01-09 22:05:32 +0100 <c_wraith> race handles two computations
2022-01-09 22:05:51 +0100 <c_wraith> to handle multiples, you'd need to fold it
2022-01-09 22:05:53 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2022-01-09 22:06:23 +0100 <hololeap> uh, yeah but can I run each computation using race on multiple cores?
2022-01-09 22:06:49 +0100 <c_wraith> if you're using the threaded RTS with an approprate -N command line argument
2022-01-09 22:06:53 +0100 <EvanR> if all the computations racing should agree in the sense of definedness there's lub
2022-01-09 22:06:57 +0100coot(~coot@89-64-85-93.dynamic.chello.pl) (Remote host closed the connection)
2022-01-09 22:07:23 +0100coot(~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827)
2022-01-09 22:09:27 +0100 <[itchyjunk]> wait i think the solution just came to me
2022-01-09 22:09:39 +0100koalillo(~koalillo@2a0c:5a81:b804:9900:6f90:e8ce:c737:204c) ()
2022-01-09 22:09:47 +0100 <[itchyjunk]> is this a solution to implementing filter with foldr ? https://bpa.st/CPTA
2022-01-09 22:09:55 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-01-09 22:10:00 +0100 <hololeap> EvanR: this is what I'm finding. is this it? https://hackage.haskell.org/package/ghc-8.10.2/docs/Demand.html#v:lubDmd
2022-01-09 22:11:51 +0100coot(~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Remote host closed the connection)
2022-01-09 22:12:01 +0100 <hololeap> [itchyjunk]: sort of, but you're missing whatever comes after "else" in the go function
2022-01-09 22:12:13 +0100coot(~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827)
2022-01-09 22:12:33 +0100 <EvanR> https://hackage.haskell.org/package/lub
2022-01-09 22:12:44 +0100 <[itchyjunk]> oh wtf
2022-01-09 22:12:48 +0100 <[itchyjunk]> it was supposed to be else xs
2022-01-09 22:12:50 +0100 <[itchyjunk]> :<
2022-01-09 22:12:57 +0100 <hololeap> then yes, that is correct
2022-01-09 22:13:41 +0100 <[itchyjunk]> https://bpa.st/HDDQ
2022-01-09 22:13:44 +0100 <[itchyjunk]> ah okay
2022-01-09 22:14:09 +0100coot(~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Remote host closed the connection)
2022-01-09 22:14:34 +0100coot(~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827)
2022-01-09 22:17:08 +0100rito_(~rito_gh@45.112.243.149) (Quit: Leaving)
2022-01-09 22:18:00 +0100 <hololeap> EvanR: that looks interesting, although I'm not sure how to use it. (fib 10) `lub` (fib 999999999) -- I would want both computations to run in parallel and hopefully return (fib 10)
2022-01-09 22:18:18 +0100 <EvanR> yeah no, lub is for when the values agree
2022-01-09 22:18:48 +0100 <EvanR> rather, having a common "definedness upper bound", those two don't
2022-01-09 22:19:32 +0100 <EvanR> in Async there are combinators for racing many threads
2022-01-09 22:19:36 +0100 <hololeap> ok, so something using race from async then
2022-01-09 22:22:01 +0100 <hololeap> but that introduces the IO monad. no way to do this on pure computations without IO coming in??
2022-01-09 22:22:28 +0100 <int-e> @let data T a b = T { unT :: forall b'. (a -> b') -> ([b'] -> [b]) -> [b] }
2022-01-09 22:22:29 +0100 <lambdabot> Defined.
2022-01-09 22:22:36 +0100 <int-e> > let aux a (T as) = T (\f r -> as (\a -> (f a, f a)) (r . (f a :) . (>>= \(a,b) -> [a,b]))) in unT (foldr aux (T (\_ r -> r [])) [1..4]) id id
2022-01-09 22:22:37 +0100 <lambdabot> [1,2,2,3,3,3,3,4,4,4,4,4,4,4,4]
2022-01-09 22:23:00 +0100 <int-e> (tricky)
2022-01-09 22:23:15 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-01-09 22:24:03 +0100 <hololeap> is there an ST version of race?
2022-01-09 22:24:58 +0100 <EvanR> you can use unsafePerformIO to do the race of threads doing a pure computation
2022-01-09 22:24:59 +0100 <int-e> there's unsafeIOToST... and it is unsafe
2022-01-09 22:25:34 +0100 <EvanR> though
2022-01-09 22:25:38 +0100 <EvanR> the whole thing is not pure is it
2022-01-09 22:25:43 +0100geekosauris wondering if that even makes sense
2022-01-09 22:25:51 +0100 <EvanR> you "hope" fib 10 comes back, but there's no guaratantee
2022-01-09 22:25:56 +0100 <EvanR> guarantee
2022-01-09 22:26:17 +0100 <EvanR> it depends on real world circumstances
2022-01-09 22:27:44 +0100roboguy(~roboguy@user/roboguy) ()
2022-01-09 22:28:17 +0100 <hololeap> yeah I suppose it's getting into nondeterminism since it's unclear which one will come back first
2022-01-09 22:29:40 +0100 <hololeap> so I guess IO actually makes sense here
2022-01-09 22:29:44 +0100 <EvanR> that's why lub is cool because you can explain why it's still valid to race the threads xD
2022-01-09 22:29:50 +0100 <EvanR> purely
2022-01-09 22:30:55 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-01-09 22:31:11 +0100 <hololeap> the idea was to parallelize the branches of LogicT, where all successes from any branch are considered equal, and it just returns the first one it finds
2022-01-09 22:32:01 +0100 <EvanR> if you can arrange for all results to be equal, then the referential transparency cops won't notice you
2022-01-09 22:32:24 +0100 <EvanR> doing unsafePerformIO
2022-01-09 22:32:26 +0100 <EvanR> hopefully
2022-01-09 22:33:12 +0100 <hololeap> I think in this case any successes will actually be identical
2022-01-09 22:33:46 +0100 <hololeap> I'm actually just playing around with this using 2021's AoC day 8 problem for practice
2022-01-09 22:35:16 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2022-01-09 22:35:19 +0100HotblackDesiato(~HotblackD@gateway/tor-sasl/hotblackdesiato)
2022-01-09 22:36:44 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2022-01-09 22:38:02 +0100 <hololeap> for instance if I get the input "ag" then I know this corresponds to the digit 1, but I don't know if 'a' corresponds to the 'c' segment and 'g' corresponds to the 'f' segment, or vice versa. since both have equal weight, why not run both in parallel and see which one finds an answer first
2022-01-09 22:38:08 +0100sonny(~sonny@bras-base-london1483w-grc-32-70-52-175-166.dsl.bell.ca)
2022-01-09 22:39:01 +0100 <sonny> how do you use a parameter in a function defintion inside a lambda definition? foo bar = foldl \(bar x y z -> ...) ...
2022-01-09 22:39:54 +0100Pickchea(~private@user/pickchea)
2022-01-09 22:40:02 +0100Pickchea(~private@user/pickchea) (Remote host closed the connection)
2022-01-09 22:40:18 +0100 <jackson99> just use it, without putting it in the argument list
2022-01-09 22:40:37 +0100n3rdy1(~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) (Ping timeout: 240 seconds)
2022-01-09 22:42:33 +0100 <hololeap> EvanR: now if my two branches are guaranteed to find the same value, but one may find it faster than the other, is that a good time to use lub?
2022-01-09 22:43:24 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
2022-01-09 22:44:04 +0100 <jackson99> > let mymap f xs = foldr (\x acc -> f x : acc) [] xs in mymap (*10) [1..5] -- sonny
2022-01-09 22:44:06 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-09 22:44:06 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-09 22:44:06 +0100wroathe(~wroathe@user/wroathe)
2022-01-09 22:44:06 +0100 <lambdabot> [10,20,30,40,50]
2022-01-09 22:44:29 +0100 <sonny> thanks
2022-01-09 22:44:37 +0100zmt00(~zmt00@user/zmt00) (Ping timeout: 240 seconds)
2022-01-09 22:45:17 +0100zincy(~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Remote host closed the connection)
2022-01-09 22:45:57 +0100shapr(~user@2601:7c0:c202:5190:232c:3331:7d0c:8370) (Ping timeout: 240 seconds)
2022-01-09 22:47:43 +0100 <hololeap> @hoogle unamb -- ok this explains it a little better
2022-01-09 22:47:44 +0100 <lambdabot> Prelude undefined :: forall (r :: RuntimeRep) . forall (a :: TYPE r) . HasCallStack => a
2022-01-09 22:47:44 +0100 <lambdabot> Control.Exception.Base absentSumFieldError :: a
2022-01-09 22:47:44 +0100 <lambdabot> Text.Printf errorShortFormat :: a
2022-01-09 22:48:03 +0100 <hololeap> s/hoogle/hackage
2022-01-09 22:48:11 +0100 <hololeap> @hackage unamb
2022-01-09 22:48:11 +0100 <lambdabot> https://hackage.haskell.org/package/unamb
2022-01-09 22:48:37 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2022-01-09 22:52:59 +0100 <sonny> is it actually possible to implement filter with fold?
2022-01-09 22:53:47 +0100 <jackson99> sure
2022-01-09 22:54:06 +0100 <sonny> I'm stumped because I can't think of some identity elment with :
2022-01-09 22:54:42 +0100 <dolio> Identity element?
2022-01-09 22:54:51 +0100 <geekosaur> you're just passing on xs instead of prepending an element to it (bool, or if-then-else)
2022-01-09 22:54:54 +0100 <sonny> well some zero operation
2022-01-09 22:55:09 +0100 <jackson99> it is a small change to the mymap I pasted above
2022-01-09 22:55:20 +0100 <geekosaur> and no, (:) doesn;t have a left identity
2022-01-09 22:55:44 +0100 <geekosaur> it's a constructor, it always constructs a value
2022-01-09 22:55:57 +0100mvk(~mvk@2607:fea8:5cdd:f000::45db) (Ping timeout: 240 seconds)
2022-01-09 22:56:07 +0100 <sonny> so it's not possible with foldl, but with foldr
2022-01-09 22:56:21 +0100 <sonny> I was trying with foldl
2022-01-09 22:56:24 +0100modnar(~quassel@162.195.88.254)
2022-01-09 22:56:47 +0100 <geekosaur> note thatyou can build foldl with foldr but not the reverse
2022-01-09 22:58:23 +0100 <hololeap> % :t \f -> foldl (\s c -> if f c then s ++ [c] else s) []
2022-01-09 22:58:23 +0100 <yahb> hololeap: Foldable t => (a -> Bool) -> t a -> [a]
2022-01-09 22:59:04 +0100 <hololeap> it's possible but probably not as efficient
2022-01-09 23:00:39 +0100 <sonny> ok, I really need to figure out cons and lists
2022-01-09 23:00:41 +0100mvk(~mvk@2607:fea8:5cdd:f000::45db)
2022-01-09 23:01:14 +0100 <sonny> I think I sorta get fold
2022-01-09 23:02:02 +0100 <hololeap> foldr is a natural outgrowth of how lists are constructed. foldr (:) [] == id
2022-01-09 23:03:00 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Remote host closed the connection)
2022-01-09 23:03:13 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-01-09 23:04:01 +0100 <hololeap> :t toList -- which is why you can convert any Foldable to a list
2022-01-09 23:04:02 +0100 <lambdabot> Foldable t => t a -> [a]
2022-01-09 23:06:53 +0100 <sonny> hololeap: [] is the second argument right?
2022-01-09 23:07:43 +0100machinedgod(~machinedg@24.105.81.50) (Quit: Lost terminal)
2022-01-09 23:07:44 +0100 <sonny> yes very useful observation `foldr (:) [] == id`
2022-01-09 23:08:08 +0100machinedgod(~machinedg@24.105.81.50)
2022-01-09 23:10:31 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-01-09 23:10:36 +0100 <sonny> filter p = foldr (\x acc -> if p x then x:acc else acc) []
2022-01-09 23:11:00 +0100 <sonny> I never get this much confidence elsewhere :D
2022-01-09 23:11:46 +0100 <hololeap> well, technically, foldr (:) [] == toList
2022-01-09 23:12:06 +0100 <geekosaur> these days :)
2022-01-09 23:12:08 +0100 <sonny> I just read id as identity
2022-01-09 23:12:33 +0100 <geekosaur> sometimes I wonder if Foldable is all it's cracked up to be, and not just because of that tuple instance
2022-01-09 23:12:42 +0100 <ephemient> could also be foldr (\x -> if p x then (x:) else id) []
2022-01-09 23:12:50 +0100 <hololeap> and toList == id, if we're specializing the Foldable to be []
2022-01-09 23:13:06 +0100xff0x(~xff0x@2001:1a81:52d4:9900:4d46:915d:4480:7a51) (Remote host closed the connection)
2022-01-09 23:13:23 +0100xff0x(~xff0x@2001:1a81:52d4:9900:5627:62b8:c837:dd4a)
2022-01-09 23:13:30 +0100 <sonny> ephemient: where's id from?
2022-01-09 23:13:39 +0100 <geekosaur> @index id
2022-01-09 23:13:39 +0100 <lambdabot> Control.Category, Data.Function, Prelude
2022-01-09 23:13:40 +0100 <ephemient> :t id
2022-01-09 23:13:41 +0100 <lambdabot> a -> a
2022-01-09 23:13:46 +0100 <sonny> oh
2022-01-09 23:14:23 +0100 <sonny> is that typical haskell code?
2022-01-09 23:14:26 +0100gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2022-01-09 23:14:26 +0100timCF(~timCF@m91-129-100-224.cust.tele2.ee)
2022-01-09 23:14:37 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2022-01-09 23:14:37 +0100 <jackson99> @src id
2022-01-09 23:14:37 +0100 <lambdabot> id x = x
2022-01-09 23:14:51 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-01-09 23:14:58 +0100 <sonny> it's kinda magic when defined with the section :P
2022-01-09 23:15:56 +0100 <timCF> Hello! Want to ask a question, which haskell build infrastructure is better - provided in nixpkgs or haskell.nix by IOHK and why?
2022-01-09 23:16:57 +0100 <geekosaur> how about oen that doesn't involve nix at all?
2022-01-09 23:18:23 +0100Inst(~delicacie@c-98-208-218-119.hsd1.fl.comcast.net)
2022-01-09 23:18:42 +0100 <timCF> I've used stack for a long time, but nix is kinda cool to manage external binary deps for building and testing
2022-01-09 23:21:02 +0100 <geekosaur> "cool" for a thing with nightmarish tentacles…
2022-01-09 23:21:34 +0100 <geekosaur> sorry, that thing just has too many moving pieces and sharp edges
2022-01-09 23:21:42 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2022-01-09 23:23:03 +0100 <timCF> No worries) If it was perfect, i've not asked which one of two is better
2022-01-09 23:23:27 +0100 <sm> there was a recent discussion of this on reddit. IIRC nixpkgs was easier for just installing haskell things, haskell.nix is more powerful for fine grained haskell project building
2022-01-09 23:24:53 +0100 <geekosaur> I also don't like something that will silently consume gigabytes of space unless I remember to gc it every so often — but not too often as I may need to roll back an update
2022-01-09 23:29:12 +0100DNH(~DNH@2a02:8108:1100:16d8:c0bf:721a:fdec:b791)
2022-01-09 23:29:33 +0100 <sonny> reverse = foldl (flip (:)) [] -- why does it have to be flipped?
2022-01-09 23:30:11 +0100ouestbillie(~gallup@192-222-138-215.qc.cable.ebox.net)
2022-01-09 23:30:27 +0100 <hololeap> because foldl takes (b -> a -> b) as opposed to (a -> b -> b)
2022-01-09 23:30:37 +0100BrokenClutch(~pioneer@2804:d41:c292:6c00:33d8:d2f1:d8af:153e)
2022-01-09 23:31:26 +0100 <geekosaur> > foldl f z [a,b,c]
2022-01-09 23:31:27 +0100 <lambdabot> f (f (f z a) b) c
2022-01-09 23:31:28 +0100sonnytries to parse the signature
2022-01-09 23:31:39 +0100 <geekosaur> > foldr f z [a,b,c]
2022-01-09 23:31:41 +0100 <lambdabot> f a (f b (f c z))
2022-01-09 23:31:52 +0100deadmarshal(~deadmarsh@95.38.231.124)
2022-01-09 23:32:24 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-01-09 23:32:42 +0100shapr(~user@2601:7c0:c202:5190:ed4f:33d2:c7d1:3eb)
2022-01-09 23:32:56 +0100 <jackson99> position of the current element and accumulator arguments are flipped in function accepted by foldr vs foldl
2022-01-09 23:33:45 +0100 <sonny> ok, I'm just gonna guess it's defined differently in scheme. I'm comparing them and I got lost
2022-01-09 23:34:24 +0100 <geekosaur> yes, many languages make different decisions. look at the unrolling of the folds I asked the bot for to see why haskell defines it the way it does
2022-01-09 23:34:43 +0100 <geekosaur> (it's basically a matter of associativity)
2022-01-09 23:35:55 +0100 <sonny> associativity is order? don't remember
2022-01-09 23:36:17 +0100 <BrokenClutch> Is it? I think it's the same definition
2022-01-09 23:36:28 +0100deadmarshal(~deadmarsh@95.38.231.124) (Ping timeout: 256 seconds)
2022-01-09 23:36:57 +0100 <geekosaur> associativity is left vs. right, is a * b * c the same as (a * b) * c or is it a * (b * c)
2022-01-09 23:37:03 +0100 <geekosaur> for some operator *
2022-01-09 23:38:04 +0100 <geekosaur> so foldl is a left-associative fold, foldr a right-associative fold
2022-01-09 23:38:23 +0100 <geekosaur> lists are right-associative, which is why foldr is effectively an identity for lists
2022-01-09 23:38:37 +0100 <sonny> BrokenClutch: you can check here https://srfi.schemers.org/srfi-1/srfi-1.html#FoldUnfoldMap
2022-01-09 23:39:33 +0100 <ephemient> it's clearer to see with an infix function: foldr (+) z [a, b, c] = a + (b + (c + z)), foldl (+) z [a, b, c] = ((z + a) + b) + c
2022-01-09 23:41:31 +0100 <sonny> ok, I'll come back later. My brain is fried
2022-01-09 23:41:34 +0100 <jackson99> and even clearer if the function is -, because then you will get different result
2022-01-09 23:43:15 +0100sonny(~sonny@bras-base-london1483w-grc-32-70-52-175-166.dsl.bell.ca) (Remote host closed the connection)
2022-01-09 23:43:34 +0100sonny(~sonny@bras-base-london1483w-grc-32-70-52-175-166.dsl.bell.ca)
2022-01-09 23:48:13 +0100 <sonny> geekosaur: so they wanted to avoid (f (f (f z a) b) c)?
2022-01-09 23:50:31 +0100 <geekosaur> I don't quite understand the question
2022-01-09 23:50:35 +0100qrpnxz(abc4f95c31@user/qrpnxz)
2022-01-09 23:50:59 +0100 <geekosaur> My point is that (:) right-associates and doesn't take its parameters in the left-associative order
2022-01-09 23:51:02 +0100 <sonny> just thinking about the order
2022-01-09 23:51:25 +0100 <geekosaur> some things are naturally left-associative, some aren't
2022-01-09 23:52:17 +0100 <geekosaur> so Foldable gives us foldr and foldl, but also foldMap which is allowed to associate naturally for the Foldable in question iirc
2022-01-09 23:52:55 +0100 <geekosaur> (:) is also asymmetric, which is another part of the problem
2022-01-09 23:53:15 +0100 <geekosaur> it doesn't take the same type on both sides, so it doesn't "re-associate" cleanly
2022-01-09 23:53:32 +0100 <geekosaur> something like (+) can associate either way
2022-01-09 23:54:22 +0100 <sonny> yeah