Home liberachat/#haskell: Logs Calendar

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

00:01:13 Null_A joins (~null_a@c-98-210-133-39.hsd1.ca.comcast.net)
00:03:47 × deadmarshal quits (~deadmarsh@95.38.115.206) (Ping timeout: 272 seconds)
00:06:01 × `2jt quits (~jtomas@130.red-88-22-46.staticip.rima-tde.net) (Ping timeout: 256 seconds)
00:06:12 × califax quits (~califax@user/califx) (Remote host closed the connection)
00:06:28 califax joins (~califax@user/califx)
00:07:36 chenqisu1 joins (~chenqisu1@183.217.200.249)
00:09:30 × fruitfly quits (~fruitfly@host-79-121-41-174.kabelnet.hu) (Quit: Client closed)
00:11:58 × prolic quits (~prolic@181.122.131.227) (Remote host closed the connection)
00:12:16 prolic joins (~prolic@181.122.131.227)
00:14:48 alx741 joins (~alx741@157.100.197.240)
00:17:23 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
00:17:36 <romesrf> I'm getting "type variable not in scope" in the last line here https://paste.tomsmeding.com/rmGDpNER
00:17:36 × tremon quits (~tremon@83-84-18-241.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
00:17:55 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 256 seconds)
00:17:55 <romesrf> But I have something very similar working, what am I doing wrong? :)
00:18:18 <geekosaur> you need ScopedTypeVariables *and* to "declare" the type variable with an explicit forall
00:18:54 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
00:18:55 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
00:20:29 × Null_A quits (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Remote host closed the connection)
00:20:50 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
00:21:12 <romesrf> AH! It was the ScopedTypeVariables. Nothing in the error message hints at it. In the other module where I was doing this successfully I must have had it for some other reason
00:21:17 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
00:21:22 <romesrf> and coincidentally this worked without effort
00:21:40 <romesrf> Where could I suggest adding that bit to the error message? :)
00:22:04 Topsi joins (~Tobias@dyndsl-095-033-095-012.ewe-ip-backbone.de)
00:22:08 <geekosaur> ghc issue tracker
00:22:25 <geekosaur> I'm surprised it didn'talso require the forall, that seems inconsistent
00:24:34 <jackdk> geekosaur: is it possible that the type application is actually providing no information? The `h` being applied tells you what the `a` must be anyway, no?
00:24:53 <jackdk> (romesrf: does `serve Proxy h`typecheck?)
00:25:21 <geekosaur> no, Proxy needs a type
00:25:41 <geekosaur> data Proxy a = Proxy
00:26:12 <geekosaur> so either a type application or (Proxy :: Proxy type)
00:26:59 <jackdk> yeah I know that it's phantom, but because it's used in `serve :: HasServer api '[] => Proxy api -> Server api -> Application`, and you know `h :: Server a` from pattern-matching the `ChatBot`ctor, I would expect GHC to unify the type var on `Proxy` with the one in the function's type signature
00:28:14 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
00:29:06 <geekosaur> if it could do that, then Proxy wouldn't be necessary, would it?
00:29:06 <romesrf> geekosaur: oh it does require the forall, but i had already tried that without success
00:29:25 <romesrf> i readded the forall, but the key was ScopedTypedVariables
00:29:29 <romesrf> Type*
00:30:20 <romesrf> jackdk: it doesn't :) but looking at it high level i would expect it too
00:30:35 <romesrf> it just isn't that easy hahaha
00:34:04 × prolic quits (~prolic@181.122.131.227) (Remote host closed the connection)
00:34:22 prolic joins (~prolic@181.122.131.227)
00:35:14 × jgeerds_ quits (~jgeerds@55d4a547.access.ecotel.net) (Remote host closed the connection)
00:36:01 <jackdk> right, because ServerT is a noninjective type family
00:37:19 alx741 joins (~alx741@157.100.197.240)
00:38:57 jgeerds joins (~jgeerds@55d4a547.access.ecotel.net)
00:39:06 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
00:39:36 melonai joins (~mel@rnrd.eu)
00:39:58 <jackdk> so `Server api ~ Server a` does not imply `api ~ a`.
00:40:03 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
00:42:11 × DNH quits (~DNH@2a02:8108:1100:16d8:a8cc:c7ff:6c11:4c2d) (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:42:11 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
00:42:25 <Axman6> "users" :> GET [User] and "API" :> "users" :> GET [User] would have the same Server isntance but not the same Server arguments
00:46:17 gabiruh_ joins (~gabiruh@vps19177.publiccloud.com.br)
00:46:20 × gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (Ping timeout: 252 seconds)
00:46:25 <sshine> $ cd stack && cabal install -v
00:46:34 <sshine> ... Failed to build stack-2.7.4 because it depends on stack-2.7.4 which itself
00:46:58 <sshine> somehow I'm not sure how this would ever succeed.
00:47:07 <geekosaur> that sounds wrong
00:47:44 <sshine> oh, haha
00:47:49 <sshine> ... which itself failed to build.
00:48:00 <geekosaur> lib target failed?
00:48:15 <geekosaur> the way exe vs. lib target is reported can sometimes be odd
00:48:41 <sshine> oh, shoot. running out of memory on this darn VPS again.
00:52:15 × Unicorn_Princess quits (~Unicorn_P@46-54-248-191.static.kate-wing.si) (Remote host closed the connection)
00:53:08 machinedgod joins (~machinedg@24.105.81.50)
00:53:14 × Nahra quits (~user@static.161.95.99.88.clients.your-server.de) (Remote host closed the connection)
00:56:10 × prolic quits (~prolic@181.122.131.227) (Remote host closed the connection)
00:56:27 prolic joins (~prolic@181.122.131.227)
00:56:31 × zeenk quits (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) (Quit: Konversation terminated!)
00:56:57 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
00:58:29 alx741 joins (~alx741@181.199.42.143)
01:02:17 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
01:02:58 alx741 joins (~alx741@157.100.197.240)
01:04:00 yauhsien joins (~yauhsien@61-231-32-103.dynamic-ip.hinet.net)
01:06:20 mvk joins (~mvk@2607:fea8:5cdc:bf00::99e7)
01:06:51 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
01:07:09 × dolio quits (~dolio@130.44.130.54) (Quit: ZNC 1.8.2 - https://znc.in)
01:08:02 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
01:08:11 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
01:08:21 × yauhsien quits (~yauhsien@61-231-32-103.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
01:08:39 × jgeerds quits (~jgeerds@55d4a547.access.ecotel.net) (Ping timeout: 256 seconds)
01:09:53 <romesrf> night everyone
01:10:04 × romesrf quits (~romes@44.190.189.46.rev.vodafone.pt) (Quit: WeeChat 3.4)
01:11:29 dolio joins (~dolio@130.44.130.54)
01:16:38 <sshine> with 'cabal install', is it possible to add a package constraint on-the-fly to what's mentioned in a .cabal file?
01:17:12 <sshine> for now I just modified the .cabal file and added the package constraint (aeson < 2), but I wonder if I could add it to the command-line as an argument.
01:18:17 × joo-_ quits (~joo-_@fsf/member/joo--) (Ping timeout: 240 seconds)
01:19:30 <int-e> sshine: cabal install --constraint="aeson < 2" should do the trick
01:20:27 joo-_ joins (~joo-_@87-49-147-175-mobile.dk.customer.tdc.net)
01:20:27 × joo-_ quits (~joo-_@87-49-147-175-mobile.dk.customer.tdc.net) (Changing host)
01:20:27 joo-_ joins (~joo-_@fsf/member/joo--)
01:20:37 <sshine> awesome, thx.
01:20:45 <jackdk> sshine: cabal.project.freeze files can keep constraints around also
01:21:02 <geekosaur> or cabal.project.local
01:21:41 × foul_owl quits (~kerry@174-21-76-71.tukw.qwest.net) (Ping timeout: 256 seconds)
01:21:44 johnson- joins (~bc8147f2@cerf.good1.com)
01:23:45 <jackdk> geekosaur: probably best, good point
01:24:26 alx741 joins (~alx741@157.100.197.240)
01:26:29 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
01:27:55 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 256 seconds)
01:28:27 × nunggu quits (~q@user/nunggu) (Ping timeout: 276 seconds)
01:28:46 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
01:30:07 nunggu joins (~q@user/nunggu)
01:30:56 <sshine> ghc: panic! (the 'impossible' happened) (GHC version 8.10.6: heap overflow
01:31:50 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
01:31:50 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
01:31:50 wroathe joins (~wroathe@user/wroathe)
01:31:57 <sshine> I'm thinking... I already added -M800m, so could it be that it heap overflowed because of this memory constraint?
01:32:02 <Axman6> Panic at the GHC!
01:34:56 <jackdk> is it possible to use Liquid Haskell to require a function argument be injective? I haven't played in this space before, but a colleague would like to write `reverseMap :: Ord b => (a -> b) -> [a] -> Maybe (Map b a)` without the `Maybe`
01:35:47 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:7dab:1fa0:9cf6:a5de)
01:37:02 × ix quits (~ix@213.205.242.104) (Ping timeout: 250 seconds)
01:37:26 foul_owl joins (~kerry@94.140.8.89)
01:38:57 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
01:39:38 × absentia quits (~absentia@user/absentia) (Quit: WeeChat 3.4)
01:41:18 × prolic quits (~prolic@181.122.131.227) (Remote host closed the connection)
01:41:38 prolic joins (~prolic@181.122.131.227)
01:44:52 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
01:44:53 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
01:44:53 wroathe joins (~wroathe@user/wroathe)
01:45:34 alx741 joins (~alx741@157.100.197.240)
01:47:44 × prolic quits (~prolic@181.122.131.227) (Remote host closed the connection)
01:48:02 prolic joins (~prolic@181.122.131.227)
01:50:10 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 272 seconds)
01:50:28 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
01:50:54 wombat875 joins (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net)
01:52:22 jleightcap joins (~jleightca@user/jleightcap)
01:54:02 × prolic quits (~prolic@181.122.131.227) (Remote host closed the connection)
01:54:21 prolic joins (~prolic@181.122.131.227)
02:00:51 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
02:01:37 × jao quits (~jao@68.235.43.108) (Ping timeout: 240 seconds)
02:01:42 <sm> sshine: not saying it's 8.10.6 is at fault, but I'd use 8.10.7 to rule it out
02:03:06 <sm> and yes, you could try without/with a bigger -M. 800m doesn't sound enough to compile much
02:03:16 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
02:03:16 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
02:03:16 wroathe joins (~wroathe@user/wroathe)
02:04:05 jao joins (~jao@static-68-235-44-10.cust.tzulo.com)
02:04:06 <geekosaur> if I understood the earlier discussion right, they're trying to fit it into a small vps
02:04:18 <geekosaur> may not have enough memory+swap for more heap
02:06:45 × johnson- quits (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Ping timeout))
02:07:25 vysn joins (~vysn@user/vysn)
02:08:07 alx741 joins (~alx741@157.100.197.240)
02:08:14 × xsperry quits (~xs@user/xsperry) (Remote host closed the connection)
02:08:35 califax- joins (~califax@user/califx)
02:09:00 × TonyStone quits (~TonyStone@2603-7080-8607-c36a-c0be-54b3-db2c-85e9.res6.spectrum.com) (Remote host closed the connection)
02:09:02 xsperry joins (~xs@user/xsperry)
02:10:31 × jleightcap quits (~jleightca@user/jleightcap) (Quit: WeeChat 3.0)
02:10:47 jleightcap joins (~jleightca@73.61.8.75)
02:12:00 × califax quits (~califax@user/califx) (Ping timeout: 276 seconds)
02:12:00 califax- is now known as califax
02:12:04 <sshine> sm, I might try with 8.10.7! and yes, geekosaur, there's a memory constraint.
02:13:07 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
02:14:08 × prolic quits (~prolic@181.122.131.227) (Remote host closed the connection)
02:14:11 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
02:22:21 × Topsi quits (~Tobias@dyndsl-095-033-095-012.ewe-ip-backbone.de) (Read error: Connection reset by peer)
02:23:13 × tcard quits (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving)
02:26:37 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 256 seconds)
02:27:26 tcard joins (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp)
02:28:17 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
02:28:57 × mvk quits (~mvk@2607:fea8:5cdc:bf00::99e7) (Ping timeout: 240 seconds)
02:30:52 ix joins (~ix@213.205.242.104)
02:31:48 alx741 joins (~alx741@157.100.197.240)
02:34:10 gentauro joins (~gentauro@user/gentauro)
02:35:05 × Kaipi quits (~Kaiepi@156.34.47.253) (Remote host closed the connection)
02:35:05 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
02:35:34 Kaipi joins (~Kaiepi@156.34.47.253)
02:42:37 × alp quits (~alp@user/alp) (Ping timeout: 240 seconds)
02:45:20 × xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer)
02:51:29 × wombat875 quits (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) (Ping timeout: 256 seconds)
02:53:25 alx741 joins (~alx741@181.199.42.143)
02:54:48 mbuf joins (~Shakthi@223.178.90.64)
02:55:48 × jleightcap quits (~jleightca@73.61.8.75) (Remote host closed the connection)
02:56:02 jleightcap joins (~jleightca@73.61.8.75)
02:56:07 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
02:57:12 × xff0x quits (~xff0x@2001:1a81:5288:ea00:43ab:35e6:a5cd:7882) (Ping timeout: 250 seconds)
02:57:19 TonyStone joins (~TonyStone@2603-7080-8607-c36a-5c4e-92cc-80de-49d9.res6.spectrum.com)
02:57:30 × jleightcap quits (~jleightca@73.61.8.75) (Client Quit)
02:57:43 × jespada quits (~jespada@87.74.36.188) (Ping timeout: 256 seconds)
02:57:44 jleightcap joins (~jleightca@73.61.8.75)
02:58:55 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
02:59:01 xff0x joins (~xff0x@2001:1a81:52c4:8c00:1680:ae3c:6c22:79cc)
03:02:42 jespada joins (~jespada@90.254.246.194)
03:04:01 × lemonsni- quits (~lemonsnic@86.4.248.115) (Quit: ZNC 1.8.2 - https://znc.in)
03:07:53 × rembo10 quits (~rembo10@remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
03:08:57 rembo10 joins (~rembo10@remulis.com)
03:10:51 × TonyStone quits (~TonyStone@2603-7080-8607-c36a-5c4e-92cc-80de-49d9.res6.spectrum.com) (Remote host closed the connection)
03:10:52 zebrag joins (~chris@user/zebrag)
03:11:13 notzmv joins (~zmv@user/notzmv)
03:12:25 TonyStone joins (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
03:12:45 alx741 joins (~alx741@157.100.197.240)
03:15:14 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Read error: Connection reset by peer)
03:16:32 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
03:17:28 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
03:18:19 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
03:23:16 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
03:25:11 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 272 seconds)
03:25:11 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds)
03:25:16 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Remote host closed the connection)
03:26:04 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
03:26:31 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
03:28:21 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
03:28:21 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 272 seconds)
03:31:43 × td_ quits (~td@94.134.91.109) (Ping timeout: 256 seconds)
03:32:08 × cjb quits (~cjb@user/cjb) (Ping timeout: 260 seconds)
03:33:11 td_ joins (~td@muedsl-82-207-238-184.citykom.de)
03:33:54 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
03:33:54 alx741 joins (~alx741@157.100.197.240)
03:33:54 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
03:33:54 wroathe joins (~wroathe@user/wroathe)
03:36:33 × jleightcap quits (~jleightca@73.61.8.75) (Quit: WeeChat 3.0)
03:36:46 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
03:36:46 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
03:36:46 finn_elija is now known as FinnElija
03:36:48 jleightcap joins (~jleightca@73.61.8.75)
03:38:21 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 250 seconds)
03:40:20 × hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection)
03:40:50 hololeap joins (~hololeap@user/hololeap)
03:41:15 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Remote host closed the connection)
03:41:30 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
03:41:54 × lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in)
03:42:36 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
03:43:07 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
03:52:52 × lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in)
03:54:15 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
03:56:20 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Remote host closed the connection)
03:57:04 Null_A joins (~null_a@c-98-210-133-39.hsd1.ca.comcast.net)
03:58:05 Erutuon joins (~Erutuon@user/erutuon)
03:59:52 alx741 joins (~alx741@157.100.197.240)
04:00:00 × Taneb quits (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) (Quit: I seem to have stopped.)
04:01:10 Taneb joins (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0)
04:01:17 × foul_owl quits (~kerry@94.140.8.89) (Ping timeout: 240 seconds)
04:01:45 × Null_A quits (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Ping timeout: 250 seconds)
04:02:36 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
04:04:21 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
04:04:59 ProfSimm joins (~ProfSimm@87.227.196.109)
04:06:17 srk_ joins (~sorki@user/srk)
04:06:52 srk| joins (~sorki@user/srk)
04:09:17 × srk quits (~sorki@user/srk) (Ping timeout: 240 seconds)
04:09:35 srk| is now known as srk
04:10:25 × srk_ quits (~sorki@user/srk) (Ping timeout: 250 seconds)
04:13:05 × little_mac quits (~little_ma@2601:410:4300:3ce0:c9f2:b4e0:2bd7:fbaf) (Remote host closed the connection)
04:14:47 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
04:15:47 <ProfSimm> If we use the state monad to pass the entire state in and out of every 'statement', don't we force execution to be strictly linear. What would the state monad look like if each function can declare which parts of a state it wants
04:17:07 × TonyStone quits (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Quit: Leaving)
04:18:35 srk_ joins (~sorki@user/srk)
04:20:46 foul_owl joins (~kerry@217.114.38.246)
04:22:07 × srk quits (~sorki@user/srk) (Ping timeout: 250 seconds)
04:22:07 srk_ is now known as srk
04:22:16 × burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Remote host closed the connection)
04:22:22 alx741 joins (~alx741@157.100.197.240)
04:24:35 <mstksg> ProfSimm: there's the lazy state monad which can sort of flout that linearity
04:24:49 mstksg is now known as jle`
04:25:26 <jle`> but data dependency becomes driven by evaluation + laziness, which makes it a bit magical
04:25:40 <jle`> instead of explicitly talking about what parts you want, like what you mention
04:26:15 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
04:26:35 <ProfSimm> jle`: apperance of magic is more than fine, if there's solid approach behind it
04:26:52 <ProfSimm> jle`: how does it figure out what I want.
04:27:15 × ix quits (~ix@213.205.242.104) (Ping timeout: 272 seconds)
04:27:29 <jle`> the same way laziness works in let bindings, essentially
04:27:33 <ProfSimm> jle`: it can collect what I touched in the input and maybe what I changed in the output, but to do this it needs to run first
04:27:35 <jle`> since it's all fancy let bindings underneath
04:28:27 ix joins (~ix@213.205.242.108)
04:28:29 <jle`> the typical example is something like sequencing infinite actions, which is ok as long as you don't touch the part of the state that those actions touch afterwards
04:31:58 <jle`> hm, actually my example isn't quite right, the whole is still synced with the parts in an annoying way
04:32:15 TonyStone joins (~TonyStone@2603-7080-8607-c36a-d449-2685-1032-d72e.res6.spectrum.com)
04:32:40 × ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec)
04:34:34 <ProfSimm> Would you say it's correct to say in Haskell everything is a function
04:34:38 <ProfSimm> Like values are also a function
04:34:40 <ProfSimm> Everything is
04:34:51 pavonia_ joins (~user@user/siracusa)
04:35:14 <dolio> No.
04:35:18 <ProfSimm> Oh?
04:36:45 × pavonia quits (~user@user/siracusa) (Ping timeout: 272 seconds)
04:36:46 pavonia_ is now known as pavonia
04:37:49 <dolio> Lists, integers, .... Lots of things aren't functions.
04:38:34 <ProfSimm> dolio: well conceptually can't they be?
04:38:43 <ProfSimm> dolio: church ancoding and what not
04:38:47 <ProfSimm> encoding*
04:38:57 <ski> all functions take exactly one parameter
04:39:14 <ski> (dunno what Church has to do with it)
04:39:16 <dolio> They aren't, though.
04:39:28 × waleee quits (~waleee@h-98-128-229-110.NA.cust.bahnhof.se) (Ping timeout: 250 seconds)
04:40:30 pavonia_ joins (~user@user/siracusa)
04:41:49 pavonia__ joins (~user@user/siracusa)
04:42:25 alx741 joins (~alx741@157.100.197.240)
04:42:27 × pavonia quits (~user@user/siracusa) (Ping timeout: 272 seconds)
04:43:02 <ProfSimm> ski: well you probably know how church booleans work
04:43:08 pavonia__ is now known as pavonia
04:44:12 <ski> yes. but that doesn't mean values of type `Bool' are functions
04:44:48 <monochrom> If you are looking for an oversimplification slogan, here is mine: In Haskell, everything is interesting.
04:45:02 <ProfSimm> interesting to me means complex
04:45:08 <ProfSimm> I want everything to be boring
04:45:09 <Inst[m]> agleed
04:45:31 × pavonia_ quits (~user@user/siracusa) (Ping timeout: 250 seconds)
04:47:08 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
04:47:23 <ProfSimm> I use church encoding for things in my toy lang, so 5 > 6 encodes as (gt 5 6 then else) where then else is something you pass in to be returned for true and false
04:47:39 <ProfSimm> Boolean values are a mistake
04:48:11 <monochrom> Soon you're going to extend that to: All values are a mistake.
04:48:12 <jle`> ProfSimm: everything is like a function but only if you distort the definition of function to the point where it's no longer useful
04:48:23 <ProfSimm> monochrom: preach the truth
04:48:25 <jle`> specifically in Haskell, "function" has a specific technical definition
04:48:35 <jle`> and there are many non-function values in haskell
04:48:56 <jle`> so if you're asking about haskell in specific, the answer is no if you're talking about haskell functions
04:49:08 <ski> functions have a type that looks like `... -> ...'. if the type doesn't look like that, it's not a function
04:49:24 <ProfSimm> Is there an attempt to make a Haskell dialect where evaluating a function causes it to modify itself, as a way to achieve controlled mutability
04:49:41 <ski> modify, how ?
04:50:00 <ProfSimm> ski: f(arg) = (f', result)
04:50:08 <ProfSimm> ski: where f' becomes the function
04:50:09 <monochrom> Lazy evaluation does that.
04:50:30 <ski> maybe you'd like stream processors ?
04:50:34 <ProfSimm> ski: so technically every time you call it the result may differ
04:50:43 <ProfSimm> ski: how do streams work in Haskell
04:50:52 <ski> sounds a bit impractical, to me
04:51:01 <ProfSimm> ski: maybe
04:51:04 <jle`> ProfSimm: how does that work for something like (f x, f y)
04:51:09 <jle`> where evaluation order is undefined
04:51:26 <jle`> or f x might never even be evaluated
04:51:34 <jle`> snd (f x, f y)
04:51:38 <ProfSimm> jle`: I guess we need the order
04:51:53 <jle`> you mean, we need a language where evaluation order is defined?
04:52:46 <ProfSimm> What about partial order that ensures causality order for invoking the same function, but otherwise remains arbitrary
04:52:46 <ski> newtype SSP a b = MkSSP (a -> (b,SSP a b)) -- a synchronous stream processor produces a new one, when receiving an input and producing an output
04:53:12 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Remote host closed the connection)
04:53:40 <ProfSimm> ski: so the primary distinction here is that the processor is just returned, not reassigned back
04:54:01 <jle`> ProfSimm: how does something like snd (f x, f y) turn out?
04:54:01 Null_A joins (~null_a@c-98-210-133-39.hsd1.ca.comcast.net)
04:54:45 <ProfSimm> jle`: parsing the expression, seeing they have shared dependency, and evaluating them left to right. Otherwise, order remains undefined
04:55:17 <ski> "seeing they have shared dependency" -- how does that work ?
04:55:30 <ProfSimm> ski: referring to the same symbol
04:55:39 <jle`> i think you def ened to have explicit sequencing for this to be usable, and code readable really
04:55:52 <ski> what if we replace `f x' with `g x', where, in some other module, we have a definition `g = f' ?
04:56:17 <ProfSimm> ski: we remove references for mutable state
04:56:24 <ProfSimm> ski: it's in one place only
04:56:31 <ProfSimm> ski: immutable refs stay
04:56:38 <ski> (or, say `f' and `g' are run-time parameters, and some callers will pass the same function for them, while some won't)
04:57:03 phma_ joins (~phma@host-67-44-209-104.hnremote.net)
04:57:49 <ProfSimm> ski: same solution
04:57:50 × jleightcap quits (~jleightca@73.61.8.75) (Quit: WeeChat 3.0)
04:58:12 <jle`> if we're talking about a separate language where evaluation order is explicit (like ocaml or idris) then this could make sense
04:58:16 <ProfSimm> ski: basically we can keep all existing semantics and add mutability with move only semantics on top of it
04:58:35 <ski> i didn't understand your first solution, in the first place
04:58:38 <jle`> but tacking it on top of a language with non-strict semantics seems like an easy way to break expectations
04:58:59 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
04:58:59 <ProfSimm> ski: you can't have g = f, because f can exist only in one place. It's g or it's f, not both
04:59:01 <ski> ("we remove references for mutable state","it's in one place only","immutable refs stay" -- no idea what this means)
04:59:24 <ProfSimm> Linear types
04:59:28 <ski> are you saying `f' can only be called once ?
04:59:37 × phma quits (phma@2001:5b0:215a:a4e8:1976:ce9f:8bfa:70aa) (Ping timeout: 256 seconds)
04:59:49 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
04:59:51 × chenqisu1 quits (~chenqisu1@183.217.200.249) (Ping timeout: 256 seconds)
04:59:57 <ProfSimm> ski: yes, because after that you're calling f'
05:00:07 × foul_owl quits (~kerry@217.114.38.246) (Ping timeout: 256 seconds)
05:00:43 <ProfSimm> ski: basically we have mutabiilty where the only thing you can mutate is replace yourself
05:00:51 <ProfSimm> Might be interesting
05:00:56 deadmarshal joins (~deadmarsh@95.38.115.206)
05:01:06 <ski> so, you're saying one can't write (f x,f y) instead onemust write (f x,f' y) ?
05:01:20 <ProfSimm> ski: we reuse the identifier, but technically it's reassigned
05:01:58 <ski> "mutabiilty where the only thing you can mutate is replace yourself" -- still sounds like stream processors, to me ..
05:02:13 <ProfSimm> ski: sure
05:02:21 <ProfSimm> ski: it's how I started this. A stream
05:02:34 <dolio> It's called lazy evaluation. :þ
05:02:35 <ProfSimm> ski: but the stream can't overwrite itself
05:02:42 <ProfSimm> ski: or can it
05:02:54 <jle`> not implicitly
05:02:54 ski has no idea what that means
05:02:56 <jle`> explicitly
05:03:35 × Kaipi quits (~Kaiepi@156.34.47.253) (Remote host closed the connection)
05:03:37 × vysn quits (~vysn@user/vysn) (Ping timeout: 240 seconds)
05:04:09 Kaipi joins (~Kaiepi@156.34.47.253)
05:04:49 <ski> "we reuse the identifier, but technically it's reassigned" -- so why would `g = f' not be allowed, then ? we're just reusing the identifier, no ?
05:05:12 alx741 joins (~alx741@157.100.197.240)
05:05:19 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
05:05:33 vglfr joins (~vglfr@coupling.penchant.volia.net)
05:05:59 <ProfSimm> ski: when you type "f x", if is moved into the expression, calculated, and it returns two results. f' which is assigned back to f, and the function result, which is replaced in the expression
05:06:12 <ProfSimm> ski: so it's always move semantics, and consistent
05:06:31 <ProfSimm> ski: when you type g = f, you are moving either f to f or f to g
05:06:35 <ProfSimm> Can't be in both you didn't invoke it
05:06:45 <ProfSimm> Even if you did, it'd still be in one place
05:08:31 <ski> it still seems to me you're confusing implementation issues with language issues
05:08:32 <ProfSimm> ski: I don't know why but I keep imagining it as some sort of Feynman diagram
05:09:10 <ProfSimm> ski: you hit the function with an argument, it splits in two and each part is a replacement. One of the binding, the other for the expression
05:09:18 <ski> "f' which is assigned back to f" -- do you ever write this f' in source code, in the language ?
05:09:48 <ProfSimm> ski: no
05:09:57 meinside joins (uid24933@id-24933.helmsley.irccloud.com)
05:09:59 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
05:10:12 <ProfSimm> ski: I'm just trying to say f reproduced itself as a modified version of itself f'
05:10:20 <ProfSimm> which becomes f
05:10:48 <ProfSimm> ski: pure functions (classic Haskell) would reproduce themselves unmodified, so they emulate usual semantics
05:11:27 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
05:11:48 <ProfSimm> ski: we can actually define it like so. No arguments calls the function. If it's a pure function it returns a copy of itself, so g = f works as expected.
05:12:06 <ProfSimm> ski: if it's not a pure function, it throws. You need to use a move operator.
05:13:00 × lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in)
05:13:11 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
05:15:14 foul_owl joins (~kerry@207.244.125.36)
05:16:24 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
05:17:57 lavaman joins (~lavaman@98.38.249.169)
05:20:27 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
05:20:43 vglfr joins (~vglfr@coupling.penchant.volia.net)
05:21:43 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds)
05:22:59 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 272 seconds)
05:23:18 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
05:24:29 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
05:25:31 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
05:26:07 jleightcap joins (7bc4014b62@user/jleightcap)
05:26:20 alx741 joins (~alx741@157.100.197.240)
05:26:26 vglfr joins (~vglfr@coupling.penchant.volia.net)
05:27:16 × modnar quits (~modnar@shell.sonic.net) (Quit: No Ping reply in 180 seconds.)
05:29:36 modnar joins (~modnar@shell.sonic.net)
05:29:36 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
05:29:59 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
05:30:42 rusrushal13 joins (~rusrushal@103.85.18.34)
05:33:10 vglfr joins (~vglfr@coupling.penchant.volia.net)
05:35:24 × modnar quits (~modnar@shell.sonic.net) (Quit: No Ping reply in 180 seconds.)
05:35:54 jleightcap1 joins (~jleightca@73.61.8.75)
05:37:31 modnar joins (~modnar@shell.sonic.net)
05:37:37 phma_ is now known as phma
05:40:21 × jao quits (~jao@static-68-235-44-10.cust.tzulo.com) (Ping timeout: 256 seconds)
05:46:21 alx741 joins (~alx741@181.199.42.143)
05:51:46 × Boarders_ quits (sid425905@id-425905.lymington.irccloud.com) (*.net *.split)
05:51:46 × JSharp quits (sid4580@id-4580.lymington.irccloud.com) (*.net *.split)
05:51:46 × saolsen quits (sid26430@id-26430.lymington.irccloud.com) (*.net *.split)
05:51:46 × tapas quits (sid467876@id-467876.ilkley.irccloud.com) (*.net *.split)
05:51:46 × cbarrett quits (sid192934@id-192934.helmsley.irccloud.com) (*.net *.split)
05:51:46 × enemeth79 quits (sid309041@id-309041.lymington.irccloud.com) (*.net *.split)
05:51:46 × bjs quits (sid190364@user/bjs) (*.net *.split)
05:51:46 × sclv quits (sid39734@haskell/developer/sclv) (*.net *.split)
05:51:46 × mrianbloom quits (sid350277@id-350277.ilkley.irccloud.com) (*.net *.split)
05:51:46 × dmj` quits (sid72307@id-72307.hampstead.irccloud.com) (*.net *.split)
05:51:46 × acertain quits (sid470584@id-470584.hampstead.irccloud.com) (*.net *.split)
05:51:46 × gaze___ quits (sid387101@id-387101.helmsley.irccloud.com) (*.net *.split)
05:51:46 × chessai quits (sid225296@id-225296.lymington.irccloud.com) (*.net *.split)
05:51:46 × hongminhee quits (sid295@id-295.tinside.irccloud.com) (*.net *.split)
05:51:46 × glguy quits (x@libera/staff/glguy) (*.net *.split)
05:51:46 × tubogram4 quits (~tubogram@user/tubogram) (*.net *.split)
05:51:46 × Axman6 quits (~Axman6@user/axman6) (*.net *.split)
05:51:46 × jleightcap1 quits (~jleightca@73.61.8.75) (*.net *.split)
05:51:46 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (*.net *.split)
05:51:46 × Null_A quits (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (*.net *.split)
05:51:46 × td_ quits (~td@muedsl-82-207-238-184.citykom.de) (*.net *.split)
05:51:46 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (*.net *.split)
05:51:46 × dolio quits (~dolio@130.44.130.54) (*.net *.split)
05:51:46 × gabiruh_ quits (~gabiruh@vps19177.publiccloud.com.br) (*.net *.split)
05:51:46 × juhp quits (~juhp@128.106.188.82) (*.net *.split)
05:51:46 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (*.net *.split)
05:51:46 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (*.net *.split)
05:51:46 × Sgeo quits (~Sgeo@user/sgeo) (*.net *.split)
05:51:46 × cross quits (~cross@spitfire.i.gajendra.net) (*.net *.split)
05:51:46 × zaquest quits (~notzaques@5.130.79.72) (*.net *.split)
05:51:46 × qwedfg quits (~qwedfg@user/qwedfg) (*.net *.split)
05:51:46 × hueso quits (~root@user/hueso) (*.net *.split)
05:51:46 × dcoutts quits (~duncan@host109-149-1-225.range109-149.btcentralplus.com) (*.net *.split)
05:51:46 × anderson quits (~ande@user/anderson) (*.net *.split)
05:51:46 × ubert quits (~Thunderbi@p548c8cd6.dip0.t-ipconnect.de) (*.net *.split)
05:51:46 × wolfshappen quits (~waff@irc.furworks.de) (*.net *.split)
05:51:46 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (*.net *.split)
05:51:46 × shriekingnoise quits (~shrieking@201.231.16.156) (*.net *.split)
05:51:46 × marquis_andras quits (~marquis_a@124.170.163.166) (*.net *.split)
05:51:46 × MasseR4 quits (~MasseR@51.15.143.128) (*.net *.split)
05:51:47 × stilgart quits (~Christoph@chezlefab.net) (*.net *.split)
05:51:47 × superbil quits (~superbil@1-34-176-171.hinet-ip.hinet.net) (*.net *.split)
05:51:47 × aforemny quits (~aforemny@static.248.158.34.188.clients.your-server.de) (*.net *.split)
05:51:47 × ishutin quits (~ishutin@193-110-63-21.cable-modem.hdsnet.hu) (*.net *.split)
05:51:47 × Philonous quits (~Philonous@user/philonous) (*.net *.split)
05:51:47 × shachaf quits (~shachaf@user/shachaf) (*.net *.split)
05:51:47 × maerwald quits (~maerwald@user/maerwald) (*.net *.split)
05:51:47 × red-snail quits (~snail@static.151.210.203.116.clients.your-server.de) (*.net *.split)
05:51:47 × aria quits (sid380617@lymington.irccloud.com) (*.net *.split)
05:51:47 × ncopa quits (~ncopa@alpine/developer/ncopa) (*.net *.split)
05:51:47 × russruss quits (~russruss@my.russellmcc.com) (*.net *.split)
05:51:47 × robertm quits (~robertm@lattice.rojoma.com) (*.net *.split)
05:51:47 × swistak quits (~swistak@185.21.216.141) (*.net *.split)
05:51:47 × wz1000 quits (~zubin@static.11.113.47.78.clients.your-server.de) (*.net *.split)
05:51:47 × stvc quits (~stvc@192.241.166.39) (*.net *.split)
05:51:47 × cls quits (~cls@chalk.lubutu.com) (*.net *.split)
05:51:47 × kmein quits (~weechat@user/kmein) (*.net *.split)
05:51:47 × c_wraith quits (~c_wraith@adjoint.us) (*.net *.split)
05:51:47 × statusfailed quits (~statusfai@statusfailed.com) (*.net *.split)
05:51:47 × canta quits (~canta@user/canta) (*.net *.split)
05:51:47 × dminuoso quits (~dminuoso@user/dminuoso) (*.net *.split)
05:51:47 × juri_ quits (~juri@178.63.35.222) (*.net *.split)
05:51:47 × tolt quits (~weechat-h@li219-154.members.linode.com) (*.net *.split)
05:51:47 × mmaruseacph2 quits (~mihai@198.199.100.72) (*.net *.split)
05:51:47 × meejah quits (~meejah@rutas.meejah.ca) (*.net *.split)
05:51:47 × andjjj23_ quits (~irc@107.170.228.47) (*.net *.split)
05:51:47 × neverwas quits (jpneverwas@swissbox.unperson.link) (*.net *.split)
05:51:47 × n3t quits (n3t@user/n3t) (*.net *.split)
05:51:47 × loonycyborg quits (~loonycybo@wesnoth/developer/loonycyborg) (*.net *.split)
05:51:47 × carter quits (sid14827@helmsley.irccloud.com) (*.net *.split)
05:51:47 × TMA quits (~tma@twin.jikos.cz) (*.net *.split)
05:51:47 × hubvu_ quits (sid495858@tinside.irccloud.com) (*.net *.split)
05:51:47 × jtmar quits (~james@jtmar.me) (*.net *.split)
05:51:47 × kawpuh quits (~kawpuh@66.42.81.80) (*.net *.split)
05:51:59 gaze___ joins (sid387101@id-387101.helmsley.irccloud.com)
05:52:02 enemeth79 joins (sid309041@id-309041.lymington.irccloud.com)
05:52:06 saolsen joins (sid26430@id-26430.lymington.irccloud.com)
05:52:11 Boarders_ joins (sid425905@id-425905.lymington.irccloud.com)
05:52:12 cbarrett joins (sid192934@2a03:5180:f:1::2:f1a6)
05:52:19 chessai joins (sid225296@id-225296.lymington.irccloud.com)
05:52:22 hongminhee joins (sid295@2a03:5180:f::127)
05:52:22 bjs joins (sid190364@user/bjs)
05:52:25 jleightcap1 joins (~jleightca@73.61.8.75)
05:52:25 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
05:52:25 Null_A joins (~null_a@c-98-210-133-39.hsd1.ca.comcast.net)
05:52:25 td_ joins (~td@muedsl-82-207-238-184.citykom.de)
05:52:25 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
05:52:25 dolio joins (~dolio@130.44.130.54)
05:52:25 gabiruh_ joins (~gabiruh@vps19177.publiccloud.com.br)
05:52:25 juhp joins (~juhp@128.106.188.82)
05:52:25 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
05:52:25 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
05:52:25 Sgeo joins (~Sgeo@user/sgeo)
05:52:25 cross joins (~cross@spitfire.i.gajendra.net)
05:52:25 zaquest joins (~notzaques@5.130.79.72)
05:52:25 qwedfg joins (~qwedfg@user/qwedfg)
05:52:25 hueso joins (~root@user/hueso)
05:52:25 dcoutts joins (~duncan@host109-149-1-225.range109-149.btcentralplus.com)
05:52:25 anderson joins (~ande@user/anderson)
05:52:25 ubert joins (~Thunderbi@p548c8cd6.dip0.t-ipconnect.de)
05:52:25 wolfshappen joins (~waff@irc.furworks.de)
05:52:25 Axman6 joins (~Axman6@user/axman6)
05:52:25 tubogram4 joins (~tubogram@user/tubogram)
05:52:25 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
05:52:25 shriekingnoise joins (~shrieking@201.231.16.156)
05:52:25 marquis_andras joins (~marquis_a@124.170.163.166)
05:52:25 MasseR4 joins (~MasseR@51.15.143.128)
05:52:25 stilgart joins (~Christoph@chezlefab.net)
05:52:25 superbil joins (~superbil@1-34-176-171.hinet-ip.hinet.net)
05:52:25 kawpuh joins (~kawpuh@66.42.81.80)
05:52:25 jtmar joins (~james@jtmar.me)
05:52:25 hubvu_ joins (sid495858@tinside.irccloud.com)
05:52:25 TMA joins (~tma@twin.jikos.cz)
05:52:25 carter joins (sid14827@helmsley.irccloud.com)
05:52:25 loonycyborg joins (~loonycybo@wesnoth/developer/loonycyborg)
05:52:25 n3t joins (n3t@user/n3t)
05:52:25 neverwas joins (jpneverwas@swissbox.unperson.link)
05:52:25 andjjj23_ joins (~irc@107.170.228.47)
05:52:25 meejah joins (~meejah@rutas.meejah.ca)
05:52:25 mmaruseacph2 joins (~mihai@198.199.100.72)
05:52:25 tolt joins (~weechat-h@li219-154.members.linode.com)
05:52:25 juri_ joins (~juri@178.63.35.222)
05:52:25 dminuoso joins (~dminuoso@user/dminuoso)
05:52:25 canta joins (~canta@user/canta)
05:52:25 statusfailed joins (~statusfai@statusfailed.com)
05:52:25 c_wraith joins (~c_wraith@adjoint.us)
05:52:25 kmein joins (~weechat@user/kmein)
05:52:25 cls joins (~cls@chalk.lubutu.com)
05:52:25 calcium.libera.chat sets mode +o Axman6
05:52:25 stvc joins (~stvc@192.241.166.39)
05:52:25 wz1000 joins (~zubin@static.11.113.47.78.clients.your-server.de)
05:52:25 swistak joins (~swistak@185.21.216.141)
05:52:25 robertm joins (~robertm@lattice.rojoma.com)
05:52:25 russruss joins (~russruss@my.russellmcc.com)
05:52:25 ncopa joins (~ncopa@alpine/developer/ncopa)
05:52:25 aria joins (sid380617@lymington.irccloud.com)
05:52:25 red-snail joins (~snail@static.151.210.203.116.clients.your-server.de)
05:52:25 maerwald joins (~maerwald@user/maerwald)
05:52:25 shachaf joins (~shachaf@user/shachaf)
05:52:25 Philonous joins (~Philonous@user/philonous)
05:52:25 ishutin joins (~ishutin@193-110-63-21.cable-modem.hdsnet.hu)
05:52:25 aforemny joins (~aforemny@static.248.158.34.188.clients.your-server.de)
05:52:25 glguy joins (x@libera/staff/glguy)
05:52:34 dmj` joins (sid72307@id-72307.hampstead.irccloud.com)
05:52:39 tapas joins (sid467876@id-467876.ilkley.irccloud.com)
05:52:41 sclv joins (sid39734@haskell/developer/sclv)
05:52:49 acertain joins (sid470584@2a03:5180:f:4::7:2e38)
05:52:52 mrianbloom joins (sid350277@2a03:5180:f:3::5:5845)
05:53:06 JSharp joins (sid4580@2a03:5180:f:2::11e4)
05:55:03 × kaol quits (~kaol@94-237-42-30.nl-ams1.upcloud.host) (*.net *.split)
05:55:03 × adium quits (adium@user/adium) (*.net *.split)
05:55:03 × nckx quits (~nckx@tobias.gr) (*.net *.split)
05:55:03 × edwtjo quits (~edwtjo@user/edwtjo) (*.net *.split)
05:55:03 × Aleksejs quits (~Aleksejs@haskell.lv) (*.net *.split)
05:55:11 kaol joins (~kaol@94-237-42-30.nl-ams1.upcloud.host)
05:55:19 edwtjo joins (~edwtjo@h-109-228-137-133.A213.priv.bahnhof.se)
05:55:19 × edwtjo quits (~edwtjo@h-109-228-137-133.A213.priv.bahnhof.se) (Changing host)
05:55:19 edwtjo joins (~edwtjo@user/edwtjo)
05:55:38 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
05:56:46 nckx joins (~nckx@tobias.gr)
05:57:00 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
05:57:19 jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
05:57:29 adium joins (adium@user/adium)
05:58:19 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds)
05:58:32 <ProfSimm> https://www.youtube.com/watch?v=5mxKEYzBAVk
05:58:43 <ProfSimm> "Linear Haskell: Practical Linearity in a Higher-Order Polymorphic Language (Haskell eXchange 2018)"
05:58:51 <ProfSimm> This is a bit like what I'm thinking about
05:58:58 × hololeap quits (~hololeap@user/hololeap) (*.net *.split)
05:58:58 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (*.net *.split)
05:58:58 × califax quits (~califax@user/califx) (*.net *.split)
05:58:58 × nunggu quits (~q@user/nunggu) (*.net *.split)
05:58:58 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (*.net *.split)
05:58:58 × jpds quits (~jpds@gateway/tor-sasl/jpds) (*.net *.split)
05:58:58 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (*.net *.split)
05:58:58 × stiell quits (~stiell@gateway/tor-sasl/stiell) (*.net *.split)
05:58:58 × alMalsamo quits (~alMalsamo@gateway/tor-sasl/almalsamo) (*.net *.split)
05:58:58 × HotblackDesiato quits (~HotblackD@gateway/tor-sasl/hotblackdesiato) (*.net *.split)
05:58:58 × azimut quits (~azimut@gateway/tor-sasl/azimut) (*.net *.split)
05:58:58 × wyrd quits (~wyrd@gateway/tor-sasl/wyrd) (*.net *.split)
05:58:58 × tiferrei2000 quits (~tiferrei@user/tiferrei) (*.net *.split)
05:58:58 × LiaoTao quits (~LiaoTao@gateway/tor-sasl/liaotao) (*.net *.split)
05:58:58 × chexum quits (~quassel@gateway/tor-sasl/chexum) (*.net *.split)
05:58:58 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (*.net *.split)
05:58:59 kanin joins (~kanin@112.41.64.39)
05:59:41 <ProfSimm> ski: thoughts? ^
06:00:19 azimut joins (~azimut@gateway/tor-sasl/azimut)
06:00:19 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
06:00:19 califax joins (~califax@user/califx)
06:00:20 chexum joins (~quassel@gateway/tor-sasl/chexum)
06:00:24 LiaoTao joins (~LiaoTao@gateway/tor-sasl/liaotao)
06:00:26 hololeap joins (~hololeap@user/hololeap)
06:00:26 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
06:00:30 tiferrei joins (~tiferrei@user/tiferrei)
06:00:30 stiell joins (~stiell@gateway/tor-sasl/stiell)
06:00:33 jpds joins (~jpds@gateway/tor-sasl/jpds)
06:00:40 ChaiTRex joins (~ChaiTRex@user/chaitrex)
06:00:40 nunggu joins (~q@user/nunggu)
06:01:02 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
06:01:17 HotblackDesiato joins (~HotblackD@gateway/tor-sasl/hotblackdesiato)
06:03:57 × deadmarshal quits (~deadmarsh@95.38.115.206) (Ping timeout: 250 seconds)
06:04:16 wyrd joins (~wyrd@gateway/tor-sasl/wyrd)
06:04:18 alMalsamo joins (~alMalsamo@gateway/tor-sasl/almalsamo)
06:05:15 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
06:05:27 vglfr joins (~vglfr@coupling.penchant.volia.net)
06:09:14 × rusrushal13 quits (~rusrushal@103.85.18.34) (Quit: Client closed)
06:12:44 alx741 joins (~alx741@157.100.197.240)
06:13:28 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
06:13:28 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
06:14:51 vglfr joins (~vglfr@coupling.penchant.volia.net)
06:17:22 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
06:19:15 × jleightcap1 quits (~jleightca@73.61.8.75) (Quit: WeeChat 3.0)
06:19:28 jleightcap1 joins (~jleightca@73.61.8.75)
06:21:10 × jleightcap1 quits (~jleightca@73.61.8.75) (Client Quit)
06:21:24 jleightcap1 joins (~jleightca@73.61.8.75)
06:22:52 × Null_A quits (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Remote host closed the connection)
06:23:07 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
06:24:43 × jleightcap1 quits (~jleightca@73.61.8.75) (Client Quit)
06:24:58 jleightcap1 joins (~jleightca@73.61.8.75)
06:25:27 × jleightcap1 quits (~jleightca@73.61.8.75) (Client Quit)
06:30:09 k8yun joins (~k8yun@user/k8yun)
06:32:15 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:32:32 <ProfSimm> https://www.youtube.com/watch?v=WZ_0FSGeq2s
06:32:41 <ProfSimm> "Haskell 2021 - Why Functional Programming with Linear Types Matters"
06:32:51 <ProfSimm> "Pizza delivery is not pizza duplication"
06:33:03 × kanin quits (~kanin@112.41.64.39) (Ping timeout: 256 seconds)
06:33:40 shapr` joins (~user@pool-173-73-44-186.washdc.fios.verizon.net)
06:33:40 alx741 joins (~alx741@157.100.197.240)
06:35:17 × shapr quits (~user@pool-173-73-44-186.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
06:38:14 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
06:40:53 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
06:41:49 vglfr joins (~vglfr@coupling.penchant.volia.net)
06:42:19 deadmarshal joins (~deadmarsh@95.38.115.206)
06:44:10 fef joins (~thedawn@user/thedawn)
06:54:10 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 272 seconds)
06:56:26 Erutuon joins (~Erutuon@user/erutuon)
06:56:57 × mrkajetanp quits (~mrkajetan@88.98.245.28) (Ping timeout: 240 seconds)
06:57:08 alx741 joins (~alx741@181.199.42.143)
06:57:30 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Remote host closed the connection)
07:00:21 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
07:03:03 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
07:03:27 geekosaur joins (~geekosaur@xmonad/geekosaur)
07:04:47 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
07:06:40 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
07:09:10 × shriekingnoise quits (~shrieking@201.231.16.156) (Quit: Quit)
07:09:29 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
07:09:38 vglfr joins (~vglfr@coupling.penchant.volia.net)
07:11:10 × cynomys quits (~cynomys@user/cynomys) (Quit: leaving)
07:11:29 cynomys joins (~cynomys@user/cynomys)
07:13:54 michalz joins (~michalz@185.246.204.89)
07:15:02 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
07:15:14 Nahra joins (~user@static.161.95.99.88.clients.your-server.de)
07:17:22 alx741 joins (~alx741@157.100.197.240)
07:18:44 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Remote host closed the connection)
07:18:59 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
07:19:36 × shapr` quits (~user@pool-173-73-44-186.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
07:19:44 jakalx parts (~jakalx@base.jakalx.net) ()
07:25:31 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
07:27:14 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
07:29:44 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
07:29:56 vglfr joins (~vglfr@coupling.penchant.volia.net)
07:31:47 kanin joins (~kanin@112.41.64.39)
07:31:47 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
07:32:39 vglfr joins (~vglfr@coupling.penchant.volia.net)
07:32:44 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
07:34:59 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
07:34:59 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
07:34:59 wroathe joins (~wroathe@user/wroathe)
07:38:34 × k8yun quits (~k8yun@user/k8yun) (Quit: Leaving)
07:39:32 lortabac joins (~lortabac@2a01:e0a:541:b8f0:9c11:561e:c86d:bf05)
07:40:25 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 272 seconds)
07:42:19 max22- joins (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr)
07:44:55 alx741 joins (~alx741@157.100.197.240)
07:46:33 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Remote host closed the connection)
07:48:40 jakalx joins (~jakalx@base.jakalx.net)
07:49:57 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
07:50:33 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
07:51:30 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
07:51:46 cfricke joins (~cfricke@user/cfricke)
07:52:06 vglfr joins (~vglfr@coupling.penchant.volia.net)
07:52:36 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 240 seconds)
07:53:53 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
07:56:15 gehmehgeh joins (~user@user/gehmehgeh)
07:57:46 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.3)
07:57:59 kuribas joins (~user@ptr-25vy0i9o6zfp0yko61a.18120a2.ip6.access.telenet.be)
07:58:50 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
07:59:01 cfricke joins (~cfricke@user/cfricke)
07:59:50 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
08:02:12 × deadmarshal quits (~deadmarsh@95.38.115.206) (Ping timeout: 240 seconds)
08:03:28 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Remote host closed the connection)
08:04:45 zeenk joins (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5)
08:07:38 coot joins (~coot@213.134.190.95)
08:08:21 alx741 joins (~alx741@157.100.197.240)
08:09:19 <dminuoso> Is there a formal or well-accepted name for a function with multiple definitions?
08:09:30 mc47 joins (~mc47@xmonad/TheMC47)
08:09:34 <dminuoso> i.e. `f <pat_1> = ...; f <pat_2> = ...`
08:09:53 <dminuoso> Perhaps even from mathematics?
08:10:24 <Franciman> «function defined by cases»
08:10:36 <Franciman> (?)
08:12:47 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
08:13:12 <kuribas> dminuoso: multivalued function?
08:13:29 <Franciman> one usually defines a multivalued function from X to Y
08:13:33 <Franciman> as a function from X to the powerset of Y
08:13:51 <Franciman> for some definition of «usually» lol
08:14:00 briandaed joins (~root@109.95.142.92.r.toneticgroup.pl)
08:14:11 <kuribas> if it's not multivalued it's just a function.
08:14:32 × max22- quits (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) (Remote host closed the connection)
08:14:49 <kuribas> multiple cases is not multiple definitions.
08:15:03 <kuribas> it's one definition with multiple cases.
08:15:17 <Franciman> multiple values is not multiple definitions either
08:15:20 max22- joins (~maxime@2a01cb08833598004c8de2e630f51a33.ipv6.abo.wanadoo.fr)
08:15:31 <Franciman> so not sure
08:15:45 <kuribas> true
08:15:51 rusrushal13 joins (~rusrushal@103.85.18.34)
08:15:58 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
08:15:59 <Franciman> i tought `f <pat_1> = ...; f <pat_2> = ...` qualified as a single definition with multiple cases
08:16:12 vysn joins (~vysn@user/vysn)
08:16:43 <Franciman> ah another possibility is an overloaded function
08:16:55 <Franciman> if you have different definitions, for example like for (<>) in Data.Semigroup
08:17:16 <dminuoso> Mmm
08:17:52 deadmarshal joins (~deadmarsh@95.38.115.206)
08:17:52 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
08:18:03 vglfr joins (~vglfr@coupling.penchant.volia.net)
08:18:09 <[exa]> dminuoso: in THIH these are called alternatives
08:18:51 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
08:21:08 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
08:21:09 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
08:21:36 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
08:22:07 vglfr joins (~vglfr@coupling.penchant.volia.net)
08:25:48 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 240 seconds)
08:26:30 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Read error: Connection reset by peer)
08:27:02 × litharge quits (litharge@libera/bot/litharge) (Quit: upgrade)
08:28:33 litharge joins (litharge@libera/bot/litharge)
08:29:29 chele joins (~chele@user/chele)
08:30:10 cosimone joins (~user@93-44-187-99.ip98.fastwebnet.it)
08:30:41 alx741 joins (~alx741@181.199.42.143)
08:32:39 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:34:23 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
08:40:13 alp joins (~alp@user/alp)
08:41:37 × cosimone quits (~user@93-44-187-99.ip98.fastwebnet.it) (Remote host closed the connection)
08:42:26 random-jellyfish joins (~random-je@user/random-jellyfish)
08:43:25 acidjnk joins (~acidjnk@p200300d0c705758148c438f13433725d.dip0.t-ipconnect.de)
08:44:02 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
08:44:40 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
08:45:38 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
08:46:48 fendor joins (~fendor@91.141.33.218.wireless.dyn.drei.com)
08:48:29 machinedgod joins (~machinedg@24.105.81.50)
08:48:58 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
08:51:08 alx741 joins (~alx741@157.100.197.240)
08:54:58 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
08:55:03 mastarija joins (~mastarija@2a05:4f46:e04:6000:7887:96ce:d1f2:e42d)
08:56:21 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
08:56:23 <lortabac> dminuoso: I would call it a function with multiple equations
08:57:10 <dminuoso> lortabac: Ah I like that.
08:57:16 <lortabac> but it's just syntactic sugar for (potentially nested) case expressions, so whatever formal definitions you are looking for, maybe you should find it for case expressions
09:00:06 × jchia[m] quits (~jchiamatr@2001:470:69fc:105::c50b) (Quit: You have been kicked for being idle)
09:00:08 × Nate[m] quits (~m52957mat@2001:470:69fc:105::1:591a) (Quit: You have been kicked for being idle)
09:00:08 × jesser[m] quits (~jessermat@2001:470:69fc:105::d5ae) (Quit: You have been kicked for being idle)
09:01:00 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 240 seconds)
09:06:44 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:7dab:1fa0:9cf6:a5de) (Remote host closed the connection)
09:12:31 alx741 joins (~alx741@181.199.42.143)
09:13:27 × vysn quits (~vysn@user/vysn) (Ping timeout: 252 seconds)
09:13:44 <ProfSimm> Is there a short way to have an expression with a where clause inline for a lamdba
09:13:54 <ProfSimm> (expr where definitions)
09:14:13 <lortabac> ProfSimm: a let expression?
09:15:02 <ProfSimm> lortabac: why let? I want where
09:15:35 <lortabac> you can't have a where in a lambda, but you can have a let
09:15:44 <lortabac> (unless I misunderstood your question)
09:15:54 <ProfSimm> You understood it. thanks
09:16:01 <ProfSimm> Is there a reason for this limitatin
09:16:07 <ProfSimm> ion*
09:16:50 <lortabac> I don't know, maybe the syntax would be too complicated/ambiguous
09:17:00 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
09:18:55 × ix quits (~ix@213.205.242.108) (Read error: Connection reset by peer)
09:19:14 razetime joins (~quassel@49.207.198.36)
09:19:40 lavaman joins (~lavaman@98.38.249.169)
09:21:09 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 252 seconds)
09:22:25 <dminuoso> Well if you insist on a where clause, you can use `case () of _ -> ...; where <declaration-group>`
09:22:32 <dminuoso> i.e
09:22:58 <dminuoso> `\x -> case () of _ -> <expr>\n where <declaration-group>`
09:23:03 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
09:23:18 <dminuoso> A bit more idiomatic might using a named helper function (say `go`), then you have your where decl group
09:23:43 <dminuoso> i.e.`f x y = foldr go x y where go = ...; blah = ...;`
09:23:54 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
09:28:36 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
09:28:47 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
09:29:07 nunggu_ joins (~q@user/nunggu)
09:29:39 `2jt joins (~jtomas@130.red-88-22-46.staticip.rima-tde.net)
09:30:01 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
09:30:16 × nunggu quits (~q@user/nunggu) (Ping timeout: 240 seconds)
09:30:44 × random-jellyfish quits (~random-je@user/random-jellyfish) (Ping timeout: 256 seconds)
09:31:36 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
09:32:35 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
09:33:55 alx741 joins (~alx741@181.199.42.143)
09:34:18 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
09:34:36 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 240 seconds)
09:34:38 <phma> I'm trying to use tasty. I added a line "import Test.Tasty.HUnit", and similarly for QuickCheck and SmallCheck, as in the example, but got "Could not find module" errors for all of them.
09:37:04 __monty__ joins (~toonn@user/toonn)
09:37:09 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:7dab:1fa0:9cf6:a5de)
09:37:45 mrkajetanp joins (~mrkajetan@88.98.245.28)
09:38:14 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
09:41:24 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:7dab:1fa0:9cf6:a5de) (Ping timeout: 240 seconds)
09:42:31 <[exa]> phma: what command is generating the "Could not find module" error? I assume you're building with cabal right?
09:42:55 <phma> stack test
09:43:17 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
09:43:20 <[exa]> do you have tasty listed in dependencies?
09:43:48 <phma> build-depends: base, tasty
09:44:17 <phma> that's under "test-suite test"
09:45:08 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
09:45:27 <[exa]> ah yes, the HUnit compatibility requires `tasty-hunit-compat` package
09:45:39 <[exa]> you may check eg here: https://hoogle.haskell.org/?hoogle=Test.Tasty.HUnit
09:46:41 olle joins (~olle@i5E866D85.versanet.de)
09:47:07 <[exa]> (or maybe just tasty-hunit, I didnt really use it)
09:47:07 × bliminse quits (~bliminse@host86-158-241-239.range86-158.btcentralplus.com) (Quit: leaving)
09:47:43 <phma> do I put that in build-depends or in an import statement?
09:48:07 <[exa]> in the test build depends
09:49:55 <phma> I still get the errors on SmallCheck and QuickCheck
09:51:47 <phma> added tasty-quickcheck to depends, compiling...
09:52:13 <[exa]> might need additional depends, yes. Using hoogle is likely the simplest way to see the package names you need to enable the required modules
09:52:25 bliminse joins (~bliminse@host86-158-241-239.range86-158.btcentralplus.com)
09:55:18 alx741 joins (~alx741@181.199.42.143)
09:56:23 ix joins (~ix@2a02:8010:674f:0:a71f:d8ff:17eb:65ba)
09:58:06 <phma> I got an error in test.hs. Now to delete the sample tests and add my own.
09:58:52 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
10:00:49 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
10:04:16 geekosaur joins (~geekosaur@xmonad/geekosaur)
10:05:42 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
10:09:15 jgeerds joins (~jgeerds@55d4a547.access.ecotel.net)
10:10:12 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 240 seconds)
10:13:02 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Ping timeout: 272 seconds)
10:13:32 zincy_ joins (~zincy@2a00:23c8:970c:4801:39f9:90f7:922:e73b)
10:13:38 vglfr joins (~vglfr@coupling.penchant.volia.net)
10:15:32 alx741 joins (~alx741@157.100.197.240)
10:15:49 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
10:15:50 DNH joins (~DNH@2a02:8108:1100:16d8:bca1:a272:d62b:37ab)
10:17:48 × zincy_ quits (~zincy@2a00:23c8:970c:4801:39f9:90f7:922:e73b) (Ping timeout: 252 seconds)
10:19:39 geekosaur joins (~geekosaur@xmonad/geekosaur)
10:19:39 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
10:22:12 MajorBiscuit joins (~MajorBisc@wlan-145-94-218-48.wlan.tudelft.nl)
10:27:00 little_mac joins (~little_ma@2601:410:4300:3ce0:4084:84c5:95c2:a194)
10:27:16 cstml joins (~cstml@user/cstml)
10:27:59 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
10:28:43 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:29:21 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 252 seconds)
10:31:08 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
10:37:51 alx741 joins (~alx741@157.100.197.240)
10:40:55 × pooryorick quits (~pooryoric@87-119-174-173.tll.elisa.ee) (Ping timeout: 272 seconds)
10:41:12 pooryorick joins (~pooryoric@87-119-174-173.tll.elisa.ee)
10:41:37 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
10:41:41 × zeenk quits (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) (Quit: Konversation terminated!)
10:44:00 × DNH quits (~DNH@2a02:8108:1100:16d8:bca1:a272:d62b:37ab) (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:45:06 mmhat joins (~mmh@55d4de53.access.ecotel.net)
10:47:36 × razetime quits (~quassel@49.207.198.36) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
10:51:52 × cstml quits (~cstml@user/cstml) (Quit: Connection closed)
10:59:13 alx741 joins (~alx741@181.199.42.143)
11:00:24 CiaoSen joins (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
11:00:36 × little_mac quits (~little_ma@2601:410:4300:3ce0:4084:84c5:95c2:a194) (Ping timeout: 240 seconds)
11:01:52 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
11:01:56 × fef quits (~thedawn@user/thedawn) (Remote host closed the connection)
11:02:21 azimut joins (~azimut@gateway/tor-sasl/azimut)
11:02:24 fef joins (~thedawn@user/thedawn)
11:02:41 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
11:07:15 Lycurgus joins (~juan@98.4.112.204)
11:11:53 × mastarija quits (~mastarija@2a05:4f46:e04:6000:7887:96ce:d1f2:e42d) (Quit: Leaving)
11:13:32 × rusrushal13 quits (~rusrushal@103.85.18.34) (Quit: Client closed)
11:19:29 alx741 joins (~alx741@157.100.197.240)
11:22:42 × CiaoSen quits (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
11:23:11 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
11:23:55 little_mac joins (~little_ma@2601:410:4300:3ce0:4084:84c5:95c2:a194)
11:24:58 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
11:38:19 × forell quits (~forell@user/forell) (Quit: ZNC - https://znc.in)
11:39:06 forell joins (~forell@user/forell)
11:39:44 alx741 joins (~alx741@157.100.197.240)
11:44:13 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
11:44:42 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
11:45:01 ProfSimm joins (~ProfSimm@87.227.196.109)
11:48:41 × deadmarshal quits (~deadmarsh@95.38.115.206) (Ping timeout: 272 seconds)
11:52:27 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
11:52:29 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
11:52:47 ProfSimm joins (~ProfSimm@87.227.196.109)
11:53:50 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
11:55:50 vysn joins (~vysn@user/vysn)
11:58:20 Pickchea joins (~private@user/pickchea)
11:59:00 × alp quits (~alp@user/alp) (Ping timeout: 252 seconds)
12:00:28 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
12:01:38 CiaoSen joins (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
12:02:02 alx741 joins (~alx741@157.100.197.240)
12:02:14 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
12:03:57 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
12:04:34 alp joins (~alp@user/alp)
12:04:46 DNH joins (~DNH@2a02:8108:1100:16d8:bca1:a272:d62b:37ab)
12:04:55 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
12:06:13 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
12:08:09 kayprish joins (~kayprish@cable-24-135-254-227.dynamic.sbb.rs)
12:10:55 gurkenglas joins (~gurkengla@dslb-188-096-121-068.188.096.pools.vodafone-ip.de)
12:14:24 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
12:16:24 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
12:19:42 × jgeerds quits (~jgeerds@55d4a547.access.ecotel.net) (Ping timeout: 272 seconds)
12:24:35 alx741 joins (~alx741@181.199.42.143)
12:24:44 × gurkenglas quits (~gurkengla@dslb-188-096-121-068.188.096.pools.vodafone-ip.de) (Quit: leaving)
12:25:57 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
12:26:24 × Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt)
12:26:51 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
12:33:01 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds)
12:34:12 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
12:34:28 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
12:37:36 × fef quits (~thedawn@user/thedawn) (Ping timeout: 240 seconds)
12:41:18 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:42:27 × cynomys quits (~cynomys@user/cynomys) (Ping timeout: 252 seconds)
12:50:36 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
12:50:44 alx741 joins (~alx741@157.100.197.240)
12:50:49 fef joins (~thedawn@user/thedawn)
12:51:18 gehmehgeh joins (~user@user/gehmehgeh)
12:53:07 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
12:54:06 ardell joins (~ardell@user/ardell)
13:01:21 neurocyte0917090 joins (~neurocyte@IP-213188126186.dynamic.medianet-world.de)
13:01:21 × neurocyte0917090 quits (~neurocyte@IP-213188126186.dynamic.medianet-world.de) (Changing host)
13:01:21 neurocyte0917090 joins (~neurocyte@user/neurocyte)
13:03:21 × kayprish quits (~kayprish@cable-24-135-254-227.dynamic.sbb.rs) (Ping timeout: 252 seconds)
13:05:52 × shailangsa quits (~shailangs@host86-186-127-164.range86-186.btcentralplus.com) ()
13:10:06 alx741 joins (~alx741@181.199.42.143)
13:13:39 jao joins (~jao@68.235.43.172)
13:13:39 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
13:13:50 deadmarshal joins (~deadmarsh@95.38.115.206)
13:18:09 × acidjnk quits (~acidjnk@p200300d0c705758148c438f13433725d.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
13:23:03 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds)
13:24:48 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
13:30:20 alx741 joins (~alx741@157.100.197.240)
13:33:11 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
13:36:26 jm_jj joins (~jmjj@mobile-user-c3a5cc-243.dhcp.inet.fi)
13:38:45 acidjnk joins (~acidjnk@p200300d0c705758148c438f13433725d.dip0.t-ipconnect.de)
13:38:59 fendor_ joins (~fendor@178.165.161.137.wireless.dyn.drei.com)
13:39:25 × jao quits (~jao@68.235.43.172) (Ping timeout: 240 seconds)
13:39:41 gaff joins (~gaff@49.207.221.64)
13:40:26 <gaff> read "5\f\t\f\f\f" :: Int = 5, but readsPrec 0 "5\f\t\f\f\f" :: [(Int, String)] = [(5,"\f\t\f\f\f")]. how come?
13:41:18 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 252 seconds)
13:42:03 × fendor quits (~fendor@91.141.33.218.wireless.dyn.drei.com) (Ping timeout: 272 seconds)
13:43:07 × olle quits (~olle@i5E866D85.versanet.de) (Remote host closed the connection)
13:43:09 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
13:43:56 <gaff> read requires a perfect parse, so i am wondering how `read` works at all on this one.
13:46:30 <merijn> gaff: is \f whitespace? pretty sure read ignores trailing whitespace
13:46:41 <gaff> form feed
13:46:52 <merijn> > generalCategory '\f'
13:46:53 <xsperry> > read " 5 " :: Int
13:46:54 <lambdabot> Control
13:46:54 dextaa_ joins (~dextaa@user/dextaa)
13:46:54 <lambdabot> 5
13:47:00 waleee joins (~waleee@h-98-128-229-110.NA.cust.bahnhof.se)
13:47:13 <gaff> you can try with '\n', the result is same
13:47:42 o-90 joins (~o-90@gateway/tor-sasl/o-90)
13:48:07 <gaff> ah, i understood. it is just treating it as white space
13:48:15 <gaff> thank you much
13:49:04 <gaff> read also ignores leading white space
13:49:28 <gaff> so if you have those characters in front of 5, the result is same.
13:49:40 alx741 joins (~alx741@157.100.197.240)
13:50:24 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer)
13:50:38 Null_A joins (~null_a@c-98-210-133-39.hsd1.ca.comcast.net)
13:51:46 × gaff quits (~gaff@49.207.221.64) ()
13:52:13 shailangsa joins (~shailangs@host86-186-127-164.range86-186.btcentralplus.com)
13:52:49 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
13:55:00 × Null_A quits (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
14:00:15 gurkenglas joins (~gurkengla@dslb-188-096-121-068.188.096.pools.vodafone-ip.de)
14:01:03 × acidjnk quits (~acidjnk@p200300d0c705758148c438f13433725d.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
14:03:43 jao joins (~jao@static-68-235-44-10.cust.tzulo.com)
14:09:20 × meinside quits (uid24933@id-24933.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
14:11:01 × o-90 quits (~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection)
14:11:04 alx741 joins (~alx741@157.100.197.240)
14:12:34 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
14:14:22 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
14:21:56 × ubert quits (~Thunderbi@p548c8cd6.dip0.t-ipconnect.de) (Quit: ubert)
14:22:41 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
14:23:24 × jao quits (~jao@static-68-235-44-10.cust.tzulo.com) (Ping timeout: 240 seconds)
14:23:43 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
14:23:43 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
14:23:43 wroathe joins (~wroathe@user/wroathe)
14:25:38 jao joins (~jao@211.68.17.95.dynamic.jazztel.es)
14:27:00 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 240 seconds)
14:28:47 <gurkenglas> What was lspitzner called again on IRC?
14:29:15 <geekosaur> hexagonel,iirc
14:29:16 <dminuoso> hexagoxel I think?
14:29:30 <gurkenglas> Ah right, thanks.
14:29:39 <dminuoso> My IRC indicate say Im right
14:29:43 <dminuoso> 64959:2019-12-14 17:02:10 hexagoxel I have updated the paste at https://gist.github.com/lspitzner/1042594a329c5ea6a3b7a2dc6c57c025 to contain the full build
14:30:18 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
14:32:27 alx741 joins (~alx741@157.100.197.240)
14:35:10 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
14:35:33 shriekingnoise joins (~shrieking@201.231.16.156)
14:38:24 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
14:38:40 img joins (~img@user/img)
14:39:36 Unicorn_Princess joins (~Unicorn_P@46-54-248-191.static.kate-wing.si)
14:39:54 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Remote host closed the connection)
14:40:05 slowButPresent joins (~slowButPr@user/slowbutpresent)
14:41:33 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:7dab:1fa0:9cf6:a5de)
14:42:32 yauhsien joins (~Yau-Hsien@61-231-32-103.dynamic-ip.hinet.net)
14:43:04 xkuru joins (~xkuru@user/xkuru)
14:43:17 <ProfSimm> What do you wish Haskell did, or did better, which it doesn't right now?
14:43:25 <ProfSimm> If you could have a dream version of your language
14:44:33 <[exa]> I'm pretty much content
14:45:23 <geekosaur> pretty much every time I run into something I think might be done better, I think further and realize it would just make bigger messes
14:45:27 <dminuoso> Circular module imports, getting rid of String in many places, getting rid of Read
14:45:32 <dminuoso> Those are the top three on my wishlist.
14:45:37 Topsi joins (~Tobias@dyndsl-091-249-082-220.ewe-ip-backbone.de)
14:45:41 <geekosaur> no language is perfect, but perfection is unattainable: it's all tradeoffs in the end
14:45:48 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:7dab:1fa0:9cf6:a5de) (Ping timeout: 240 seconds)
14:46:00 <dminuoso> All three probably would have been possible with a bit of planning and foresight. But we're too deep in to get out of it
14:46:01 <ProfSimm> Perfection is contingent on how obsessive a language designer is.
14:46:33 <dminuoso> (Note that in principle the circular module imports are not a restriction of the language but GHC, the only active implementation we have)
14:46:51 stef204 joins (~stef204@user/stef204)
14:46:56 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
14:47:25 <geekosaur> the language report specifically supports circular module imports, while allowing things like ghc's .hs-boot files to enable it
14:47:55 <geekosaur> I should say it requires them to work
14:48:37 <geekosaur> it's just really difficult to support them while also allowing separate compilation (instead of, say, whole-program compilation)
14:48:51 Topsi1 joins (~Tobias@dyndsl-091-249-082-220.ewe-ip-backbone.de)
14:49:18 jpds joins (~jpds@gateway/tor-sasl/jpds)
14:49:24 <dminuoso> Perhaps, I think its hard to say if nobody has tried building a Haskell compiler to support both
14:49:24 × jao quits (~jao@211.68.17.95.dynamic.jazztel.es) (Ping timeout: 240 seconds)
14:49:32 <dminuoso> I dont know whether its difficult
14:49:50 <dminuoso> Some problems appear hard on initial looks but turn out to be simple
14:50:02 <geekosaur> the wholehs-boot thing is painful and regularly discussed
14:50:17 <geekosaur> (in #ghc and in various ghc tickets etc.)
14:50:26 × Topsi quits (~Tobias@dyndsl-091-249-082-220.ewe-ip-backbone.de) (Ping timeout: 272 seconds)
14:51:14 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
14:52:57 alx741 joins (~alx741@181.199.42.143)
14:56:02 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
14:56:08 <maerwald> hs-boot files play very well with TH :D
14:56:45 <dminuoso> Nothing plays well with TH.
14:56:46 <dminuoso> :p
14:57:03 <maerwald> this is especially nasty... in some rare cases GHC can make it work, but then HLS falls flat
14:57:17 <maerwald> in other cases both fail
14:57:24 Null_A joins (~null_a@c-98-210-133-39.hsd1.ca.comcast.net)
14:57:25 × gurkenglas quits (~gurkengla@dslb-188-096-121-068.188.096.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
14:58:00 <yushyin> a bit of a shame that backpack never really took off. i would have liked to see a haskell with a mix-in module system that wasn't retrofitted. maybe. (not that I really have much of a use case for it except for strings)
14:58:33 <dminuoso> yushyin: Honestly I think all backpack lacked was documentation..
14:58:36 × alMalsamo quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
14:58:51 × CiaoSen quits (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
14:58:55 <dminuoso> In its current form there's very poor discoverability that backpack exists or how to use it
14:58:59 <maerwald> and support from stack
14:59:52 <dminuoso> It's mostly "look at what edwardk has done in some of his packages" and read the PhD thesis for which its hard to find which that was.
15:00:00 <dminuoso> maerwald: Oh I didnt know that
15:00:04 <dminuoso> But I guess not surprising
15:00:33 <maerwald> https://github.com/commercialhaskell/stack/issues/2540
15:01:14 <lortabac> ProfSimm: I agree with dminuoso on the top three, I'd probably add: better records, one namespace for types and constructors, special syntax for newtypes, streaming in prelude instead of lazy IO, more support for "simple types" (for ex. monomorphic do blocks), ideally strictness reflected in the types (this might be hard though)
15:01:29 <yushyin> some mixins-shenanigans is why i switched back to cabal ;)
15:01:48 <ProfSimm> Thanks folks
15:01:51 × `2jt quits (~jtomas@130.red-88-22-46.staticip.rima-tde.net) (Remote host closed the connection)
15:02:04 <geekosaur> the backpack story is not yet over, discoverability and documentation are slated to improve in upcoming ghc versions
15:02:09 × Null_A quits (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
15:02:15 `2jt joins (~jtomas@130.red-88-22-46.staticip.rima-tde.net)
15:02:35 <yushyin> geekosaur: that's nice to hear!
15:02:54 <janus> i thought a big reason of why people don't use backpack is that stack can't build it? dunno if that is still true
15:03:06 <geekosaur> stack can't use it yet
15:03:26 <janus> so if stack is dying it may help backpack adoption
15:04:02 <geekosaur> whether it will ever be able to will depend in part on upcoming additional documentation and in part on someone actually writing the necessary support for stack… which, given they don't seem to be maintaining stack much these days, may be an even bigger hurdle
15:04:44 <janus> yushyin: do you know of a good practical example of backpacked strings on hackage?
15:05:03 shapr joins (~user@pool-173-73-44-186.washdc.fios.verizon.net)
15:06:11 <edwardk> i really want to see backpack fished out of the dumpster and made usable. the stack story is horrifying
15:06:40 wombat875 joins (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net)
15:06:44 <edwardk> to be fair, the story on nix or in custom build setups, etc. isn't much better
15:07:46 jgeerds joins (~jgeerds@55d4a547.access.ecotel.net)
15:07:48 <yushyin> janus: nope, sorry.
15:08:15 <maerwald> edwardk: even if someone provided a PR... I'm not sure if there are people left to review it :o
15:08:19 × vysn quits (~vysn@user/vysn) (Quit: WeeChat 3.4)
15:08:32 <geekosaur> stack not supporting backpack kinda holds back hackage packages using it, and certainly prevents stackage from using it
15:09:02 <merijn> We just get edwardk to move lens to backpack and then half the ecosystem will be forced to support it xD
15:09:55 <edwardk> merijn: you joke
15:10:24 <yushyin> could be a valid strategy!
15:10:37 <maerwald> feels like a MicroSoft strategy
15:10:41 <edwardk> my best strategies for supporting unboxed values, for supporting simd computation, etc. all need backpack
15:10:57 × max22- quits (~maxime@2a01cb08833598004c8de2e630f51a33.ipv6.abo.wanadoo.fr) (Ping timeout: 252 seconds)
15:10:58 <edwardk> or they need metric boatloads of template haskell and sufficiently crossed fingers
15:11:59 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 272 seconds)
15:13:12 alx741 joins (~alx741@181.199.42.143)
15:16:57 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
15:17:34 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
15:17:34 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
15:17:34 wroathe joins (~wroathe@user/wroathe)
15:17:40 alx741 joins (~alx741@157.100.197.240)
15:20:30 vysn joins (~vysn@user/vysn)
15:21:21 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
15:21:54 lavaman joins (~lavaman@98.38.249.169)
15:21:57 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
15:26:21 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
15:27:06 Sgeo joins (~Sgeo@user/sgeo)
15:28:26 <merijn> edwardk: Who says I'm joking ;)
15:32:31 razetime joins (~quassel@49.207.198.36)
15:33:30 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
15:34:21 × jgeerds quits (~jgeerds@55d4a547.access.ecotel.net) (Remote host closed the connection)
15:34:48 × DNH quits (~DNH@2a02:8108:1100:16d8:bca1:a272:d62b:37ab) (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:37:21 × alp quits (~alp@user/alp) (Ping timeout: 252 seconds)
15:38:12 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 240 seconds)
15:39:08 alx741 joins (~alx741@157.100.197.240)
15:40:08 × prite quits (~pritam@user/pritambaral) (Quit: Konversation terminated!)
15:41:07 MoC joins (~moc@user/moc)
15:41:35 × hueso quits (~root@user/hueso) (Ping timeout: 256 seconds)
15:41:57 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
15:42:42 hueso joins (~root@user/hueso)
15:49:59 gaff joins (~gaff@49.207.221.64)
15:51:12 × dsrt^ quits (~dsrt@50.235.176.163) (Remote host closed the connection)
15:55:37 <gaff> if you have to write for example an expression such as `a && b && c && d` on separate lines, haskell is just if you do not indent the continuing lines further to the right. i thought it should because they are continuing lines.
15:56:19 <gaff> i mean haskell is fine if you do not indent to the right
15:56:58 <geekosaur> if you write `a &&` on one line then haskell knows another expression is needed
15:57:38 <geekosaur> this goes only so far though, because of layout: you need to indent some things to obey an outer layout constraint (as for example with let or where blocks)
15:57:55 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
15:58:10 <gaff> i see ... it seems to also work if you write `a` on one line and in the next `&& b` at the same indent
15:58:13 <geekosaur> but aside from layout haskell tries to be pretty flexible
15:58:31 <gaff> ok
15:58:32 azimut joins (~azimut@gateway/tor-sasl/azimut)
15:58:33 <geekosaur> that will work as long as layout isn't involved
15:59:42 alx741 joins (~alx741@157.100.197.240)
15:59:42 <gaff> when you say layout, you mean stuff for `where`, `let`, top-level, etc?
15:59:59 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:9c11:561e:c86d:bf05) (Quit: WeeChat 2.8)
16:00:32 <geekosaur> https://paste.tomsmeding.com/ZyJ6dhuN
16:01:45 <gaff> ah, thanks -- yeah, that's fine
16:01:48 <gaff> :)
16:02:35 <geekosaur> the second one fails because `let` has taken the indentation of the first binding as its basic indentation; indenting not up to that point will end the `let`, indenting *to* that point starts a new binding and will throw a parse error if it's not a valid binding
16:02:47 <geekosaur> but indenting beyond it will be a continuation
16:03:22 <gaff> thank you.
16:03:22 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
16:03:49 <gaff> great explanation
16:03:58 <gaff> appreciate it
16:04:05 <geekosaur> no problem
16:05:06 × gaff quits (~gaff@49.207.221.64) ()
16:09:37 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
16:13:25 × `2jt quits (~jtomas@130.red-88-22-46.staticip.rima-tde.net) (Ping timeout: 272 seconds)
16:14:31 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 250 seconds)
16:16:35 × waleee quits (~waleee@h-98-128-229-110.NA.cust.bahnhof.se) (Ping timeout: 272 seconds)
16:20:05 alx741 joins (~alx741@157.100.197.240)
16:22:12 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
16:23:43 max22- joins (~maxime@2a01cb08833598007bad4523cac12017.ipv6.abo.wanadoo.fr)
16:24:59 × shailangsa quits (~shailangs@host86-186-127-164.range86-186.btcentralplus.com) (Remote host closed the connection)
16:26:14 gurkenglas joins (~gurkengla@dslb-188-096-121-068.188.096.pools.vodafone-ip.de)
16:30:19 <phma> I've written tests of a function split343, which is currently exported, but will not be exported when I finish writing the library. Tests are in test.hs; the library is in FlowsnakeBase.hs. How do I test functions that aren't exported?
16:31:18 <geekosaur> you have to export them somehow, but not necessarily from your package. for example you can export from an internal library component which your tests can depend on but no outside package can
16:31:18 DNH joins (~DNH@2a02:8108:1100:16d8:bca1:a272:d62b:37ab)
16:32:01 <geekosaur> alternatively you could use an Internals module, which would allow others to import anything in it but with the understanding that anything in the module can change or go away with no warning
16:33:43 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
16:34:32 <geekosaur> (in a cabal file the unnamed library component is exported, named library components are internal-only)
16:36:12 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
16:39:26 alx741 joins (~alx741@157.100.197.240)
16:42:58 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
16:43:11 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
16:43:55 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
16:47:32 kayvank joins (~user@52-119-115-185.PUBLIC.monkeybrains.net)
16:50:57 × pgib quits (~textual@173.38.117.82) (Ping timeout: 240 seconds)
16:51:13 zebrag joins (~chris@user/zebrag)
16:52:42 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
16:53:47 `2jt joins (~jtomas@130.red-88-22-46.staticip.rima-tde.net)
16:54:33 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
16:58:46 × stef204 quits (~stef204@user/stef204) (Quit: WeeChat 3.4)
16:58:55 burnsidesLlama joins (~burnsides@dhcp168-031.wadham.ox.ac.uk)
16:59:23 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
16:59:41 alx741 joins (~alx741@157.100.197.240)
17:02:21 × dextaa_ quits (~dextaa@user/dextaa) (Quit: leaving)
17:03:11 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
17:05:30 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
17:05:30 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
17:05:30 wroathe joins (~wroathe@user/wroathe)
17:06:17 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
17:06:42 × razetime quits (~quassel@49.207.198.36) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
17:07:02 × ardell quits (~ardell@user/ardell) (Quit: Konversation terminated!)
17:10:18 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
17:11:24 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
17:11:57 × `2jt quits (~jtomas@130.red-88-22-46.staticip.rima-tde.net) (Ping timeout: 252 seconds)
17:14:52 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
17:15:34 Akiva joins (~Akiva@user/Akiva)
17:18:08 lavaman joins (~lavaman@98.38.249.169)
17:18:56 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
17:19:06 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
17:21:05 alx741 joins (~alx741@181.199.42.143)
17:23:39 lbseale joins (~ep1ctetus@user/ep1ctetus)
17:23:41 × Unicorn_Princess quits (~Unicorn_P@46-54-248-191.static.kate-wing.si) (Remote host closed the connection)
17:24:38 × mbuf quits (~Shakthi@223.178.90.64) (Quit: Leaving)
17:26:28 × HotblackDesiato quits (~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection)
17:26:28 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
17:27:13 gehmehgeh joins (~user@user/gehmehgeh)
17:28:07 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
17:29:07 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
17:30:15 zeenk joins (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5)
17:31:14 alp joins (~alp@user/alp)
17:31:38 <sm> or, move the tests closer to the code in question...
17:33:20 zincy_ joins (~zincy@2a00:23c8:970c:4801:39f9:90f7:922:e73b)
17:34:30 × MajorBiscuit quits (~MajorBisc@wlan-145-94-218-48.wlan.tudelft.nl) (Ping timeout: 252 seconds)
17:34:46 zincy__ joins (~zincy@host86-160-236-152.range86-160.btcentralplus.com)
17:34:51 × bliminse quits (~bliminse@host86-158-241-239.range86-158.btcentralplus.com) (Quit: leaving)
17:34:53 × zincy_ quits (~zincy@2a00:23c8:970c:4801:39f9:90f7:922:e73b) (Read error: Connection reset by peer)
17:38:27 `2jt joins (~jtomas@130.red-88-22-46.staticip.rima-tde.net)
17:38:55 × gurkenglas quits (~gurkengla@dslb-188-096-121-068.188.096.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
17:40:02 bliminse joins (~bliminse@host86-158-241-239.range86-158.btcentralplus.com)
17:40:16 × chele quits (~chele@user/chele) (Remote host closed the connection)
17:40:54 zer0bitz joins (~zer0bitz@2001:2003:f74d:b800:dcfd:93ee:4384:4372)
17:44:11 stef204 joins (~stef204@user/stef204)
17:45:25 alx741 joins (~alx741@157.100.197.240)
17:46:19 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:dd1:4bae:3cdd:e3cb)
17:49:23 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
17:50:31 <[exa]> is there any known problem with `getAddrInfo` that is not run in the "main" thread? (possibly specifically on mac OS)
17:50:39 <[exa]> (debugging an issue with a student)
17:51:54 shailangsa joins (~shailangs@host86-186-127-164.range86-186.btcentralplus.com)
17:52:22 <geekosaur> dunno about macos but on linux it can be using dbus in the background to talk with a name cache daemon, and there are lots of things that can go wrong
17:53:12 <[exa]> so it is preferable to keep it as single-threaded as possible?
17:53:41 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.3)
17:54:05 × burnsidesLlama quits (~burnsides@dhcp168-031.wadham.ox.ac.uk) (Remote host closed the connection)
17:54:19 <[exa]> hm, let's see
17:54:51 × alp quits (~alp@user/alp) (Ping timeout: 252 seconds)
17:55:25 × MoC quits (~moc@user/moc) (Quit: Konversation terminated!)
17:56:20 × zincy__ quits (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Remote host closed the connection)
17:56:45 <geekosaur> doesn'tlook like they document any thread issues
17:56:54 <geekosaur> and on linux it's supposed to be mt-sate
17:56:58 <geekosaur> *mt-safe
17:57:27 <geekosaur> but I've seen weirdness with dbus-backed stuff and the ghc rts; you can test for this by using +RTS -V0
17:57:42 <geekosaur> to see if anything similar is going on with macos
17:57:49 × vysn quits (~vysn@user/vysn) (Ping timeout: 240 seconds)
18:04:36 gurkenglas joins (~gurkengla@dslb-188-096-121-068.188.096.pools.vodafone-ip.de)
18:04:47 alx741 joins (~alx741@157.100.197.240)
18:07:02 × zmt00 quits (~zmt00@user/zmt00) (Read error: Connection reset by peer)
18:07:11 × xff0x quits (~xff0x@2001:1a81:52c4:8c00:1680:ae3c:6c22:79cc) (Ping timeout: 250 seconds)
18:07:16 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
18:08:02 xff0x joins (~xff0x@2001:1a81:52c4:8c00:a51c:6f1b:e868:ffc)
18:08:38 img joins (~img@user/img)
18:09:17 × kuribas quits (~user@ptr-25vy0i9o6zfp0yko61a.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
18:10:15 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
18:10:31 lavaman joins (~lavaman@98.38.249.169)
18:10:38 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
18:10:53 lavaman joins (~lavaman@98.38.249.169)
18:11:00 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
18:11:08 × TheCoffeMaker_ quits (~TheCoffeM@200.126.129.149) (Quit: So long and thanks for all the fish)
18:11:15 lavaman joins (~lavaman@98.38.249.169)
18:11:15 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
18:11:21 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
18:11:23 <[exa]> geekosaur: ooh that looks useful, thanks a lot
18:11:26 <[exa]> will see
18:11:36 lavaman joins (~lavaman@98.38.249.169)
18:11:43 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
18:11:58 lavaman joins (~lavaman@98.38.249.169)
18:12:05 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
18:12:05 TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker)
18:12:19 lavaman joins (~lavaman@98.38.249.169)
18:12:26 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
18:12:41 lavaman joins (~lavaman@98.38.249.169)
18:12:48 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
18:13:02 lavaman joins (~lavaman@98.38.249.169)
18:13:09 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
18:13:18 <geekosaur> sigh\
18:13:21 ChanServ sets mode +o geekosaur
18:13:25 lavaman joins (~lavaman@98.38.249.169)
18:13:32 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
18:13:44 tfeb joins (~tfb@88.98.95.237)
18:13:47 lavaman joins (~lavaman@98.38.249.169)
18:13:48 geekosaur sets mode +b *!*@98.38.249.169
18:13:54 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
18:15:05 <monochrom> Active volcano :)
18:15:36 <geekosaur> pyroclastic flow
18:18:36 romesrf joins (~romes@bl8-111-202.dsl.telepac.pt)
18:20:40 CiaoSen joins (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
18:28:13 alx741 joins (~alx741@181.199.42.143)
18:29:08 × romesrf quits (~romes@bl8-111-202.dsl.telepac.pt) (Quit: WeeChat 3.4)
18:30:10 × tfeb quits (~tfb@88.98.95.237) (Quit: died)
18:31:19 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
18:31:35 econo joins (uid147250@user/econo)
18:32:41 burnsidesLlama joins (~burnsides@dhcp168-031.wadham.ox.ac.uk)
18:37:20 × jm_jj quits (~jmjj@mobile-user-c3a5cc-243.dhcp.inet.fi) (Quit: Leaving)
18:38:27 × burnsidesLlama quits (~burnsides@dhcp168-031.wadham.ox.ac.uk) (Ping timeout: 272 seconds)
18:38:57 ChanServ sets mode +o litharge
18:38:57 litharge sets mode -bo *!*@98.38.249.169 litharge
18:39:40 ec joins (~ec@gateway/tor-sasl/ec)
18:44:11 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Remote host closed the connection)
18:46:26 zincy_ joins (~zincy@host86-160-236-152.range86-160.btcentralplus.com)
18:48:28 alx741 joins (~alx741@181.199.42.143)
18:48:47 × coot quits (~coot@213.134.190.95) (Quit: coot)
18:48:50 burnsidesLlama joins (~burnsides@dhcp168-031.wadham.ox.ac.uk)
18:50:36 × CiaoSen quits (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
18:51:07 × zincy_ quits (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Ping timeout: 272 seconds)
18:51:56 × fef quits (~thedawn@user/thedawn) (Ping timeout: 240 seconds)
18:53:02 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
19:00:04 <tomsmeding> the setting where my irc client only shows joins/leaves of people that are actually chatting is quite useful
19:00:04 × alx741 quits (~alx741@181.199.42.143) (Read error: Connection reset by peer)
19:02:20 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
19:02:48 azimut joins (~azimut@gateway/tor-sasl/azimut)
19:02:48 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Remote host closed the connection)
19:03:31 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
19:05:15 × max22- quits (~maxime@2a01cb08833598007bad4523cac12017.ipv6.abo.wanadoo.fr) (Ping timeout: 252 seconds)
19:06:18 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
19:06:18 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
19:06:18 wroathe joins (~wroathe@user/wroathe)
19:06:24 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:dd1:4bae:3cdd:e3cb) (Quit: Leaving...)
19:08:12 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 240 seconds)
19:08:53 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:7443:3f57:453b:e0ec)
19:09:20 geekosaur sets mode -o geekosaur
19:11:22 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 272 seconds)
19:16:55 alx741 joins (~alx741@157.100.197.240)
19:17:28 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
19:18:35 lavaman joins (~lavaman@98.38.249.169)
19:19:35 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
19:19:48 × deadmarshal quits (~deadmarsh@95.38.115.206) (Ping timeout: 240 seconds)
19:21:50 × DNH quits (~DNH@2a02:8108:1100:16d8:bca1:a272:d62b:37ab) (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:22:28 <kronicma1> @unmtl ExceptT String IO a
19:22:28 <lambdabot> IO (Either String a)
19:23:04 <janus> tomsmeding: which client are you using?
19:23:25 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 272 seconds)
19:24:41 × kayvank quits (~user@52-119-115-185.PUBLIC.monkeybrains.net) (Remote host closed the connection)
19:26:46 <tomsmeding> weechat
19:27:19 <tomsmeding> janus: with irc.look.smart_filter_join on
19:27:59 zmt00 joins (~zmt00@user/zmt00)
19:35:22 DNH joins (~DNH@2a02:8108:1100:16d8:bca1:a272:d62b:37ab)
19:37:23 alx741 joins (~alx741@157.100.197.240)
19:39:07 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Remote host closed the connection)
19:39:32 mikail joins (~mikail@2a02:c7f:bd03:2c00:df97:6ebf:5b0b:7304)
19:40:10 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
19:40:31 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds)
19:41:39 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
19:42:22 romesrf joins (~romes@44.190.189.46.rev.vodafone.pt)
19:44:49 max22- joins (~maxime@2a01cb08833598000a23eab5ca82bfe2.ipv6.abo.wanadoo.fr)
19:45:48 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
19:46:17 c209e6dc-4d76-47 joins (~aditya@2601:249:4300:1296:195:dac6:592c:a55a)
19:49:31 × stef204 quits (~stef204@user/stef204) (Quit: WeeChat 3.4)
19:56:19 Null_A joins (~null_a@c-98-210-133-39.hsd1.ca.comcast.net)
19:56:43 alx741 joins (~alx741@157.100.197.240)
19:58:47 dextaa_ joins (~dextaa@cpc142174-lewi20-2-0-cust34.2-4.cable.virginm.net)
20:00:36 × Null_A quits (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
20:00:57 zincy_ joins (~zincy@host86-160-236-152.range86-160.btcentralplus.com)
20:02:04 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
20:05:24 × romesrf quits (~romes@44.190.189.46.rev.vodafone.pt) (Ping timeout: 240 seconds)
20:05:39 × juhp quits (~juhp@128.106.188.82) (Ping timeout: 256 seconds)
20:05:57 CiaoSen joins (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
20:06:09 romesrf joins (~romes@44.190.189.46.rev.vodafone.pt)
20:07:20 juhp joins (~juhp@128.106.188.82)
20:08:42 slack1256 joins (~slack1256@191.126.227.196)
20:11:02 ChanServ sets mode +o geekosaur
20:11:47 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
20:12:19 zer0bitz_ joins (~zer0bitz@2001:2003:f74d:b800:5c57:7f45:b808:8adb)
20:12:57 × fendor_ quits (~fendor@178.165.161.137.wireless.dyn.drei.com) (Remote host closed the connection)
20:13:15 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
20:13:37 kmein joins (~weechat@user/kmein)
20:13:47 kenran joins (~kenran@200116b82bfd62002ef1903d7b4c4780.dip.versatel-1u1.de)
20:14:40 coot joins (~coot@213.134.190.95)
20:15:53 × zer0bitz quits (~zer0bitz@2001:2003:f74d:b800:dcfd:93ee:4384:4372) (Ping timeout: 250 seconds)
20:16:33 × kenran quits (~kenran@200116b82bfd62002ef1903d7b4c4780.dip.versatel-1u1.de) (Client Quit)
20:16:58 cjb joins (~cjb@user/cjb)
20:17:08 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
20:17:40 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
20:19:45 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:7443:3f57:453b:e0ec) (Remote host closed the connection)
20:19:59 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:7443:3f57:453b:e0ec)
20:20:09 alx741 joins (~alx741@157.100.197.240)
20:21:13 × slack1256 quits (~slack1256@191.126.227.196) (Remote host closed the connection)
20:21:30 slack1256 joins (~slack1256@191.126.227.196)
20:21:41 lavaman joins (~lavaman@98.38.249.169)
20:22:04 <slack1256> I normally user wreq but it doesn't have http/2 support. What do you guys use for that?
20:22:04 wroathe joins (~wroathe@user/wroathe)
20:22:54 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
20:22:59 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
20:23:08 <sclv> clients aren't usually required to have http/2 support, no?
20:23:20 kmein joins (~weechat@user/kmein)
20:23:44 Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net)
20:23:49 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.4)
20:23:51 <romesrf> o/
20:23:59 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
20:24:11 lavaman joins (~lavaman@98.38.249.169)
20:25:18 geekosaur sets mode -o geekosaur
20:26:36 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
20:28:13 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
20:30:01 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:7443:3f57:453b:e0ec) (Remote host closed the connection)
20:32:02 <slack1256> sclv: I was under the impression that yes, they do.
20:32:51 <sclv> i don't know of any website that requires it be accessed with http/2 rather than http 1
20:33:08 <sclv> i do know of some specialized protcols (grpc) that operate only over http2
20:33:16 <sclv> but a standard client like wreq isn't useful for them anyway
20:33:58 Erutuon joins (~Erutuon@user/erutuon)
20:34:10 × yauhsien quits (~Yau-Hsien@61-231-32-103.dynamic-ip.hinet.net) (Read error: Connection reset by peer)
20:35:02 yauhsien joins (~Yau-Hsien@61-231-32-166.dynamic-ip.hinet.net)
20:35:41 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
20:39:29 alx741 joins (~alx741@157.100.197.240)
20:40:09 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
20:42:46 yauhsien_ joins (~Yau-Hsien@61-231-32-166.dynamic-ip.hinet.net)
20:42:50 <slack1256> Mmmm
20:43:07 <slack1256> Yeah I have to interface with apple server (APN) and they insist on http/2.
20:45:08 × alx741 quits (~alx741@157.100.197.240) (Read error: Connection reset by peer)
20:45:21 × yauhsien quits (~Yau-Hsien@61-231-32-166.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
20:46:36 × nunggu_ quits (~q@user/nunggu) (Ping timeout: 240 seconds)
20:47:40 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
20:48:06 × DNH quits (~DNH@2a02:8108:1100:16d8:bca1:a272:d62b:37ab) (Ping timeout: 252 seconds)
20:48:17 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
20:48:58 acidjnk joins (~acidjnk@p200300d0c7057581091bb45d0bf1cd2b.dip0.t-ipconnect.de)
20:49:45 nunggu_ joins (~q@user/nunggu)
20:54:25 waleee joins (~waleee@h-98-128-229-110.NA.cust.bahnhof.se)
20:59:02 × Raito_Bezarius quits (~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 260 seconds)
21:04:40 merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
21:06:58 cynomys joins (~cynomys@user/cynomys)
21:07:10 <ehammarstrom> Is it possible to encode typestates in Haskell?
21:07:17 wrengr joins (~wrengr@99.34.197.35.bc.googleusercontent.com)
21:07:27 × foul_owl quits (~kerry@207.244.125.36) (Ping timeout: 250 seconds)
21:07:33 <EvanR> sure
21:07:46 <EvanR> GADTs for example
21:08:28 pavonia joins (~user@user/siracusa)
21:09:33 × merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
21:11:52 Raito_Bezarius joins (~Raito@wireguard/tunneler/raito-bezarius)
21:13:08 <ehammarstrom> EvanR: I came up with something like this https://paste.tomsmeding.com/6pltsmxz What would it look like with a GADT?
21:13:17 <ehammarstrom> I don't know if it's correct
21:15:26 × hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection)
21:16:07 <EvanR> well this demonstrates the possibility of changing the type but it's pretty useless as is https://paste.tomsmeding.com/xcj0RrtN
21:16:27 <EvanR> note that in turnOff you don't need a case for the Off case because it's impossible
21:16:52 hololeap joins (~hololeap@user/hololeap)
21:17:39 <EvanR> the GADT definition defines the possible moves, the resulting types tell you how the "type state" changes
21:17:59 <EvanR> in this example you simple start in whatever state you want and do whatever you want
21:19:34 <EvanR> line 27 there is the proper GADT
21:20:33 × `2jt quits (~jtomas@130.red-88-22-46.staticip.rima-tde.net) (Ping timeout: 252 seconds)
21:20:57 shapr hops randomly
21:21:19 tomsmeding eyes shapr
21:22:44 <shapr> hi tomsmeding ! How's life?
21:22:49 <shapr> writing any good code?
21:23:00 <EvanR> your line 18 is wrong because your function returns a type (LightSwitch Off) instead of a value
21:23:25 <tomsmeding> shapr: just today finished grading 69 reports
21:23:26 <EvanR> oops, ignore that
21:23:40 <tomsmeding> hopefully going to code again soon
21:23:43 <shapr> tomsmeding: students are learning?
21:23:50 foul_owl joins (~kerry@207.244.125.36)
21:23:51 <tomsmeding> maybe?
21:24:20 <tomsmeding> not too enthousiastic about the assignment anyway, but this was my first year so let's start complaining next year :p
21:24:27 <Rembane> shapr: Did you have stochastic breakfast again?
21:24:47 deadmarshal joins (~deadmarsh@95.38.115.206)
21:24:50 <shapr> yes, I did.
21:26:12 <Rembane> Good stfuf
21:26:14 <Rembane> *stuff
21:27:35 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
21:27:35 allbery_b joins (~geekosaur@xmonad/geekosaur)
21:27:38 allbery_b is now known as geekosaur
21:28:11 <ehammarstrom> EvanR: Thanks for showing the difference in type. I guess there are more differences when you use them more extensively
21:28:47 <EvanR> well, that's basically it. With GADTs the final type can be different for different constructors
21:29:00 × deadmarshal quits (~deadmarsh@95.38.115.206) (Ping timeout: 240 seconds)
21:29:22 × Unhammer quits (~Unhammer@user/unhammer) (Ping timeout: 260 seconds)
21:30:41 <ehammarstrom> Right.
21:31:06 Pickchea joins (~private@user/pickchea)
21:31:13 × zincy_ quits (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Remote host closed the connection)
21:36:59 alt-romes joins (~romes@44.190.189.46.rev.vodafone.pt)
21:39:48 × romesrf quits (~romes@44.190.189.46.rev.vodafone.pt) (Ping timeout: 252 seconds)
21:40:02 telser joins (~AdminUser@user/telser)
21:40:02 × telser quits (~AdminUser@user/telser) (Remote host closed the connection)
21:40:37 × slack1256 quits (~slack1256@191.126.227.196) (Remote host closed the connection)
21:42:39 Unhammer joins (~Unhammer@user/unhammer)
21:46:15 telser joins (~AdminUser@user/telser)
21:50:04 × c209e6dc-4d76-47 quits (~aditya@2601:249:4300:1296:195:dac6:592c:a55a) (Quit: Konversation terminated!)
21:50:56 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds)
21:52:58 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
21:53:13 c209e6dc-4d76-47 joins (~aditya@2601:249:4300:1296:195:dac6:592c:a55a)
21:54:02 Gest74 joins (~Gest74@net-2-36-89-48.cust.vodafonedsl.it)
21:57:00 × Pickchea quits (~private@user/pickchea) (Ping timeout: 240 seconds)
21:57:43 × michalz quits (~michalz@185.246.204.89) (Ping timeout: 250 seconds)
21:57:44 × jlamothe quits (~jlamothe@198.251.61.229) (Ping timeout: 250 seconds)
21:58:25 × mikail quits (~mikail@2a02:c7f:bd03:2c00:df97:6ebf:5b0b:7304) (Remote host closed the connection)
22:00:12 × alt-romes quits (~romes@44.190.189.46.rev.vodafone.pt) (Ping timeout: 240 seconds)
22:01:40 alt-romes joins (~romes@44.190.189.46.rev.vodafone.pt)
22:01:54 × c209e6dc-4d76-47 quits (~aditya@2601:249:4300:1296:195:dac6:592c:a55a) (Quit: Konversation terminated!)
22:02:34 <Gest74> Hi everybody, could someone please tell me why Actual is [[Expr]] instead of [Expr] in this code: https://paste.tomsmeding.com/pGE0ab3j ?
22:02:41 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
22:03:03 mikail joins (~mikail@2a02:c7f:bd03:2c00:df97:6ebf:5b0b:7304)
22:03:25 × mikail quits (~mikail@2a02:c7f:bd03:2c00:df97:6ebf:5b0b:7304) (Remote host closed the connection)
22:03:25 <monochrom> Replace [e:es] by (e:es). The extra [] causes the extra [].
22:04:21 mikail joins (~mikail@2a02:c7f:bd03:2c00:df97:6ebf:5b0b:7304)
22:05:06 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
22:05:06 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
22:05:06 wroathe joins (~wroathe@user/wroathe)
22:05:16 <Gest74> @monochrom, thank you!
22:05:17 <lambdabot> Unknown command, try @list
22:05:20 × mikail quits (~mikail@2a02:c7f:bd03:2c00:df97:6ebf:5b0b:7304) (Remote host closed the connection)
22:07:22 mikail joins (~mikail@2a02:c7f:bd03:2c00:df97:6ebf:5b0b:7304)
22:07:51 × mikail quits (~mikail@2a02:c7f:bd03:2c00:df97:6ebf:5b0b:7304) (Remote host closed the connection)
22:09:41 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
22:09:50 mikail joins (~mikail@2a02:c7f:bd03:2c00:df97:6ebf:5b0b:7304)
22:10:42 <EvanR> [[[[e:es]]]] is not [e:es], but ((((e:es)))) is (e:es). Haskell is tricky like that
22:11:26 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
22:12:17 <geekosaur> I'd put it that there are two ways to describe lists in Haskell: traditional [a,b,c] and cons (a:b:c:[])
22:12:55 <geekosaur> they're the same thing, but can't be mixed, so [x:xs] is a single-item list in traditional format containing a list in cons format
22:14:43 <dolio> Well, they can be mixed, but `[x:xs]` isn't just grouping.
22:16:07 teo joins (~teo@user/teo)
22:16:43 <sshine> [x:xs] was among the most common error I saw as a teaching assistant on FP courses (SML, Haskell).
22:16:57 <sshine> the compiler could really have a specific warning for just that.
22:17:08 <dolio> In some ways `a:b:c:[]` is mixing them already, but only because there isn't some other name for the empty list.
22:17:26 × Gest74 quits (~Gest74@net-2-36-89-48.cust.vodafonedsl.it) (Ping timeout: 256 seconds)
22:18:55 × jinsun quits (~jinsun@user/jinsun) ()
22:19:16 jinsun joins (~jinsun@user/jinsun)
22:20:29 × jinsun quits (~jinsun@user/jinsun) (Client Quit)
22:20:46 jinsun joins (~jinsun@user/jinsun)
22:23:24 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 240 seconds)
22:23:29 ProfSimm joins (~ProfSimm@87.227.196.109)
22:23:41 jlamothe joins (~jlamothe@198.251.61.229)
22:23:54 × teo quits (~teo@user/teo) (Quit: Client closed)
22:24:04 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
22:25:40 teo joins (~teo@user/teo)
22:25:59 × teo quits (~teo@user/teo) (Client Quit)
22:27:02 Vajb joins (~Vajb@2001:999:274:c862:3b86:e1e1:5bff:355e)
22:27:21 Pickchea joins (~private@user/pickchea)
22:29:57 bah_ is now known as bah
22:30:15 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 272 seconds)
22:30:37 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
22:32:08 c209e6dc-4d76-47 joins (~aditya@2601:249:4300:1296:195:dac6:592c:a55a)
22:33:49 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
22:35:57 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
22:35:57 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
22:35:57 wroathe joins (~wroathe@user/wroathe)
22:39:44 × coot quits (~coot@213.134.190.95) (Quit: coot)
22:40:18 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
22:40:31 × telser quits (~AdminUser@user/telser) (Remote host closed the connection)
22:41:04 × hueso quits (~root@user/hueso) (Read error: Connection reset by peer)
22:41:46 telser joins (~AdminUser@user/telser)
22:45:33 hueso joins (~root@user/hueso)
22:45:55 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
22:46:19 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
22:53:01 awschnap joins (~lavaman@98.38.249.169)
22:53:01 × lavaman quits (~lavaman@98.38.249.169) (Read error: Connection reset by peer)
22:53:22 × max22- quits (~maxime@2a01cb08833598000a23eab5ca82bfe2.ipv6.abo.wanadoo.fr) (Quit: Leaving)
22:54:37 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
22:54:59 byorgey sees the [x:xs] error a lot.
22:55:38 <byorgey> I have come to the conclusion that [a] is poor notation for the type of a list. It is just very confusing to students that [a] is the type of a list of any number of elements, but as a value [a] is a list of exactly one element.
22:56:12 <byorgey> I would prefer List a, even though it's slightly more verbose.
22:56:35 <geekosaur> I've been thinking that somewhat as well. Also the fact that you see for example `t a` in a type, but [a] matches it. So sometimes I use `[] a`
22:56:40 <geekosaur> to make it clearer
22:57:02 <Rembane> Is `[] a` valid Haskell?
22:57:08 <geekosaur> yep
22:57:09 <byorgey> :type [1,2,3] : [] Int
22:57:20 <byorgey> aw, no lambdabot? =(
22:57:29 <EvanR> @botsnack
22:57:29 <lambdabot> :)
22:57:31 <geekosaur> :t [1,2,3] :: [] Int
22:57:32 <lambdabot> [Int]
22:57:38 <Rembane> That it is valid Haskell makes me happy. I first thought it was merely pedagogical.
22:57:40 <byorgey> oh, :t not :type, ok.
22:57:40 <geekosaur> it just doesn't accept :type fully spelled out
22:57:52 <geekosaur> same with :k vs. :kind
22:58:30 <byorgey> geekosaur: right, that too. It's magic special syntax and it's unclear how it corresponds to other type constructors.
22:58:51 <byorgey> pair types have the same issue in terms of being magic and special, but at least there the syntax for types and values matches exactly.
22:58:52 × awschnap quits (~lavaman@98.38.249.169) (Read error: Connection reset by peer)
22:59:20 lavaman joins (~lavaman@98.38.249.169)
22:59:58 <Rembane> For some reason list has a tendency to be the odd one out in many cases. Wanna explain monads? Okay, we start with Maybe everything is fine and then the natural next example is absolutely not list because that will make your brain boil.
23:00:28 <EvanR> funny because Maybe is a submonad of List xD
23:00:49 <Rembane> Oh. Oh no. How?!
23:01:06 <geekosaur> Maybe is a 1-element list
23:01:08 <byorgey> Maybe is lists of length at most 1.
23:01:15 <EvanR> correct me if I'm wrong but, the behavior matches the behavior for list of at most length 1
23:01:27 <Rembane> And we have a hat trick!
23:01:28 <byorgey> that sounds right.
23:01:31 <geekosaur> yeh, 1 element max, sorry
23:01:56 <geekosaur> that said,m the difference is that a 1-element-max list isn't recursive
23:01:59 <Rembane> So a list of length zero is Nothing, and a list of length one is Just something?
23:02:13 <geekosaur> and I suspect it's the recursion that makes the list monad brain-boily
23:02:13 <EvanR> yeah
23:02:22 <hpc> isn't the issue with [] just that it's not commutative?
23:03:14 <hpc> the list monad is pretty easy to understand, start with list comprehensions and then go "okay, now write it with do"
23:03:36 <dibblego> teach monads by getting the class to inadvertently invent the primary purpose
23:04:27 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
23:04:44 jackson99 joins (~bc8147f2@cerf.good1.com)
23:06:15 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
23:09:11 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
23:10:36 random-jellyfish joins (~random-je@user/random-jellyfish)
23:11:57 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
23:11:58 × lavaman quits (~lavaman@98.38.249.169) (Read error: Connection reset by peer)
23:11:59 awschnap joins (~lavaman@98.38.249.169)
23:14:56 slowButPresent joins (~slowButPr@user/slowbutpresent)
23:16:12 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 240 seconds)
23:19:24 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
23:21:28 × random-jellyfish quits (~random-je@user/random-jellyfish) (Ping timeout: 256 seconds)
23:21:56 <jackdk> byorgey: how'd you go with all that disco stuff? did you get it going?
23:23:36 × burnsidesLlama quits (~burnsides@dhcp168-031.wadham.ox.ac.uk) (Remote host closed the connection)
23:23:50 <EvanR> "what is the primary purpose of monads" sounds like something an awkward godlike alien entity would demand captain kirk to answer satisfactorily before they can break free from its force field
23:24:43 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
23:25:19 × zeenk quits (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) (Quit: Konversation terminated!)
23:26:20 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:26:20 <int-e> is the purpose to abstract from almost nothing and confuse generations of programmers...
23:26:24 <jackdk> "merging spacesuits together", if we're keeping with the scifi theme
23:26:48 <Rembane> Pew pew pew!
23:26:57 <Rembane> Cue Star Wars Theme!
23:27:06 <EvanR> Monadchloriens
23:27:36 <Rembane> Definitely the List Monadchloreans
23:27:44 <byorgey> jackdk: I got it building on replit.com via nix, but it ended up being a no-go because it takes like 15-30 minutes to build and sometimes decides to randomly rebuild the entire environment while you're in the middle of doing something.
23:28:02 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
23:28:10 <byorgey> jackdk: for now I just wrote up very detailed instructions on how the students can install it via 'cabal install', which worked OK in 95% of cases
23:28:45 <geekosaur> 95% sounds 5% unfortunate
23:28:59 <monochrom> When I was learning monads, I felt it was abstracting from almost everything. :)
23:29:07 <byorgey> geekosaur: yes, for the 5% I set up accounts on my VPS so they can log in and use it via SSH.
23:29:31 <byorgey> jackdk: in the long term, I hope I can get a stable version of disco onto Hackage and from there into nixpkgs, and then it will load on replit.com in a snap
23:30:12 <geekosaur> assuming stackage ever gets itself unstuck
23:30:15 × Vajb quits (~Vajb@2001:999:274:c862:3b86:e1e1:5bff:355e) (Read error: Connection reset by peer)
23:30:23 <geekosaur> be nice if they'd done an LTS *before* tackling aeson 2
23:30:32 <jackdk> byorgey: glad you got something for your students. I've had to do less doJailbreak etc shenanigans over time, so I think the hackage ecosystem is converging towards stability
23:31:03 <jackson99> stackage is stuck?
23:31:14 <byorgey> jackdk: that's good to hear.
23:31:27 <geekosaur> LTS is still 8.10.7
23:31:40 <byorgey> there is one benefit to having them install via cabal, which is that I can tell them to 'cabal update && cabal install disco' every time I add new features or fix a bug =)
23:31:46 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
23:31:48 <geekosaur> nightlies advanced from 9.0.1 to 9.0.2, but now they've taken on aeson 2 and broke a bunch of stuff
23:32:17 <jackson99> I think (hope) they are just waiting 9.2 to be fixed
23:32:20 <geekosaur> which is not so much a problem with stackage as such, as a failure of management or foresight
23:32:23 <jackdk> I would stop using stack, personally - freeze files + git give you much finer control, and cabal has improved a lot
23:32:34 <geekosaur> but a nbunch of other packagers depend on stackage LTSes
23:32:42 <geekosaur> including nixpkgs
23:35:40 × cjb quits (~cjb@user/cjb) (Ping timeout: 260 seconds)
23:36:06 <jackdk> Yeah, that's a challenge, and those snapshots are useful if you want to provide "one version of each thing". That's often too limiting, though. As we've seen with the stop-the-world update to aeson>2. IMHO stackage would do well to just focus on snapshots, but I get that's gonna be a contentious suggestion
23:38:01 × gurkenglas quits (~gurkengla@dslb-188-096-121-068.188.096.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
23:40:41 × telser quits (~AdminUser@user/telser) (Quit: No Ping reply in 180 seconds.)
23:41:57 telser joins (~AdminUser@user/telser)
23:43:03 burnsidesLlama joins (~burnsides@dhcp168-031.wadham.ox.ac.uk)
23:43:53 × acidjnk quits (~acidjnk@p200300d0c7057581091bb45d0bf1cd2b.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
23:43:54 Null_A joins (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909)
23:45:57 × hololeap quits (~hololeap@user/hololeap) (Excess Flood)
23:46:09 afidegnum joins (~afidegnum@102.176.94.184)
23:46:34 <afidegnum> hi, what pefect IDE would you recommend ?
23:48:12 <monochrom> I disbelieve in perfection. I recommend complacency.
23:48:22 roboguy_ joins (~roboguy_@cpe-98-156-4-161.kc.res.rr.com)
23:48:30 <monochrom> emacs haskell-mode is more than good enough for me.
23:48:36 × Null_A quits (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 240 seconds)
23:49:03 <afidegnum> ok
23:49:09 <monochrom> Especially given the trivial amount of installation time and disk space it takes.
23:49:50 <monochrom> Something better than it by 10% exists, but it costs 10 times more.
23:50:21 jgeerds joins (~jgeerds@55d4a547.access.ecotel.net)
23:51:48 × ix quits (~ix@2a02:8010:674f:0:a71f:d8ff:17eb:65ba) (Ping timeout: 252 seconds)
23:53:39 <monochrom> byorgey: In disco's case expressions, have you considered changing "when <e> is <pat>" to "if <e> is <pat>" so there is one fewer reserved word to learn? Or would it be too hard for the parser?
23:54:11 <Axman6> VS Code is the most popular choice these days, according to the last haskell language survey afidegnum, haskell-language-server works very well with it now too, and doesn't have much of a learning curve
23:54:27 <geekosaur> afidegnum, many people like vscode with the haskell extension. it comes with HLS support out of the box
23:54:43 <geekosaur> it's not my cup of tea, but see /nick :)
23:54:54 <jackdk> I like emacs, but that's because I've spent more than 50% of my life adapting it to me and me to it. This is probably a worthwhile investment if you plan to spend a lot of time coding
23:55:05 <hpc> the best development environment is what you can work quickly with, whether it's an IDE or just a "DE"
23:55:25 <hpc> a split terminal with vim on one side and ghci on the other has always been enough for me
23:55:27 <afidegnum> ok, thanks, i'm using haskell on WSL
23:55:36 <afidegnum> so I think Vscode would work
23:55:47 <Axman6> you'll probably find life easuier with VS Code in that case
23:55:59 <hpc> yeah, on windows vscode is probably best
23:56:08 <afidegnum> cool
23:56:08 <Axman6> hmm, so apparently I'm not authorised to deop myself :thinkingface:
23:56:19 ChanServ sets mode +o geekosaur
23:56:26 geekosaur sets mode -o Axman6
23:56:29 geekosaur sets mode -o geekosaur
23:56:43 <Axman6> <3 ... though I find that pretty funny
23:56:43 <hpc> now what if geekosaur couldn't deop :D
23:56:59 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:57:01 <EvanR> emacs cyborg symbiont
23:57:03 <Axman6> Simple, I'd reop myself and deop them!
23:57:09 <afidegnum> there is a metaprogramming projects i'm working on in python but I guess using haskell would be easier even though i'm a novice
23:57:13 <hpc> oh, problem solved then
23:58:12 jgeerds_ joins (~jgeerds@55d4b9df.access.ecotel.net)
23:59:38 Guest89 joins (~Guest89@114.23.127.15)
23:59:58 <EvanR> afidegnum, that's how I got into haskell, doing some project at work in complete noob fashion

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