2021/09/18

2021-09-18 00:00:12 +0200 <Melvar> sclv: Submodules / namespaces within modules would be exactly what I would like, but Haskell doesn’t have them.
2021-09-18 00:00:42 +0200 <Franciman> how can I use unboxed types?
2021-09-18 00:00:54 +0200 <Franciman> if I put Int# in my data type, it says `can't parse infix operator` bla bla
2021-09-18 00:01:18 +0200 <awpr> `-XMagicHash`
2021-09-18 00:01:22 +0200 <Franciman> takk
2021-09-18 00:01:23 +0200 <sclv> I think for bindings most of us resort to hungarian notation and then wrap them up in higher level things, its just how it is
2021-09-18 00:01:40 +0200 <sclv> like using the direct bindings are ugly enough already
2021-09-18 00:02:13 +0200 <Melvar> Practically, this lib was never going to be uploaded to hackage or the like anyway, precisely because part of it is a reproduction of whatever wayland protocols are present on the system.
2021-09-18 00:02:28 +0200_xft0(~jaroslawj@185.234.208.208.r.toneticgroup.pl) (Quit: Lost terminal)
2021-09-18 00:02:35 +0200 <awpr> I think I've seen other packages generate bindings ahead-of-time, and release the generated sources to Hackage
2021-09-18 00:02:39 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 265 seconds)
2021-09-18 00:02:42 +0200favonia(~favonia@user/favonia) (Ping timeout: 260 seconds)
2021-09-18 00:03:07 +0200Melvarshrugs.
2021-09-18 00:03:49 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-18 00:03:49 +0200burnsidesLlama(~burnsides@dhcp168-024.wadham.ox.ac.uk) (Remote host closed the connection)
2021-09-18 00:03:52 +0200 <Melvar> Anyway, since this is my toy, the path of least resistance to actually building with the generated code seems to be to use hpack to write a cabal file that includes the generated modules.
2021-09-18 00:04:20 +0200burnsidesLlama(~burnsides@dhcp168-024.wadham.ox.ac.uk)
2021-09-18 00:04:51 +0200jess(~jess@libera/staff/jess) ()
2021-09-18 00:05:07 +0200 <sclv> :+1:
2021-09-18 00:06:29 +0200 <Melvar> I’m particularly proud of my handler type: newtype Handler i = Handler (forall newhandlers . Event i newhandlers -> IO newhandlers)
2021-09-18 00:06:57 +0200 <monochrom> sclv: Hey, I like the "full interface manifest" narrative!
2021-09-18 00:08:10 +0200 <Melvar> When an event is received that sets up a new object, the handler handling that event is forced by the type system to return a new handler for events on that object.
2021-09-18 00:08:32 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 268 seconds)
2021-09-18 00:09:09 +0200burnsidesLlama(~burnsides@dhcp168-024.wadham.ox.ac.uk) (Ping timeout: 268 seconds)
2021-09-18 00:09:35 +0200 <awpr> what's in `Event`? seems like unless it's a GADT there's not much freedom given to a handler w.r.t. what it returns as the new handlers
2021-09-18 00:10:04 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-18 00:10:48 +0200mikoto-chan(~mikoto-ch@83.137.2.246) (Quit: mikoto-chan)
2021-09-18 00:11:29 +0200 <Melvar> `Event` is, in fact, an associated GADT family.
2021-09-18 00:11:44 +0200 <awpr> neat
2021-09-18 00:12:58 +0200Skyfire(~pyon@user/pyon)
2021-09-18 00:13:02 +0200 <Melvar> By which I mean, `Event` is an associated data family, and each individual generated `Event i` instance is a GADT.
2021-09-18 00:15:50 +0200 <Melvar> Most `Event` constructors instantiate the `newhandlers` index to `()`, since events that allocate objects are not too common.
2021-09-18 00:17:49 +0200dispater(~dispater@user/brprice) (Quit: ZNC 1.8.1 - https://znc.in)
2021-09-18 00:17:53 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:3440:f429:80f2:b168) (Remote host closed the connection)
2021-09-18 00:18:07 +0200dispater(~dispater@user/brprice)
2021-09-18 00:18:53 +0200 <Melvar> Thanks for the opinions, sclv, though they were largely what I expected.
2021-09-18 00:19:28 +0200tdammers(~tdammers@77.109.72.177.res.static.edpnet.net) (Ping timeout: 252 seconds)
2021-09-18 00:19:39 +0200OscarZ(~oscarz@95.175.104.70)
2021-09-18 00:20:24 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-09-18 00:20:34 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-09-18 00:22:15 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-09-18 00:28:16 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-09-18 00:29:27 +0200ubert(~Thunderbi@178.115.57.167.wireless.dyn.drei.com) (Remote host closed the connection)
2021-09-18 00:38:27 +0200System12_(~System123@net-37-179-171-3.cust.vodafonedsl.it) (Remote host closed the connection)
2021-09-18 00:38:30 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-09-18 00:39:19 +0200System123(~System123@net-37-179-171-3.cust.vodafonedsl.it)
2021-09-18 00:42:06 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-09-18 00:43:08 +0200vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2021-09-18 00:43:40 +0200TranquilEcho(~grom@user/tranquilecho) (Quit: WeeChat 2.8)
2021-09-18 00:43:58 +0200bradyt(~bradyt@user/bradyt) ()
2021-09-18 00:44:13 +0200System123(~System123@net-37-179-171-3.cust.vodafonedsl.it) (Ping timeout: 265 seconds)
2021-09-18 00:48:03 +0200max22-(~maxime@2a01cb08833598007ac4a393d617d2bc.ipv6.abo.wanadoo.fr)
2021-09-18 00:48:04 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-09-18 00:51:28 +0200jtomas(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
2021-09-18 00:55:15 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 276 seconds)
2021-09-18 00:56:53 +0200hololeap(~hololeap@user/hololeap)
2021-09-18 00:58:25 +0200cuz(~user@2601:182:cc02:8b0:e50a:ab1e:19b4:1aaf)
2021-09-18 00:58:40 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection)
2021-09-18 01:00:40 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 240 seconds)
2021-09-18 01:01:18 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net)
2021-09-18 01:01:41 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-09-18 01:01:41 +0200yauhsien(~yauhsien@118-167-49-246.dynamic-ip.hinet.net)
2021-09-18 01:02:36 +0200tdammers(~tdammers@77.109.72.177.res.static.edpnet.net)
2021-09-18 01:05:03 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:3440:f429:80f2:b168)
2021-09-18 01:06:27 +0200yauhsien(~yauhsien@118-167-49-246.dynamic-ip.hinet.net) (Ping timeout: 265 seconds)
2021-09-18 01:13:06 +0200perro(~user@072-191-245-069.res.spectrum.com) (Remote host closed the connection)
2021-09-18 01:22:23 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
2021-09-18 01:22:24 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 265 seconds)
2021-09-18 01:24:22 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-09-18 01:26:32 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:3440:f429:80f2:b168) (Remote host closed the connection)
2021-09-18 01:27:51 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-09-18 01:29:02 +0200jinsun(~quassel@user/jinsun) (Ping timeout: 260 seconds)
2021-09-18 01:33:35 +0200acidjnk(~acidjnk@p200300d0c703cb83089449f0c9186ff3.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-09-18 01:33:58 +0200acidjnk(~acidjnk@p200300d0c703cb83089449f0c9186ff3.dip0.t-ipconnect.de)
2021-09-18 01:35:53 +0200chisui(~chisui@200116b8686a1800fa65b73f3e7c071d.dip.versatel-1u1.de) (Ping timeout: 256 seconds)
2021-09-18 01:37:45 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:3440:f429:80f2:b168)
2021-09-18 01:38:09 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 276 seconds)
2021-09-18 01:38:47 +0200acidjnk(~acidjnk@p200300d0c703cb83089449f0c9186ff3.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2021-09-18 01:41:28 +0200favonia(~favonia@user/favonia)
2021-09-18 01:46:20 +0200hololeap(~hololeap@user/hololeap)
2021-09-18 01:48:57 +0200acidjnk(~acidjnk@p200300d0c703cb83089449f0c9186ff3.dip0.t-ipconnect.de)
2021-09-18 01:50:54 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 268 seconds)
2021-09-18 01:52:27 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 276 seconds)
2021-09-18 01:54:32 +0200hololeap(~hololeap@user/hololeap)
2021-09-18 01:55:14 +0200hexfive(~eric@50.35.83.177)
2021-09-18 01:55:52 +0200hololeap(~hololeap@user/hololeap) (Remote host closed the connection)
2021-09-18 01:57:30 +0200hexfive(~eric@50.35.83.177) (Client Quit)
2021-09-18 01:57:54 +0200hololeap(~hololeap@user/hololeap)
2021-09-18 01:58:40 +0200max22-(~maxime@2a01cb08833598007ac4a393d617d2bc.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2021-09-18 01:59:19 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-18 01:59:20 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-18 01:59:20 +0200wroathe(~wroathe@user/wroathe)
2021-09-18 01:59:56 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-18 02:04:23 +0200hololeap(~hololeap@user/hololeap) (Remote host closed the connection)
2021-09-18 02:04:40 +0200 <lechner> Hi, I find postgresql-simple awkward. Should I look at opaleye instead? Also, can rel8 already handle some light production use to power a simple website? Thanks!
2021-09-18 02:04:54 +0200 <lechner> Or Beam?
2021-09-18 02:07:11 +0200hololeap(~hololeap@user/hololeap)
2021-09-18 02:08:51 +0200thyriaen(~thyriaen@dynamic-089-012-047-178.89.12.pool.telefonica.de)
2021-09-18 02:11:10 +0200cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2021-09-18 02:11:32 +0200hololeap_(~hololeap@user/hololeap)
2021-09-18 02:14:33 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 276 seconds)
2021-09-18 02:16:02 +0200ph88(~ph88@ip5f5af6fd.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2021-09-18 02:16:17 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 245 seconds)
2021-09-18 02:18:31 +0200juhp(~juhp@bb220-255-143-175.singnet.com.sg)
2021-09-18 02:20:47 +0200fendor_(~fendor@78-2-181-45.adsl.net.t-com.hr) (Remote host closed the connection)
2021-09-18 02:21:10 +0200cheater(~Username@user/cheater)
2021-09-18 02:21:32 +0200fendor_(~fendor@78-2-181-45.adsl.net.t-com.hr)
2021-09-18 02:21:57 +0200Ram-Z(Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df) (Ping timeout: 268 seconds)
2021-09-18 02:24:26 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-18 02:24:56 +0200Ram-Z(~Ram-Z@li1814-254.members.linode.com)
2021-09-18 02:31:02 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-09-18 02:35:49 +0200proofofkeags_(~proofofke@205.209.28.54) (Ping timeout: 252 seconds)
2021-09-18 02:45:27 +0200tommd(~tommd@75-164-130-101.ptld.qwest.net) (Ping timeout: 245 seconds)
2021-09-18 02:50:18 +0200 <sclv> they're all good choices and well supported afaik
2021-09-18 02:50:29 +0200lbseale(~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
2021-09-18 02:57:43 +0200Gurkenglas(~Gurkengla@dslb-002-207-014-195.002.207.pools.vodafone-ip.de) (Ping timeout: 268 seconds)
2021-09-18 02:58:23 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-09-18 02:58:44 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-09-18 02:58:57 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-09-18 03:00:04 +0200 <Cale> I find opaleye quite a lot more awkward than postgresql-simple, just because of the way that all the records are parametric in all the actual types of the fields. But yeah, check out Beam if you want something a little higher level for creating the SQL syntax.
2021-09-18 03:01:40 +0200 <Cale> (to be fair though, it's been a *long* time since I last checked out opaleye, so I wouldn't know if it had changed in that regard)
2021-09-18 03:02:47 +0200fendor_(~fendor@78-2-181-45.adsl.net.t-com.hr) (Remote host closed the connection)
2021-09-18 03:03:40 +0200 <Cale> Beam though kind of surprised me when I went to look at how it was implemented. It's like the astronaut gun meme "It's all ByteString manipulation? Always has been."
2021-09-18 03:03:42 +0200fendor(~fendor@78-2-181-45.adsl.net.t-com.hr)
2021-09-18 03:04:54 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2021-09-18 03:05:12 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2021-09-18 03:05:12 +0200 <Cale> (Since it went to so much trouble to formalise all the SQL syntax so meticulously, I'd kind of expected that it'd go via a syntax tree, but that's optional.)
2021-09-18 03:07:15 +0200 <Cale> The meticulousness of how it breaks everything down by which SQL standard introduced things can also make the library a little awkward to navigate, and can induce some pretty hairy constraints on your types.
2021-09-18 03:12:16 +0200xff0x(~xff0x@2001:1a81:52ad:c900:b704:3c1b:6bea:6e62) (Ping timeout: 252 seconds)
2021-09-18 03:13:56 +0200xff0x(~xff0x@2001:1a81:52ed:4100:e126:e3d0:8698:438)
2021-09-18 03:17:56 +0200epolanski(uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2021-09-18 03:22:16 +0200juhp(~juhp@bb220-255-143-175.singnet.com.sg) (Ping timeout: 265 seconds)
2021-09-18 03:24:49 +0200 <lechner> Cale sclv: Thanks so much!
2021-09-18 03:27:15 +0200neurocyte01(~neurocyte@45.93.111.147)
2021-09-18 03:27:15 +0200neurocyte01(~neurocyte@45.93.111.147) (Changing host)
2021-09-18 03:27:15 +0200neurocyte01(~neurocyte@user/neurocyte)
2021-09-18 03:29:47 +0200neurocyte0(~neurocyte@user/neurocyte) (Ping timeout: 268 seconds)
2021-09-18 03:29:47 +0200neurocyte01neurocyte0
2021-09-18 03:31:01 +0200harveypwca(~harveypwc@2601:246:c180:a570:2435:ba7:e573:bc26)
2021-09-18 03:32:25 +0200waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 265 seconds)
2021-09-18 03:36:39 +0200fendor_(~fendor@78-0-98-118.adsl.net.t-com.hr)
2021-09-18 03:39:39 +0200fendor(~fendor@78-2-181-45.adsl.net.t-com.hr) (Ping timeout: 268 seconds)
2021-09-18 03:39:41 +0200hnOsmium0001(uid453710@id-453710.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-09-18 03:41:23 +0200 <lechner> Does rel8 return true JOINs from the database due to lezy eval, or does it really match the values in Haskell? https://rel8.readthedocs.io/en/latest/tutorial.html#joins
2021-09-18 03:41:31 +0200 <lechner> lazy
2021-09-18 03:44:47 +0200aegon(~mike@174.127.249.180) (Remote host closed the connection)
2021-09-18 03:51:21 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-09-18 03:56:05 +0200acidjnk(~acidjnk@p200300d0c703cb83089449f0c9186ff3.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2021-09-18 03:57:15 +0200 <cdsmith> I feel like this ought to be obvious, but... is there any way to declare an open kind, which is not Type, but people can later define their own types with that Kind in separate modules?
2021-09-18 03:57:54 +0200 <awpr> cdsmith: I've wanted this before and haven't managed to come up with anything
2021-09-18 03:58:09 +0200 <cdsmith> So just abuse Type for it?
2021-09-18 03:58:38 +0200 <awpr> that, or Symbol (with the associated risk of name collisions because it becomes effectively a global namespace)
2021-09-18 03:59:17 +0200awprwonders about promoting a GADT containing a Typeable dictionary
2021-09-18 03:59:26 +0200 <ProofTechnique> lechner: https://github.com/circuithub/rel8/blob/4cb7797d9e41765f08a1f7477f45eeb63b89ce8b/docs/concepts/que…
2021-09-18 03:59:47 +0200cuz(~user@2601:182:cc02:8b0:e50a:ab1e:19b4:1aaf) (Ping timeout: 268 seconds)
2021-09-18 04:01:03 +0200juhp(~juhp@111.65.63.250)
2021-09-18 04:01:13 +0200 <awpr> along the same lines I wish I could have newtypes with result kinds other than Type (e.g. Type -> Type)
2021-09-18 04:01:31 +0200brettgilio(~brettgili@x-node.gq) (Quit: The Lounge - https://thelounge.chat)
2021-09-18 04:01:51 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2021-09-18 04:02:11 +0200brettgilio(~brettgili@x-node.gq)
2021-09-18 04:04:18 +0200 <hololeap_> I'm running into something where if I have PolyKinds enabled, some things won't be able to derive e.g. Show unless I use StandaloneDeriving to explicitly state all the needed constraints
2021-09-18 04:04:23 +0200hololeap_hololeap
2021-09-18 04:04:36 +0200 <hololeap> has anyone run into this?
2021-09-18 04:04:53 +0200 <Cajun> re open kind: why cant polykinds be used for that? seems like exactly what its purpose is, unless im misunderstanding the problem statement
2021-09-18 04:05:26 +0200 <cdsmith> Cajun: Perhaps it can? I'm not sure I would understand how
2021-09-18 04:06:24 +0200 <ProofTechnique> cdsmith: https://gitlab.haskell.org/ghc/ghc/-/issues/19292 It seems like every kind is open
2021-09-18 04:06:39 +0200 <hololeap> cdsmith: type family Thing k (t :: k)
2021-09-18 04:06:40 +0200 <Cajun> well it would mean you can have it like `data Foo :: (k -> k) -> k -> k` for some implementation of Foo, with `k` being some polymorphic kind
2021-09-18 04:06:42 +0200 <hololeap> for instance
2021-09-18 04:07:07 +0200 <Cajun> assuming you also have -XStandaloneKindSignatures enabled
2021-09-18 04:09:12 +0200 <cdsmith> ProofTechnique: Thanks. It seems https://gitlab.haskell.org/ghc/ghc/-/issues/11080 is asking for the same thing I was looking for. Haven't yet understood the linked issue
2021-09-18 04:09:22 +0200 <Cajun> though if it were a type family, it might require it to be open but im not sure, it would definitely make it easier to instantiate it for a custom user type, but im pretty new to type level programming
2021-09-18 04:09:47 +0200 <cdsmith> Cajun: I'm still working on understanding what you said. My Haskell brain is slow tonight
2021-09-18 04:10:50 +0200 <Cajun> its also in line with what hololeap said, its best explained in the GHC docs: https://downloads.haskell.org/~ghc/8.10.5/docs/html/users_guide/glasgow_exts.html#extension-PolyKi…
2021-09-18 04:11:56 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Quit: Leaving)
2021-09-18 04:12:21 +0200 <awpr> that's still kinda just using `Type` though, just one level up, at which point you may as well just use it directly
2021-09-18 04:12:41 +0200 <awpr> assuming I'm picturing the intended use case correctly
2021-09-18 04:15:34 +0200pavonia(~user@user/siracusa) (Read error: Connection reset by peer)
2021-09-18 04:18:01 +0200 <cdsmith> Cajun: If you're suggesting that what I'm looking for IS kind polymorphism from some other point of view, then that isn't obvious to me. If you're suggesting that it's implementable via kind polymorphism, well, I don't see how yet and linking to the definition of kind polymorphism doesn't tell me how
2021-09-18 04:18:12 +0200pavonia(~user@user/siracusa)
2021-09-18 04:18:30 +0200 <Cajun> yeah i just dont think i fully understand the problem statement, my bad
2021-09-18 04:18:49 +0200 <awpr> like if you want a kind other than `Type`, it's presumably because some arbitrary type like `Int` makes no sense in that context, and if you replace `Type` with a kind variable `k`, you just have the same problem with promoted data constructors in place of types
2021-09-18 04:19:47 +0200 <Cajun> yeah, i see that. that gitlab page has also gathered some dust, but it does mention a "prior method" so perhaps thats of interest
2021-09-18 04:19:55 +0200 <cdsmith> Right, this is like the old trick of using EmptyDataDecls to make values for a phantom type constructor. DataKinds makes that obsolete if you want a closed kind. But what about an open kind?
2021-09-18 04:20:17 +0200 <lechner> ProofTechnique: phew! thank you!
2021-09-18 04:20:21 +0200td_(~td@94.134.91.4) (Ping timeout: 268 seconds)
2021-09-18 04:22:08 +0200td_(~td@94.134.91.211)
2021-09-18 04:22:37 +0200 <cdsmith> I think https://gitlab.haskell.org/ghc/ghc/-/issues/11080 explains the problem quite clearly. But the solution, it seems, is to use EmptyDataDecls and give up kind safety. (Or else rely on the broken behavior that ProofTechnique pointed out, but that appears unwise as it will be eventually fixed?)
2021-09-18 04:22:41 +0200 <awpr> hmm, how about `data family MyKind k :: Type`, and use `MyKind k` as the kind in place of `Type`
2021-09-18 04:23:01 +0200 <awpr> assuming you can promote a data family
2021-09-18 04:23:39 +0200thyriaen_(~thyriaen@x4db78003.dyn.telefonica.de)
2021-09-18 04:23:43 +0200 <cdsmith> awpr: I'm not understanding still. How would you declare a type of the kind `MyKind k` now?
2021-09-18 04:24:28 +0200 <awpr> `data Sentinel; data instance MyKind Sentinel = TheConstructorIActuallyWant`
2021-09-18 04:25:01 +0200 <awpr> there's still the EmptyDataDecls trick, but it's just to let different data instances exist
2021-09-18 04:25:44 +0200 <cdsmith> Hmm... I'm thinking that "just use Type" is making my head hurt less, so I'll try it that way, I think!
2021-09-18 04:26:33 +0200thyriaen(~thyriaen@dynamic-089-012-047-178.89.12.pool.telefonica.de) (Ping timeout: 265 seconds)
2021-09-18 04:27:02 +0200 <awpr> I should check whether this trick works
2021-09-18 04:27:59 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2.1)
2021-09-18 04:34:18 +0200MQ-17J(~MQ-17J@8.21.10.6) (Ping timeout: 260 seconds)
2021-09-18 04:34:36 +0200MQ-17J(~MQ-17J@8.21.10.6)
2021-09-18 04:35:16 +0200 <awpr> `Data constructor 'Z1' cannot be used here (it comes from a data family instance)` :(
2021-09-18 04:36:12 +0200 <awpr> so no promoting data families. on the plus side, I discovered a new GHC error message I've never seen before
2021-09-18 04:37:55 +0200thyriaen_(~thyriaen@x4db78003.dyn.telefonica.de) (Remote host closed the connection)
2021-09-18 04:40:04 +0200 <Cajun> today i learned GHC has that error message :P
2021-09-18 04:40:37 +0200 <awpr> oh, this is probably just the type-level reflection of "data families aren't GADTs"
2021-09-18 04:41:47 +0200jinsun(~quassel@user/jinsun)
2021-09-18 04:51:24 +0200VoidNoir0(~VoidNoir0@72.80.203.52) (Quit: Connection closed)
2021-09-18 04:55:18 +0200benin036932301(~benin@183.82.205.89)
2021-09-18 04:56:17 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-18 04:57:04 +0200 <hololeap> % type family MyThing k1 k2 (t :: k) :: k2
2021-09-18 04:57:05 +0200 <yahb> hololeap:
2021-09-18 04:57:17 +0200 <hololeap> % type instance MyThing Type Type Int = Bool
2021-09-18 04:57:17 +0200 <yahb> hololeap: ; <interactive>:38:23: error:; Ambiguous occurrence `Type'; It could refer to; either `Language.Haskell.TH.Type', imported from `Language.Haskell.TH' (and originally defined in `Language.Haskell.TH.Syntax'); or `Data.Kind.Type', imported from `Data.Kind' (and originally defined in `GHC.Types'); <interactive>:38:28: error:; Ambiguous occurrence `Type'; It could refer to;
2021-09-18 04:57:21 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 268 seconds)
2021-09-18 04:57:44 +0200 <hololeap> % import qualified Data.Kind as K
2021-09-18 04:57:44 +0200 <yahb> hololeap:
2021-09-18 04:57:53 +0200 <hololeap> % type instance MyThing K.Type K.Type Int = Bool
2021-09-18 04:57:53 +0200 <yahb> hololeap:
2021-09-18 04:58:14 +0200 <awpr> one or both of those can be made invisible
2021-09-18 04:58:17 +0200 <hololeap> type instance MyThing (K.Type -> K.Type) (K.Type -> K.Type -> K.Type) Maybe = Either
2021-09-18 04:58:48 +0200 <hololeap> % type instance MyThing (K.Type -> K.Type) (K.Type -> K.Type -> K.Type) Maybe = Either
2021-09-18 04:58:48 +0200 <yahb> hololeap:
2021-09-18 04:58:51 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-09-18 04:58:54 +0200 <awpr> like in https://hackage.haskell.org/package/numeric-kinds-0.1.0.0/docs/Kinds-Num.html#t:Cmp
2021-09-18 04:59:29 +0200 <hololeap> cdsmith: you can do somthing like that ^ to leave the kinds open ended, and declare them when you make a type instance
2021-09-18 04:59:54 +0200benin036932301(~benin@183.82.205.89) (Ping timeout: 265 seconds)
2021-09-18 05:00:50 +0200 <hololeap> s/(t :: k)/(t :: k1)/
2021-09-18 05:01:45 +0200 <hololeap> or I suppose you don't even have to have them mentioned in the type instance declaration
2021-09-18 05:02:17 +0200 <hololeap> % type family AnotherThing (t :: k1) :: k2
2021-09-18 05:02:17 +0200 <yahb> hololeap:
2021-09-18 05:02:38 +0200 <hololeap> % type instance AnotherThing Either = Maybe
2021-09-18 05:02:38 +0200 <yahb> hololeap:
2021-09-18 05:05:01 +0200yauhsien(~yauhsien@118-167-49-246.dynamic-ip.hinet.net)
2021-09-18 05:07:40 +0200andrei-n(~andrei-n@109.130.156.104)
2021-09-18 05:08:10 +0200benin036932301(~benin@183.82.205.89)
2021-09-18 05:09:15 +0200benin036932301(~benin@183.82.205.89) (Read error: Connection reset by peer)
2021-09-18 05:09:46 +0200yauhsien(~yauhsien@118-167-49-246.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
2021-09-18 05:10:47 +0200wei2912(~wei2912@112.199.250.21)
2021-09-18 05:11:50 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-18 05:14:00 +0200neo1(~neo3@cpe-292712.ip.primehome.com) (Ping timeout: 268 seconds)
2021-09-18 05:14:59 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-09-18 05:17:42 +0200 <andrei-n> Hello. Is the idiom where you reverse a list after building it in a recursive function is considered bad coding style in haskell? Thanks.
2021-09-18 05:18:55 +0200 <shachaf> That depends on the situation.
2021-09-18 05:19:04 +0200 <shachaf> Laziness sometimes makes it unnecessary or a bad idea.
2021-09-18 05:19:52 +0200 <andrei-n> Ok...
2021-09-18 05:20:48 +0200 <shachaf> For example think about how "map f [] = []; map f (x:xs) = f x : map f xs" is evaluated.
2021-09-18 05:21:26 +0200 <shachaf> When you call it on a list, it constructs the value (f x) : (map f xs) and returns immediately. It doesn't recurse all the way to the end like in a strict language.
2021-09-18 05:21:59 +0200 <andrei-n> Ok. I understand.
2021-09-18 05:23:27 +0200nctcf^(~nctcf@68.101.54.227) (Remote host closed the connection)
2021-09-18 05:26:23 +0200shachaf(~shachaf@user/shachaf) (Quit: Reconnecting)
2021-09-18 05:26:31 +0200shachaf(~shachaf@user/shachaf)
2021-09-18 05:29:23 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-09-18 05:34:14 +0200 <dsal> I may have to stop complaining about ormolu. https://github.com/ret/specifica/blob/main/tlaplus/src/Language/TLAPlus/Parser.hs
2021-09-18 05:42:14 +0200hnOsmium0001(uid453710@id-453710.hampstead.irccloud.com)
2021-09-18 05:42:52 +0200Skyfire(~pyon@user/pyon) (Quit: brb)
2021-09-18 05:43:17 +0200Skyfire(~pyon@user/pyon)
2021-09-18 05:45:02 +0200dsrt^(~dsrt@68.101.54.227)
2021-09-18 05:58:38 +0200 <hololeap> is it possible to derive MonoTraversable? http://sprunge.us/lWf9hV
2021-09-18 06:00:03 +0200eggplant_(~Eggplanta@2600:1700:bef1:5e10:6853:9e54:2a70:a12e)
2021-09-18 06:00:03 +0200 <awpr> I ran into that problem working on `Traversable10`, see https://ryanglscott.github.io/2018/06/22/quantifiedconstraints-and-the-trouble-with-traversable/
2021-09-18 06:00:46 +0200 <awpr> short answer, no, not the way MonoTraversable is defined
2021-09-18 06:01:26 +0200 <jle`> dsal: art
2021-09-18 06:02:13 +0200 <dsal> There's such weird constructs in there, but the author clearly knows things.
2021-09-18 06:03:26 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:3440:f429:80f2:b168) (Ping timeout: 260 seconds)
2021-09-18 06:03:30 +0200 <jle`> gotta love the consistency
2021-09-18 06:03:46 +0200Nahra(~user@static.161.95.99.88.clients.your-server.de) (Ping timeout: 252 seconds)
2021-09-18 06:12:47 +0200fendor_(~fendor@78-0-98-118.adsl.net.t-com.hr) (Remote host closed the connection)
2021-09-18 06:13:12 +0200fendor_(~fendor@78-0-98-118.adsl.net.t-com.hr)
2021-09-18 06:16:30 +0200theang(~theang@fef109.internetdsl.tpnet.pl) (Ping timeout: 260 seconds)
2021-09-18 06:38:39 +0200wrengrwrengr_away
2021-09-18 06:41:18 +0200andrei-n(~andrei-n@109.130.156.104) (Quit: Leaving)
2021-09-18 06:43:45 +0200System123(~System123@net-37-179-171-3.cust.vodafonedsl.it)
2021-09-18 06:47:53 +0200pieguy128(~pieguy128@bras-base-mtrlpq5031w-grc-57-65-92-163-194.dsl.bell.ca) (Quit: ZNC 1.8.2 - https://znc.in)
2021-09-18 06:48:16 +0200System123(~System123@net-37-179-171-3.cust.vodafonedsl.it) (Ping timeout: 252 seconds)
2021-09-18 06:51:03 +0200pieguy128(~pieguy128@bras-base-mtrlpq5031w-grc-57-65-92-163-194.dsl.bell.ca)
2021-09-18 07:04:54 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-09-18 07:06:13 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-09-18 07:10:53 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 265 seconds)
2021-09-18 07:16:11 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-09-18 07:18:54 +0200pony(~ed@101.100.135.79)
2021-09-18 07:21:01 +0200 <pony> hi
2021-09-18 07:22:01 +0200zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2021-09-18 07:22:44 +0200falafel(~falafel@2603-8000-d800-688c-753f-04f5-7eeb-6eb7.res6.spectrum.com)
2021-09-18 07:22:54 +0200syntactic_sugar(~amoljha@2601:644:8601:2e30::822c)
2021-09-18 07:26:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-18 07:30:49 +0200syntactic_sugar(~amoljha@2601:644:8601:2e30::822c) (Quit: WeeChat 3.1)
2021-09-18 07:31:03 +0200syntactic_sugar(~amoljha@2601:644:8601:2e30::822c)
2021-09-18 07:36:18 +0200falafel(~falafel@2603-8000-d800-688c-753f-04f5-7eeb-6eb7.res6.spectrum.com) (Ping timeout: 260 seconds)
2021-09-18 07:38:41 +0200fawful(~guy@c-76-104-217-93.hsd1.wa.comcast.net)
2021-09-18 07:40:46 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 268 seconds)
2021-09-18 07:41:40 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-18 07:45:08 +0200falafel(~falafel@2603-8000-d800-688c-753f-04f5-7eeb-6eb7.res6.spectrum.com)
2021-09-18 07:45:42 +0200yauhsien(~yauhsien@118-167-49-246.dynamic-ip.hinet.net)
2021-09-18 07:46:08 +0200yauhsien(~yauhsien@118-167-49-246.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-09-18 07:46:10 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 265 seconds)
2021-09-18 07:46:36 +0200yauhsien(~yauhsien@118-167-49-246.dynamic-ip.hinet.net)
2021-09-18 07:48:00 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-09-18 07:48:35 +0200dsrt^(~dsrt@68.101.54.227) (Ping timeout: 265 seconds)
2021-09-18 07:51:41 +0200ubert(~Thunderbi@178.115.41.246.wireless.dyn.drei.com)
2021-09-18 07:51:58 +0200yauhsien(~yauhsien@118-167-49-246.dynamic-ip.hinet.net) (Ping timeout: 265 seconds)
2021-09-18 08:00:19 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-18 08:04:05 +0200nrl^(~nrl@68.101.54.227)
2021-09-18 08:04:33 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-18 08:04:38 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:d472:34ee:a050:6ca2)
2021-09-18 08:04:43 +0200doyougnu(~user@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 252 seconds)
2021-09-18 08:05:21 +0200zaquest(~notzaques@5.128.210.178)
2021-09-18 08:16:26 +0200falafel(~falafel@2603-8000-d800-688c-753f-04f5-7eeb-6eb7.res6.spectrum.com) (Ping timeout: 260 seconds)
2021-09-18 08:17:24 +0200neo1(~neo3@cpe-292712.ip.primehome.com)
2021-09-18 08:19:00 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 268 seconds)
2021-09-18 08:21:01 +0200vysn(~vysn@user/vysn)
2021-09-18 08:32:19 +0200ubert(~Thunderbi@178.115.41.246.wireless.dyn.drei.com) (Quit: ubert)
2021-09-18 08:32:23 +0200ubert1(~Thunderbi@178.115.41.246.wireless.dyn.drei.com)
2021-09-18 08:34:41 +0200ubert1ubert
2021-09-18 08:35:13 +0200yauhsien(~yauhsien@118-167-49-246.dynamic-ip.hinet.net)
2021-09-18 08:39:40 +0200yauhsien(~yauhsien@118-167-49-246.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2021-09-18 08:39:57 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-18 08:40:48 +0200mc47(~mc47@xmonad/TheMC47)
2021-09-18 08:44:57 +0200ubert(~Thunderbi@178.115.41.246.wireless.dyn.drei.com) (Remote host closed the connection)
2021-09-18 08:50:10 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
2021-09-18 08:52:12 +0200hololeap_(~hololeap@user/hololeap)
2021-09-18 08:52:21 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 276 seconds)
2021-09-18 08:53:00 +0200yauhsien(~yauhsien@118-167-49-246.dynamic-ip.hinet.net)
2021-09-18 08:54:35 +0200falafel(~falafel@2603-8000-d800-688c-753f-04f5-7eeb-6eb7.res6.spectrum.com)
2021-09-18 08:54:55 +0200falafel(~falafel@2603-8000-d800-688c-753f-04f5-7eeb-6eb7.res6.spectrum.com) (Read error: Connection reset by peer)
2021-09-18 08:55:50 +0200max22-(~maxime@2a01cb0883359800b8a33ca92ffd9155.ipv6.abo.wanadoo.fr)
2021-09-18 08:57:34 +0200yauhsien(~yauhsien@118-167-49-246.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-09-18 09:01:12 +0200fendor_(~fendor@78-0-98-118.adsl.net.t-com.hr) (Remote host closed the connection)
2021-09-18 09:01:37 +0200fendor_(~fendor@78-0-98-118.adsl.net.t-com.hr)
2021-09-18 09:02:14 +0200Brumaire(~quassel@81-64-14-121.rev.numericable.fr)
2021-09-18 09:05:43 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:d472:34ee:a050:6ca2) ()
2021-09-18 09:07:18 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 260 seconds)
2021-09-18 09:11:09 +0200hololeap(~hololeap@user/hololeap)
2021-09-18 09:13:09 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
2021-09-18 09:14:02 +0200max22-(~maxime@2a01cb0883359800b8a33ca92ffd9155.ipv6.abo.wanadoo.fr) (Quit: Leaving)
2021-09-18 09:14:51 +0200fawful(~guy@c-76-104-217-93.hsd1.wa.comcast.net) (Quit: WeeChat 3.2)
2021-09-18 09:15:51 +0200eggplant_(~Eggplanta@2600:1700:bef1:5e10:6853:9e54:2a70:a12e) (Remote host closed the connection)
2021-09-18 09:16:02 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-09-18 09:16:07 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-09-18 09:17:37 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-09-18 09:17:39 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-09-18 09:20:54 +0200fendor_(~fendor@78-0-98-118.adsl.net.t-com.hr) (Ping timeout: 265 seconds)
2021-09-18 09:22:29 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-18 09:23:22 +0200Gurkenglas(~Gurkengla@dslb-002-207-014-195.002.207.pools.vodafone-ip.de)
2021-09-18 09:29:24 +0200hololeap_(~hololeap@user/hololeap) (Ping timeout: 276 seconds)
2021-09-18 09:30:06 +0200benin036932301(~benin@183.82.205.89)
2021-09-18 09:30:16 +0200wei2912(~wei2912@112.199.250.21) (Quit: Lost terminal)
2021-09-18 09:30:27 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-09-18 09:30:48 +0200syntactic_sugar(~amoljha@2601:644:8601:2e30::822c) (Quit: WeeChat 3.1)
2021-09-18 09:30:56 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 268 seconds)
2021-09-18 09:31:06 +0200syntactic_sugar(~amoljha@2601:644:8601:2e30::822c)
2021-09-18 09:31:33 +0200syntactic_sugar(~amoljha@2601:644:8601:2e30::822c) (Client Quit)
2021-09-18 09:32:27 +0200 <Axman6> anyone know what the secret incantation is to make hls work with a cabal project? I expected it to work but it tells me I don't have GHC installed
2021-09-18 09:34:35 +0200 <Cajun> hls for use in an editor? the first thing you should do is update everything with `ghcup tui`
2021-09-18 09:36:39 +0200 <Axman6> yeah I've just gone through that dance - though I might try restarting VS code
2021-09-18 09:36:59 +0200 <Cajun> ctrl+shift+p -> restart lsp server typically helps, though restarting it will also do that
2021-09-18 09:38:11 +0200 <Axman6> restarting seems to have worked! Fantastic. I love HLS when it works
2021-09-18 09:39:05 +0200 <Cajun> its really great, especially being able to be told the types of lambdas and other variables on the fly
2021-09-18 09:40:00 +0200 <Cajun> though i find myself commonly restarting the lsp server whenever a new dependency is added, as it will tend to just keep the red underline on some hidden package despite having built the project w/ cabal. just a minor thing
2021-09-18 09:41:52 +0200oxide(~lambda@user/oxide)
2021-09-18 09:42:04 +0200 <Cajun> ah i think i know why it was saying you didnt have ghc installed, did you update and/or uninstall a ghc version and the other tools with the editor open? ive had something similar happen in ghci before
2021-09-18 09:44:53 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-09-18 09:47:33 +0200syntactic_sugar(~amoljha@2601:644:8601:2e30::822c)
2021-09-18 09:49:27 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-18 09:49:45 +0200 <Axman6> yeah I think I just had old versions open at the time
2021-09-18 09:58:34 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-18 10:04:13 +0200benin036932301(~benin@183.82.205.89) (Ping timeout: 252 seconds)
2021-09-18 10:05:30 +0200hendursa1(~weechat@user/hendursaga)
2021-09-18 10:05:55 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:fc0c:f30:d5c3:23fa)
2021-09-18 10:05:57 +0200syntactic_sugar(~amoljha@2601:644:8601:2e30::822c) (Quit: WeeChat 3.1)
2021-09-18 10:06:11 +0200syntactic_sugar(~amoljha@2601:644:8601:2e30::822c)
2021-09-18 10:08:24 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 276 seconds)
2021-09-18 10:09:59 +0200jtomas(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
2021-09-18 10:10:10 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:fc0c:f30:d5c3:23fa) (Ping timeout: 252 seconds)
2021-09-18 10:12:02 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:49c6:f846:9a95:6c22)
2021-09-18 10:13:18 +0200syntactic_sugar(~amoljha@2601:644:8601:2e30::822c) (Quit: WeeChat 3.1)
2021-09-18 10:14:30 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-09-18 10:16:22 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:49c6:f846:9a95:6c22) (Ping timeout: 260 seconds)
2021-09-18 10:17:44 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-09-18 10:17:44 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-09-18 10:17:47 +0200allbery_bgeekosaur
2021-09-18 10:21:21 +0200max22-(~maxime@2a01cb0883359800f35697ac373bfb77.ipv6.abo.wanadoo.fr)
2021-09-18 10:30:59 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-09-18 10:38:03 +0200TranquilEcho(~grom@user/tranquilecho)
2021-09-18 10:42:59 +0200Nahra(~user@static.161.95.99.88.clients.your-server.de)
2021-09-18 10:53:41 +0200fef(~thedawn@user/thedawn)
2021-09-18 10:54:27 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-09-18 10:54:44 +0200yauhsien(~yauhsien@118-167-49-246.dynamic-ip.hinet.net)
2021-09-18 10:57:38 +0200kuribas(~user@ptr-25vy0i8euker9wwjmv4.18120a2.ip6.access.telenet.be)
2021-09-18 10:59:40 +0200yauhsien(~yauhsien@118-167-49-246.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
2021-09-18 11:00:09 +0200jaror[m](~jaror@2001:470:69fc:105::265) (Quit: You have been kicked for being idle)
2021-09-18 11:15:06 +0200hololeap(~hololeap@user/hololeap) (Remote host closed the connection)
2021-09-18 11:15:38 +0200hololeap(~hololeap@user/hololeap)
2021-09-18 11:20:08 +0200chris(~chris@81.96.113.213)
2021-09-18 11:20:11 +0200chrisGuest2159
2021-09-18 11:24:02 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 260 seconds)
2021-09-18 11:24:20 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-18 11:31:50 +0200hnOsmium0001(uid453710@id-453710.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-09-18 11:37:17 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-09-18 11:44:23 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-18 11:56:28 +0200__monty__(~toonn@user/toonn)
2021-09-18 11:58:50 +0200jespada(~jespada@host244.190-3-30.dynamic.telmex.net.ar) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-09-18 12:03:23 +0200yauhsien(~yauhsien@118-167-49-246.dynamic-ip.hinet.net)
2021-09-18 12:13:23 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:49c6:f846:9a95:6c22)
2021-09-18 12:13:57 +0200ikex(ash@user/ikex) (Quit: ZNC - https://znc.in)
2021-09-18 12:14:10 +0200ikex(ash@user/ikex)
2021-09-18 12:18:10 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:49c6:f846:9a95:6c22) (Ping timeout: 260 seconds)
2021-09-18 12:24:00 +0200tomjaguarpaw(~tom@li367-225.members.linode.com)
2021-09-18 12:30:42 +0200haskl(~haskl@user/haskl) (Read error: Connection reset by peer)
2021-09-18 12:30:51 +0200favonia(~favonia@user/favonia) (Ping timeout: 265 seconds)
2021-09-18 12:33:11 +0200haskl(~haskl@user/haskl)
2021-09-18 12:41:47 +0200jespada(~jespada@2803:9800:9842:7a62:e945:15a6:5467:94f6)
2021-09-18 12:45:02 +0200 <xerox> maerwald: does ghcup install arm ghc on m1 nowadays?
2021-09-18 13:02:16 +0200rond_(~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438)
2021-09-18 13:03:54 +0200yauhsien(~yauhsien@118-167-49-246.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
2021-09-18 13:06:09 +0200Gurkenglas(~Gurkengla@dslb-002-207-014-195.002.207.pools.vodafone-ip.de) (Ping timeout: 268 seconds)
2021-09-18 13:07:06 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 265 seconds)
2021-09-18 13:11:24 +0200 <tomjaguarpaw> Not sure if there's a nuance I'm missing but does this answer your question: https://gitlab.haskell.org/haskell/ghcup-hs#supported-platforms
2021-09-18 13:18:16 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-18 13:28:27 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-09-18 13:35:24 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-09-18 13:37:31 +0200Topsi(~Tobias@dyndsl-095-033-091-004.ewe-ip-backbone.de)
2021-09-18 13:43:50 +0200Topsi(~Tobias@dyndsl-095-033-091-004.ewe-ip-backbone.de) (Quit: Leaving.)
2021-09-18 13:44:31 +0200Everything(~Everythin@37.115.210.35)
2021-09-18 13:44:56 +0200Topsi(~Tobias@dyndsl-095-033-091-004.ewe-ip-backbone.de)
2021-09-18 13:50:20 +0200wei2912(~wei2912@112.199.250.21)
2021-09-18 13:55:13 +0200kmein(~weechat@user/kmein) (Quit: ciao kakao)
2021-09-18 13:55:32 +0200kmein(~weechat@user/kmein)
2021-09-18 13:57:35 +0200max22-(~maxime@2a01cb0883359800f35697ac373bfb77.ipv6.abo.wanadoo.fr) (Ping timeout: 260 seconds)
2021-09-18 14:04:22 +0200sm2n_(~sm2n@user/sm2n)
2021-09-18 14:04:57 +0200sm2n(~sm2n@user/sm2n) (Ping timeout: 268 seconds)
2021-09-18 14:07:08 +0200juhp_(~juhp@bb220-255-143-175.singnet.com.sg)
2021-09-18 14:11:01 +0200juhp(~juhp@111.65.63.250) (Ping timeout: 252 seconds)
2021-09-18 14:11:01 +0200juhp_juhp
2021-09-18 14:13:03 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-09-18 14:15:15 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Read error: Connection reset by peer)
2021-09-18 14:18:52 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-09-18 14:20:15 +0200fef(~thedawn@user/thedawn) (Remote host closed the connection)
2021-09-18 14:20:39 +0200fef(~thedawn@user/thedawn)
2021-09-18 14:21:16 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-18 14:21:20 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-09-18 14:28:02 +0200Guest22(~Guest22@ip4d14815a.dynamic.kabel-deutschland.de)
2021-09-18 14:28:41 +0200 <Guest22> @unpl ((`notElem` " |+") . head)
2021-09-18 14:28:41 +0200 <lambdabot> (\ x -> notElem (head x) " |+")
2021-09-18 14:29:27 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Read error: Connection reset by peer)
2021-09-18 14:29:57 +0200 <Guest22> @unpl break ((`notElem` " |+") . head) $ lines side
2021-09-18 14:29:58 +0200 <lambdabot> (break (\ x -> notElem (head x) " |+") (lines side))
2021-09-18 14:32:57 +0200fef(~thedawn@user/thedawn) (Quit: Leaving)
2021-09-18 14:33:35 +0200hrnz(~ulli@vegan.im.it) (Quit: das ist mir zu bld hier; bb)
2021-09-18 14:34:20 +0200nrl^(~nrl@68.101.54.227) (Ping timeout: 268 seconds)
2021-09-18 14:34:28 +0200hrnz(~ulli@vegan.im.it)
2021-09-18 14:35:10 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-09-18 14:35:57 +0200acidjnk(~acidjnk@p200300d0c703cb488c4c1d5595111d0b.dip0.t-ipconnect.de)
2021-09-18 14:39:37 +0200hrnz(~ulli@vegan.im.it) (Quit: das ist mir zu bld hier; bb)
2021-09-18 14:40:04 +0200hrnz(~ulli@vegan.im.it)
2021-09-18 14:43:58 +0200sheddow(~sheddow@2001:4652:3064:0:855:8e28:191f:6ce6)
2021-09-18 14:46:09 +0200 <maerwald> xerox: yes
2021-09-18 14:47:19 +0200 <maerwald> xerox: https://gitlab.haskell.org/haskell/ghcup-hs#supported-platforms
2021-09-18 14:47:33 +0200pony(~ed@101.100.135.79) (Quit: WeeChat 2.8)
2021-09-18 14:48:38 +0200max22-(~maxime@2a01cb0883359800101dc8ab48a7971b.ipv6.abo.wanadoo.fr)
2021-09-18 14:49:33 +0200Vq(~vq@90-227-195-41-no77.tbcn.telia.com) (Quit: Server upgrade)
2021-09-18 14:56:43 +0200mikoto-chan(~mikoto-ch@83.137.2.251)
2021-09-18 14:57:25 +0200 <xerox> maerwald: could it be that I have the x64 version and it won't ever think of updating to an arm version because of this
2021-09-18 14:57:57 +0200 <maerwald> yeah
2021-09-18 14:58:01 +0200 <xerox> makes sense
2021-09-18 14:58:19 +0200 <maerwald> https://downloads.haskell.org/~ghcup/aarch64-apple-darwin-ghcup
2021-09-18 14:58:28 +0200 <xerox> appreciate it (:
2021-09-18 14:58:44 +0200 <xerox> are there still random bugs or is it solid nowadays?
2021-09-18 14:59:02 +0200 <xerox> in the whole thing, ghc and friends
2021-09-18 14:59:59 +0200 <maerwald> there are a couple of bugs I guess
2021-09-18 15:00:18 +0200 <maerwald> https://gitlab.haskell.org/ghc/ghc/-/issues?label_name[]=aarch64-darwin
2021-09-18 15:00:34 +0200 <maerwald> and someone on the stack issue tracker claims the aarch64 ghc is 10 times slower
2021-09-18 15:00:37 +0200 <maerwald> but I haven't seen that
2021-09-18 15:01:32 +0200yauhsien(~yauhsien@118-167-49-246.dynamic-ip.hinet.net)
2021-09-18 15:01:57 +0200 <maerwald> I mean, GHC, ghcup and cabal are all built successfully on darwin M1
2021-09-18 15:01:59 +0200 <geekosaur> is that for 8.10.7 or for 9.2 alpha? going through llvm means a decent amount of extra work going on (llc and opt)
2021-09-18 15:02:05 +0200vysn(~vysn@user/vysn) (Ping timeout: 268 seconds)
2021-09-18 15:02:17 +0200 <maerwald> and cabal and ghcup have a decent amount of dependencies
2021-09-18 15:02:22 +0200 <xerox> ah yes I am on 8.10
2021-09-18 15:02:57 +0200 <maerwald> stack fails to build because of haskell tls shenanigans
2021-09-18 15:03:35 +0200 <maerwald> that whole stack is on my personal blacklist
2021-09-18 15:03:44 +0200 <maerwald> library stack I mean
2021-09-18 15:04:12 +0200 <maerwald> try to convince stack upstream to switch to curl... problem solved
2021-09-18 15:05:23 +0200acidjnk(~acidjnk@p200300d0c703cb488c4c1d5595111d0b.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2021-09-18 15:06:24 +0200yauhsien(~yauhsien@118-167-49-246.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2021-09-18 15:09:47 +0200mikoto-chan(~mikoto-ch@83.137.2.251) (Read error: Connection reset by peer)
2021-09-18 15:13:18 +0200Lycurgus(~juan@98.4.112.204)
2021-09-18 15:15:36 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:49c6:f846:9a95:6c22)
2021-09-18 15:16:55 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-18 15:20:10 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:49c6:f846:9a95:6c22) (Ping timeout: 260 seconds)
2021-09-18 15:26:19 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-09-18 15:30:49 +0200hendursa1(~weechat@user/hendursaga) (Quit: hendursa1)
2021-09-18 15:36:38 +0200Guest2159(~chris@81.96.113.213) (Remote host closed the connection)
2021-09-18 15:38:03 +0200hendursaga(~weechat@user/hendursaga)
2021-09-18 15:39:49 +0200juhp(~juhp@bb220-255-143-175.singnet.com.sg) (Quit: juhp)
2021-09-18 15:40:02 +0200juhp(~juhp@bb220-255-143-175.singnet.com.sg)
2021-09-18 15:43:09 +0200ubert(~Thunderbi@91.141.74.182.wireless.dyn.drei.com)
2021-09-18 15:44:18 +0200wei2912(~wei2912@112.199.250.21) (Quit: Lost terminal)
2021-09-18 15:44:50 +0200benin036932301(~benin@183.82.205.89)
2021-09-18 15:48:43 +0200sheddow(~sheddow@2001:4652:3064:0:855:8e28:191f:6ce6) (Ping timeout: 256 seconds)
2021-09-18 15:49:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-09-18 15:50:34 +0200benin036932301(~benin@183.82.205.89) (Ping timeout: 252 seconds)
2021-09-18 15:53:22 +0200Brumaire(~quassel@81-64-14-121.rev.numericable.fr) (Ping timeout: 265 seconds)
2021-09-18 15:53:40 +0200xsperry(~as@user/xsperry) (Remote host closed the connection)
2021-09-18 16:02:17 +0200ub(~Thunderbi@178.165.161.213.wireless.dyn.drei.com)
2021-09-18 16:02:40 +0200ubert(~Thunderbi@91.141.74.182.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
2021-09-18 16:02:40 +0200ububert
2021-09-18 16:13:32 +0200zer0bitz(~zer0bitz@dsl-hkibng31-54fafc-123.dhcp.inet.fi)
2021-09-18 16:15:42 +0200ubert(~Thunderbi@178.165.161.213.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
2021-09-18 16:16:42 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-18 16:19:19 +0200Vajb(~Vajb@nbptnppvs5wp2vjps-2.v6.elisa-mobile.fi)
2021-09-18 16:21:45 +0200Guest22(~Guest22@ip4d14815a.dynamic.kabel-deutschland.de) (Quit: Client closed)
2021-09-18 16:25:02 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 260 seconds)
2021-09-18 16:25:43 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-18 16:28:28 +0200Gurkenglas(~Gurkengla@dslb-002-207-014-195.002.207.pools.vodafone-ip.de)
2021-09-18 16:34:30 +0200xsperry(~as@user/xsperry)
2021-09-18 16:37:15 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-09-18 16:41:53 +0200favonia(~favonia@user/favonia)
2021-09-18 16:45:30 +0200Guest52(~Guest52@93-172-101-61.bb.netvision.net.il)
2021-09-18 16:49:33 +0200 <Guest52> what types should be in place so i could add a complex number to a fractional number?
2021-09-18 16:49:57 +0200Lycurgus(~juan@98.4.112.204) (Quit: Exeunt)
2021-09-18 16:50:00 +0200 <Guest52> ive tried everything but always get the error `Occurs check: cannot construct the infinite type: a1 ~ Complex a1`
2021-09-18 16:52:37 +0200 <xerox> > let a = 2/3; b = (-2/3) + 1 in a :+ b
2021-09-18 16:52:39 +0200 <lambdabot> 0.6666666666666666 :+ 0.33333333333333337
2021-09-18 16:53:01 +0200 <xerox> missed a : in b's def, oopsie
2021-09-18 16:53:28 +0200 <xerox> and it's wrong anyway!
2021-09-18 16:54:08 +0200vysn(~vysn@user/vysn)
2021-09-18 16:55:02 +0200 <xerox> I guess you complexify your rational with ":+ 0" and that's it
2021-09-18 16:56:38 +0200 <ProofTechnique> > let a = 2/3; b = 1 :+ 1 in a + b
2021-09-18 16:56:40 +0200 <lambdabot> 1.6666666666666665 :+ 1.0
2021-09-18 16:57:53 +0200 <Guest52> no
2021-09-18 16:58:01 +0200 <Guest52> i mean
2021-09-18 16:58:31 +0200 <Guest52> i want to add a Complex number with a double lets say
2021-09-18 16:58:44 +0200 <Guest52> not two doubles to a complex
2021-09-18 16:59:22 +0200 <ProofTechnique> > let a = pi; b = 1 :+ 1 in a + b
2021-09-18 16:59:24 +0200 <lambdabot> 4.141592653589793 :+ 1.0
2021-09-18 16:59:29 +0200 <ProofTechnique> I'm not following
2021-09-18 16:59:45 +0200 <ProofTechnique> What does "add" mean?
2021-09-18 16:59:52 +0200 <Guest52> (0 :+ 0) + (1.2 :: Double)
2021-09-18 17:00:13 +0200 <xerox> > let a = 2/3 :: Double; b = (-2/3) :+ 1 :: Complex Double; f x y = (x :+ 0) + y in f a b
2021-09-18 17:00:15 +0200 <lambdabot> 0.0 :+ 1.0
2021-09-18 17:03:05 +0200yauhsien(~yauhsien@118-167-49-246.dynamic-ip.hinet.net)
2021-09-18 17:04:05 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-09-18 17:06:16 +0200 <Drew[m]> `(0 :+ 0) + (realToFrac 1.2) `
2021-09-18 17:08:06 +0200yauhsien(~yauhsien@118-167-49-246.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2021-09-18 17:14:36 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-18 17:14:36 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-18 17:14:36 +0200wroathe(~wroathe@user/wroathe)
2021-09-18 17:17:12 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:49c6:f846:9a95:6c22)
2021-09-18 17:18:42 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 276 seconds)
2021-09-18 17:20:49 +0200 <monochrom> Haha latest plot twist in the haskell-cafe hell thread: "I learned Haskell straight from the Haskell Report" "Yeah me too"
2021-09-18 17:21:58 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:49c6:f846:9a95:6c22) (Ping timeout: 260 seconds)
2021-09-18 17:22:51 +0200 <hpc> use the source, luke
2021-09-18 17:23:46 +0200 <monochrom> Oh yeah should I troll with "I learned Haskell from the source code of Hugs, it maps Haskell to the bare metal when the rubber hits to road"? >:)
2021-09-18 17:24:01 +0200 <monochrom> err s/hits to road/hits the road/
2021-09-18 17:24:35 +0200 <monochrom> "It is written in C. It's very readable."
2021-09-18 17:25:02 +0200 <monochrom> "I ruled out GHC because back then there was a component written in Perl. Not readable."
2021-09-18 17:26:35 +0200 <c_wraith> is the renamer no longer in perl?
2021-09-18 17:27:19 +0200 <monochrom> Actually more seriously I would want to challenge him "did you learn C from an actual compiler that does an actual mapping to the rubber-hit-the-road thing you rambled about, or did you only imagine a fantasy mapping to congratulate yourself?"
2021-09-18 17:27:40 +0200 <monochrom> I think there is no longer a renamer.
2021-09-18 17:27:49 +0200 <c_wraith> that'd do the job
2021-09-18 17:28:04 +0200 <sclv> “i learned haskell because i invented a perfect language in my head and it turned out paul hudak and lennart had the same idea already” lmao
2021-09-18 17:28:23 +0200 <hpc> monochrom: "i learned python straight from the test suite"
2021-09-18 17:28:26 +0200 <monochrom> Ah but GHC has a large component written in Haskell again. If I haven't learned Haskell I can't read it to learn Haskell... >:)
2021-09-18 17:28:46 +0200 <monochrom> haha hpc
2021-09-18 17:28:53 +0200 <monochrom> @quote monochrom downloaded
2021-09-18 17:28:53 +0200 <lambdabot> monochrom says: I was trying to design a sensible language... then I downloaded ghc.
2021-09-18 17:29:38 +0200Vajb(~Vajb@nbptnppvs5wp2vjps-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
2021-09-18 17:30:08 +0200 <monochrom> OK don't worry folks, I'm on a leash, all the dream posts I said I wanted to post, I won't because I know they are not helpful.
2021-09-18 17:30:39 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-09-18 17:31:07 +0200 <monochrom> I have posted only once, and it was only to debunk "visual learner, spatial learner", and cdsmith did it too.
2021-09-18 17:34:17 +0200 <Drew[m]> Is there a tool to take a package and a stackage lts version you know its developer used to build it and return the versions of all its dependencies, without installing stack?
2021-09-18 17:34:53 +0200 <Drew[m]> That would be handy to have right now
2021-09-18 17:35:15 +0200 <maerwald> Drew[m]: you want to build a stack project with cabal?
2021-09-18 17:35:48 +0200avital(~avital@cpe7073cbb4373d-cmf81d0fa2a7e0.cpe.net.cable.rogers.com)
2021-09-18 17:36:06 +0200 <Drew[m]> I want to build a hackage package with cabal that a maintainer hasn't put any upper bounds on
2021-09-18 17:36:07 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-09-18 17:36:34 +0200 <maerwald> so you want to build a stack project with cabal?
2021-09-18 17:36:49 +0200 <Drew[m]> essentially
2021-09-18 17:36:55 +0200 <maerwald> https://hackage.haskell.org/package/stack2cabal
2021-09-18 17:37:08 +0200 <sclv> monochrom: that was a great link you posted on learning styles by the way, wasn't aware really before
2021-09-18 17:37:36 +0200 <Drew[m]> maerwald: Ah, thanks
2021-09-18 17:38:06 +0200 <monochrom> Yeah you can count on Veritasium and other science communicator channels.
2021-09-18 17:40:09 +0200 <avital> Hi all. This is something I don't quite get. I am trying to use Control.Arrow. Say I have an arrow defined as `pre = (arr .) (++)`. Which makes an arrow `Arrow a1 => [a2] -> a1 [a2] [a2]`. I can run the arrow say with `["one", "two"] >>=(runKleisli $ pre "test")
2021-09-18 17:40:47 +0200 <avital> But What I do not get is how runKleisli takes an arrow while its type signature requires Kleisli?
2021-09-18 17:40:56 +0200 <monochrom> @type (arr .) (++)
2021-09-18 17:40:57 +0200 <lambdabot> Arrow a1 => [a2] -> a1 [a2] [a2]
2021-09-18 17:41:29 +0200 <avital> I get I can use Kleisli where Arrow is expected bc there is an Arrow instance for Kleisli
2021-09-18 17:41:34 +0200 <monochrom> @type runKleisli
2021-09-18 17:41:34 +0200 <avital> But this is reverse
2021-09-18 17:41:35 +0200 <lambdabot> Kleisli m a b -> a -> m b
2021-09-18 17:41:56 +0200 <c_wraith> avital: pre is polymorphic, as defined.
2021-09-18 17:42:19 +0200 <ProofTechnique> I like how this video dances around the point that the learning style myth is just a knock-on consequence of Western hyperindividualist woo
2021-09-18 17:42:26 +0200 <monochrom> Ah, right, a1 = Kleisli m
2021-09-18 17:43:05 +0200 <c_wraith> Kleisli [], in that particular case
2021-09-18 17:43:35 +0200 <avital> What type resolution rule is applied to make an arrow into kleisli in runKleisli, that what I don't quite get. Sorry, this might be a real dumb question
2021-09-18 17:43:54 +0200 <c_wraith> It's just unification
2021-09-18 17:44:39 +0200jakalx(~jakalx@base.jakalx.net)
2021-09-18 17:45:14 +0200 <c_wraith> pre "test" :: Arrow a1 => a1 [a2] [a2] ; runKleisli :: Kleisli m a b -> a -> m b
2021-09-18 17:45:25 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-18 17:46:21 +0200 <c_wraith> err. (Arrow a1 => a1 String String), actually
2021-09-18 17:46:30 +0200 <avital> So how Arrow a1 is type-compatible with Kleisli m a b
2021-09-18 17:46:40 +0200 <c_wraith> Arrow a1 isn't a type
2021-09-18 17:46:44 +0200 <c_wraith> it's a constraint
2021-09-18 17:46:49 +0200 <avital> Constraint
2021-09-18 17:46:59 +0200 <avital> Yup, I get that
2021-09-18 17:47:01 +0200 <c_wraith> Kleisli m is an instance of Arrow
2021-09-18 17:47:09 +0200 <c_wraith> so Kleisli m unifies with a1
2021-09-18 17:47:18 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 276 seconds)
2021-09-18 17:47:33 +0200 <avital> Guess I will go read about unification some more, thank you, c_wraith
2021-09-18 17:48:18 +0200 <monochrom> a1 is the type compatible with Kleisli m
2021-09-18 17:48:21 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2021-09-18 17:48:28 +0200hendursaga(~weechat@user/hendursaga)
2021-09-18 17:48:33 +0200 <c_wraith> It's the same idea as let { x :: Int ; x = 3 ; f :: Num a => a -> a ; f = (+ 1) } in f x
2021-09-18 17:49:24 +0200 <monochrom> I think my http://www.vex.net/~trebla/haskell/prerequisite.xhtml#unification is all you need to know about unification for a long time.
2021-09-18 17:49:39 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2021-09-18 17:49:46 +0200 <avital> ty, c_wraith, monochrom
2021-09-18 17:49:54 +0200 <monochrom> I say this because if you Google for unification you will just be getting detailed algorithms that you don't need and won't care for a long time.
2021-09-18 17:50:27 +0200 <c_wraith> Yeah, definitely don't look at unification algorithms. They're super-complicated because of edge cases that aren't important for this
2021-09-18 17:50:28 +0200 <monochrom> What most people need for the most part is the problem statement of unification, not a solution.
2021-09-18 17:51:46 +0200 <monochrom> Or at most, an inefficient but straigthforward solution that you can say "ah yeah this is easy I can do it by hand".
2021-09-18 17:52:36 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-09-18 17:54:18 +0200 <hpc> which usually you can
2021-09-18 17:54:44 +0200cheater1__(~Username@user/cheater)
2021-09-18 17:54:51 +0200 <hpc> things don't get difficult unless you do something uselessly complicated like fmap (fmap fmap fmap) fmap (fmap (fmap fmap) fmap) fmap fmap
2021-09-18 17:54:58 +0200cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2021-09-18 17:55:07 +0200cheater1__cheater
2021-09-18 17:57:23 +0200 <EvanR> when all sentences work, no help from the computer notifying you of writing the wrong thing
2021-09-18 17:57:30 +0200 <EvanR> bad
2021-09-18 17:58:13 +0200 <EvanR> all least not all fmap clouds fit all slots
2021-09-18 17:58:32 +0200 <int-e> :t fmap (fmap fmap fmap) fmap (fmap (fmap fmap) fmap) fmap fmap
2021-09-18 17:58:33 +0200 <lambdabot> (Functor f1, Functor f2, Functor f3) => f1 (a1 -> b) -> f1 ((a2 -> f3 a1) -> f2 a2 -> f2 (f3 b))
2021-09-18 17:59:03 +0200 <int-e> could be worse :P
2021-09-18 17:59:32 +0200jtomas_(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
2021-09-18 18:01:49 +0200avital(~avital@cpe7073cbb4373d-cmf81d0fa2a7e0.cpe.net.cable.rogers.com) (Quit: Client closed)
2021-09-18 18:02:54 +0200jtomas(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 265 seconds)
2021-09-18 18:03:43 +0200 <int-e> :t fmap ((fmap .) . (.) . fmap)
2021-09-18 18:03:44 +0200 <lambdabot> (Functor f1, Functor f2, Functor f3) => f1 (a1 -> b) -> f1 ((a2 -> f3 a1) -> f2 a2 -> f2 (f3 b))
2021-09-18 18:04:43 +0200 <int-e> hpc: ^^ it's almost reasonable!
2021-09-18 18:05:09 +0200 <hpc> definitely almost :P
2021-09-18 18:05:11 +0200jakalx(~jakalx@base.jakalx.net)
2021-09-18 18:05:30 +0200 <monochrom> "is this representable functor?" meme
2021-09-18 18:08:39 +0200 <ldlework> Reading about Reader, and my tiny brain can't handle it.
2021-09-18 18:09:09 +0200 <hpc> you should write about Writer instead
2021-09-18 18:09:34 +0200 <ldlework> hah
2021-09-18 18:09:36 +0200 <monochrom> "Each Reader functor is just the representation of a representable functor, what's the problem?" >:)
2021-09-18 18:09:59 +0200 <ldlework> Last night in HFFP: "Reader is the Functor of functions."
2021-09-18 18:10:02 +0200 <ldlework> Me: Weeeeeeeeeee
2021-09-18 18:10:37 +0200 <monochrom> More seriously, you should not be reading. This is not a spectator sport. You should be trying your hands at guessing how to code up fmap, >>=, etc for Reader.
2021-09-18 18:11:03 +0200 <ldlework> monochrom: I do all the exercises in the book and I've stopped to write a few haskell experiments like with gloss and some other stuff.
2021-09-18 18:11:19 +0200 <ldlework> But each chapter needs to read at least once :P
2021-09-18 18:12:06 +0200 <ldlework> (or let's be real, twice or thrice heh)
2021-09-18 18:12:08 +0200 <monochrom> Sure, but the reading is only to be told "Reader is an instance of Functor".
2021-09-18 18:12:27 +0200 <monochrom> Beyond that point, if you just read how other people code it up, it makes no sense.
2021-09-18 18:12:46 +0200 <monochrom> It only makes sense after you walk the same journey yourself.
2021-09-18 18:12:47 +0200 <ldlework> Well a series of examples of the typeclass in use is instructive
2021-09-18 18:13:02 +0200 <ldlework> monochrom: sure that's what the exercises in the back of the chapter are for!
2021-09-18 18:13:05 +0200 <hpc> also consider what you would do if you didn't have Monad and do-notation
2021-09-18 18:13:09 +0200 <monochrom> OK even after that you will still be missing something. But that is the minimum.
2021-09-18 18:13:15 +0200 <hpc> and how you would write some random Reader thing
2021-09-18 18:13:45 +0200 <hpc> then those class functions are just the things you're doing over and over again
2021-09-18 18:14:29 +0200 <hpc> like for Maybe, the thing you do over and over again is case foo of {Nothing -> Nothing; Just x -> something involving x}
2021-09-18 18:14:46 +0200 <monochrom> Use case is that if you have "Reader Int XXX" it means that you can a read-only config of type Int you want to consult every once in a while. THE END.
2021-09-18 18:15:55 +0200 <ldlework> Someone should make a code-academy thing for haskell
2021-09-18 18:15:55 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 252 seconds)
2021-09-18 18:15:57 +0200 <c_wraith> Reader itself isn't very useful
2021-09-18 18:16:38 +0200 <ldlework> I think that'd be really valuable
2021-09-18 18:17:38 +0200waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
2021-09-18 18:18:31 +0200sheddow(~sheddow@2001:4652:3064:0:855:8e28:191f:6ce6)
2021-09-18 18:22:10 +0200jtomas_(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 260 seconds)
2021-09-18 18:23:34 +0200hololeap(~hololeap@user/hololeap)
2021-09-18 18:23:43 +0200Brumaire(~quassel@81-64-14-121.rev.numericable.fr)
2021-09-18 18:31:10 +0200hnOsmium0001(uid453710@id-453710.hampstead.irccloud.com)
2021-09-18 18:33:13 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-18 18:34:28 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-09-18 18:35:35 +0200VoidNoir0(~VoidNoir0@72.80.203.52)
2021-09-18 18:36:19 +0200 <kuribas> Which REST framework, besides servant, lets you generate openapi docs, clients, etc?
2021-09-18 18:37:20 +0200meinside(uid24933@id-24933.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2021-09-18 18:37:51 +0200 <kuribas> I didn't find any...
2021-09-18 18:37:55 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:49c6:f846:9a95:6c22)
2021-09-18 18:38:23 +0200 <hpc> what's wrong with servant?
2021-09-18 18:38:31 +0200 <kuribas> it's fancy haskell
2021-09-18 18:38:43 +0200 <hpc> heh
2021-09-18 18:38:49 +0200 <kuribas> It is fairly easy to use, until you want to extend it.
2021-09-18 18:38:54 +0200 <kuribas> Write your own types.
2021-09-18 18:39:03 +0200 <kuribas> And it is basically untyped on the type level (unkinded?)
2021-09-18 18:41:20 +0200lbseale(~lbseale@user/ep1ctetus)
2021-09-18 18:41:36 +0200 <kuribas> It also seems overcomplicated, with it's use of GADTs.
2021-09-18 18:42:41 +0200hsiktas[m](~hsiktasma@2001:470:69fc:105::30d4)
2021-09-18 18:42:52 +0200 <kuribas> I just think you could have all the functionality of servant without any type level stuff.
2021-09-18 18:43:22 +0200 <kuribas> For example, when you generate an REST server, it also creates the API description.
2021-09-18 18:43:44 +0200 <kuribas> (a theoritical web framework I mean).
2021-09-18 18:44:00 +0200 <kuribas> Then from the API description you could generate client, openapi, etc...
2021-09-18 18:44:49 +0200juhp(~juhp@bb220-255-143-175.singnet.com.sg) (Quit: juhp)
2021-09-18 18:45:08 +0200juhp(~juhp@bb220-255-143-175.singnet.com.sg)
2021-09-18 18:45:25 +0200 <ProofTechnique> Scala has tapir
2021-09-18 18:45:43 +0200tommd(~tommd@75-164-130-101.ptld.qwest.net)
2021-09-18 18:46:06 +0200 <ProofTechnique> Might have some ideas worth stealing, though I expect the mapping won't be very direct, and I imagine the internals are "fancy Scala"
2021-09-18 18:46:40 +0200 <ldlework> Can you call a function using `getArgs` from ghci repl
2021-09-18 18:47:01 +0200jstolarek(~jstolarek@ers4.neoplus.adsl.tpnet.pl)
2021-09-18 18:47:18 +0200 <geekosaur> could you give an example of what you're trying to do?
2021-09-18 18:47:25 +0200 <kuribas> I just think a type level REST API would work better in idris.
2021-09-18 18:47:43 +0200 <kuribas> Because the API would be a normal value.
2021-09-18 18:48:14 +0200 <hpc> ldlework: try it
2021-09-18 18:48:33 +0200 <ldlework> hpc: i did
2021-09-18 18:48:38 +0200 <kuribas> Is template haskell "fancy"?
2021-09-18 18:48:55 +0200 <geekosaur> if you mean can you pass values via getArgs, there is :main and there is :set args
2021-09-18 18:49:01 +0200 <monochrom> If you run ":main a b c", getArgs will receive ["a","b","c"]
2021-09-18 18:49:09 +0200 <ldlework> monochrom: oh thanks
2021-09-18 18:49:44 +0200 <hpc> ah, you meant "and actually give it arguments"
2021-09-18 18:49:53 +0200 <ldlework> yeah hehe
2021-09-18 18:50:09 +0200 <geekosaur> yeh, I was unclear on that as well
2021-09-18 18:51:50 +0200 <kuribas> weird that idris gets so little traction, when people love type level programming so much...
2021-09-18 18:52:12 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-09-18 18:52:51 +0200econo(uid147250@user/econo)
2021-09-18 18:53:53 +0200Flonk(~Flonk@ec2-52-40-29-25.us-west-2.compute.amazonaws.com) (Quit: The Lounge - https://thelounge.chat)
2021-09-18 18:54:11 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Read error: No route to host)
2021-09-18 18:54:35 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-09-18 18:59:05 +0200 <ldlework> with `runhaskell` is there a way to invoke a specific function
2021-09-18 19:00:47 +0200 <ldlework> other than main, that is
2021-09-18 19:00:57 +0200 <geekosaur> I think the closest you get is --ghc-arg='-main-is function'
2021-09-18 19:01:08 +0200 <geekosaur> which requires the function to behave like main
2021-09-18 19:01:21 +0200 <monochrom> ghc -e 'f 5' yourfile.hs
2021-09-18 19:02:00 +0200 <monochrom> In fact ghc -e '1+1' yourfile.hs too, although it seems like trolling if you load up the file just to end up not using it :)
2021-09-18 19:02:27 +0200 <monochrom> ghc -e '1+1' is also OK, you don't have to name a file.
2021-09-18 19:02:57 +0200 <ldlework> monochrom: ah that worked, thanks
2021-09-18 19:07:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-18 19:12:01 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-09-18 19:12:25 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2021-09-18 19:12:34 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-09-18 19:14:19 +0200machinedgod(~machinedg@24.105.81.50)
2021-09-18 19:17:41 +0200 <kuribas> hmm, I actually have a nice idea for a higher kinded, profunctor REST API...
2021-09-18 19:18:06 +0200lbseale(~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
2021-09-18 19:18:19 +0200 <kuribas> Will still require generics or TH though...
2021-09-18 19:18:38 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-09-18 19:20:06 +0200Guest52(~Guest52@93-172-101-61.bb.netvision.net.il) (Quit: Client closed)
2021-09-18 19:20:30 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-09-18 19:20:58 +0200jtomas_(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
2021-09-18 19:22:31 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-18 19:24:07 +0200neurocyte0(~neurocyte@user/neurocyte) (Ping timeout: 252 seconds)
2021-09-18 19:24:23 +0200hyiltiz(~quassel@31.220.5.250) (Read error: Connection reset by peer)
2021-09-18 19:26:37 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-09-18 19:27:29 +0200kuribas(~user@ptr-25vy0i8euker9wwjmv4.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-09-18 19:30:56 +0200 <ldlework> I built a handy bash script that lets me either; run, doctest or quicktest a given HFFP exercise, chapter, or everything -- with the ability to "watch" a single exercise in either doctest or quicktest mode
2021-09-18 19:32:23 +0200 <ldlework> I wonder if it'd be of any value if I made a template repo, with all of the exercises stubbed out, ready to be solved
2021-09-18 19:36:37 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 252 seconds)
2021-09-18 19:43:26 +0200 <hololeap> is there a way to reuse a portion of a cabal file, e.g. a subset of dependencies that are used by multiple executables in the same package?
2021-09-18 19:43:34 +0200 <sm> sounds good! and a reddit post
2021-09-18 19:44:04 +0200 <sm> yes hololeap
2021-09-18 19:44:38 +0200Vq(~vq@90-227-195-41-no77.tbcn.telia.com)
2021-09-18 19:46:20 +0200cheater(~Username@user/cheater) (Ping timeout: 265 seconds)
2021-09-18 19:46:22 +0200Topsi(~Tobias@dyndsl-095-033-091-004.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2021-09-18 19:46:37 +0200 <hololeap> oh, just found it: common stanzas
2021-09-18 19:46:37 +0200cheater(~Username@user/cheater)
2021-09-18 19:49:06 +0200lbseale(~lbseale@user/ep1ctetus)
2021-09-18 19:50:54 +0200jlamothe(~jlamothe@104.158.48.100)
2021-09-18 19:51:24 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-18 19:52:23 +0200lbseale(~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
2021-09-18 19:55:32 +0200jakalx(~jakalx@base.jakalx.net) (Disconnected: Replaced by new connection)
2021-09-18 19:55:33 +0200jakalx(~jakalx@base.jakalx.net)
2021-09-18 20:12:02 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2021-09-18 20:14:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-09-18 20:14:59 +0200betelgeuse(~betelgeus@94-225-47-8.access.telenet.be) (Quit: The Lounge - https://thelounge.chat)
2021-09-18 20:15:30 +0200azimut_(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds)
2021-09-18 20:15:48 +0200 <sshine> ldlework, what's HFFP?
2021-09-18 20:16:19 +0200 <sshine> ldlework, oh, first principles book.
2021-09-18 20:16:36 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-09-18 20:20:30 +0200max22-(~maxime@2a01cb0883359800101dc8ab48a7971b.ipv6.abo.wanadoo.fr) (Ping timeout: 268 seconds)
2021-09-18 20:22:50 +0200fresheyeball(~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net)
2021-09-18 20:29:30 +0200Sgeo(~Sgeo@user/sgeo)
2021-09-18 20:29:50 +0200sander(~sander@user/sander) (Ping timeout: 265 seconds)
2021-09-18 20:34:42 +0200tommd(~tommd@75-164-130-101.ptld.qwest.net) (Ping timeout: 260 seconds)
2021-09-18 20:34:47 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2021-09-18 20:39:35 +0200Lycurgus(~juan@98.4.112.204)
2021-09-18 20:42:11 +0200 <hololeap> sshine: it's the noise you make when someone tells you haskell will never break into the mainstream
2021-09-18 20:44:38 +0200 <Lycurgus> hs from 1st principles, i was gonna guess gigglesnort
2021-09-18 20:47:28 +0200max22-(~maxime@2a01cb08833598007ff170d7dad3fd31.ipv6.abo.wanadoo.fr)
2021-09-18 20:50:23 +0200Chai-T-Rex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2021-09-18 20:52:38 +0200neurocyte01(~neurocyte@45.93.111.147)
2021-09-18 20:52:38 +0200neurocyte01(~neurocyte@45.93.111.147) (Changing host)
2021-09-18 20:52:38 +0200neurocyte01(~neurocyte@user/neurocyte)
2021-09-18 20:55:22 +0200Chai-T-Rex(~ChaiTRex@user/chaitrex)
2021-09-18 20:58:13 +0200yinghua(~yinghua@2800:2121:1400:1db:b16d:d359:384:92aa)
2021-09-18 21:00:36 +0200yinghua(~yinghua@2800:2121:1400:1db:b16d:d359:384:92aa) (Quit: Leaving)
2021-09-18 21:03:59 +0200yinghua(~yinghua@2800:2121:1400:1db:b16d:d359:384:92aa)
2021-09-18 21:04:22 +0200sander(~sander@user/sander)
2021-09-18 21:07:50 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds)
2021-09-18 21:19:31 +0200 <awpr> > let buffalo = fmap -- after reading this morning's backlogs about unification
2021-09-18 21:19:33 +0200 <lambdabot> <no location info>: error:
2021-09-18 21:19:33 +0200 <lambdabot> not an expression: ‘let buffalo = fmap -- after reading this morning's b...
2021-09-18 21:20:56 +0200 <hpc> lol
2021-09-18 21:24:28 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-18 21:30:42 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-09-18 21:31:32 +0200 <sm> someone should write PFFFH
2021-09-18 21:33:01 +0200 <justsomeguy> Programming functionally from finnish hotels?
2021-09-18 21:33:37 +0200 <awpr> Profunctors and Functors For Fledgling Haskellers
2021-09-18 21:33:41 +0200 <maerwald> any good finnish hotels for coding haskell?
2021-09-18 21:33:48 +0200 <sm> Programmers' Follies, Failures and Fun with Haskell ?
2021-09-18 21:36:54 +0200neurocyte01(~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
2021-09-18 21:37:44 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-09-18 21:37:53 +0200[_](~itchyjunk@user/itchyjunk/x-7353470)
2021-09-18 21:38:13 +0200[_](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2021-09-18 21:38:18 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2021-09-18 21:38:34 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-09-18 21:38:59 +0200neurocyte01(~neurocyte@45.93.111.147)
2021-09-18 21:38:59 +0200neurocyte01(~neurocyte@45.93.111.147) (Changing host)
2021-09-18 21:38:59 +0200neurocyte01(~neurocyte@user/neurocyte)
2021-09-18 21:39:09 +0200 <monochrom> In Soviet Russia, principles form first haskell? >:)
2021-09-18 21:41:15 +0200 <monochrom> I don't want haskell to be mainstream.
2021-09-18 21:41:56 +0200 <monochrom> People are in delusional denial of what would happen if haskell went into mainstream.
2021-09-18 21:42:16 +0200 <maerwald> that means you're basically not pro Haskell Foundation
2021-09-18 21:42:24 +0200 <monochrom> It would mean haskell would be changed by mainstream, not mainstream changed by haskell. Don't be naïve.
2021-09-18 21:42:42 +0200 <monochrom> Do you want haskell to adopt mainstream values?
2021-09-18 21:43:13 +0200 <monochrom> For example utter disrespect of types?
2021-09-18 21:43:52 +0200 <sm> Programmers' Fabulous Fantasies For Haskell ?
2021-09-18 21:44:02 +0200 <monochrom> The "I'm bad at math, and proud of it" anti-intellectual attitude?
2021-09-18 21:44:44 +0200 <monochrom> Note that that attitude means that even our "foldr :: (a -> b -> b) -> ..." is "too advanced, PhD level".
2021-09-18 21:44:54 +0200 <maerwald> I was good at math, but I remember none of it. Does that count?
2021-09-18 21:45:09 +0200acidjnk(~acidjnk@p200300d0c703cb488c4c1d5595111d0b.dip0.t-ipconnect.de)
2021-09-18 21:45:15 +0200 <awpr> also that it's too hard to learn the word "Endo" as "function that returns the same type it accepts"
2021-09-18 21:45:35 +0200 <monochrom> No. Haskell just needs the aptitude, not the memory.
2021-09-18 21:45:52 +0200 <maerwald> I mean come on... how would you keep those things in memory if you have no exposure. And most coding gives you no exposure.
2021-09-18 21:46:06 +0200 <awpr> _disclaimer: any similarity to current topics of discussion in any other media is purely coincidental and not to be construed as passing judgment on any other forum_
2021-09-18 21:46:26 +0200 <monochrom> Here is an example of being bad at math in a way that hinders learning Haskell.
2021-09-18 21:46:44 +0200 <monochrom> Suppose I define f(x) = x+1 and g(x) = 2*x, and now ask you about f(g(x)).
2021-09-18 21:47:16 +0200 <monochrom> Here is some people's mental model that leads them to failure. You won't believe it, but I saw it happen.
2021-09-18 21:47:38 +0200 <monochrom> They think of "x" as a global variable and there is only one global x.
2021-09-18 21:47:56 +0200 <maerwald> that's rough
2021-09-18 21:48:02 +0200 <sshine> does HLS understand 'default-extensions'? I have OverloadedStrings listed there, and I get a String/Text error in haskell-mode + lsp-haskell in Emacs.
2021-09-18 21:48:14 +0200 <maerwald> is x an object or a class?
2021-09-18 21:48:16 +0200 <maerwald> :D
2021-09-18 21:48:21 +0200 <monochrom> So for example if I start talking about f(g(5)), their trouble is that now x=5 and also x=g(5) and also x=g(x).
2021-09-18 21:49:19 +0200 <monochrom> You don't remember the quadratic formula, but you still retain your skill of plugging in, you have a correct mental model of functions. That's all I need.
2021-09-18 21:49:31 +0200 <awpr> to be fair it's easy to mix up xs in different scopes when evaluating mentally, even if you know in principle that they're unrelated things
2021-09-18 21:49:35 +0200 <hpc> this is why haskell has unicode support, so you can have 144,762 variables instead of 26
2021-09-18 21:49:49 +0200 <monochrom> haha
2021-09-18 21:49:50 +0200 <sm> sshine: for me, most things HLS seem to depend on the phase of the moon...
2021-09-18 21:50:09 +0200 <sshine> https://github.com/haskell/haskell-language-server/issues/590
2021-09-18 21:50:15 +0200 <monochrom> Well 144762 variables still can't help you with f(5) + f(6).
2021-09-18 21:50:43 +0200 <awpr> which is to say, doing capture-avoiding substitution in my head isn't the easiest thing
2021-09-18 21:51:45 +0200 <awpr> huh, I just realized I reason about `f(g(x))` in something more akin to point-free form, i.e. interpret `f` into like "add one" and `g` into "double"
2021-09-18 21:52:01 +0200 <monochrom> Another mainstream value is banning recursion.
2021-09-18 21:52:40 +0200 <sshine> sm, my project is actually ghc-8.10, as that issue suggests would work. but I'm betting that the hlint my emacs refers to is compiled against another version.
2021-09-18 21:52:54 +0200 <monochrom> I would love to be one of the hippies and soften that to "they just avoid recursion" but no, there are companies that explicitly ban recursion in their code base.
2021-09-18 21:53:39 +0200 <monochrom> On the very ground that "we want to hire employees who can't deal with recursion".
2021-09-18 21:53:50 +0200 <sm> sshine: sounds likely.. unfortunately there are still so many ways for things to go wrong, and not enough easy troubleshooting techniques
2021-09-18 21:54:06 +0200 <awpr> is that a _value_, or an observation that recursion in C-family languages is just a shorthand for "technically-O(1) algorithm for computing stack overflows"
2021-09-18 21:54:18 +0200smis a little down on HLS as it hasn't been working in some projects lately. It'll pass
2021-09-18 21:54:32 +0200 <awpr> ah, if it's about hiring then it sounds like a value
2021-09-18 21:54:35 +0200 <maerwald> my manager once said that "coders -> coders who understand recursion -> coders who understand dynamic programming"
2021-09-18 21:54:46 +0200 <monochrom> It is a value. The reason for banning recursion is perceived human difficulty, not perceived machine penalty.
2021-09-18 21:55:01 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-09-18 21:55:32 +0200awprwants to see an inductively-defined microservice
2021-09-18 21:55:44 +0200kenran(~kenran@200116b82b42930064c9f17a2d060773.dip.versatel-1u1.de)
2021-09-18 21:55:58 +0200 <maerwald> I'd probably ban effects system in my company
2021-09-18 21:57:06 +0200 <monochrom> gcc does TCO very well, and I suspect many other C compilers. You ought to take C off the "C-family" you have in mind. :)
2021-09-18 21:57:36 +0200 <hpc> monochrom: if you're a C shop you ban pointers and malloc instead
2021-09-18 21:58:18 +0200 <monochrom> I would be OK with "Java-family" and if it included javascript.
2021-09-18 21:58:38 +0200 <awpr> how about just "non-Hindley-Milner family"
2021-09-18 21:58:47 +0200gehmehgeh(~user@user/gehmehgeh)
2021-09-18 21:58:55 +0200 <Hecate> monochrom: damn, I had no idea gcc had support for TCO
2021-09-18 21:58:57 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-09-18 21:59:10 +0200 <awpr> Python, C, Perl, Turing machines, it's all the same
2021-09-18 21:59:24 +0200 <monochrom> You have to turn on -O2. But it has been there for decades.
2021-09-18 22:00:15 +0200 <maerwald> I think I used recursion in C once
2021-09-18 22:00:16 +0200 <monochrom> This is why when I was young I said "people write-protect their brains upon graduation or 21-yo"
2021-09-18 22:01:05 +0200 <Hecate> monochrom: wait, has it been here for *decades* but not in a "you can absolutely, always rely on it" way?
2021-09-18 22:01:33 +0200 <Hecate> Because I'm reading StackOverflow posts and apparently you shouldn't rely on this behaviour being brought to you by the C compiler
2021-09-18 22:01:53 +0200 <Hecate> unless you're doing "__attribute__((musttail))"
2021-09-18 22:02:02 +0200 <Hecate> (which is clang-specific
2021-09-18 22:02:03 +0200 <Hecate> )
2021-09-18 22:02:04 +0200 <monochrom> Put it this way, I have never seen a failure example.
2021-09-18 22:02:23 +0200 <monochrom> And I wouldn't trust stackoverflow either.
2021-09-18 22:02:29 +0200 <Hecate> ah, quite unfortunately this is very much not in line with what C is all about :P
2021-09-18 22:02:34 +0200qbt(~edun@user/edun) (Remote host closed the connection)
2021-09-18 22:02:51 +0200 <monochrom> I can be talked into "you don't know that you can always use gcc, so don't use gcc-specific features".
2021-09-18 22:02:57 +0200 <awpr> I mean, writing code that isn't capable of being a tail-call is pretty common. recursion over a binary tree -> only one of two is a tail call at most; doing any postprocessing on the recursive result -> not a tail call unless GCC is very heroic about code motion; etc.
2021-09-18 22:03:14 +0200 <monochrom> But if I already know that it's gcc, "it randomly decides not to optimize" is absurd.
2021-09-18 22:03:41 +0200 <monochrom> And instead, I have seen an example of stackoverflow being wrong.
2021-09-18 22:03:50 +0200 <awpr> is it possible "randomly" is code for "I didn't understand my code was not tail-call-compatible"?
2021-09-18 22:04:41 +0200 <Hecate> monochrom: to be extremely honest I only do two (mutually exclusive) things when I code in C: Either I overfit my code for one precise compiler, or I keep the standard in mind and then everything is UB :P
2021-09-18 22:04:45 +0200 <monochrom> No, it means that I have not changed by code, I at most upgrade to a newer gcc version.
2021-09-18 22:04:51 +0200 <justsomeguy> stackoverflow is wrong so often, I don't know people even us it.
2021-09-18 22:05:01 +0200 <justsomeguy> s/us it/use it/
2021-09-18 22:05:47 +0200 <awpr> monochrom: right, I meant if you encounter people in the wild suggesting GCC "randomly" doesn't TCO, perhaps the truth is they incorrectly merged the cases where
2021-09-18 22:06:00 +0200 <awpr> where TCO is possible and happens with the cases where it's impossible and doesn't
2021-09-18 22:06:40 +0200 <monochrom> Suppose you want to know whether stdin will hit EOF the next time you read one byte. Stackoverflow will suggest fseek(to the end) and see if ftell says 0.
2021-09-18 22:06:50 +0200 <monochrom> That's how wrong stackoverflow is.
2021-09-18 22:07:12 +0200 <sshine> sm, do you fall back on ghcid or just alt-tabbing and recompiling?
2021-09-18 22:07:55 +0200 <monochrom> And the only reason I know is because I put that question on exam, then my TAs noticed that several students gave that same wrong answer, and we thought of "maybe the students googled it"
2021-09-18 22:11:01 +0200 <maerwald> https://git.io/JzqXg ...this C recursion likely doesn't optimize well :p
2021-09-18 22:11:25 +0200 <Hecate> monochrom: excellent
2021-09-18 22:12:15 +0200 <Hecate> maerwald: why so?
2021-09-18 22:12:35 +0200 <maerwald> there are two
2021-09-18 22:12:59 +0200 <maerwald> I remember it blowing up
2021-09-18 22:13:08 +0200 <Hecate> oh indeed
2021-09-18 22:13:31 +0200 <monochrom> Well yeah I had T in TCO, I don't expect smart use-CPS-to-enable-TCO either.
2021-09-18 22:13:39 +0200 <maerwald> but it kinda fits the project
2021-09-18 22:14:00 +0200 <monochrom> And it is unwise to get CPS involved anyway.
2021-09-18 22:14:36 +0200enikarpaste here the first anwser find with ddg on stackoverflow: https://stackoverflow.com/questions/1428911/detecting-eof-in-c
2021-09-18 22:14:49 +0200 <monochrom> If you have a genuine non-tail call, CPS just trades stack space for thunk space.
2021-09-18 22:15:33 +0200 <monochrom> And if you cite "defunctionalization" after that, you just trade thunk space back for user-defined stack space.
2021-09-18 22:15:44 +0200Lycurgus(~juan@98.4.112.204) (Quit: Exeunt)
2021-09-18 22:16:23 +0200 <monochrom> You are not saving space, you're just rebranding.
2021-09-18 22:18:43 +0200 <sm> sshine: yes ghcid is my usual fallback
2021-09-18 22:19:25 +0200 <sm> or sometimes, stack build --fast --file-watch
2021-09-18 22:19:26 +0200 <maerwald> coding without instant feedback is healthy
2021-09-18 22:19:50 +0200 <monochrom> enikar: Enjoy https://stackoverflow.com/questions/47320496/how-to-determine-if-stdin-is-empty/47320694
2021-09-18 22:19:50 +0200 <sm> sometimes, yes.. I think it depends what you're doing
2021-09-18 22:20:14 +0200 <maerwald> sm: coding
2021-09-18 22:20:16 +0200 <maerwald> :D
2021-09-18 22:20:25 +0200 <monochrom> Enjoy the fact that the voice of reason, "getchar, check, ungetchar" carries a negative score.
2021-09-18 22:20:44 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-09-18 22:21:26 +0200yauhsien(~yauhsien@118-167-47-202.dynamic-ip.hinet.net)
2021-09-18 22:22:02 +0200oxide(~lambda@user/oxide) (Ping timeout: 260 seconds)
2021-09-18 22:23:42 +0200 <enikar> monochrom: very bad, I agree, but my search was "How to detect the end of file in C?"
2021-09-18 22:24:05 +0200Everything(~Everythin@37.115.210.35) (Quit: leaving)
2021-09-18 22:24:12 +0200 <monochrom> My students found that one because my exam question wording was "stdin ... empty ..."
2021-09-18 22:24:50 +0200 <enikar> ok, they even didn't reformulate
2021-09-18 22:24:56 +0200 <monochrom> I think it's a good thing that a question's wording leads to googling for the wrong thing.
2021-09-18 22:25:59 +0200 <monochrom> There was one time I consciously arranged for that.
2021-09-18 22:26:15 +0200yauhsien(~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
2021-09-18 22:26:33 +0200 <kenran> Is anyone of you perhaps using fourmolu in haskell-mode with Emacs? I'm seeing "ended with errors", but there are no errors to be seen, and it works well on the command line
2021-09-18 22:26:44 +0200 <monochrom> I once gave an assignment that amounts to a version of the probability monad. (I chose a free monad form, i.e., a decision tree.)
2021-09-18 22:27:13 +0200 <monochrom> Clearly, if I called it "probability monad", it's way too googlable.
2021-09-18 22:27:38 +0200 <monochrom> It was a stroke of genius that I thought up calling it "random monad".
2021-09-18 22:27:56 +0200 <monochrom> It's way too googlable too but you'll get very misled.
2021-09-18 22:28:15 +0200 <monochrom> Indeed I had a very lost student who emailed me "is it OK to import Control.Monad.Random?"
2021-09-18 22:28:44 +0200 <enikar> ah!
2021-09-18 22:31:17 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
2021-09-18 22:31:40 +0200System123(~System123@net-37-179-171-3.cust.vodafonedsl.it)
2021-09-18 22:39:24 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-09-18 22:41:09 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-09-18 22:43:48 +0200sander(~sander@user/sander) (Remote host closed the connection)
2021-09-18 22:48:10 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 260 seconds)
2021-09-18 22:49:52 +0200mikoto-chan(~mikoto-ch@83.137.2.250)
2021-09-18 22:54:37 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-09-18 22:55:04 +0200chris(~chris@81.96.113.213)
2021-09-18 22:55:07 +0200chrisGuest3790
2021-09-18 22:57:22 +0200brettgilio(~brettgili@x-node.gq) (Ping timeout: 252 seconds)
2021-09-18 22:57:59 +0200Pickchea(~private@user/pickchea)
2021-09-18 23:01:28 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-09-18 23:01:40 +0200System123(~System123@net-37-179-171-3.cust.vodafonedsl.it) (Read error: Connection reset by peer)
2021-09-18 23:02:18 +0200System123(~System123@net-37-179-171-3.cust.vodafonedsl.it)
2021-09-18 23:04:54 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2021-09-18 23:05:40 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
2021-09-18 23:07:40 +0200Lord_of_Life_Lord_of_Life
2021-09-18 23:11:55 +0200fresheyeball(~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9)
2021-09-18 23:11:57 +0200pavonia(~user@user/siracusa)
2021-09-18 23:12:26 +0200neo1(~neo3@cpe-292712.ip.primehome.com) (Ping timeout: 260 seconds)
2021-09-18 23:21:29 +0200terrorjack(~terrorjac@ec2-54-95-39-30.ap-northeast-1.compute.amazonaws.com) (Remote host closed the connection)
2021-09-18 23:22:26 +0200terrorjack(~terrorjac@ec2-54-95-39-30.ap-northeast-1.compute.amazonaws.com)
2021-09-18 23:22:43 +0200__monty__(~toonn@user/toonn) (Ping timeout: 252 seconds)
2021-09-18 23:25:49 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-09-18 23:27:33 +0200System123(~System123@net-37-179-171-3.cust.vodafonedsl.it) (Remote host closed the connection)
2021-09-18 23:29:10 +0200max22-(~maxime@2a01cb08833598007ff170d7dad3fd31.ipv6.abo.wanadoo.fr) (Quit: Leaving)
2021-09-18 23:30:53 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-09-18 23:33:35 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-09-18 23:36:20 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
2021-09-18 23:38:54 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-09-18 23:41:14 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-09-18 23:42:22 +0200machinedgod(~machinedg@24.105.81.50)
2021-09-18 23:43:28 +0200kenran(~kenran@200116b82b42930064c9f17a2d060773.dip.versatel-1u1.de) (Quit: WeeChat info:version)
2021-09-18 23:46:25 +0200sheddow(~sheddow@2001:4652:3064:0:855:8e28:191f:6ce6) (Ping timeout: 256 seconds)
2021-09-18 23:47:20 +0200max22-(~maxime@2a01cb0883359800b763d25c3c1fa8b3.ipv6.abo.wanadoo.fr)
2021-09-18 23:48:40 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2021-09-18 23:49:30 +0200max22-(~maxime@2a01cb0883359800b763d25c3c1fa8b3.ipv6.abo.wanadoo.fr) (Client Quit)