2022/03/21

2022-03-21 00:00:42 +0100acidjnk(~acidjnk@p200300d0c7049f09e82162933d024002.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-03-21 00:03:07 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 00:03:16 +0100brandonh(~brandonh@93-34-129-43.ip49.fastwebnet.it) (Ping timeout: 245 seconds)
2022-03-21 00:04:07 +0100brandonh(brandonh@gateway/vpn/protonvpn/brandonh)
2022-03-21 00:04:10 +0100Guest332(~Guest33@catv-178-48-101-37.catv.fixed.vodafone.hu)
2022-03-21 00:06:12 +0100 <sm> ooh, stackage ghc 9.0 lts and 9.2 nightly. Thanks stackage maintainers !
2022-03-21 00:06:36 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
2022-03-21 00:07:25 +0100Guest332(~Guest33@catv-178-48-101-37.catv.fixed.vodafone.hu) ()
2022-03-21 00:07:46 +0100brandonh(brandonh@gateway/vpn/protonvpn/brandonh) (Client Quit)
2022-03-21 00:11:24 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 00:16:32 +0100lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-21 00:18:11 +0100 <jackdk> codeworld-api is used in some assignments in ANU's COMP1100, but I haven't seen it in many other places
2022-03-21 00:18:25 +0100fendor_(~fendor@91.141.33.43.wireless.dyn.drei.com)
2022-03-21 00:20:45 +0100zincy_(~zincy@2a00:23c8:970c:4801:a9ba:a14e:e332:b83f)
2022-03-21 00:20:53 +0100fendor(~fendor@178.165.202.146.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
2022-03-21 00:23:06 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 252 seconds)
2022-03-21 00:25:31 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 00:25:46 +0100mvk(~mvk@2607:fea8:5cc3:7e00::7980) (Ping timeout: 245 seconds)
2022-03-21 00:26:00 +0100vorpuni(~pvorp@2001:861:3881:c690:9ad1:5e5f:92a0:762c) (Remote host closed the connection)
2022-03-21 00:28:03 +0100zincy_(~zincy@2a00:23c8:970c:4801:a9ba:a14e:e332:b83f) (Ping timeout: 252 seconds)
2022-03-21 00:29:27 +0100 <Axman6> Something to propose to the Haskell.org committee? I agree it would be fantastic to have an interactive gist like platform.
2022-03-21 00:30:10 +0100 <Axman6> Sadly there doesn't seem to be an IRC channel, so I have no way to contact them :P
2022-03-21 00:30:48 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 252 seconds)
2022-03-21 00:31:25 +0100Inst(~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
2022-03-21 00:33:07 +0100 <jackdk> I know byorgey was also playing with Haskell on replit and struggled because he pulled in a lot of custom code. Maybe it's good for simpler things?
2022-03-21 00:33:42 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 00:37:08 +0100Midjak(~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
2022-03-21 00:40:15 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Quit: ERC (IRC client for Emacs 27.1))
2022-03-21 00:41:15 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 252 seconds)
2022-03-21 00:43:39 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 00:48:32 +0100acidsys_(~LSD@2a03:4000:55:d20::3) (Excess Flood)
2022-03-21 00:48:49 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 250 seconds)
2022-03-21 00:49:03 +0100acidsys(~LSD@2a03:4000:55:d20::3)
2022-03-21 00:50:03 +0100nexus(~nexus@178-164-188-66.pool.digikabel.hu) (Ping timeout: 252 seconds)
2022-03-21 00:51:27 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 00:51:56 +0100nexus(~nexus@92-249-179-80.pool.digikabel.hu)
2022-03-21 00:56:37 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 250 seconds)
2022-03-21 00:58:32 +0100tcard__(~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving)
2022-03-21 00:59:12 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 01:02:08 +0100lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 252 seconds)
2022-03-21 01:02:47 +0100tcard(~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp)
2022-03-21 01:04:04 +0100 <sm> https://github.com/haskell-infra/www.haskell.org/issues/185 was opened
2022-03-21 01:04:31 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 256 seconds)
2022-03-21 01:06:22 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-03-21 01:07:09 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 01:07:33 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2022-03-21 01:08:55 +0100nicbk(~nicbk@user/nicbk) (Ping timeout: 240 seconds)
2022-03-21 01:09:04 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-03-21 01:09:04 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-03-21 01:09:04 +0100wroathe(~wroathe@user/wroathe)
2022-03-21 01:12:27 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 256 seconds)
2022-03-21 01:12:34 +0100nicbk(~nicbk@user/nicbk)
2022-03-21 01:13:24 +0100wroathe(~wroathe@user/wroathe) (Client Quit)
2022-03-21 01:15:07 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 01:15:17 +0100finley(~finley@129.72.2.108) (Ping timeout: 256 seconds)
2022-03-21 01:16:01 +0100romesrf(~romes@44.190.189.46.rev.vodafone.pt)
2022-03-21 01:18:47 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-03-21 01:18:47 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-03-21 01:18:47 +0100wroathe(~wroathe@user/wroathe)
2022-03-21 01:19:26 +0100eldritch_eldritch
2022-03-21 01:21:07 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 268 seconds)
2022-03-21 01:22:54 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving)
2022-03-21 01:23:05 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 01:24:56 +0100eldritch(~eldritch@user/eldritch/x-9272577) (Changing host)
2022-03-21 01:24:56 +0100eldritch(~eldritch@user/eldritch)
2022-03-21 01:28:31 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 268 seconds)
2022-03-21 01:29:50 +0100Ferdirand(~somebody@2001:4c78:2012:5000::2) (Ping timeout: 260 seconds)
2022-03-21 01:30:58 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 01:35:22 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-03-21 01:36:15 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 250 seconds)
2022-03-21 01:36:41 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 250 seconds)
2022-03-21 01:40:15 +0100lumberjack123(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-03-21 01:43:45 +0100mvk(~mvk@2607:fea8:5cc3:7e00::7980)
2022-03-21 01:49:07 +0100 <energizer> is it possible to implement fmap for functions?
2022-03-21 01:49:15 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 01:52:26 +0100mmhat(~mmh@55d4a453.access.ecotel.net) (Quit: WeeChat 3.4.1)
2022-03-21 01:52:54 +0100 <energizer> fmap (b -> c) -> (a -> b) -> (a -> c)
2022-03-21 01:53:11 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 268 seconds)
2022-03-21 01:53:35 +0100 <boxscape_> energizer yes - I'd recommend trying to implement it yourself, but if you can't, you can also look up that type on hoogle and find plenty of results
2022-03-21 01:53:42 +0100 <jackdk> energizer: `instance Functor ((->) r)`
2022-03-21 01:53:45 +0100 <boxscape_> or that
2022-03-21 01:53:55 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-03-21 01:54:57 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 256 seconds)
2022-03-21 01:55:51 +0100 <romesrf> ericson2314: let us know how it goes
2022-03-21 01:55:57 +0100 <romesrf> energizer:
2022-03-21 01:56:08 +0100 <romesrf> ericson2314: apologize the ping, funny it's you hahaha
2022-03-21 01:56:10 +0100 <energizer> well it turned out that it's already there by defualt
2022-03-21 01:56:24 +0100 <romesrf> energizer: oH! but do take the challenge, it's quite fun
2022-03-21 01:56:37 +0100 <energizer> it's just compose
2022-03-21 01:56:41 +0100 <romesrf> oh :P
2022-03-21 01:56:49 +0100 <energizer> inc x = x + 1; (fmap inc inc) 3 produces 5
2022-03-21 01:56:53 +0100 <romesrf> I thought you were more of a beginner hahaha
2022-03-21 01:57:07 +0100 <energizer> i am :)
2022-03-21 01:57:14 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 01:57:26 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-21 01:57:27 +0100 <romesrf> "it's just compose" is pretty confident (well justified here :P)
2022-03-21 01:57:33 +0100 <romesrf> eheh
2022-03-21 01:57:46 +0100 <romesrf> :info (->)
2022-03-21 01:58:00 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 01:58:03 +0100 <romesrf> %info (->)
2022-03-21 01:58:04 +0100 <geekosaur> % :info (->)
2022-03-21 01:58:06 +0100 <yahb> geekosaur: *** Exception: heap overflow
2022-03-21 01:58:11 +0100 <geekosaur> o.O
2022-03-21 01:58:12 +0100 <romesrf> well that's interesting HAHA
2022-03-21 01:58:15 +0100 <boxscape_> % :q
2022-03-21 01:58:15 +0100 <yahb> boxscape_:
2022-03-21 01:58:21 +0100 <boxscape_> % :i ->
2022-03-21 01:58:23 +0100 <yahb> boxscape_: type (->) :: * -> * -> *; type (->) = FUN 'Many :: * -> * -> *; -- Defined in `GHC.Types'; infixr -1 ->; instance Applicative ((->) r) -- Defined in `GHC.Base'; instance Functor ((->) r) -- Defined in `GHC.Base'; instance Monad ((->) r) -- Defined in `GHC.Base'; instance Monoid b => Monoid (a -> b) -- Defined in `GHC.Base'; instance Semigroup b => Semigroup (a -> b) -- Defined in `GHC.Base'; instance [s
2022-03-21 01:58:42 +0100 <romesrf> oh the output of info here isn't that pretty is it :)
2022-03-21 01:58:49 +0100 <boxscape_> nope :/
2022-03-21 01:58:52 +0100 <geekosaur> use %% to send it to a pastebin
2022-03-21 01:59:00 +0100 <boxscape_> %% :i ->
2022-03-21 01:59:00 +0100 <yahb> boxscape_: http://qp.mniip.com/y/49
2022-03-21 01:59:31 +0100 <romesrf> energizer: do run :info (->) on GHCI for some insight on what type classes `function` instances
2022-03-21 01:59:52 +0100 <romesrf> you can use it for everything else too (:info Maybe)
2022-03-21 02:00:54 +0100 <romesrf> I'm off, bye
2022-03-21 02:00:56 +0100romesrf(~romes@44.190.189.46.rev.vodafone.pt) (Quit: WeeChat 3.4)
2022-03-21 02:01:13 +0100 <boxscape_> bye
2022-03-21 02:01:49 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 240 seconds)
2022-03-21 02:02:37 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-03-21 02:03:12 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2022-03-21 02:04:11 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 02:06:47 +0100lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-21 02:08:13 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4.1)
2022-03-21 02:09:25 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 240 seconds)
2022-03-21 02:09:53 +0100finley(~finley@2600-6c67-8b00-1fea-28ab-40ca-4578-6793.res6.spectrum.com)
2022-03-21 02:11:12 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-03-21 02:11:59 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-03-21 02:12:14 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 02:17:20 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-03-21 02:17:30 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 252 seconds)
2022-03-21 02:20:26 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 02:24:13 +0100geranim0(~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Ping timeout: 240 seconds)
2022-03-21 02:25:52 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 268 seconds)
2022-03-21 02:27:49 +0100ProfSimm(~ProfSimm@87.227.196.109) (Remote host closed the connection)
2022-03-21 02:28:09 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 02:33:27 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 250 seconds)
2022-03-21 02:36:22 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 02:36:25 +0100alMalsamo(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-03-21 02:37:00 +0100canta(~canta@user/canta) (Ping timeout: 240 seconds)
2022-03-21 02:37:13 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
2022-03-21 02:37:16 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 02:39:45 +0100finley(~finley@2600-6c67-8b00-1fea-28ab-40ca-4578-6793.res6.spectrum.com) (Quit: Client closed)
2022-03-21 02:41:45 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 256 seconds)
2022-03-21 02:42:23 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 02:47:46 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 260 seconds)
2022-03-21 02:48:25 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 02:50:32 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 268 seconds)
2022-03-21 02:50:41 +0100canta(~canta@user/canta)
2022-03-21 02:53:48 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 252 seconds)
2022-03-21 02:54:29 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-03-21 02:56:27 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-03-21 02:56:32 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 02:59:58 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-21 03:00:34 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 03:00:55 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-03-21 03:02:01 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-03-21 03:05:19 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Ping timeout: 250 seconds)
2022-03-21 03:06:11 +0100nexus(~nexus@92-249-179-80.pool.digikabel.hu) (Ping timeout: 250 seconds)
2022-03-21 03:07:59 +0100nexus(~nexus@188-143-101-118.pool.digikabel.hu)
2022-03-21 03:09:26 +0100mbuf(~Shakthi@122.174.226.171)
2022-03-21 03:15:49 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 268 seconds)
2022-03-21 03:16:05 +0100wroathe(~wroathe@user/wroathe) (Quit: Lost terminal)
2022-03-21 03:27:25 +0100AlexZenon(~alzenon@94.233.240.162) (Ping timeout: 240 seconds)
2022-03-21 03:28:27 +0100Alex_test(~al_test@94.233.240.162) (Ping timeout: 256 seconds)
2022-03-21 03:28:47 +0100AlexNoo(~AlexNoo@94.233.240.162) (Ping timeout: 256 seconds)
2022-03-21 03:31:25 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-03-21 03:31:25 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-03-21 03:31:25 +0100wroathe(~wroathe@user/wroathe)
2022-03-21 03:36:27 +0100vysn(~vysn@user/vysn)
2022-03-21 03:38:02 +0100neurocyte0917090(~neurocyte@user/neurocyte) (Ping timeout: 240 seconds)
2022-03-21 03:41:05 +0100boxscape_(~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-03-21 03:46:35 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-03-21 03:48:12 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-03-21 03:48:49 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-03-21 03:55:05 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 04:00:21 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 252 seconds)
2022-03-21 04:03:59 +0100lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in)
2022-03-21 04:07:51 +0100hpc(~juzz@ip98-169-35-13.dc.dc.cox.net) (Ping timeout: 245 seconds)
2022-03-21 04:09:37 +0100hpc(~juzz@ip98-169-35-13.dc.dc.cox.net)
2022-03-21 04:12:03 +0100vglfr(~vglfr@88.155.11.162)
2022-03-21 04:12:32 +0100Dorkside2(~dorkside@208.190.197.222)
2022-03-21 04:13:31 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 04:18:14 +0100lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
2022-03-21 04:19:29 +0100Topsi(~Tobias@dyndsl-095-033-027-010.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2022-03-21 04:23:14 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2022-03-21 04:26:49 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 256 seconds)
2022-03-21 04:33:17 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-03-21 04:34:02 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-03-21 04:34:02 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-03-21 04:34:02 +0100finn_elijaFinnElija
2022-03-21 04:34:21 +0100frost(~frost@user/frost)
2022-03-21 04:34:26 +0100mvk(~mvk@2607:fea8:5cc3:7e00::7980) (Ping timeout: 252 seconds)
2022-03-21 04:36:33 +0100Unicorn_Princess(~Unicorn_P@46-54-248-191.static.kate-wing.si) (Remote host closed the connection)
2022-03-21 04:39:40 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 04:45:22 +0100kaph(~kaph@net-109-116-124-149.cust.vodafonedsl.it) (Read error: Connection reset by peer)
2022-03-21 04:45:22 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 260 seconds)
2022-03-21 04:45:37 +0100kaph(~kaph@net-109-116-124-149.cust.vodafonedsl.it)
2022-03-21 04:47:53 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 04:56:59 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 252 seconds)
2022-03-21 04:57:25 +0100vglfr(~vglfr@88.155.11.162) (Ping timeout: 256 seconds)
2022-03-21 04:57:33 +0100waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds)
2022-03-21 05:00:55 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 05:05:15 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2022-03-21 05:07:27 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
2022-03-21 05:09:20 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 05:09:44 +0100alMalsamolumberjack123
2022-03-21 05:10:11 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 05:12:01 +0100nexus(~nexus@188-143-101-118.pool.digikabel.hu) (Ping timeout: 245 seconds)
2022-03-21 05:13:55 +0100nexus(~nexus@80-95-86-84.pool.digikabel.hu)
2022-03-21 05:15:33 +0100alx741(~alx741@host-181-198-243-130.netlife.ec) (Ping timeout: 256 seconds)
2022-03-21 05:17:13 +0100Guest91(~Guest91@198.13.48.162)
2022-03-21 05:21:36 +0100 <Guest91> When reading plutus contract, there is code like this:
2022-03-21 05:21:36 +0100 <Guest91> data Burner
2022-03-21 05:21:37 +0100 <Guest91> instance Scripts.ValidatorTypes Burner where
2022-03-21 05:21:37 +0100 <Guest91>     type instance RedeemerType Burner = MyRedeemer -- Argument given to redeem value, if possible (empty)
2022-03-21 05:21:38 +0100 <Guest91>     type instance DatumType Burner = MyDatum -- Validator script argument
2022-03-21 05:21:38 +0100 <Guest91> Can someone explain this definition or rewrite this code for better understand?
2022-03-21 05:21:49 +0100 <Axman6> @where paste
2022-03-21 05:21:49 +0100 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
2022-03-21 05:23:18 +0100 <Guest91> Complete code is here:  https://github.com/iagon-tech/proof-of-burn-cardano/blob/main/src/ProofOfBurn.hs#L218
2022-03-21 05:23:39 +0100 <Axman6> how much of the code do you understand?
2022-03-21 05:24:26 +0100 <Guest91> It define  Burner type and let it comply to Scripts.ValidatorTypes rule.
2022-03-21 05:25:45 +0100 <Axman6> sort of, it defined the Burner type, which has no constructors (this is pretty unusual unless you intend to only use it in the type system). Then it makes Burner an instance of the ValidatorTypes typeclass.
2022-03-21 05:26:46 +0100 <Axman6> the next two lines define associated types, they say that if you need something of type RedeemerType Burner that will be converted to MyRedeemer - RedeemerType is a _type function_, it takes a type and returns a type
2022-03-21 05:27:49 +0100 <Guest91> Yes, Burner type have no constructor. What I try to understand is code under where keyword.
2022-03-21 05:28:07 +0100 <Axman6> see what I just wrote
2022-03-21 05:28:18 +0100alx741(~alx741@host-181-198-243-130.netlife.ec)
2022-03-21 05:28:34 +0100 <Axman6> @where ops
2022-03-21 05:28:35 +0100 <lambdabot> byorgey Cale conal copumpkin dcoutts dibblego dolio edwardk geekosaur glguy jmcarthur johnw mniip monochrom quicksilver shachaf shapr ski
2022-03-21 05:28:48 +0100 <Axman6> ops: alx741 ^
2022-03-21 05:29:04 +0100 <dibblego> Axman6: ?
2022-03-21 05:29:22 +0100 <Axman6> join/part spam for the last few hours at least
2022-03-21 05:29:57 +0100 <dibblego> ah ok, I have that turned off
2022-03-21 05:30:03 +0100boborygmy__(~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 256 seconds)
2022-03-21 05:30:25 +0100 <Axman6> glirc makes it tolerable without turning it off, but enough of it gets annoying =)
2022-03-21 05:30:38 +0100ChanServ+o dibblego
2022-03-21 05:30:48 +0100 <dibblego> alx741: please join #haskell-ops
2022-03-21 05:30:49 +0100 <Axman6> Guest91: did that explanation make any sense? this is relatively advanced stuff
2022-03-21 05:30:54 +0100dibblego+b *!*@host-181-198-243-130.netlife.ec
2022-03-21 05:31:00 +0100alx741dibblego (alx741)
2022-03-21 05:31:41 +0100boborygmy__(~bob@pool-173-54-217-168.nwrknj.fios.verizon.net)
2022-03-21 05:32:05 +0100 <Guest91> Thanks, not yet. Still need time to digest and absorb it.
2022-03-21 05:32:22 +0100ChanServ-o dibblego
2022-03-21 05:34:09 +0100 <Guest91> From all tutorials I have read, the body of 'where' clause is a list of function implement, but here not fit the rule.
2022-03-21 05:34:53 +0100 <Axman6> I haven't looked at it closely, but this might be a useful article: http://amixtureofmusings.com/2016/05/19/associated-types-and-haskell/
2022-03-21 05:35:48 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-21 05:35:57 +0100 <Axman6> Where is used in a few places in Haskell, notably in the instances of type classes. When we use associated types, we also define family instances when we make an instance of that class
2022-03-21 05:36:10 +0100 <Axman6> thankS dibblego
2022-03-21 05:36:33 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 05:36:33 +0100 <Guest91> Thanks, I will feedback after read that post
2022-03-21 05:38:09 +0100 <Axman6> Maybe a concrete example might help. Say we were making a database library, which we wanted to work with m,ultiple backends, like postgres and mysql. We could define class DB a where type ConnectionFor a :: *; type QueryString a :: *; query :: ConnectionFor a -> QueryFor a -> IO [Text] -- (or something, the result doesn't matter)
2022-03-21 05:40:30 +0100 <Axman6> We could then have data Postgres; instance DB Postgres where type instance ConnectionFor Postgres = PG.Connection; type instance QueryFor Postgres = ByteString; query aPGConnection aBytestring = do ...; data MySQL; instance DB MySQL where type instance ConnectionFor MySQL = MySQL.Connection; type QueryFor MySQL = String; query aMySQLConnection aString = do ...;
2022-03-21 05:41:26 +0100 <Axman6> we end up having: query :: DB a => ConnectionFor a -> QueryFor a -> IO [Text]
2022-03-21 05:42:13 +0100 <Axman6> any code we write that needs to talk to MySQL will have to provide queries as Strings, whereas code for Posstgres will need to provide Bytestrings
2022-03-21 05:48:30 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-21 05:49:08 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 05:52:21 +0100boborygmy__(~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 250 seconds)
2022-03-21 05:55:27 +0100zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-03-21 06:02:10 +0100dust_(~dust@2409:4071:e8f:303d:166:7803:b04d:f06f)
2022-03-21 06:02:56 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-03-21 06:03:55 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds)
2022-03-21 06:06:05 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2022-03-21 06:07:01 +0100 <jackdk> Axman6: an easier example: request/response types: If you make a Request class with an associated type `Response`, you can define `send :: Request r => r -> IO (Response r)`
2022-03-21 06:07:24 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2022-03-21 06:10:13 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2022-03-21 06:12:18 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-03-21 06:12:18 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-03-21 06:12:18 +0100wroathe(~wroathe@user/wroathe)
2022-03-21 06:19:18 +0100img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-03-21 06:20:05 +0100img(~img@user/img)
2022-03-21 06:21:24 +0100dust_(~dust@2409:4071:e8f:303d:166:7803:b04d:f06f) (Ping timeout: 240 seconds)
2022-03-21 06:21:35 +0100dust_(~dust@2409:4071:e8f:303d:166:7803:b04d:f06f)
2022-03-21 06:25:30 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-21 06:26:11 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 06:26:25 +0100dust_(~dust@2409:4071:e8f:303d:166:7803:b04d:f06f) (Client Quit)
2022-03-21 06:31:01 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2022-03-21 06:32:22 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 06:34:19 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2022-03-21 06:35:51 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-03-21 06:35:51 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-03-21 06:35:51 +0100wroathe(~wroathe@user/wroathe)
2022-03-21 06:49:31 +0100_ht(~quassel@231-169-21-31.ftth.glasoperator.nl)
2022-03-21 06:51:48 +0100Guest91(~Guest91@198.13.48.162) (Quit: Client closed)
2022-03-21 06:54:06 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 245 seconds)
2022-03-21 07:03:39 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-21 07:04:13 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 07:06:14 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-03-21 07:06:34 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2022-03-21 07:08:59 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2022-03-21 07:13:20 +0100jstolarek(~jstolarek@staticline-31-183-186-36.toya.net.pl)
2022-03-21 07:16:19 +0100nexus(~nexus@80-95-86-84.pool.digikabel.hu) (Ping timeout: 268 seconds)
2022-03-21 07:17:49 +0100nexus(~nexus@92-249-179-24.pool.digikabel.hu)
2022-03-21 07:27:19 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2022-03-21 07:27:56 +0100Everything(~Everythin@37.115.210.35) (Quit: leaving)
2022-03-21 07:28:52 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-03-21 07:29:07 +0100biberu\(~biberu@user/biberu)
2022-03-21 07:32:41 +0100biberu(~biberu@user/biberu) (Ping timeout: 256 seconds)
2022-03-21 07:32:41 +0100biberu\biberu
2022-03-21 07:35:02 +0100biberu\(~biberu@user/biberu)
2022-03-21 07:37:07 +0100biberu-(~biberu@user/biberu)
2022-03-21 07:38:31 +0100biberu(~biberu@user/biberu) (Ping timeout: 250 seconds)
2022-03-21 07:39:21 +0100biberu(~biberu@user/biberu)
2022-03-21 07:40:59 +0100biberu\(~biberu@user/biberu) (Ping timeout: 268 seconds)
2022-03-21 07:41:59 +0100alp(~alp@user/alp)
2022-03-21 07:42:30 +0100Taneb0Taneb
2022-03-21 07:43:27 +0100biberu-(~biberu@user/biberu) (Ping timeout: 268 seconds)
2022-03-21 07:44:37 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 07:46:34 +0100shriekingnoise(~shrieking@201.231.16.156) (Quit: Quit)
2022-03-21 07:48:44 +0100_ht(~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
2022-03-21 08:00:42 +0100michalz(~michalz@185.246.204.40)
2022-03-21 08:03:02 +0100nshepperd(nshepperd@2600:3c03::f03c:92ff:fe28:92c9)
2022-03-21 08:03:50 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-03-21 08:05:00 +0100acidjnk(~acidjnk@p200300d0c7049f411158f2fd5a8b7b8c.dip0.t-ipconnect.de)
2022-03-21 08:06:11 +0100coot(~coot@213.134.190.95)
2022-03-21 08:07:48 +0100Guest91(~Guest91@198.13.48.162)
2022-03-21 08:09:53 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving)
2022-03-21 08:17:21 +0100gehmehgeh(~user@user/gehmehgeh)
2022-03-21 08:21:29 +0100komikat(~komikat@2409:4070:459a:8110:60cf:a715:e266:571d)
2022-03-21 08:26:47 +0100nexus(~nexus@92-249-179-24.pool.digikabel.hu) (Quit: leaving)
2022-03-21 08:29:42 +0100joo-_(~joo-_@fsf/member/joo--) (Quit: leaving)
2022-03-21 08:29:56 +0100joo-_(~joo-_@80-62-117-94-mobile.dk.customer.tdc.net)
2022-03-21 08:29:56 +0100joo-_(~joo-_@80-62-117-94-mobile.dk.customer.tdc.net) (Changing host)
2022-03-21 08:29:56 +0100joo-_(~joo-_@fsf/member/joo--)
2022-03-21 08:34:02 +0100komikat(~komikat@2409:4070:459a:8110:60cf:a715:e266:571d) (Ping timeout: 260 seconds)
2022-03-21 08:34:35 +0100MajorBiscuit(~MajorBisc@86-88-79-148.fixed.kpn.net)
2022-03-21 08:35:07 +0100metaversum(~metaverse@94.13.111.159) (Quit: Connection error?!)
2022-03-21 08:36:21 +0100damian_(~damian@94.13.111.159)
2022-03-21 08:37:37 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-03-21 08:38:11 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
2022-03-21 08:40:42 +0100abastro[m](~abastroma@2001:470:69fc:105::1:e119)
2022-03-21 08:40:43 +0100MajorBiscuit(~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 250 seconds)
2022-03-21 08:41:51 +0100MajorBiscuit(~MajorBisc@c-001-013-060.client.tudelft.eduvpn.nl)
2022-03-21 08:43:43 +0100 <abastro[m]> Sorry, is this #haskell libera chat or is it something different?
2022-03-21 08:44:01 +0100 <[exa]> this is #haskell channel on libera IRC network, yes
2022-03-21 08:44:55 +0100 <abastro[m]> Thank you! Is this chat relatively inactive? Or is it timezone issue
2022-03-21 08:46:31 +0100 <[exa]> yeah technically it's monday morning or sunday night or something in most "active" timezones right now, so it's not super busy you see
2022-03-21 08:46:55 +0100 <[exa]> otherwise pretty active I'd say
2022-03-21 08:48:38 +0100 <abastro[m]> Oh, I see. Thank you!
2022-03-21 08:50:11 +0100machinedgod(~machinedg@24.105.81.50)
2022-03-21 08:52:27 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-03-21 08:53:57 +0100epolanski(uid312403@id-312403.helmsley.irccloud.com)
2022-03-21 08:55:55 +0100nicbk(~nicbk@user/nicbk) (Ping timeout: 240 seconds)
2022-03-21 08:56:29 +0100jakalx(~jakalx@base.jakalx.net)
2022-03-21 09:01:00 +0100vglfr(~vglfr@88.155.11.162)
2022-03-21 09:01:31 +0100jgeerds(~jgeerds@55d4548e.access.ecotel.net)
2022-03-21 09:02:23 +0100mmhat(~mmh@55d4ea65.access.ecotel.net)
2022-03-21 09:02:44 +0100brandonh(brandonh@gateway/vpn/protonvpn/brandonh)
2022-03-21 09:07:10 +0100brandonh(brandonh@gateway/vpn/protonvpn/brandonh) (Ping timeout: 260 seconds)
2022-03-21 09:11:09 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:9ffa:fe67:ec0c:a7c9)
2022-03-21 09:12:05 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com)
2022-03-21 09:12:46 +0100dextaa_(~dextaa@user/dextaa) (Remote host closed the connection)
2022-03-21 09:17:05 +0100mikoto-chan(~mikoto-ch@84.199.144.235)
2022-03-21 09:17:26 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2022-03-21 09:22:02 +0100brandonh(brandonh@gateway/vpn/protonvpn/brandonh)
2022-03-21 09:25:24 +0100 <jackdk> Some of us are about though
2022-03-21 09:26:15 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-21 09:26:49 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 09:27:01 +0100brandonh(brandonh@gateway/vpn/protonvpn/brandonh) (Ping timeout: 245 seconds)
2022-03-21 09:29:53 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-03-21 09:37:30 +0100dextaa_(~dextaa@user/dextaa)
2022-03-21 09:40:04 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-21 09:42:35 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 09:44:58 +0100raym(~raym@user/raym) (Quit: kernel update, rebooting...)
2022-03-21 09:46:08 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-03-21 09:46:27 +0100raym(~raym@user/raym)
2022-03-21 09:47:00 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2022-03-21 09:47:12 +0100chele(~chele@user/chele)
2022-03-21 09:55:16 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2022-03-21 09:58:10 +0100coot(~coot@213.134.190.95) (Quit: coot)
2022-03-21 09:59:50 +0100dextaa_(~dextaa@user/dextaa) (Remote host closed the connection)
2022-03-21 10:00:09 +0100octeep[m](~octeepoct@2001:470:69fc:105::1:3dbf) (Quit: You have been kicked for being idle)
2022-03-21 10:03:16 +0100brandonh(brandonh@gateway/vpn/protonvpn/brandonh)
2022-03-21 10:03:32 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 10:08:00 +0100califax(~califax@user/califx)
2022-03-21 10:09:23 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2022-03-21 10:18:09 +0100vglfr(~vglfr@88.155.11.162) (Ping timeout: 256 seconds)
2022-03-21 10:19:06 +0100jgeerds(~jgeerds@55d4548e.access.ecotel.net) (Ping timeout: 245 seconds)
2022-03-21 10:22:01 +0100coot(~coot@213.134.190.95)
2022-03-21 10:23:28 +0100ccntrq(~Thunderbi@2a01:c22:8d50:dd00:8e34:5a5f:75dd:cff4)
2022-03-21 10:28:11 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2022-03-21 10:29:35 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4.1)
2022-03-21 10:31:01 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-03-21 10:37:30 +0100dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2022-03-21 10:37:50 +0100coot(~coot@213.134.190.95) (Quit: coot)
2022-03-21 10:39:26 +0100romesrf(~romes@44.190.189.46.rev.vodafone.pt)
2022-03-21 10:39:26 +0100boborygmy__(~bob@pool-173-54-217-168.nwrknj.fios.verizon.net)
2022-03-21 10:45:36 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4.1)
2022-03-21 10:46:45 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-03-21 10:46:56 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-03-21 10:47:27 +0100brandonh(brandonh@gateway/vpn/protonvpn/brandonh) (Ping timeout: 250 seconds)
2022-03-21 10:48:57 +0100boborygmy_(~bob@pool-173-54-217-168.nwrknj.fios.verizon.net)
2022-03-21 10:49:17 +0100brandonh(brandonh@gateway/vpn/protonvpn/brandonh)
2022-03-21 10:51:21 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2022-03-21 10:51:21 +0100boborygmy__(~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 256 seconds)
2022-03-21 10:52:35 +0100brandonh_(~brandonh@2-238-112-186.ip243.fastwebnet.it)
2022-03-21 10:53:57 +0100brandonh(brandonh@gateway/vpn/protonvpn/brandonh) (Ping timeout: 252 seconds)
2022-03-21 10:56:21 +0100 <dminuoso> I have type S and three traversals `Traversal' S A` in my hand. Is there a mechanical way to combine these into a singular `Traversal' S A`
2022-03-21 10:56:43 +0100cosimone(~user@93-44-187-176.ip98.fastwebnet.it)
2022-03-21 10:56:44 +0100lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-03-21 10:56:59 +0100lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-21 10:57:07 +0100lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-03-21 10:57:19 +0100 <dminuoso> (They are disjoint)
2022-03-21 10:57:22 +0100lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-21 10:57:30 +0100lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-03-21 10:58:13 +0100vorpuni(~pvorp@2001:861:3881:c690:6385:bd9:c0d2:296c)
2022-03-21 10:58:20 +0100Pickchea(~private@user/pickchea)
2022-03-21 10:59:39 +0100 <kuribas> liftA2 (>=>) ?
2022-03-21 10:59:44 +0100 <kuribas> :t liftA2 (>=>)
2022-03-21 10:59:45 +0100 <lambdabot> (Monad m, Applicative f) => f (a -> m b) -> f (b -> m c) -> f (a -> m c)
2022-03-21 11:00:33 +0100 <kuribas> looks good.
2022-03-21 11:00:43 +0100brandonh_(~brandonh@2-238-112-186.ip243.fastwebnet.it) (Quit: brandonh_)
2022-03-21 11:01:05 +0100 <kuribas> Though that gives a monad, not an applicative...
2022-03-21 11:01:40 +0100 <kuribas> But the monad is necessary for the composition.
2022-03-21 11:03:18 +0100 <abastro[m]> Uhm, I think they meant lens Traversal
2022-03-21 11:03:22 +0100 <kuribas> Const is not a monad.
2022-03-21 11:04:37 +0100 <kuribas> abastro[m]: those "are" lens traversals.
2022-03-21 11:04:48 +0100 <Taneb> dminuoso: https://hackage.haskell.org/package/lens-5.1/docs/Control-Lens-Unsound.html#v:adjoin
2022-03-21 11:06:00 +0100 <abastro[m]> Oh, kuribas you mean Traversal is an applicative? Uhm still I don't see how it would be used to implement combining many traversals into one
2022-03-21 11:06:29 +0100 <kuribas> type Traversal s t a b = forall f. Applicative f => (a -> f b) -> s -> f t
2022-03-21 11:08:11 +0100boborygmy_(~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 268 seconds)
2022-03-21 11:10:17 +0100ph88(~ph88@2a01:598:a905:e2e:3989:552f:4e88:700e)
2022-03-21 11:11:09 +0100 <abastro[m]> So how is `liftA2 (>=>)` relevant with `((a -> f a) -> (s -> f s)) -> ((a -> f a) -> (s -> f s)) -> ((a -> f a) -> (s -> f s))`?
2022-03-21 11:12:16 +0100 <kuribas> abastro[m]: it works if f is a monad.
2022-03-21 11:12:55 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-03-21 11:14:55 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-03-21 11:14:57 +0100 <abastro[m]> How so? The type does not seem to match.
2022-03-21 11:15:32 +0100 <abastro[m]> * to match. Specifically, `liftA2 (>=>)` has Applicative `f` and Monad `m`
2022-03-21 11:15:44 +0100benin(~benin@183.82.26.94)
2022-03-21 11:17:49 +0100 <kuribas> indeed
2022-03-21 11:18:22 +0100 <kuribas> oh adjoin works by extracting parts, then reassembling.
2022-03-21 11:18:27 +0100 <kuribas> in an unsafe way.
2022-03-21 11:19:33 +0100 <abastro[m]> I don't think `adjoin` would be safe for `Monad` actions either.
2022-03-21 11:19:59 +0100 <abastro[m]> s/./, so I don't see why you are saying`liftA2 >=>`/
2022-03-21 11:20:23 +0100 <kuribas> yeah, it wouldn't work...
2022-03-21 11:21:25 +0100romesrf(~romes@44.190.189.46.rev.vodafone.pt) (Quit: WeeChat 3.4)
2022-03-21 11:24:27 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4.1)
2022-03-21 11:24:27 +0100Guest91(~Guest91@198.13.48.162) (Ping timeout: 256 seconds)
2022-03-21 11:24:46 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-21 11:25:34 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-03-21 11:26:39 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 11:29:24 +0100 <dminuoso> Taneb: Ahh, that's it!
2022-03-21 11:29:29 +0100 <dminuoso> Cheers.
2022-03-21 11:29:41 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-03-21 11:29:42 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 252 seconds)
2022-03-21 11:31:01 +0100 <dminuoso> Oh noo, sets are not traversable..
2022-03-21 11:31:15 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-03-21 11:31:24 +0100 <abastro[m]> Oof
2022-03-21 11:31:27 +0100 <abastro[m]> * Ouch
2022-03-21 11:32:11 +0100 <kuribas> dminuoso: not properly.
2022-03-21 11:32:17 +0100 <kuribas> dminuoso: because it could change the number of elements.
2022-03-21 11:32:42 +0100 <kuribas> dminuoso: maybe you could use the fold?
2022-03-21 11:32:51 +0100Akiva(~Akiva@user/Akiva) (Ping timeout: 245 seconds)
2022-03-21 11:33:13 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 11:33:17 +0100 <dminuoso> No I really want a traversal :>
2022-03-21 11:33:25 +0100 <dminuoso> I guess Ill just create an unsafe one
2022-03-21 11:39:16 +0100thyriaen(~thyriaen@ip5f5af2d7.dynamic.kabel-deutschland.de)
2022-03-21 11:39:27 +0100 <abastro[m]> Do you need to change certain elements? Perhaps you could avoid using Set
2022-03-21 11:39:33 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4.1)
2022-03-21 11:41:26 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-03-21 11:42:26 +0100ph88(~ph88@2a01:598:a905:e2e:3989:552f:4e88:700e) (Ping timeout: 245 seconds)
2022-03-21 11:44:36 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-21 11:45:10 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 11:47:19 +0100 <kuribas> unlawful lenses can be fine for many usecases.
2022-03-21 11:47:28 +0100 <kuribas> As long as you don't rely on the laws to rewrite code.
2022-03-21 11:49:48 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-03-21 11:49:51 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Ping timeout: 250 seconds)
2022-03-21 11:54:42 +0100ph88(~ph88@tmo-121-111.customers.d1-online.com)
2022-03-21 11:56:03 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 11:58:29 +0100ccntrq1(~Thunderbi@2a01:c23:9138:6500:9d51:645d:5278:c792)
2022-03-21 11:58:44 +0100ccntrq(~Thunderbi@2a01:c22:8d50:dd00:8e34:5a5f:75dd:cff4) (Ping timeout: 268 seconds)
2022-03-21 11:58:45 +0100ccntrq1ccntrq
2022-03-21 11:59:51 +0100lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-21 12:04:27 +0100razetime(~quassel@117.193.0.187)
2022-03-21 12:05:13 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-03-21 12:05:54 +0100ccntrq(~Thunderbi@2a01:c23:9138:6500:9d51:645d:5278:c792) (Remote host closed the connection)
2022-03-21 12:06:12 +0100ccntrq(~Thunderbi@2a01:c23:9138:6500:9d51:645d:5278:c792)
2022-03-21 12:06:23 +0100_xor(~xor@dsl-50-5-233-169.fuse.net) (Ping timeout: 256 seconds)
2022-03-21 12:08:34 +0100Pickchea(~private@user/pickchea) (Quit: Leaving)
2022-03-21 12:14:47 +0100img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-03-21 12:15:54 +0100kritzefitz(~kritzefit@debian/kritzefitz) (Ping timeout: 252 seconds)
2022-03-21 12:16:48 +0100kritzefitz(~kritzefit@debian/kritzefitz)
2022-03-21 12:18:37 +0100koz(~koz@121.99.240.58) (Ping timeout: 240 seconds)
2022-03-21 12:22:11 +0100img(~img@user/img)
2022-03-21 12:23:51 +0100Ferdirand(~somebody@2001:4c78:2012:5000::2)
2022-03-21 12:25:02 +0100koz(~koz@121.99.240.58)
2022-03-21 12:31:59 +0100_xor(~xor@74.215.35.24)
2022-03-21 12:39:15 +0100lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 256 seconds)
2022-03-21 12:51:10 +0100mikoto-chan(~mikoto-ch@84.199.144.235) (Ping timeout: 260 seconds)
2022-03-21 12:53:49 +0100gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2022-03-21 12:56:28 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-21 12:56:41 +0100cfricke(~cfricke@user/cfricke)
2022-03-21 12:57:18 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 12:57:26 +0100mmhat(~mmh@55d4ea65.access.ecotel.net) (Ping timeout: 245 seconds)
2022-03-21 12:57:46 +0100jgeerds(~jgeerds@55d4548e.access.ecotel.net)
2022-03-21 13:00:13 +0100acidjnk(~acidjnk@p200300d0c7049f411158f2fd5a8b7b8c.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-03-21 13:05:02 +0100neurocyte0917090(~neurocyte@IP-094046074051.dynamic.medianet-world.de)
2022-03-21 13:05:02 +0100neurocyte0917090(~neurocyte@IP-094046074051.dynamic.medianet-world.de) (Changing host)
2022-03-21 13:05:02 +0100neurocyte0917090(~neurocyte@user/neurocyte)
2022-03-21 13:05:21 +0100mikoto-chan(~mikoto-ch@213.177.151.239)
2022-03-21 13:10:24 +0100boborygmy_(~bob@pool-173-54-217-168.nwrknj.fios.verizon.net)
2022-03-21 13:10:35 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-03-21 13:11:19 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds)
2022-03-21 13:12:38 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-03-21 13:13:08 +0100sprout_(~quassel@2a02:a467:ccd6:1:f9b9:c2d3:ad62:759d)
2022-03-21 13:13:15 +0100razetime(~quassel@117.193.0.187) (Ping timeout: 256 seconds)
2022-03-21 13:13:15 +0100alp(~alp@user/alp) (Ping timeout: 256 seconds)
2022-03-21 13:13:37 +0100razetime(~quassel@117.254.35.71)
2022-03-21 13:13:46 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-03-21 13:17:04 +0100sprout(~quassel@2a02:a467:ccd6:1:dc5b:897:dfbc:2d30) (Ping timeout: 268 seconds)
2022-03-21 13:25:15 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-03-21 13:27:45 +0100jgeerds(~jgeerds@55d4548e.access.ecotel.net) (Ping timeout: 256 seconds)
2022-03-21 13:28:39 +0100mikoto-chan(~mikoto-ch@213.177.151.239) (Ping timeout: 250 seconds)
2022-03-21 13:30:17 +0100lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-21 13:31:49 +0100Midjak(~Midjak@82.66.147.146)
2022-03-21 13:32:36 +0100mmhat(~mmh@55d4ea65.access.ecotel.net)
2022-03-21 13:35:24 +0100alp(~alp@user/alp)
2022-03-21 13:41:13 +0100cfricke(~cfricke@user/cfricke) (Ping timeout: 250 seconds)
2022-03-21 13:43:53 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
2022-03-21 13:45:51 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-03-21 13:46:41 +0100boborygmy_(~bob@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 256 seconds)
2022-03-21 13:50:45 +0100CiaoSen(~Jura@p200300c9570f91002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-03-21 13:51:48 +0100bahamas(~lucian@86.120.77.115)
2022-03-21 13:52:13 +0100mikoto-chan(~mikoto-ch@84.199.144.235)
2022-03-21 13:53:06 +0100notzmv(~zmv@user/notzmv)
2022-03-21 13:55:33 +0100boxscape_(~boxscape_@134.171.45.198)
2022-03-21 13:58:37 +0100boborygmy_(~bob@pool-173-54-217-168.nwrknj.fios.verizon.net)
2022-03-21 14:04:59 +0100shriekingnoise(~shrieking@201.231.16.156)
2022-03-21 14:06:20 +0100ec(~ec@gateway/tor-sasl/ec) (Quit: ec)
2022-03-21 14:08:37 +0100lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 240 seconds)
2022-03-21 14:15:18 +0100rembo10(~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
2022-03-21 14:16:12 +0100rembo10(~rembo10@main.remulis.com)
2022-03-21 14:20:48 +0100tiferrei(~tiferrei@user/tiferrei)
2022-03-21 14:22:11 +0100frost(~frost@user/frost) (Quit: Client closed)
2022-03-21 14:23:05 +0100rembo10(~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
2022-03-21 14:23:52 +0100TimothyBess[m](~dorksidem@2001:470:69fc:105::1:e14e)
2022-03-21 14:24:03 +0100rembo10(~rembo10@main.remulis.com)
2022-03-21 14:27:51 +0100bahamas(~lucian@86.120.77.115) (Ping timeout: 245 seconds)
2022-03-21 14:28:40 +0100bahamas(~lucian@86.120.77.115)
2022-03-21 14:28:42 +0100boxscape_(~boxscape_@134.171.45.198) (Ping timeout: 260 seconds)
2022-03-21 14:30:19 +0100rembo10(~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
2022-03-21 14:30:33 +0100cfricke(~cfricke@user/cfricke)
2022-03-21 14:30:47 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-21 14:31:13 +0100rembo10(~rembo10@main.remulis.com)
2022-03-21 14:31:39 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 14:32:01 +0100foul_owl(~kerry@23.82.193.89) (Ping timeout: 256 seconds)
2022-03-21 14:35:57 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2022-03-21 14:44:37 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 14:45:17 +0100rembo10(~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
2022-03-21 14:45:45 +0100foul_owl(~kerry@23.82.193.87)
2022-03-21 14:46:15 +0100rembo10(~rembo10@main.remulis.com)
2022-03-21 14:47:53 +0100son0p(~ff@181.136.122.143) (Ping timeout: 256 seconds)
2022-03-21 14:49:49 +0100coot(~coot@213.134.190.95)
2022-03-21 14:51:00 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 252 seconds)
2022-03-21 14:53:53 +0100bahamas(~lucian@86.120.77.115) (Ping timeout: 256 seconds)
2022-03-21 14:54:52 +0100Sgeo(~Sgeo@user/sgeo)
2022-03-21 14:57:51 +0100CiaoSen(~Jura@p200300c9570f91002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2022-03-21 14:59:16 +0100damian_(~damian@94.13.111.159) (Quit: Connection error?!)
2022-03-21 14:59:23 +0100__monty__(~toonn@user/toonn)
2022-03-21 14:59:50 +0100linden(~linden@94.13.111.159)
2022-03-21 15:00:10 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-03-21 15:01:19 +0100lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-21 15:01:54 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 268 seconds)
2022-03-21 15:01:54 +0100Inst(~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 268 seconds)
2022-03-21 15:08:24 +0100briandaed(~root@109.95.142.93.r.toneticgroup.pl)
2022-03-21 15:09:26 +0100 <janus> the package aeson-diff (that i uploaded recently) was disabled on stackage because "setup fail needs Cabal exposed"
2022-03-21 15:09:56 +0100 <janus> but i can't reproduce that failure locally, how may it be a problem to not depend on Cabal but only cabal-doctest?
2022-03-21 15:11:51 +0100 <janus> the cabal-doctest page says you only need to depend on Cabal if you use really old cabal-install versions
2022-03-21 15:12:02 +0100 <janus> that are older than 2.4
2022-03-21 15:16:04 +0100troydm1(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-03-21 15:17:14 +0100mud(~mud@user/kadoban) (Quit: quit)
2022-03-21 15:17:21 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
2022-03-21 15:18:05 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 250 seconds)
2022-03-21 15:18:16 +0100mikoto-chan(~mikoto-ch@84.199.144.235) (Ping timeout: 245 seconds)
2022-03-21 15:19:54 +0100ph88^(~ph88@2a01:598:b108:5206:4d46:96d8:e46d:ab60)
2022-03-21 15:23:35 +0100ph88(~ph88@tmo-121-111.customers.d1-online.com) (Ping timeout: 256 seconds)
2022-03-21 15:25:15 +0100mud(~mud@user/kadoban)
2022-03-21 15:27:31 +0100 <jneira[m]> maybe due to the new Cabal-syntax package? stack uses a not so old Cabal version, 3.2 iirc?
2022-03-21 15:27:33 +0100jstolarek(~jstolarek@staticline-31-183-186-36.toya.net.pl) (Ping timeout: 256 seconds)
2022-03-21 15:30:03 +0100dsrt^(~dsrt@96-67-120-105-static.hfc.comcastbusiness.net) (Ping timeout: 252 seconds)
2022-03-21 15:34:45 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-21 15:35:04 +0100 <janus> what is the purpose of the new cabal-syntax package? i saw some discussions on it on the cabal issue tracker but i don't understand the context
2022-03-21 15:35:14 +0100 <merijn> janus: Future proving
2022-03-21 15:35:32 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 15:35:47 +0100 <merijn> janus: The goal is to move stuff out of Cabal into Cabal-syntax
2022-03-21 15:36:22 +0100 <merijn> janus: The current empty package exists so you can already add Cabal-syntax to your dependencies/buildplan for the future
2022-03-21 15:40:49 +0100lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 250 seconds)
2022-03-21 15:43:39 +0100mud(~mud@user/kadoban) (Quit: quit)
2022-03-21 15:44:12 +0100mud(~mud@user/kadoban)
2022-03-21 15:44:26 +0100mud(~mud@user/kadoban) (Client Quit)
2022-03-21 15:47:00 +0100mud(~mud@user/kadoban)
2022-03-21 15:49:40 +0100troydm1(~troydm@host-176-37-124-197.b025.la.net.ua) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset)
2022-03-21 15:49:57 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-03-21 15:51:01 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2022-03-21 15:58:22 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:9ffa:fe67:ec0c:a7c9) (Quit: WeeChat 2.8)
2022-03-21 16:01:38 +0100linden(~linden@94.13.111.159) (Quit: Connection error?!)
2022-03-21 16:02:08 +0100amino_(~amino@94.13.111.159)
2022-03-21 16:02:46 +0100 <janus> ah, so i imagine it is to make packages compatible with future Cabal releases that won't expose the syntax elements?
2022-03-21 16:05:03 +0100 <merijn> The syntax modules are *currently* inside Cabal, but will move to Cabal-syntax in the future
2022-03-21 16:06:37 +0100 <geekosaur> I can't see that causing "setup fail" though?
2022-03-21 16:07:35 +0100 <maerwald[m]> Did you know you can uses braces in cabal file syntax, instead of relying on formatted sections?
2022-03-21 16:08:33 +0100 <geekosaur> no, but it doesn't surprise me much
2022-03-21 16:10:26 +0100 <dminuoso> readFile :: FilePath -> IO Text
2022-03-21 16:10:51 +0100 <dminuoso> I find this quite surprising, that `text` give me functions that expect a String like that.
2022-03-21 16:11:19 +0100 <maerwald[m]> dminuoso: wdym?
2022-03-21 16:11:58 +0100 <sclv> use of string is a convention for filepaths that is in base. text aims to _give_ a text type not _replace_ a string type
2022-03-21 16:12:14 +0100 <sclv> also neither text nor string are proper cross platform types for representing filepaths
2022-03-21 16:12:22 +0100 <sclv> as maerwald[m] is an expert in :-)
2022-03-21 16:12:30 +0100 <dminuoso> sclv: fundamentally cross platform types dont exist anyway.
2022-03-21 16:12:47 +0100 <sclv> they absolutely do
2022-03-21 16:12:56 +0100 <dminuoso> what representation would you chose, then?
2022-03-21 16:13:08 +0100 <dminuoso> ByteString?
2022-03-21 16:13:08 +0100 <sclv> you pick one depending on the platform and provide an abstract interface
2022-03-21 16:13:11 +0100 <dminuoso> Ah
2022-03-21 16:13:15 +0100 <dminuoso> Yeah I guess there's that.
2022-03-21 16:13:21 +0100 <geekosaur> which maerwald has been working on
2022-03-21 16:13:30 +0100 <dminuoso> Neato, is that going into base?
2022-03-21 16:13:38 +0100 <dminuoso> Or as a separate package?
2022-03-21 16:13:47 +0100 <maerwald[m]> dminuoso: there is a cross platform type for filepaths
2022-03-21 16:14:08 +0100 <sclv> https://discourse.haskell.org/t/reviving-the-abstract-filepath-proposal-afpp-in-user-space/2344
2022-03-21 16:14:17 +0100 <maerwald[m]> https://github.com/haskell/filepath/pull/103/files#diff-1839cc6d3f98f035aaadb7aafae70dc5f089ee7607…
2022-03-21 16:15:51 +0100amino_(~amino@94.13.111.159) (Read error: Connection reset by peer)
2022-03-21 16:15:54 +0100ph88^(~ph88@2a01:598:b108:5206:4d46:96d8:e46d:ab60) (Ping timeout: 268 seconds)
2022-03-21 16:16:08 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-03-21 16:16:26 +0100fef(~thedawn@user/thedawn)
2022-03-21 16:16:28 +0100kadobanana(~mud@user/kadoban)
2022-03-21 16:16:33 +0100amino_(~amino@94.13.111.159)
2022-03-21 16:16:46 +0100dextaa(~DV@user/dextaa) (Quit: Ping timeout (120 seconds))
2022-03-21 16:16:48 +0100 <geekosaur> right, there used to be an abstract FilePath
2022-03-21 16:16:52 +0100fef(~thedawn@user/thedawn) (Remote host closed the connection)
2022-03-21 16:16:57 +0100mud(~mud@user/kadoban) (Read error: Connection reset by peer)
2022-03-21 16:16:58 +0100 <maerwald[m]> 1. AbstractFilePath is a platform ifdefed newtype around ShortByteString (typesafe, so using the wrong constructor is a type error)
2022-03-21 16:16:58 +0100 <maerwald[m]> 2. Platform specific newtypes around ShortByteString are exposed as well
2022-03-21 16:16:59 +0100 <maerwald[m]> 3. On windows the bytestring is in UTF-16LE, so it needs specialized functions
2022-03-21 16:16:59 +0100 <geekosaur> as a separate package
2022-03-21 16:17:10 +0100dextaa(~DV@user/dextaa)
2022-03-21 16:17:32 +0100 <maerwald[m]> https://github.com/hasufell/abstract-filepath
2022-03-21 16:17:35 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
2022-03-21 16:20:00 +0100karim(~karim@41.238.138.163)
2022-03-21 16:20:30 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2022-03-21 16:22:22 +0100ec(~ec@gateway/tor-sasl/ec)
2022-03-21 16:24:46 +0100jakalx(~jakalx@base.jakalx.net)
2022-03-21 16:24:55 +0100karim(~karim@41.238.138.163) (Remote host closed the connection)
2022-03-21 16:25:15 +0100karim(~karim@41.238.138.163)
2022-03-21 16:32:23 +0100Typedfern(~Typedfern@170.red-88-24-162.staticip.rima-tde.net) (Ping timeout: 250 seconds)
2022-03-21 16:33:21 +0100Techcable(~Techcable@168.235.93.147) (Remote host closed the connection)
2022-03-21 16:33:51 +0100kaph(~kaph@net-109-116-124-149.cust.vodafonedsl.it) (Ping timeout: 252 seconds)
2022-03-21 16:35:36 +0100Techcable(~Techcable@168.235.93.147)
2022-03-21 16:35:47 +0100waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-03-21 16:38:18 +0100Unicorn_Princess(~Unicorn_P@46-54-248-191.static.kate-wing.si)
2022-03-21 16:40:54 +0100ladyfridaymrmonday
2022-03-21 16:44:06 +0100mc47(~mc47@xmonad/TheMC47)
2022-03-21 16:48:27 +0100Typedfern(~Typedfern@122.red-88-24-160.staticip.rima-tde.net)
2022-03-21 16:50:12 +0100polyphem_(~rod@2a02:810d:840:8754:224e:f6ff:fe5e:bc17) (Ping timeout: 240 seconds)
2022-03-21 16:51:43 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-03-21 16:51:45 +0100mikoto-chan(~mikoto-ch@213.177.151.239)
2022-03-21 16:52:44 +0100lbseale(~ep1ctetus@user/ep1ctetus)
2022-03-21 16:54:17 +0100alp(~alp@user/alp) (Ping timeout: 240 seconds)
2022-03-21 16:54:19 +0100doyougnu(~doyougnu@cpe-67-249-83-190.twcny.res.rr.com)
2022-03-21 16:56:11 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com)
2022-03-21 16:56:36 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
2022-03-21 16:57:25 +0100spikhoff(~spikhoff@8ab7-fe8e-44ff-127b-2180-4880-07d0-2001.sta.estpak.ee)
2022-03-21 16:58:03 +0100coot(~coot@213.134.190.95) (Quit: coot)
2022-03-21 16:58:57 +0100Inst(~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
2022-03-21 16:59:48 +0100boxscape_(~boxscape_@p4ff0b60b.dip0.t-ipconnect.de)
2022-03-21 17:00:32 +0100bb010g(~bb010g@2001:470:69fc:105::9a5) (Quit: You have been kicked for being idle)
2022-03-21 17:00:59 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-21 17:01:17 +0100polyphem(~rod@2a02:810d:840:8754:224e:f6ff:fe5e:bc17)
2022-03-21 17:02:42 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 17:05:15 +0100notzmv(~zmv@user/notzmv)
2022-03-21 17:06:57 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2022-03-21 17:06:58 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Read error: Connection reset by peer)
2022-03-21 17:10:05 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-03-21 17:13:48 +0100bahamas(~lucian@84.232.140.158)
2022-03-21 17:14:22 +0100justsomeguy(~justsomeg@user/justsomeguy)
2022-03-21 17:15:07 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-03-21 17:19:59 +0100cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.3)
2022-03-21 17:24:49 +0100Inst(~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 250 seconds)
2022-03-21 17:27:07 +0100kadobanana(~mud@user/kadoban) (Ping timeout: 256 seconds)
2022-03-21 17:28:03 +0100Pickchea(~private@user/pickchea)
2022-03-21 17:29:25 +0100acidjnk(~acidjnk@p200300d0c7049f411158f2fd5a8b7b8c.dip0.t-ipconnect.de)
2022-03-21 17:31:08 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 268 seconds)
2022-03-21 17:32:33 +0100bahamas(~lucian@84.232.140.158) (Ping timeout: 256 seconds)
2022-03-21 17:33:22 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-03-21 17:33:44 +0100turlando_(~turlando@93-42-250-112.ip89.fastwebnet.it) (Quit: turlando_)
2022-03-21 17:33:58 +0100justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds)
2022-03-21 17:34:18 +0100turlando(~turlando@93-42-250-112.ip89.fastwebnet.it)
2022-03-21 17:34:18 +0100turlando(~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host)
2022-03-21 17:34:18 +0100turlando(~turlando@user/turlando)
2022-03-21 17:34:37 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2022-03-21 17:35:42 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-03-21 17:36:09 +0100zebrag(~chris@user/zebrag)
2022-03-21 17:38:16 +0100lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-21 17:40:14 +0100Guest7(~Guest7@2a02:2149:8841:c400:9476:ae16:b9bd:afdf)
2022-03-21 17:40:54 +0100justsomeguy(~justsomeg@user/justsomeguy)
2022-03-21 17:41:34 +0100lunand(~lunand@2a02:2149:8841:c400:9476:ae16:b9bd:afdf)
2022-03-21 17:41:37 +0100FilipKalan(~FilipKala@77.28.93.105)
2022-03-21 17:41:45 +0100Guest7(~Guest7@2a02:2149:8841:c400:9476:ae16:b9bd:afdf) (Client Quit)
2022-03-21 17:42:22 +0100FilipKalan91(~FilipKala@77.28.93.105)
2022-03-21 17:42:25 +0100FilipKalan91(~FilipKala@77.28.93.105) (Write error: Broken pipe)
2022-03-21 17:42:39 +0100FilipKalan91(~FilipKala@77.28.93.105)
2022-03-21 17:42:53 +0100FilipKalan91(~FilipKala@77.28.93.105) (Client Quit)
2022-03-21 17:43:32 +0100lunand(~lunand@2a02:2149:8841:c400:9476:ae16:b9bd:afdf) (Remote host closed the connection)
2022-03-21 17:43:35 +0100chele(~chele@user/chele) (Remote host closed the connection)
2022-03-21 17:45:35 +0100lumberjack123(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-03-21 17:45:52 +0100javiergarea(~javiergar@62.83.194.64.dyn.user.ono.com)
2022-03-21 17:45:59 +0100alp(~alp@user/alp)
2022-03-21 17:49:14 +0100Akiva(~Akiva@user/Akiva)
2022-03-21 17:49:21 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 17:49:35 +0100hololeap(~hololeap@user/hololeap) (Ping timeout: 240 seconds)
2022-03-21 17:50:53 +0100hololeap(~hololeap@user/hololeap)
2022-03-21 17:53:03 +0100vysn(~vysn@user/vysn) (Ping timeout: 252 seconds)
2022-03-21 17:53:30 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2022-03-21 17:53:36 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2022-03-21 17:55:00 +0100Akiva(~Akiva@user/Akiva) (Ping timeout: 240 seconds)
2022-03-21 17:55:02 +0100vicfred(~vicfred@user/vicfred)
2022-03-21 17:55:23 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds)
2022-03-21 17:57:37 +0100ccntrq(~Thunderbi@2a01:c23:9138:6500:9d51:645d:5278:c792) (Remote host closed the connection)
2022-03-21 18:02:17 +0100jakalx(~jakalx@base.jakalx.net) ()
2022-03-21 18:02:51 +0100geranim0(~geranim0@modemcable242.171-178-173.mc.videotron.ca)
2022-03-21 18:02:52 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-03-21 18:04:53 +0100spikhoff(~spikhoff@8ab7-fe8e-44ff-127b-2180-4880-07d0-2001.sta.estpak.ee) (Quit: Leaving)
2022-03-21 18:05:02 +0100jakalx(~jakalx@base.jakalx.net)
2022-03-21 18:05:40 +0100razetime(~quassel@117.254.35.71) (Ping timeout: 268 seconds)
2022-03-21 18:06:47 +0100Pickchea(~private@user/pickchea) (Ping timeout: 256 seconds)
2022-03-21 18:07:52 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2022-03-21 18:08:51 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2022-03-21 18:12:38 +0100Dorkside2Dorkside
2022-03-21 18:14:55 +0100turlando(~turlando@user/turlando) (Quit: turlando)
2022-03-21 18:15:21 +0100turlando(~turlando@93-42-250-112.ip89.fastwebnet.it)
2022-03-21 18:15:21 +0100turlando(~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host)
2022-03-21 18:15:21 +0100turlando(~turlando@user/turlando)
2022-03-21 18:18:37 +0100jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-03-21 18:21:20 +0100ProfSimm(~ProfSimm@87.227.196.109)
2022-03-21 18:21:45 +0100fendor(~fendor@91.141.35.69.wireless.dyn.drei.com)
2022-03-21 18:22:27 +0100fendor_(~fendor@91.141.33.43.wireless.dyn.drei.com) (Ping timeout: 250 seconds)
2022-03-21 18:22:47 +0100fef(~thedawn@user/thedawn)
2022-03-21 18:23:13 +0100lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 256 seconds)
2022-03-21 18:25:49 +0100lunand(~lunand@2a02:2149:8841:c400:9476:ae16:b9bd:afdf)
2022-03-21 18:26:13 +0100 <kuribas> It looks possible to get GADTs benifits without GADTs.
2022-03-21 18:26:57 +0100 <kuribas> If I have a non-GADT type Expr, I could make a new type newtype TypedExpr a = TypedExpr Expr.
2022-03-21 18:27:09 +0100 <kuribas> Then for each constructor make a constructor for TypedExpr.
2022-03-21 18:27:20 +0100 <kuribas> So I can construct an Expr in a typesafe way.
2022-03-21 18:29:02 +0100FilipKalan(~FilipKala@77.28.93.105) (Quit: Client closed)
2022-03-21 18:29:31 +0100 <glguy> kuribas: the type checker won't learn the equalities on pattern match that way
2022-03-21 18:29:47 +0100 <kuribas> right, it only works for generation.
2022-03-21 18:29:57 +0100 <kuribas> Not for consuming a Expr.
2022-03-21 18:30:02 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-03-21 18:30:08 +0100 <dolio> That is called a "phantom type," and its use predates the inclusion of GADTs in GHC.
2022-03-21 18:30:40 +0100 <dolio> I think some of the earliest papers on GADTs try to explain them as being properly checked phantom types.
2022-03-21 18:31:41 +0100 <kuribas> GADTs seem tricky to parse.
2022-03-21 18:31:51 +0100jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Quit: Leaving)
2022-03-21 18:32:19 +0100 <kuribas> Or the Expr should containt a type witness.
2022-03-21 18:33:26 +0100 <kuribas> Like Expr a where Add :: Expr Int -> Expr Int -> Tag Int -> Expr Int
2022-03-21 18:33:46 +0100epolanski(uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2022-03-21 18:33:48 +0100mmhat(~mmh@55d4ea65.access.ecotel.net) (Ping timeout: 240 seconds)
2022-03-21 18:34:13 +0100 <kuribas> gtg
2022-03-21 18:34:15 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 26.3))
2022-03-21 18:35:01 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds)
2022-03-21 18:37:26 +0100_xor(~xor@74.215.35.24) (Ping timeout: 260 seconds)
2022-03-21 18:38:15 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2022-03-21 18:39:35 +0100_xor(~xor@74.215.232.169)
2022-03-21 18:40:13 +0100justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 256 seconds)
2022-03-21 18:41:58 +0100 <boxscape_> Is there a way to print multiplicities always?
2022-03-21 18:42:24 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-03-21 18:43:47 +0100 <boxscape_> oh I suppose with LinearTypes it's not ambiguous
2022-03-21 18:43:51 +0100 <boxscape_> -> is always Many
2022-03-21 18:44:20 +0100lunand(~lunand@2a02:2149:8841:c400:9476:ae16:b9bd:afdf) (Quit: Client closed)
2022-03-21 18:44:46 +0100 <boxscape_> ... I think
2022-03-21 18:46:02 +0100 <boxscape_> except for data constructors both %Many and %1 are printed as -> :/
2022-03-21 18:46:05 +0100javiergarea(~javiergar@62.83.194.64.dyn.user.ono.com) (Quit: Client closed)
2022-03-21 18:46:16 +0100belphegor666(~satan@user/belphegor666) (Quit: WeeChat 3.4)
2022-03-21 18:46:33 +0100mmhat(~mmh@55d49471.access.ecotel.net)
2022-03-21 18:47:08 +0100 <boxscape_> s/both/where both
2022-03-21 18:47:18 +0100mud(~mud@user/kadoban)
2022-03-21 18:48:13 +0100acidjnk(~acidjnk@p200300d0c7049f411158f2fd5a8b7b8c.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-03-21 18:49:45 +0100belphegor666(~satan@ip-046-223-002-003.um13.pools.vodafone-ip.de)
2022-03-21 18:49:54 +0100mbuf(~Shakthi@122.174.226.171) (Quit: Leaving)
2022-03-21 18:50:17 +0100Akiva(~Akiva@user/Akiva)
2022-03-21 18:50:40 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2022-03-21 18:51:06 +0100carbolymer_carbolymer
2022-03-21 18:52:15 +0100ProfSimm(~ProfSimm@87.227.196.109) (Remote host closed the connection)
2022-03-21 18:52:35 +0100ProfSimm(~ProfSimm@87.227.196.109)
2022-03-21 18:55:56 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-03-21 18:56:53 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 18:58:29 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-21 18:59:02 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 19:02:00 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-03-21 19:03:16 +0100benin(~benin@183.82.26.94) (Quit: The Lounge - https://thelounge.chat)
2022-03-21 19:04:15 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2022-03-21 19:08:46 +0100thyriaen(~thyriaen@ip5f5af2d7.dynamic.kabel-deutschland.de) (Quit: Leaving)
2022-03-21 19:08:57 +0100alp(~alp@user/alp) (Ping timeout: 252 seconds)
2022-03-21 19:11:17 +0100mud(~mud@user/kadoban) (Quit: quit)
2022-03-21 19:12:44 +0100karim(~karim@41.238.138.163) (Remote host closed the connection)
2022-03-21 19:12:55 +0100karim(~karim@41.238.138.163)
2022-03-21 19:13:09 +0100mikoto-chan(~mikoto-ch@213.177.151.239) (Ping timeout: 250 seconds)
2022-03-21 19:15:31 +0100mikoto-chan(~mikoto-ch@213.177.151.239)
2022-03-21 19:19:06 +0100mud(~mud@user/kadoban)
2022-03-21 19:23:43 +0100bahamas(~lucian@84.232.140.158)
2022-03-21 19:24:09 +0100econo(uid147250@user/econo)
2022-03-21 19:30:14 +0100ec_(~ec@gateway/tor-sasl/ec)
2022-03-21 19:30:15 +0100 <tomsmeding> boxscape_: that's odd indeed, can reproduce
2022-03-21 19:31:55 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
2022-03-21 19:32:23 +0100 <asivitz> does `mdo` not work with `ViewPatterns`? doesn't seem to with 8.10.7
2022-03-21 19:34:23 +0100boxscape_(~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2022-03-21 19:35:52 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2022-03-21 19:36:56 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
2022-03-21 19:40:21 +0100notzmv(~zmv@user/notzmv)
2022-03-21 19:40:51 +0100vglfr(~vglfr@88.155.11.162)
2022-03-21 19:44:49 +0100mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
2022-03-21 19:46:35 +0100justsomeguy(~justsomeg@user/justsomeguy)
2022-03-21 19:46:57 +0100mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-03-21 19:50:16 +0100k8yun(~k8yun@user/k8yun)
2022-03-21 19:51:50 +0100alp(~alp@user/alp)
2022-03-21 19:57:22 +0100justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4)
2022-03-21 19:57:34 +0100dextaa_(~dextaa@user/dextaa)
2022-03-21 19:59:05 +0100MajorBiscuit(~MajorBisc@c-001-013-060.client.tudelft.eduvpn.nl) (Ping timeout: 250 seconds)
2022-03-21 19:59:56 +0100bahamas(~lucian@84.232.140.158) (Ping timeout: 245 seconds)
2022-03-21 20:01:13 +0100MajorBiscuit(~MajorBisc@86-88-79-148.fixed.kpn.net)
2022-03-21 20:06:55 +0100MajorBiscuit(~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 256 seconds)
2022-03-21 20:08:15 +0100fef(~thedawn@user/thedawn) (Ping timeout: 240 seconds)
2022-03-21 20:13:48 +0100vglfr(~vglfr@88.155.11.162) (Ping timeout: 240 seconds)
2022-03-21 20:17:03 +0100boxscape_(~boxscape_@p4ff0b60b.dip0.t-ipconnect.de)
2022-03-21 20:18:15 +0100ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
2022-03-21 20:20:37 +0100lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-21 20:20:52 +0100gehmehgeh(~user@user/gehmehgeh)
2022-03-21 20:22:07 +0100briandaed(~root@109.95.142.93.r.toneticgroup.pl) (Remote host closed the connection)
2022-03-21 20:25:35 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2022-03-21 20:26:15 +0100zmt00(~zmt00@user/zmt00)
2022-03-21 20:26:34 +0100Philonous(~Philonous@user/philonous) (Quit: ZNC - https://znc.in)
2022-03-21 20:27:03 +0100Philonous(~Philonous@user/philonous)
2022-03-21 20:27:16 +0100geekosaur(~geekosaur@xmonad/geekosaur)
2022-03-21 20:27:44 +0100 <boxscape_> tomsmeding we'll see https://gitlab.haskell.org/ghc/ghc/-/issues/21275
2022-03-21 20:27:46 +0100bahamas(~lucian@84.232.140.158)
2022-03-21 20:29:39 +0100 <tomsmeding> boxscape_: nice :) I'd personally expect the %1-> to be explicit, given that Many multiplicity is always implicit everywhere else
2022-03-21 20:30:02 +0100 <boxscape_> tomsmeding the thing is that functions by default use Many, but data constructors by default use %1
2022-03-21 20:30:18 +0100 <tomsmeding> hm, that is a point
2022-03-21 20:30:52 +0100 <boxscape_> ...except in GADT syntax they also use Many by default...
2022-03-21 20:31:06 +0100 <tomsmeding> but there they're declared using function syntax, so that kind of makes sense :)
2022-03-21 20:32:02 +0100 <boxscape_> tomsmeding actually there's one more caveat, if -XLinearTypes is turned off, they also %1 even with GADT syntax
2022-03-21 20:32:08 +0100 <boxscape_> s/also/also use
2022-03-21 20:32:29 +0100 <tomsmeding> O.o
2022-03-21 20:32:50 +0100 <boxscape_> backwards compat reasons I think
2022-03-21 20:33:44 +0100 <tomsmeding> TIL
2022-03-21 20:33:55 +0100Pickchea(~private@user/pickchea)
2022-03-21 20:33:57 +0100doyougnu(~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) (Remote host closed the connection)
2022-03-21 20:34:44 +0100 <tomsmeding> I guess it kind of makes sense from the perspective of wanting to be able to use as much pre-lintypes code as possible in lintypes code, but it's a bit surprising that meaning of syntax changes by enabling a language extension
2022-03-21 20:34:57 +0100 <tomsmeding> there are already some other extensions that do that, but eh
2022-03-21 20:35:06 +0100 <tomsmeding> (notably ScopedTypeVariables)
2022-03-21 20:35:14 +0100 <boxscape_> yeah it probably will cause some headaches here and there
2022-03-21 20:35:16 +0100doyougnu(~doyougnu@cpe-67-249-83-190.twcny.res.rr.com)
2022-03-21 20:36:57 +0100mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
2022-03-21 20:39:04 +0100mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-03-21 20:41:24 +0100ph88(~ph88@2a02:8109:9e00:71d0:54e3:425d:deaa:23c2)
2022-03-21 20:42:35 +0100ec_(~ec@gateway/tor-sasl/ec)
2022-03-21 20:44:29 +0100 <geekosaur> ExplicitForall steals an otherwise nonexistent keyword, even
2022-03-21 20:45:39 +0100ubert(~Thunderbi@p200300ecdf1588ca0b7aa2fbaa2d0440.dip0.t-ipconnect.de)
2022-03-21 20:52:42 +0100karim(~karim@41.238.138.163) (Remote host closed the connection)
2022-03-21 20:53:25 +0100mud(~mud@user/kadoban) (Ping timeout: 240 seconds)
2022-03-21 20:53:44 +0100karim(~karim@41.238.138.163)
2022-03-21 20:54:42 +0100karim(~karim@41.238.138.163) (Remote host closed the connection)
2022-03-21 20:55:06 +0100defanor_defanor
2022-03-21 20:57:15 +0100karim(~karim@41.238.138.163)
2022-03-21 20:58:18 +0100zincy_(~zincy@2a00:23c8:970c:4801:a9ba:a14e:e332:b83f)
2022-03-21 20:58:42 +0100karim(~karim@41.238.138.163) (Remote host closed the connection)
2022-03-21 20:59:14 +0100karim(~karim@41.238.138.163)
2022-03-21 21:00:12 +0100karim(~karim@41.238.138.163) (Remote host closed the connection)
2022-03-21 21:02:32 +0100karim(~karim@41.238.138.163)
2022-03-21 21:02:42 +0100karim(~karim@41.238.138.163) (Remote host closed the connection)
2022-03-21 21:04:24 +0100 <tomsmeding> that I'm less troubled with, because code written for NoExplicitForall is unlikely to typecheck with ExplicitForall, and vice-versa (though it's of course possible)
2022-03-21 21:05:01 +0100 <tomsmeding> same with TypeApplications, in most formatting styles that only converts between "meaning something" and "compilation error", which is mostly fine IMO
2022-03-21 21:05:17 +0100karim(~karim@41.238.138.163)
2022-03-21 21:05:39 +0100 <tomsmeding> like, it would be nicer if there were no conflicts at all, but this kind of conflict is fairly benign I think
2022-03-21 21:06:12 +0100karim(~karim@41.238.138.163) (Remote host closed the connection)
2022-03-21 21:06:38 +0100karim(~karim@41.238.138.163)
2022-03-21 21:07:00 +0100javiergarea(~javiergar@62.83.194.64.dyn.user.ono.com)
2022-03-21 21:07:20 +0100dextaa_(~dextaa@user/dextaa) (Read error: Connection reset by peer)
2022-03-21 21:07:21 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds)
2022-03-21 21:07:22 +0100ac(~aloiscoch@2001:470:69fc:105::65)
2022-03-21 21:07:45 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2022-03-21 21:08:17 +0100lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 252 seconds)
2022-03-21 21:08:24 +0100 <tomsmeding> geekosaur: today I found a worse one in the "stealing a keyword" realm: -XStaticPointers steals 'static' in an expression context
2022-03-21 21:08:34 +0100moet(~moet@mobile-166-170-43-26.mycingular.net)
2022-03-21 21:09:17 +0100kaph(~kaph@net-109-116-124-149.cust.vodafonedsl.it)
2022-03-21 21:09:34 +0100dextaa_(~dextaa@user/dextaa)
2022-03-21 21:11:25 +0100karim(~karim@41.238.138.163) (Ping timeout: 240 seconds)
2022-03-21 21:16:51 +0100mud(~mud@user/kadoban)
2022-03-21 21:19:49 +0100zmt01(~zmt00@user/zmt00)
2022-03-21 21:22:32 +0100zmt00(~zmt00@user/zmt00) (Ping timeout: 240 seconds)
2022-03-21 21:23:13 +0100 <maerwald> tomsmeding: https://github.com/haskell-infra/www.haskell.org/issues/185
2022-03-21 21:23:21 +0100 <maerwald> sounds like a good project for your pastebin
2022-03-21 21:24:21 +0100 <maerwald> I don't have an architecture in mind yet... not sure if lambdabot code would help. But afaik it doesn't execute a real ghc
2022-03-21 21:24:44 +0100 <maerwald> codeworld uses ghcjs atm
2022-03-21 21:26:44 +0100texasmynsted(~texasmyns@99.96.221.112) (WeeChat 3.4)
2022-03-21 21:27:57 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 256 seconds)
2022-03-21 21:28:50 +0100nicbk(~nicbk@user/nicbk)
2022-03-21 21:28:57 +0100 <geekosaur> iirc lambdabot uses mueval which is a wrapper around hint which is a wrapper around ghc-api
2022-03-21 21:29:05 +0100 <maerwald> I think spawning real ghc's via bubblewrap chroot should be safe
2022-03-21 21:29:47 +0100jgeerds(~jgeerds@55d4548e.access.ecotel.net)
2022-03-21 21:30:55 +0100 <tomsmeding> maerwald: minor side-comment about code.world, with the ddg browser extension it fails to do anything useful (shows a <textarea> and not much more)
2022-03-21 21:31:24 +0100bahamas(~lucian@84.232.140.158) (Ping timeout: 252 seconds)
2022-03-21 21:31:48 +0100drdo(~drdo@roach0.drdo.eu) (Quit: The Lounge - https://thelounge.chat)
2022-03-21 21:32:46 +0100k8yun(~k8yun@user/k8yun) (Quit: Leaving)
2022-03-21 21:32:52 +0100drdo(~drdo@roach0.drdo.eu)
2022-03-21 21:33:16 +0100 <tomsmeding> maerwald: re pastebin, sounds interesting and cool, though not sure I'd have the time to implement that
2022-03-21 21:34:25 +0100jiribenes(~jiribenes@rosa.jiribenes.com) (Ping timeout: 250 seconds)
2022-03-21 21:34:42 +0100lechner(~lechner@debian/lechner) (Ping timeout: 252 seconds)
2022-03-21 21:36:04 +0100acidsys(~LSD@2a03:4000:55:d20::3) (Excess Flood)
2022-03-21 21:36:35 +0100acidsys(~LSD@2a03:4000:55:d20::3)
2022-03-21 21:37:12 +0100 <maerwald> I think the backend should be easy. Bubblewrap cleans up after the process exits. So it seems like the right fit.
2022-03-21 21:38:20 +0100 <maerwald> is it possible with TH to cause compilation loops?
2022-03-21 21:38:37 +0100foul_owl(~kerry@23.82.193.87) (Ping timeout: 240 seconds)
2022-03-21 21:38:46 +0100dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.4)
2022-03-21 21:39:13 +0100javiergarea(~javiergar@62.83.194.64.dyn.user.ono.com) (Quit: Client closed)
2022-03-21 21:39:36 +0100 <tomsmeding> yes
2022-03-21 21:39:44 +0100 <tomsmeding> % :set -XTemplateHaskell
2022-03-21 21:39:45 +0100 <yahb> tomsmeding:
2022-03-21 21:39:48 +0100 <tomsmeding> % import Language.Haskell.TH
2022-03-21 21:39:48 +0100 <yahb> tomsmeding:
2022-03-21 21:39:50 +0100 <tomsmeding> % $(VarE <$> newName (let loop = loop in loop))
2022-03-21 21:39:55 +0100 <yahb> tomsmeding: [Timed out]
2022-03-21 21:40:28 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-03-21 21:41:22 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-03-21 21:46:45 +0100 <tomsmeding> maerwald: https://wiki.archlinux.org/title/Bubblewrap claims that bubblewrap doesn't fully protect the machine from malicious code
2022-03-21 21:47:34 +0100 <maerwald> that's specific to X11 it seems
2022-03-21 21:48:09 +0100 <maerwald> I mean yeah... if you expose the docker socket into a bubblewrap chroot, you're done as well
2022-03-21 21:48:11 +0100 <tomsmeding> the "like" in "like the X11 window system" makes me nervous though
2022-03-21 21:48:18 +0100 <tomsmeding> yeah lol
2022-03-21 21:48:36 +0100 <tomsmeding> ah I see
2022-03-21 21:48:48 +0100 <tomsmeding> so with a tiny enough chroot, it should be fine
2022-03-21 21:49:17 +0100 <maerwald> and then run this crap on some HF paid cloud where no one needs to deal with DoS
2022-03-21 21:49:24 +0100 <tomsmeding> heh yeah
2022-03-21 21:49:47 +0100 <tomsmeding> DoS is going to be a problem anyway, but less bad than exploiable holes
2022-03-21 21:50:32 +0100pavonia(~user@user/siracusa)
2022-03-21 21:53:52 +0100foul_owl(~kerry@174-21-69-110.tukw.qwest.net)
2022-03-21 21:54:14 +0100 <maerwald> send a key-value pair or some dumb machine-parsable challenge on first POST request?
2022-03-21 21:54:15 +0100Pickchea(~private@user/pickchea) (Quit: Leaving)
2022-03-21 21:55:10 +0100 <tomsmeding> what would that do, make the DoS script somewhat more complicated?
2022-03-21 21:55:49 +0100 <maerwald> no, just prevent trash posts firing through to the ghc process
2022-03-21 21:55:58 +0100 <maerwald> if someone targets the backend, they'll find a way anyway
2022-03-21 21:56:10 +0100 <tomsmeding> ah, good point, that's actually useful
2022-03-21 21:56:52 +0100 <maerwald> could embed a secret in the frontend, but then you can just use a selenium script :p
2022-03-21 21:57:25 +0100 <tomsmeding> I know a website that does that, and indeed we worked around that using a browser control script ;p
2022-03-21 21:57:33 +0100 <tomsmeding> fun times
2022-03-21 21:58:54 +0100 <sm> lol
2022-03-21 21:59:19 +0100 <sm> I see you wearing a MHGA hat maerwald
2022-03-21 22:00:35 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-03-21 22:00:40 +0100 <tomsmeding> I encourate you to do a web search on "MHGA" and amuse yourself with the variety of completely unrelated hits you get
2022-03-21 22:00:45 +0100 <tomsmeding> *encourage
2022-03-21 22:00:51 +0100 <maerwald> sm: repl.it is open source?
2022-03-21 22:01:44 +0100 <sm> I don't think so but I wouldn't rule it out
2022-03-21 22:03:18 +0100 <sm> bits of it are at least: https://github.com/replit
2022-03-21 22:03:30 +0100 <[exa]> repl.it has lots of components out except AFAIK the actual main web frontend integration
2022-03-21 22:03:41 +0100 <maerwald> I think it has way more features than what I'm interested in
2022-03-21 22:03:57 +0100 <maerwald> and doesn't have those I am interested in
2022-03-21 22:03:59 +0100 <[exa]> there's the docker wrapper for executing the replits
2022-03-21 22:04:05 +0100 <maerwald> (selecting the ghc version)
2022-03-21 22:04:40 +0100hgolden(~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Remote host closed the connection)
2022-03-21 22:04:43 +0100 <maerwald> seems like a different use case to me than a simple rust like playground
2022-03-21 22:05:17 +0100 <sm> that's why I'm asking for your use cases/objectives on the issue, it helps everyone see what will work best
2022-03-21 22:06:33 +0100hgolden(~hgolden2@cpe-172-114-81-123.socal.res.rr.com)
2022-03-21 22:06:35 +0100mikoto-chan(~mikoto-ch@213.177.151.239) (Ping timeout: 252 seconds)
2022-03-21 22:06:40 +0100 <sm> I mentioned repl.it just in case could fit the need, even in the short term, since it exists and that would free up a lot of time and energy for the next task
2022-03-21 22:07:49 +0100 <sm> but maybe code.world even more so
2022-03-21 22:08:43 +0100 <sm> what's your goal with providing all GHC versions ?
2022-03-21 22:09:09 +0100 <sm> because that seems in tension with "simple backend"
2022-03-21 22:09:31 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 245 seconds)
2022-03-21 22:09:59 +0100 <sm> for testing compatibility of code snippets, troubleshooting etc. ?
2022-03-21 22:10:12 +0100 <tomsmeding> I'm not sure providing multiple versions of ghc is really the most difficult part of building such a thing
2022-03-21 22:10:14 +0100 <maerwald> sm: I think it is simple to implement
2022-03-21 22:10:27 +0100 <tomsmeding> assuming you're not talking about ghc 5.1 or something, just the easily installable ghcup versions
2022-03-21 22:10:46 +0100 <sm> ok, it sounded difficult for code world at least
2022-03-21 22:10:55 +0100 <maerwald> sm: they have different feature sets as well
2022-03-21 22:11:01 +0100 <maerwald> they need ghcjs, libraries etc.
2022-03-21 22:11:12 +0100 <maerwald> we don't need ghcjs
2022-03-21 22:11:47 +0100 <sm> I'll try to refrain from further brainstorming until I understand your use cases / end goals
2022-03-21 22:11:47 +0100 <maerwald> so I'd just copy the API how cdsmith described it
2022-03-21 22:12:02 +0100 <maerwald> sm: https://play.rust-lang.org/ :p
2022-03-21 22:12:12 +0100 <maerwald> that to me is the right feature set
2022-03-21 22:12:14 +0100 <sm> why ? :)
2022-03-21 22:12:15 +0100 <maerwald> and presentation
2022-03-21 22:12:16 +0100 <geekosaur> I went looking for the source to yahb and didn't find it immediately. had a URL once but suspect it's on the dead HD :(
2022-03-21 22:12:25 +0100 <sm> right for what ?
2022-03-21 22:12:43 +0100 <tomsmeding> geekosaur: are you saying that yahb is running but source is gone?
2022-03-21 22:12:53 +0100 <maerwald> sm: sharing some code you can run, e.g. advent of code, a simple problem etc.
2022-03-21 22:13:17 +0100 <maerwald> repl.it was always broken on my mobile, something with the input
2022-03-21 22:13:28 +0100 <geekosaur> just saying I can't find it now
2022-03-21 22:14:06 +0100 <maerwald> sm: I might also steal ideas from plutus playground :p
2022-03-21 22:14:08 +0100 <maerwald> https://playground.plutus.iohkdev.io/
2022-03-21 22:14:12 +0100 <sm> ok, so like a superpastebin/jsfiddle .. that just works, and is community managed so responsive to our needs, and prominently located so people will actually find and use it.. and why multiple GHC versions ? well never mind, sounds great
2022-03-21 22:14:43 +0100 <sm> +1
2022-03-21 22:15:00 +0100 <geekosaur> actually it seems to be https://github.com/mniip/xsBot
2022-03-21 22:15:12 +0100grimey(~grimey@pool-108-26-35-23.syrcny.east.verizon.net)
2022-03-21 22:15:45 +0100 <monochrom> A long time ago I used chrisdone's https://tryhaskell.org/ . It also has a web API, I have a usage example at view-source:https://www.vex.net/~trebla/haskell/testbed.cgi
2022-03-21 22:15:57 +0100 <geekosaur> I'm not sure multiple versions is actually necessary, we don'tchange *quite* as quickly as rust
2022-03-21 22:16:03 +0100 <sm> (https://playground.plutus.iohkdev.io doesn't work in safari..)
2022-03-21 22:16:33 +0100 <geekosaur> oh. I meant the url was on the dead HD
2022-03-21 22:16:36 +0100 <geekosaur> yahb isn't mine
2022-03-21 22:16:42 +0100 <monochrom> (Hell, https://www.haskell.org/ uses it too :) )
2022-03-21 22:17:16 +0100 <geekosaur> its sandbox appears to be one of mniip'sother repos
2022-03-21 22:17:36 +0100 <sm> monochrom: I was assuming that's the thing currently on haskell.org front page, that maerwald has rejected as too basic.. is it not ?
2022-03-21 22:17:39 +0100 <janus> monochrom: it keeps saying 'waiting'
2022-03-21 22:17:45 +0100 <monochrom> Ah OK.
2022-03-21 22:18:04 +0100 <janus> aaah it is blocked because of strict origin policy
2022-03-21 22:18:31 +0100 <sm> I guess that is it. I think that gizmo is very cool and should be kept, perhaps expanded
2022-03-21 22:18:41 +0100 <monochrom> I just mean if you can find its source code, it may be a good starting point for building your own.
2022-03-21 22:18:44 +0100 <maerwald> sm: and then ideally it would integrate with paste.tomsmeding.com
2022-03-21 22:18:58 +0100 <sm> sounds good
2022-03-21 22:22:14 +0100Guest50(~Guest50@p435057.gifunt01.ap.so-net.ne.jp)
2022-03-21 22:22:36 +0100fendor(~fendor@91.141.35.69.wireless.dyn.drei.com) (Remote host closed the connection)
2022-03-21 22:22:42 +0100Guest50(~Guest50@p435057.gifunt01.ap.so-net.ne.jp) (Client Quit)
2022-03-21 22:22:55 +0100fendor(~fendor@91.141.35.69.wireless.dyn.drei.com)
2022-03-21 22:29:01 +0100mud(~mud@user/kadoban) (Ping timeout: 240 seconds)
2022-03-21 22:29:32 +0100moet(~moet@mobile-166-170-43-26.mycingular.net) (Ping timeout: 240 seconds)
2022-03-21 22:31:00 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
2022-03-21 22:31:19 +0100moet(~moet@mobile-166-177-250-99.mycingular.net)
2022-03-21 22:32:51 +0100lottaquestions(~nick@2607:fa49:5041:a200:746b:7a76:5f:680b)
2022-03-21 22:38:33 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 256 seconds)
2022-03-21 22:39:39 +0100zincy_(~zincy@2a00:23c8:970c:4801:a9ba:a14e:e332:b83f) (Remote host closed the connection)
2022-03-21 22:40:21 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net)
2022-03-21 22:42:32 +0100ec_ec
2022-03-21 22:42:35 +0100wyrd(~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 240 seconds)
2022-03-21 22:42:48 +0100 <[itchyjunk]> Hm, is there a hard coded PI in ghci somewhere? i need a 25 digit excpansion of pi :x
2022-03-21 22:43:10 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-03-21 22:43:51 +0100 <geekosaur> % :info pi
2022-03-21 22:43:52 +0100 <yahb> geekosaur: type Floating :: * -> Constraint; class Fractional a => Floating a where; pi :: a; ...; -- Defined in `GHC.Float'
2022-03-21 22:43:54 +0100 <tomsmeding> [itchyjunk]: in what data type were you planning to store that
2022-03-21 22:44:02 +0100 <tomsmeding> > pi :: Double
2022-03-21 22:44:04 +0100 <lambdabot> 3.141592653589793
2022-03-21 22:44:21 +0100 <geekosaur> so it fits the type, which must have a Floating instance. neither Float nor Double will do for 25 digits
2022-03-21 22:44:33 +0100 <geekosaur> > pi :: CReal
2022-03-21 22:44:34 +0100 <lambdabot> 3.1415926535897932384626433832795028841972
2022-03-21 22:44:50 +0100 <geekosaur> note that CReal is *slow*
2022-03-21 22:45:00 +0100 <tomsmeding> oh is that the computable reals thing?
2022-03-21 22:45:01 +0100yauhsien(~yauhsien@61-231-22-192.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-03-21 22:45:03 +0100 <geekosaur> yes
2022-03-21 22:45:15 +0100 <geekosaur> default is 50 digits precision iirc
2022-03-21 22:45:15 +0100 <tomsmeding> I'm always fascinated by that stuff
2022-03-21 22:45:23 +0100acidjnk(~acidjnk@p200300d0c7049f41b9198ff49f7dde11.dip0.t-ipconnect.de)
2022-03-21 22:46:13 +0100 <abastro[m]> Computable reals? How is it encoded
2022-03-21 22:46:39 +0100 <sm> "the Haskell Prelude was nearly all written before there was even a working compiler" - true ?
2022-03-21 22:47:53 +0100 <[itchyjunk]> tomsmeding, ideally in a list as integers
2022-03-21 22:47:55 +0100 <geekosaur> numbers package. I don't recall how it's encoded
2022-03-21 22:47:59 +0100 <[itchyjunk]> to do this stuff blob:https://imgur.com/c45d51be-f11b-421c-9572-8f0925c3eeab
2022-03-21 22:48:00 +0100 <leah2> sm: i guess hugs was first, and was an interpreter
2022-03-21 22:48:01 +0100 <[itchyjunk]> oops
2022-03-21 22:48:05 +0100 <[itchyjunk]> https://i.imgur.com/wsSa2wS.png
2022-03-21 22:48:06 +0100 <[itchyjunk]> this stuff
2022-03-21 22:48:26 +0100 <tomsmeding> right, there's no such constant in the standard library
2022-03-21 22:48:33 +0100 <tomsmeding> but, like, copy it from the internet :p
2022-03-21 22:48:51 +0100 <[itchyjunk]> right, i guess i'll have to use the power of internet :x
2022-03-21 22:48:57 +0100 <tomsmeding> https://duckduckgo.com/?q=pi+25+digits&t=newext&atb=v309-1&ia=answer
2022-03-21 22:48:59 +0100 <boxscape_> alternatively, do it the fun way and implement an infinite series to compute the digits
2022-03-21 22:48:59 +0100 <geekosaur> the first Prelude was part of the first Report before there was a compiler, no?
2022-03-21 22:49:12 +0100 <abastro[m]> Interesting
2022-03-21 22:49:30 +0100 <[itchyjunk]> I had implemented some way of computing pi but past 6 digit, the accuracy was slow..
2022-03-21 22:49:39 +0100 <geekosaur> but note that it will have had substantial differences from the one we know, like not having Monad (and therefore monadic IO)
2022-03-21 22:49:39 +0100 <[itchyjunk]> it was some sort of convergent series.. not sure what i had tried
2022-03-21 22:49:45 +0100 <[itchyjunk]> maybe something involving tan
2022-03-21 22:50:08 +0100 <leah2> but ghc started in 1992, so...
2022-03-21 22:50:24 +0100 <tomsmeding> [itchyjunk]: did you do the computation with Doubles? That wouldn't ever get more precise than the `pi` already present :p
2022-03-21 22:50:34 +0100 <geekosaur> right, first Haskell Report was 1990 though
2022-03-21 22:50:47 +0100 <abastro[m]> Did not know ghc was so recent
2022-03-21 22:50:50 +0100 <[itchyjunk]> tomsmeding, ah :< well copy from internet it is
2022-03-21 22:51:07 +0100 <abastro[m]> I guess it is after python then
2022-03-21 22:51:16 +0100 <abastro[m]> * is after (c)python then
2022-03-21 22:51:31 +0100 <tomsmeding> [itchyjunk]: Double itself only has ~16 digits of precision
2022-03-21 22:52:24 +0100 <abastro[m]> Prob sth like 4 * (1 - 1/3 + 1/5 ...)?
2022-03-21 22:52:29 +0100 <abastro[m]> That stuff is terribly slow
2022-03-21 22:52:32 +0100 <tomsmeding> [itchyjunk]: if you want to try a series again, perhaps try this one: https://en.wikipedia.org/wiki/Pi#Spigot_algorithms
2022-03-21 22:52:45 +0100 <geekosaur> python 1.0 goes back to the late 80s, yes
2022-03-21 22:52:49 +0100 <tomsmeding> that gives you any part of the (base-16) expansion of pi without having to compute the rest
2022-03-21 22:53:04 +0100 <tomsmeding> but realistically, copy the 25 digits from somewhere lol
2022-03-21 22:53:28 +0100 <abastro[m]> Idk why I hear python being influenced by haskell then
2022-03-21 22:53:40 +0100 <tomsmeding> python evolved after 1.0 ;)
2022-03-21 22:53:46 +0100 <geekosaur> because python 1.0 was much simpler
2022-03-21 22:54:19 +0100 <geekosaur> list comprehensions (most often mentioned example of copying from haskell) came much later
2022-03-21 22:55:25 +0100 <abastro[m]> I see, I guess many of those ppl might not like list comprehension then
2022-03-21 22:56:30 +0100 <[itchyjunk]> oh.. wow didn't think about the double's precision itself limiting me. hmm xD
2022-03-21 22:56:30 +0100 <abastro[m]> What was the language first had indentation instead of semicolon, btw?
2022-03-21 22:56:39 +0100 <geekosaur> I don't think many people want to go back to python 1
2022-03-21 22:57:13 +0100 <abastro[m]> I heard massive backlash from structured pattern matching
2022-03-21 22:57:44 +0100 <abastro[m]> So I can only imagine what it was like in introducing list comprehension
2022-03-21 22:59:23 +0100 <geekosaur> as for indentation, I'm tempted to point to languages that were entered on punched cards; there were column restrictions
2022-03-21 22:59:39 +0100 <geekosaur> but python 1 had indentation before haskell did
2022-03-21 23:00:40 +0100 <geekosaur> I don't recall at this point whether snobol had column restrictions on fail/success annotations or not;if it did then that pushes it back to the early 60s
2022-03-21 23:00:41 +0100 <tomsmeding> hah the original FORTRANs
2022-03-21 23:01:01 +0100 <boxscape_> I imagine Miranda had it, too, did it take meaningful indentation from another language?
2022-03-21 23:01:17 +0100 <geekosaur> right, but I think the only thing fortran cared about was columns 8-72 for program and 7 marked a continuation line
2022-03-21 23:01:32 +0100 <tomsmeding> yeah
2022-03-21 23:01:38 +0100 <abastro[m]> History is hard
2022-03-21 23:01:45 +0100 <geekosaur> (by convention the first 6 were sequence number and last 8 the program name)
2022-03-21 23:02:02 +0100 <abastro[m]> ~~Perhaps python influenced haskell~~?
2022-03-21 23:02:23 +0100 <abastro[m]> s/~~/~/, s/~~?/~?/
2022-03-21 23:02:31 +0100 <tomsmeding> lots of stuff influenced lots of stuff
2022-03-21 23:02:36 +0100 <abastro[m]> s/~~/~*/, s/~~?/*~?/
2022-03-21 23:02:48 +0100 <abastro[m]> Oh.
2022-03-21 23:03:04 +0100 <geekosaur> miranda was 1985 so before python
2022-03-21 23:04:04 +0100 <geekosaur> wikipedia says layout was taken from ISWIM which was first described in 1966
2022-03-21 23:04:12 +0100 <abastro[m]> Ah, right miranda was what haskell is based on
2022-03-21 23:04:17 +0100ph88^(~ph88@ip5f5af71f.dynamic.kabel-deutschland.de)
2022-03-21 23:04:23 +0100 <abastro[m]> 1966? Wow
2022-03-21 23:04:26 +0100 <geekosaur> haskell was based on miranda and gofer
2022-03-21 23:04:52 +0100mud(~mud@user/kadoban)
2022-03-21 23:04:59 +0100 <abastro[m]> Guess indentation just lost out to semicolons in language landscapes
2022-03-21 23:05:07 +0100wyrd(~wyrd@gateway/tor-sasl/wyrd)
2022-03-21 23:05:10 +0100 <abastro[m]> ..because of C, I guess
2022-03-21 23:05:21 +0100 <geekosaur> C is to blame for a lot of things, yes
2022-03-21 23:05:59 +0100 <abastro[m]> Yet ppl praise python for its indentation scheme
2022-03-21 23:06:00 +0100lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-21 23:06:01 +0100 <abastro[m]> Hmmmmmmm
2022-03-21 23:06:15 +0100 <tomsmeding> that's just people not knowing the history
2022-03-21 23:06:27 +0100 <abastro[m]> Indeed
2022-03-21 23:06:46 +0100 <hpc> let's be honest, most people praise python for saving them the keys "public static void main", but not in so many words
2022-03-21 23:07:11 +0100 <abastro[m]> LMAO true
2022-03-21 23:07:18 +0100 <abastro[m]> "J a v a"
2022-03-21 23:07:19 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-03-21 23:07:27 +0100Codaraxis(~Codaraxis@user/codaraxis)
2022-03-21 23:07:31 +0100 <tomsmeding> public class Main { public static void main(String[] args) { ... } }
2022-03-21 23:07:42 +0100 <tomsmeding> System.Console.writeLn("hi")
2022-03-21 23:07:44 +0100 <abastro[m]> Hahahahahahahaha
2022-03-21 23:07:51 +0100 <tomsmeding> > putStrLn "hi"
2022-03-21 23:07:52 +0100 <lambdabot> <IO ()>
2022-03-21 23:07:58 +0100 <tomsmeding> % putStrLn "hi"
2022-03-21 23:07:58 +0100 <yahb> tomsmeding: hi
2022-03-21 23:08:00 +0100 <tomsmeding> okay then
2022-03-21 23:08:01 +0100 <jackdk> If you're teaching imperative code, being able to explain the execution model by saying "read the named file, then line-by-line ..." is a damn sight better than needing to explain classes before you get to "Hello, world!"
2022-03-21 23:08:12 +0100ph88(~ph88@2a02:8109:9e00:71d0:54e3:425d:deaa:23c2) (Ping timeout: 240 seconds)
2022-03-21 23:08:21 +0100 <tomsmeding> indeed
2022-03-21 23:08:48 +0100 <jackdk> But much of python (at least when I learned) only makes sense if you imagine a harried C programmer writing the runtime: truncating division of ints, old-style classes, ...
2022-03-21 23:08:54 +0100 <abastro[m]> Well tbh writing "public static void" makes you feel you are doing something
2022-03-21 23:09:27 +0100 <abastro[m]> Also it supposedly helps with readability
2022-03-21 23:09:31 +0100 <tomsmeding> I like that haskell sometimes makes me feel like I'm not doing much
2022-03-21 23:09:40 +0100 <abastro[m]> Hehe right
2022-03-21 23:09:57 +0100 <jackdk> "definition, definition, definition, whoops the problem is solved! how did that happen?"
2022-03-21 23:10:14 +0100 <jackdk> some of jle's adventures with Free structures really have that flavour
2022-03-21 23:10:58 +0100EsoAlgo(~EsoAlgo@152.70.142.52) (Remote host closed the connection)
2022-03-21 23:11:40 +0100 <hpc> when i have explained haskell, people have unironically asked me where the code was
2022-03-21 23:11:54 +0100 <abastro[m]> > If you're teaching imperative code, being able to explain the execution model by saying "read the named file, then line-by-line ..." is a damn sight better than needing to explain classes before you get to "Hello, world!"
2022-03-21 23:11:54 +0100 <abastro[m]> Why does "having to explain class" feel familiar.. wait. Burritos.
2022-03-21 23:11:56 +0100 <lambdabot> <hint>:1:35: error: parse error on input ‘,’
2022-03-21 23:11:56 +0100 <hpc> "all you did was define some constants"
2022-03-21 23:12:40 +0100 <abastro[m]> For real? They thought it was not code?
2022-03-21 23:12:45 +0100EsoAlgo(~EsoAlgo@152.70.142.52)
2022-03-21 23:12:48 +0100 <hpc> yep
2022-03-21 23:12:53 +0100 <abastro[m]> Ah right, imperative programmers.
2022-03-21 23:12:54 +0100 <hpc> @quote cried
2022-03-21 23:12:54 +0100 <lambdabot> Ferdirand says: I was TA for a C++ programming course aimed at 1st year physics once. Some girl asked for help "i wrote pseudo-code but I cannot translate it to C++". Her pseudo-code was valid
2022-03-21 23:12:54 +0100 <lambdabot> haskell. I cried.
2022-03-21 23:13:08 +0100 <Hecate> :')
2022-03-21 23:13:35 +0100 <jackdk> abastro[m]: LOL, good point. But you can at least do computations without understanding classes, and there's a few good and gentle paths through to Monad these days
2022-03-21 23:14:02 +0100 <boxscape_> you can also write "hello world" without touching Monads, you only need do notation if you want to do more than one IO action :P
2022-03-21 23:14:06 +0100 <jackdk> abastro[m]: Also happened in the Haskell vs. Awk vs. C++ vs. whatever the rest was paper - the Haskell solution was mistaken for a specification language instead of executable code.
2022-03-21 23:14:10 +0100 <abastro[m]> Yea, wish IO monad was easier
2022-03-21 23:14:32 +0100 <abastro[m]> Mistaken for specification lang, ya
2022-03-21 23:14:33 +0100 <abastro[m]> Saw that thing
2022-03-21 23:14:47 +0100 <abastro[m]> Tho I cannot believe a girl writing valid haskell
2022-03-21 23:14:48 +0100 <jackdk> boxscape_: Yeah. Separating "the `IO` type constuctor", "`do` notation", and "the `Monad` class" is an important part of educating beginners
2022-03-21 23:14:58 +0100 <abastro[m]> (Perhaps the girl was haskeller)
2022-03-21 23:15:03 +0100 <hpc> fun historical fact, the "mistaken for a specification language" thing happened to lisp to
2022-03-21 23:15:06 +0100 <hpc> /by its creator/
2022-03-21 23:15:19 +0100 <abastro[m]> ??????
2022-03-21 23:15:23 +0100 <hpc> lisp was never intended to be run, it was just a nice way to publish papers
2022-03-21 23:15:38 +0100 <jackdk> "you can't write a lisp interpreter, that's theory, not application" - McCarthy, to one of his grad students maybe, paraphrased
2022-03-21 23:15:43 +0100 <hpc> he even defined eval in the paper
2022-03-21 23:15:50 +0100 <boxscape_> sounds like LaTeX
2022-03-21 23:15:56 +0100 <Hecate> did you tell the story of the journal that didn't accept pseudo-code in paper submissions, and a paper showing Haskell code was refused on this ground?
2022-03-21 23:16:01 +0100 <hpc> so this other guy realized "if i just hand-compile eval, i have everything else for free"
2022-03-21 23:16:04 +0100 <hpc> so he did
2022-03-21 23:16:23 +0100 <abastro[m]> I did not know ppl love parenthesis to the point of using it for specifications
2022-03-21 23:16:36 +0100 <abastro[m]> Perhaps I should use parens more liberally
2022-03-21 23:16:39 +0100 <jackdk> S-Exprs are great fun to work in, if you have a good editor
2022-03-21 23:16:51 +0100 <abastro[m]> Instead of littering $ around
2022-03-21 23:16:51 +0100 <monochrom> Hello world is too easy. Once you go next to "ask user for name, then print that name" it's a lot more challenging.
2022-03-21 23:17:08 +0100 <hpc> it was an unambiguous notation for lambda calculus that's easy to typeset and could be extended as needed to get a particular paper out there
2022-03-21 23:17:29 +0100 <leah2> curiously, he didnt understand lambda calculus either :p
2022-03-21 23:18:05 +0100 <tomsmeding> abastro[m]: jackdk was talking about this paper, see second paragraph of section 7 https://classes.cs.uoregon.edu/16F/cis425/Papers/hudak-jones.pdf
2022-03-21 23:18:48 +0100 <abastro[m]> Yep, saw the comparison paper
2022-03-21 23:18:58 +0100 <tomsmeding> each time I look that paper up I am sad that "Appendix B" is not present
2022-03-21 23:20:09 +0100 <boxscape_> tomsmeding you're describing my emotional state from a minute ago
2022-03-21 23:20:26 +0100 <jackdk> Pretty sure I've seen it elsewhere. Basic gist is `type Region = Point -> Bool`; `(/\) :: Region -> Region -> Region` etc
2022-03-21 23:20:31 +0100 <tomsmeding> boxscape_: :p
2022-03-21 23:20:46 +0100moet(~moet@mobile-166-177-250-99.mycingular.net) (Quit: leaving)
2022-03-21 23:21:34 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com)
2022-03-21 23:22:51 +0100 <jackdk> http://www.cs.yale.edu/publications/techreports/tr1031.pdf check out convexPoly on PDF page 30 (printed page 26)
2022-03-21 23:23:00 +0100 <abastro[m]> `Point -> Bool` sounds horribly slow tho
2022-03-21 23:23:43 +0100 <tomsmeding> depends on what you're doing with those regions
2022-03-21 23:23:43 +0100 <jackdk> If function application is slow, we're sunk.
2022-03-21 23:23:56 +0100 <tomsmeding> if the end task is "determine whether these points are in the region", it might be good
2022-03-21 23:24:02 +0100 <jackdk> That's the primary task, yes.
2022-03-21 23:24:03 +0100 <tomsmeding> if the end task is "plot the region", it might be bad
2022-03-21 23:24:50 +0100Tuplanolla(~Tuplanoll@91-159-69-98.elisa-laajakaista.fi)
2022-03-21 23:25:00 +0100 <jackdk> You could also build an AST of your unions/intersections/etc and eval it to `Point -> Bool` for `inRegion` testing, or to better graphics primitives, or...; but that's not what the spec asked for
2022-03-21 23:25:51 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4.1)
2022-03-21 23:26:02 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 240 seconds)
2022-03-21 23:26:17 +0100 <abastro[m]> Yea
2022-03-21 23:35:46 +0100gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2022-03-21 23:37:43 +0100Pickchea(~private@user/pickchea)
2022-03-21 23:38:54 +0100 <monochrom> A thought crosses my mind right now. It is in the FP culture that you are always open to the options of Point->Bool and the AST way. You always consider them. You probably always try them first during prototyping. Maybe later you replace them when performance matter.
2022-03-21 23:39:09 +0100 <monochrom> Whereas in imperative cultures, they would never even cross your mind.
2022-03-21 23:39:44 +0100 <tomsmeding> well the AST way might perhaps
2022-03-21 23:39:44 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-03-21 23:40:03 +0100michalz(~michalz@185.246.204.40) (Remote host closed the connection)
2022-03-21 23:40:08 +0100 <abastro[m]> Indeed
2022-03-21 23:40:36 +0100 <monochrom> Very reluctantly because the cultural brainwashing says "it's cheating; write real code already!"
2022-03-21 23:40:45 +0100 <tomsmeding> especially for stuff like geometry, where "what is the intersection of an annulus and a square" can't be answered much better than "the intersection of that annulus with that square"
2022-03-21 23:41:09 +0100 <tomsmeding> though that is true
2022-03-21 23:41:31 +0100 <monochrom> A very religious line between "unioning is an operation, write real code already" vs "AST is data, just declare some subclasses / tagged union".
2022-03-21 23:41:50 +0100 <abastro[m]> I was surprised when ppl started to talk about side effect
2022-03-21 23:42:05 +0100 <tomsmeding> now we're getting to the core of the issue: try writing a sum type in Java, C++ or C#
2022-03-21 23:42:15 +0100pgib(~textual@173.38.117.89) (Ping timeout: 256 seconds)
2022-03-21 23:42:37 +0100 <tomsmeding> you either end up making a class hierarchy which is the most abominable way ever, or using std::variant in C++ which is almost as bad
2022-03-21 23:42:49 +0100 <tomsmeding> I think C# may have obtained a more reasonable way recently but not sure
2022-03-21 23:42:50 +0100 <abastro[m]> When I first entered programming (in imperative way), never seen any concept alike side effect
2022-03-21 23:43:32 +0100 <abastro[m]> For record, OOP ppl prefer class hierarchy as kind of open union tho
2022-03-21 23:43:48 +0100 <tomsmeding> but it's so verbose
2022-03-21 23:43:51 +0100 <abastro[m]> They argue that closed union lack extensibility
2022-03-21 23:43:57 +0100 <boxscape_> tomsmeding Java is getting fairly close to getting reasonable sum types with sealed types and records
2022-03-21 23:44:05 +0100 <boxscape_> and switch expressions
2022-03-21 23:44:06 +0100 <tomsmeding> ah right
2022-03-21 23:44:15 +0100 <tomsmeding> here, at least 30 years late
2022-03-21 23:44:18 +0100 <boxscape_> right
2022-03-21 23:44:24 +0100lechner(~lechner@debian/lechner)
2022-03-21 23:44:51 +0100 <tomsmeding> but in any case, even if the languages are slowly getting sum types, it's not a common good yet
2022-03-21 23:45:08 +0100 <tomsmeding> one of the first things one sees in haskell is 'data Maybe a = Nothing | Just a'
2022-03-21 23:45:24 +0100 <abastro[m]> Meh I guess some would be saying "pattern matching is FAD"
2022-03-21 23:45:42 +0100 <tomsmeding> FAD?
2022-03-21 23:45:50 +0100 <abastro[m]> Or FUD
2022-03-21 23:46:30 +0100 <abastro[m]> (I guess I forgot the expression)
2022-03-21 23:46:31 +0100 <abastro[m]> Also FOMO
2022-03-21 23:46:48 +0100 <abastro[m]> Is what they claim the feature to be :<
2022-03-21 23:47:02 +0100 <boxscape_> when I told my coworkers that Java will be introducing pattern matching, I was told "I suppose that's nice, but then again, regexes can be pretty hard to read tbh"
2022-03-21 23:47:18 +0100 <boxscape_> (paraphrased)
2022-03-21 23:47:19 +0100 <tomsmeding> lol
2022-03-21 23:47:21 +0100 <Axman6> :thinkingface:
2022-03-21 23:47:26 +0100 <monochrom> heh can't be helped
2022-03-21 23:47:32 +0100 <abastro[m]> Haha
2022-03-21 23:48:12 +0100 <monochrom> Cultural clash again. "pattern" = regex, by definition, in their culture.
2022-03-21 23:48:17 +0100 <boxscape_> yeah
2022-03-21 23:48:31 +0100 <Axman6> Pattern? All objects have the same shape!
2022-03-21 23:49:04 +0100 <Axman6> It would be LITERALLY impossible to program if the same object could have different shapes!
2022-03-21 23:49:15 +0100 <monochrom> Racket isn't helping either. Its pattern matching construct covers both the regex kind and the data constructor kind.
2022-03-21 23:49:32 +0100 <abastro[m]> Noooo
2022-03-21 23:49:34 +0100 <geekosaur> awk and perl
2022-03-21 23:50:12 +0100 <abastro[m]> Meh, perl
2022-03-21 23:50:12 +0100lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 240 seconds)
2022-03-21 23:50:36 +0100 <monochrom> At least count yourself blessed that no one looks at "pattern matching" and go "I know, this is the next thing after Design Patterns" >:)
2022-03-21 23:51:09 +0100 <tomsmeding> there was a post on /r/haskell a while ago where someone asked what common design patterns in haskell were
2022-03-21 23:51:09 +0100son0p(~ff@181.136.122.143)
2022-03-21 23:51:17 +0100 <geekosaur> perlwas great when your alternatives were shell scripts and C
2022-03-21 23:51:31 +0100 <pavonia> Given a set of strings where prefixes of elements may be part of the set too. What library can be used to find a partition of a string into those smaller strings (if possible)?
2022-03-21 23:51:40 +0100 <Axman6> tomsmeding: "functions"
2022-03-21 23:51:44 +0100 <jackdk> "Design pattern" is when you hand-compile an abstraction your language doesn't have. The GoF book just locked everyone's brains onto a small set of target languages.
2022-03-21 23:51:46 +0100 <abastro[m]> I think haskell do have common design patterns tho
2022-03-21 23:52:08 +0100 <abastro[m]> Like tagless final
2022-03-21 23:52:12 +0100 <monochrom> pavonia: Would it help to use a trie?
2022-03-21 23:52:15 +0100 <abastro[m]> Or something
2022-03-21 23:52:53 +0100 <geekosaur> lenses are a design pattern :)
2022-03-21 23:53:06 +0100 <Axman6> pavonia: a ternary tree would be useful for that
2022-03-21 23:53:13 +0100fendor(~fendor@91.141.35.69.wireless.dyn.drei.com) (Remote host closed the connection)
2022-03-21 23:53:32 +0100 <tomsmeding> I guess Trees That Grow is also a design pattern
2022-03-21 23:53:49 +0100 <pavonia> monochrom, Axman6: My concern is more the backtracking part
2022-03-21 23:54:07 +0100 <Axman6> a ternary tree basically gives you what you want for free
2022-03-21 23:55:00 +0100 <abastro[m]> Oh more data structures to learn
2022-03-21 23:55:01 +0100 <Axman6> data TTree a = Leaf | Node { val :: a, less, equal, greater :: Tree a }
2022-03-21 23:55:19 +0100 <jackdk> https://blog.jle.im/entry/tries-with-recursion-schemes.html is quite advanced but I'm posting it because it's got prequel memes in it
2022-03-21 23:55:31 +0100 <Axman6> if you go down equal nodes, you find all strings with the same prefix
2022-03-21 23:56:05 +0100 <Axman6> SOMEONE might have even written a package for this over a decade ago... https://hackage.haskell.org/package/TernaryTrees
2022-03-21 23:56:26 +0100 <Axman6> It probably won't compile any more...
2022-03-21 23:56:50 +0100 <abastro[m]> Haskell evolves fast..
2022-03-21 23:56:58 +0100 <jackdk> Axman6: `base >=4.0.0.0 && <5.0.0.0` -_-
2022-03-21 23:57:03 +0100 <Axman6> And as shitty as that package might be, it got cited in a paper once =)
2022-03-21 23:57:35 +0100 <pavonia> Axman6: This can only be used for storing string, no? I can't see how to easily obtain the desired solution with it
2022-03-21 23:57:48 +0100 <Axman6> I'm pretty proud of the Binary instance in that package
2022-03-21 23:58:38 +0100 <jackdk> Axman6: I can get a pre-built copy from cache.nixos.org built against ghc8107
2022-03-21 23:58:56 +0100 <Axman6> jackdk: that's genuinely amazing
2022-03-21 23:59:10 +0100 <abastro[m]> :O
2022-03-21 23:59:55 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)