2021/11/10

2021-11-10 00:00:41 +0100psydurr(~psydurr@pool-141-152-27-2.rcmdva.fios.verizon.net) (Ping timeout: 264 seconds)
2021-11-10 00:02:14 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2021-11-10 00:03:28 +0100 <remexre> are there any circumstances where (traceM "foo" >> undefined) would error, but not print the traceM?
2021-11-10 00:04:33 +0100 <mark__> So I never evaluate arguments unless I have to and i keep evaluating case expressions and applying my lambdas until I reach a value constructor or get "stuck" (too few arguments)?
2021-11-10 00:06:42 +0100 <monochrom> remexre: Yes, I think Control.Monad.State.Lazy may do that.
2021-11-10 00:09:47 +0100vysn(~vysn@user/vysn)
2021-11-10 00:12:07 +0100burnsidesLlama(~burnsides@dhcp168-027.wadham.ox.ac.uk) (Remote host closed the connection)
2021-11-10 00:13:27 +0100 <remexre> monochrom: how does that work? doesn't the trace need to get forced to tell if the LHS of >> is _|_ or not?
2021-11-10 00:13:48 +0100zincy(~zincy@host86-181-60-139.range86-181.btcentralplus.com)
2021-11-10 00:14:08 +0100mark__(~a@p200300ef973db1e34086f0a6a24fc4dd.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2021-11-10 00:16:45 +0100Pickchea(~private@user/pickchea) (Quit: Leaving)
2021-11-10 00:17:01 +0100 <monochrom> Does >> of State.Lazy force the LHS of >> ?
2021-11-10 00:17:15 +0100 <monochrom> Does it even care?
2021-11-10 00:17:22 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 260 seconds)
2021-11-10 00:18:17 +0100zincy(~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 250 seconds)
2021-11-10 00:18:41 +0100chele_(~chele@user/chele) (Remote host closed the connection)
2021-11-10 00:20:54 +0100Guest42(~Guest42@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed)
2021-11-10 00:21:10 +0100 <danso> would an equivalent definition for Alternative be `(Applicative f, forall a . Monoid (f a)) => Applicative f` with no methods?
2021-11-10 00:21:47 +0100 <danso> this requires QuantifiedConstraints, but i am not aware of any drawbacks to enabling it
2021-11-10 00:22:36 +0100 <hpc> there might be overlapping Monoid instances that depend on knowledge of a
2021-11-10 00:22:49 +0100 <remexre> monochrom: on phone so checking is slow, but it looks like it doesn't override it, and I think runStateT on the LHS should force it?
2021-11-10 00:22:51 +0100 <hpc> and do a different but valid thing
2021-11-10 00:22:56 +0100 <remexre> Which the (>>=) does
2021-11-10 00:23:14 +0100 <hpc> but probably yes if this is just "am i understanding Alternative correctly"
2021-11-10 00:23:28 +0100 <monochrom> Ugh phone is not a suitable medium for this kind of investigation.
2021-11-10 00:23:49 +0100 <remexre> Yeah... Heading home from work /shrug
2021-11-10 00:24:35 +0100 <monochrom> Pen and paper, however, is perfect for this kind of calculational work.
2021-11-10 00:26:11 +0100 <monochrom> A simplified version of Lazy.State's >>= is: (State stf) >>= k = State (\s0 -> let (a, s1) = stf s0 in runState (k a) s1)
2021-11-10 00:27:24 +0100 <remexre> Right, and the traceM should trace when it matches against the State stf, right?
2021-11-10 00:27:32 +0100 <monochrom> If k = \_ -> undefined, calculate whether the above definition even cares what stf is.
2021-11-10 00:28:12 +0100 <monochrom> And let me remind you the semantics of let:
2021-11-10 00:28:22 +0100 <monochrom> > let (x,y) = undefined in 42
2021-11-10 00:28:23 +0100 <lambdabot> 42
2021-11-10 00:28:49 +0100 <monochrom> Even this:
2021-11-10 00:28:55 +0100 <monochrom> > let Just x = Nothing in 42
2021-11-10 00:28:57 +0100 <lambdabot> 42
2021-11-10 00:29:00 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2021-11-10 00:30:13 +0100 <monochrom> Also, "(State stf)" is a newtype wrapper, "(State stf) >>= ..." is as though "stf >>= ..."
2021-11-10 00:30:26 +0100 <remexre> Hm, okay...
2021-11-10 00:30:36 +0100 <monochrom> So, who forces stf again?
2021-11-10 00:30:48 +0100 <remexre> stf doesn't need to be forced
2021-11-10 00:31:06 +0100 <remexre> traceM x = trace x (pure ())
2021-11-10 00:31:16 +0100 <remexre> So to get the State it should force the trace
2021-11-10 00:32:04 +0100 <monochrom> OK, name me your favourite newtype wrapper that's on lambdabot. I'll show you what it really does.
2021-11-10 00:32:32 +0100 <remexre> Uh I do not know lambdabot well... Data.Functor.Identity.Identity?
2021-11-10 00:32:41 +0100 <monochrom> OK!
2021-11-10 00:32:53 +0100 <monochrom> > case undefined of Identity x -> 32
2021-11-10 00:32:55 +0100 <lambdabot> 32
2021-11-10 00:33:55 +0100 <remexre> Huh, I guess this kinda makes sense for newtypes...
2021-11-10 00:34:31 +0100 <monochrom> After type erasure it's just "case undefined of x -> 32"
2021-11-10 00:36:02 +0100michalz(~michalz@185.246.204.61) (Remote host closed the connection)
2021-11-10 00:36:02 +0100 <monochrom> I ran into this once. My course material used to use newtype. One day I decided to s/newtype/data/ so I don't have to explain newtype to students. Then I got an unexpected bottom.
2021-11-10 00:36:12 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-11-10 00:36:35 +0100 <remexre> Okay, I guess that all makes sense, thanks!
2021-11-10 00:37:26 +0100 <yin> > case undefined of StateT x -> 32
2021-11-10 00:37:28 +0100 <lambdabot> 32
2021-11-10 00:37:29 +0100 <yin> oh no
2021-11-10 00:37:43 +0100biberu\(~biberu@user/biberu)
2021-11-10 00:37:47 +0100 <remexre> Oof
2021-11-10 00:38:16 +0100 <danso> thanks hpc. with the overlapping instances, are you saying that for some `f`, `f Int` could have a difference Monoid instance than `f String` ?
2021-11-10 00:38:29 +0100mcgroin(~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 256 seconds)
2021-11-10 00:38:37 +0100 <remexre> Also rip getting massive lag... Well, I'll check that my transformer stack has at least one strict monad in it when I'm back home, thanks
2021-11-10 00:39:17 +0100 <monochrom> Yeah if you just say "Control.Monad.State" you get the Lazy one, for example.
2021-11-10 00:39:25 +0100nineonine(~nineonine@2604:3d08:7780:cd00:94f7:1c4f:2fa7:9763) (Remote host closed the connection)
2021-11-10 00:39:29 +0100biberu-(~biberu@user/biberu)
2021-11-10 00:40:28 +0100 <monochrom> In retrospect I think that that decision was as naïve as defining foldl.
2021-11-10 00:41:27 +0100biberu(~biberu@user/biberu) (Ping timeout: 268 seconds)
2021-11-10 00:42:32 +0100biberu\(~biberu@user/biberu) (Ping timeout: 240 seconds)
2021-11-10 00:44:43 +0100biberu-(~biberu@user/biberu) (Ping timeout: 250 seconds)
2021-11-10 00:46:51 +0100mark__(~a@p200300ef973db1e34086f0a6a24fc4dd.dip0.t-ipconnect.de)
2021-11-10 00:49:42 +0100zincy(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
2021-11-10 00:51:28 +0100 <yin> monochrom: what do you mean?
2021-11-10 00:52:05 +0100 <Axman6> foldl is bad, lazy state by default is bad
2021-11-10 00:52:25 +0100 <yin> nooo
2021-11-10 00:53:26 +0100 <monochrom> Yeah, that.
2021-11-10 00:53:56 +0100 <yin> i like having to be explicit when we want strictness
2021-11-10 00:54:02 +0100zincy(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 240 seconds)
2021-11-10 00:54:13 +0100wennefer0(~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net)
2021-11-10 00:54:22 +0100 <Axman6> there are definnitely times where strictness by default is the right choice, and both of those are good examples
2021-11-10 00:54:46 +0100 <monochrom> What if I put it this way: For a long time, foldl' did not exist, that's the real naïvity.
2021-11-10 00:54:47 +0100 <Axman6> there's no reason for foldl to not be strict except in very rare, usually contrived examples
2021-11-10 00:55:12 +0100 <yin> i think defaults should be predictable
2021-11-10 00:55:25 +0100wennefer0(~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net) (Remote host closed the connection)
2021-11-10 00:55:41 +0100 <yin> if you know everything is lazy by default, you'll know when to require lazyness
2021-11-10 00:55:58 +0100 <yin> if not, you are in the dark
2021-11-10 00:56:12 +0100 <yin> s/lazyness/stricness
2021-11-10 00:56:21 +0100 <yin> ^t
2021-11-10 00:56:34 +0100pennychase[m](~pennychas@2001:470:69fc:105::1:3043)
2021-11-10 00:56:48 +0100biberu(~biberu@user/biberu)
2021-11-10 00:56:51 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 250 seconds)
2021-11-10 00:57:38 +0100 <Axman6> if you cvan think of an example where lazy foldl is useful, I will be impressed. The current one leads to unexpected (and hence, unpredictable) behaviour, which is very difficult to debug if you don't know about foldl's behaviour. You end up with stack overflows in completely unrelated parts of your program
2021-11-10 00:57:54 +0100 <monochrom> I can be talked into either having no defaults or having defaults aligning with majority use cases. But I am skeptical about having defaults aligning with ideology.
2021-11-10 00:57:59 +0100 <Cajun> "if you know everything is lazy...lazyness" i disagree. you may know strictness may be necessary for some semblance of performance, but not necessarily know exactly when strictness should be made explicit
2021-11-10 00:58:15 +0100 <Cajun> like "should i add bang patterns to this?"
2021-11-10 00:58:32 +0100 <monochrom> The time-proved retrospective observation is that foldl and State.Lazy have much fewer use cases.
2021-11-10 00:58:41 +0100pennychase[m](~pennychas@2001:470:69fc:105::1:3043) ()
2021-11-10 00:58:48 +0100 <monochrom> Similarly Data.Map.Lazy for example.
2021-11-10 00:59:10 +0100wennefer0(~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net)
2021-11-10 00:59:22 +0100 <Axman6> "Shoukd I add a bang pattern to this?" The answer is always "yes" :P
2021-11-10 00:59:29 +0100machinedgod(~machinedg@24.105.81.50)
2021-11-10 00:59:39 +0100wennefer0(~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net) (Remote host closed the connection)
2021-11-10 01:00:17 +0100justsomeguy(~justsomeg@user/justsomeguy)
2021-11-10 01:02:30 +0100debclair(~debclair@157.100.93.61)
2021-11-10 01:02:51 +0100wennefer0(~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net)
2021-11-10 01:04:31 +0100zava(~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) (Quit: WeeChat 3.3)
2021-11-10 01:05:11 +0100 <dsal> sum should be lazy. If I only want to know a partial sum, I should be able to read part of the result.
2021-11-10 01:05:19 +0100 <monochrom> haha
2021-11-10 01:06:03 +0100lambdandy[m](~lambdandy@2001:470:69fc:105::1:3045)
2021-11-10 01:07:18 +0100 <dolio> That's the sort of methodology that made containers have a major performance issue at one point. :þ
2021-11-10 01:07:22 +0100 <Axman6> that's just scanl (+) 0
2021-11-10 01:08:10 +0100 <shapr> random question, is there already a utility that calculates a "rebuild score" from a set of cabal files?
2021-11-10 01:08:30 +0100 <sclv> what is a rebuild stor
2021-11-10 01:08:32 +0100 <shapr> I think I want a package graph
2021-11-10 01:08:44 +0100 <sclv> theres utils for that
2021-11-10 01:08:46 +0100 <monochrom> byorgey is now promoting Data.Map.Lazy again because it helps with many programming contest problems :)
2021-11-10 01:08:53 +0100 <shapr> sclv: any names / links?
2021-11-10 01:09:26 +0100debclair(~debclair@157.100.93.61) (Quit: Leaving)
2021-11-10 01:10:24 +0100 <shapr> I want a score that gives a higher cost to long chains of dependencies, but less to packages that can be built in parallel.
2021-11-10 01:10:36 +0100psydurr(~psydurr@pool-141-152-27-2.rcmdva.fios.verizon.net)
2021-11-10 01:10:45 +0100shaprthinks
2021-11-10 01:10:56 +0100 <yin> monochrom: have you checked his game out?
2021-11-10 01:11:02 +0100 <monochrom> No.
2021-11-10 01:11:05 +0100 <sclv> you can get dotfiles directly out of ghc-pkg
2021-11-10 01:11:09 +0100vysn(~vysn@user/vysn) (Ping timeout: 250 seconds)
2021-11-10 01:11:12 +0100 <shapr> oh I didn't know that
2021-11-10 01:11:30 +0100 <yin> monochrom: https://github.com/byorgey/swarm
2021-11-10 01:12:11 +0100 <yin> #swarm here on libera
2021-11-10 01:12:13 +0100 <shapr> sclv: thanks!
2021-11-10 01:12:33 +0100 <yin> pretty cool
2021-11-10 01:15:58 +0100wennefer0(~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net) (Remote host closed the connection)
2021-11-10 01:18:02 +0100wennefer0(~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net)
2021-11-10 01:18:41 +0100wennefer0(~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net) (Remote host closed the connection)
2021-11-10 01:20:23 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-10 01:20:24 +0100 <dsal> Is it crazy to just be like, "I don't understand all the exceptions things so I'm going to run some code in an async and observe it" ?
2021-11-10 01:22:54 +0100zincy(~zincy@host86-181-60-139.range86-181.btcentralplus.com)
2021-11-10 01:23:10 +0100wennefer0(~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net)
2021-11-10 01:23:54 +0100wennefer0(~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net) (Remote host closed the connection)
2021-11-10 01:25:02 +0100acidjnk_new(~acidjnk@p200300d0c724a7710420fe3aa4fdb454.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2021-11-10 01:25:24 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-11-10 01:25:24 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-11-10 01:25:24 +0100wroathe(~wroathe@user/wroathe)
2021-11-10 01:26:19 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds)
2021-11-10 01:26:51 +0100emf_(~emf@2620:10d:c090:400::5:4199) (Read error: Connection reset by peer)
2021-11-10 01:27:02 +0100zincy(~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 240 seconds)
2021-11-10 01:28:24 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-11-10 01:32:05 +0100emf(~emf@2620:10d:c090:400::5:f986)
2021-11-10 01:32:44 +0100servytor(uid525486@id-525486.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-10 01:33:19 +0100justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
2021-11-10 01:34:21 +0100 <monochrom> It is not crazy to use observations to improve understanding. (Most people are crazy to do the opposite direction.)
2021-11-10 01:35:26 +0100 <monochrom> But it may be less helpful to do that with async. (Threads are more basic and fewer moving parts.)
2021-11-10 01:35:34 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) ()
2021-11-10 01:38:33 +0100psydurr(~psydurr@pool-141-152-27-2.rcmdva.fios.verizon.net) (Quit: Leaving)
2021-11-10 01:39:56 +0100 <dsal> Knowing what might be thrown and how to manage the case positively and negatively got super hard. But it's trivial with an async.
2021-11-10 01:39:59 +0100renzhi(~xp@2607:fa49:6500:b100::6e7f)
2021-11-10 01:46:04 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-10 01:46:28 +0100deadmarshal(~deadmarsh@95.38.114.152)
2021-11-10 01:48:25 +0100jkaye(~jkaye@2601:281:8300:7530:49b1:9f67:bcbc:61f) (Ping timeout: 250 seconds)
2021-11-10 01:50:06 +0100sprout(~quassel@2a02:a467:ccd6:1:5d00:eb1a:26:b28a)
2021-11-10 01:51:01 +0100deadmarshal(~deadmarsh@95.38.114.152) (Ping timeout: 256 seconds)
2021-11-10 01:53:26 +0100sprout_(~quassel@2a02:a467:ccd6:1:e1e5:75f2:6059:4431) (Ping timeout: 245 seconds)
2021-11-10 01:56:47 +0100zincy(~zincy@host86-181-60-139.range86-181.btcentralplus.com)
2021-11-10 01:59:47 +0100mmhat(~mmh@55d4bf19.access.ecotel.net) (Quit: WeeChat 3.3)
2021-11-10 02:01:13 +0100zincy(~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 256 seconds)
2021-11-10 02:06:02 +0100lavaman(~lavaman@98.38.249.169)
2021-11-10 02:08:27 +0100Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
2021-11-10 02:09:38 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-11-10 02:13:02 +0100mark__(~a@p200300ef973db1e34086f0a6a24fc4dd.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2021-11-10 02:18:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-11-10 02:22:44 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-11-10 02:26:09 +0100falafel(~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 256 seconds)
2021-11-10 02:28:02 +0100jmorris(uid433911@id-433911.hampstead.irccloud.com)
2021-11-10 02:30:32 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2021-11-10 02:39:39 +0100sugar(~sugar@bras-base-hmtnon1497w-grc-21-70-26-153-130.dsl.bell.ca)
2021-11-10 02:40:29 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Quit: Leaving)
2021-11-10 02:41:52 +0100geekosaur(~geekosaur@xmonad/geekosaur)
2021-11-10 02:47:16 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-11-10 02:47:16 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-11-10 02:47:16 +0100wroathe(~wroathe@user/wroathe)
2021-11-10 02:48:09 +0100zincy(~zincy@host86-181-60-139.range86-181.btcentralplus.com)
2021-11-10 02:50:28 +0100ees(~user@pool-108-18-30-46.washdc.fios.verizon.net)
2021-11-10 02:52:17 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 264 seconds)
2021-11-10 02:52:32 +0100zincy(~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 240 seconds)
2021-11-10 02:54:02 +0100lbseale(~lbseale@user/ep1ctetus) (Quit: Leaving)
2021-11-10 02:54:50 +0100sprout_(~quassel@2a02:a467:ccd6:1:ec9d:c0:f2e1:89a6)
2021-11-10 02:57:32 +0100sprout(~quassel@2a02:a467:ccd6:1:5d00:eb1a:26:b28a) (Ping timeout: 240 seconds)
2021-11-10 03:01:46 +0100sugar(~sugar@bras-base-hmtnon1497w-grc-21-70-26-153-130.dsl.bell.ca) (Quit: Client closed)
2021-11-10 03:05:48 +0100ezzieygu1wufezzieyguywuf
2021-11-10 03:08:11 +0100Inst(~Inst@2601:6c4:4080:3f80:c951:41b3:1b4a:c1f9) (Ping timeout: 264 seconds)
2021-11-10 03:15:14 +0100xlei(znc@pool-68-129-84-118.nycmny.fios.verizon.net) (Read error: Connection reset by peer)
2021-11-10 03:20:52 +0100zincy(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
2021-11-10 03:25:14 +0100zincy(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 246 seconds)
2021-11-10 03:25:31 +0100ees(~user@pool-108-18-30-46.washdc.fios.verizon.net) (Remote host closed the connection)
2021-11-10 03:26:49 +0100falafel(~falafel@cpe-76-168-195-162.socal.res.rr.com)
2021-11-10 03:31:21 +0100alzgh(~alzgh@user/alzgh) (Ping timeout: 256 seconds)
2021-11-10 03:35:44 +0100bontaq(~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection)
2021-11-10 03:35:53 +0100johnjay(~pi@192.142.100.50) (Ping timeout: 250 seconds)
2021-11-10 03:37:51 +0100alzgh(alzgh@user/alzgh)
2021-11-10 03:38:45 +0100johnjay(~pi@192.142.100.50)
2021-11-10 03:39:54 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 260 seconds)
2021-11-10 03:43:33 +0100cjb(~cjbayliss@user/cjb) ()
2021-11-10 03:55:02 +0100neurocyte0132889(~neurocyte@user/neurocyte) (Ping timeout: 240 seconds)
2021-11-10 03:56:03 +0100zincy(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
2021-11-10 03:56:28 +0100lavaman(~lavaman@98.38.249.169)
2021-11-10 03:56:46 +0100xff0x(~xff0x@2001:1a81:536d:7000:f003:c1eb:d2a3:5377) (Ping timeout: 245 seconds)
2021-11-10 03:58:47 +0100xff0x(~xff0x@2001:1a81:53aa:5400:49da:2933:d5c1:bd65)
2021-11-10 04:00:32 +0100zincy(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 240 seconds)
2021-11-10 04:00:47 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2021-11-10 04:04:24 +0100kupi(uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-10 04:06:37 +0100sprout(~quassel@2a02:a467:ccd6:1:cc66:8cdf:6920:eedd)
2021-11-10 04:10:02 +0100sprout_(~quassel@2a02:a467:ccd6:1:ec9d:c0:f2e1:89a6) (Ping timeout: 240 seconds)
2021-11-10 04:12:27 +0100sprout_(~quassel@2a02:a467:ccd6:1:646d:b422:185d:c10e)
2021-11-10 04:14:47 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-10 04:16:17 +0100sprout(~quassel@2a02:a467:ccd6:1:cc66:8cdf:6920:eedd) (Ping timeout: 264 seconds)
2021-11-10 04:18:00 +0100jkaye(~jkaye@2601:281:8300:7530:c139:e489:8815:b330)
2021-11-10 04:23:02 +0100betelgeuse(~betelgeus@94-225-47-8.access.telenet.be) (Ping timeout: 240 seconds)
2021-11-10 04:29:06 +0100SeungheonOh(~Thunderbi@2600:1700:5168:1400:d0db:f0d9:c386:c3c1)
2021-11-10 04:29:32 +0100SeungheonOh(~Thunderbi@2600:1700:5168:1400:d0db:f0d9:c386:c3c1) (Client Quit)
2021-11-10 04:35:49 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2021-11-10 04:35:49 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2021-11-10 04:35:49 +0100finn_elijaFinnElija
2021-11-10 04:37:50 +0100alx741(~alx741@181.196.68.101) (Quit: alx741)
2021-11-10 04:43:59 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 246 seconds)
2021-11-10 04:45:15 +0100ec(~ec@gateway/tor-sasl/ec) (Quit: ec)
2021-11-10 04:45:22 +0100AlexNoo(~AlexNoo@178.34.163.82) (Read error: Connection reset by peer)
2021-11-10 04:46:07 +0100AlexNoo(~AlexNoo@178.34.163.82)
2021-11-10 04:48:06 +0100zincy(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
2021-11-10 04:48:07 +0100jkaye(~jkaye@2601:281:8300:7530:c139:e489:8815:b330) (Ping timeout: 268 seconds)
2021-11-10 04:49:07 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-11-10 04:51:26 +0100jlamothe_(~jlamothe@198.251.61.229) (Quit: leaving)
2021-11-10 04:51:59 +0100flukiluke(~m-7humut@plum.alephc.xyz)
2021-11-10 04:52:35 +0100zincy(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 250 seconds)
2021-11-10 04:59:11 +0100alzgh(alzgh@user/alzgh) (Ping timeout: 256 seconds)
2021-11-10 05:00:54 +0100justsomeguy(~justsomeg@user/justsomeguy)
2021-11-10 05:04:17 +0100renzhi(~xp@2607:fa49:6500:b100::6e7f) (Ping timeout: 246 seconds)
2021-11-10 05:04:37 +0100alzgh(~alzgh@user/alzgh)
2021-11-10 05:05:35 +0100jinsun(~quassel@user/jinsun) (Read error: Connection reset by peer)
2021-11-10 05:08:26 +0100jlamothe(~jlamothe@198.251.61.229)
2021-11-10 05:11:57 +0100jinsun(~quassel@user/jinsun)
2021-11-10 05:13:20 +0100alzgh(~alzgh@user/alzgh) (Remote host closed the connection)
2021-11-10 05:15:29 +0100yauhsien(~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
2021-11-10 05:19:48 +0100mbuf(~Shakthi@122.174.254.232)
2021-11-10 05:23:24 +0100zincy(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
2021-11-10 05:23:32 +0100falafel(~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 240 seconds)
2021-11-10 05:26:21 +0100retroid_(~retro@2e41e9c8.skybroadband.com) (Ping timeout: 268 seconds)
2021-11-10 05:27:32 +0100zincy(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 240 seconds)
2021-11-10 05:28:26 +0100waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 246 seconds)
2021-11-10 05:29:34 +0100retroid_(~retro@2e41e9c8.skybroadband.com)
2021-11-10 05:30:02 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Quit: ERC (IRC client for Emacs 27.1))
2021-11-10 05:32:24 +0100falafel(~falafel@cpe-76-168-195-162.socal.res.rr.com)
2021-11-10 05:42:16 +0100deadmarshal(~deadmarsh@95.38.114.152)
2021-11-10 05:55:07 +0100v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-11-10 05:58:38 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2021-11-10 06:00:11 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
2021-11-10 06:03:03 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-11-10 06:03:29 +0100zincy(~zincy@host86-181-60-139.range86-181.btcentralplus.com)
2021-11-10 06:07:32 +0100zincy(~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 240 seconds)
2021-11-10 06:09:44 +0100yauhsien(~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-11-10 06:09:45 +0100sprout(~quassel@2a02:a467:ccd6:1:315a:c7df:cdab:4da8)
2021-11-10 06:12:45 +0100yauhsien(~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
2021-11-10 06:13:11 +0100sprout_(~quassel@2a02:a467:ccd6:1:646d:b422:185d:c10e) (Ping timeout: 250 seconds)
2021-11-10 06:15:39 +0100falafel(~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 256 seconds)
2021-11-10 06:21:02 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 240 seconds)
2021-11-10 06:27:08 +0100x_kuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2021-11-10 06:27:38 +0100monochrom(trebla@216.138.220.146) (Quit: NO CARRIER)
2021-11-10 06:30:05 +0100deadmarshal(~deadmarsh@95.38.114.152) (Ping timeout: 250 seconds)
2021-11-10 06:36:11 +0100zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-11-10 06:37:31 +0100zincy(~zincy@host86-181-60-139.range86-181.btcentralplus.com)
2021-11-10 06:42:17 +0100zincy(~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 256 seconds)
2021-11-10 06:43:49 +0100monochrom(trebla@216.138.220.146)
2021-11-10 06:44:06 +0100rkrishnan(~user@122.167.19.65)
2021-11-10 06:45:15 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-10 06:45:23 +0100boxscape_(~boxscape_@mue-88-130-59-079.dsl.tropolys.de)
2021-11-10 06:53:35 +0100slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-11-10 07:01:17 +0100ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 264 seconds)
2021-11-10 07:05:06 +0100emf(~emf@2620:10d:c090:400::5:f986) (Ping timeout: 245 seconds)
2021-11-10 07:06:41 +0100aliosablack(~chomwitt@2a02:587:dc0f:7c00:12c3:7bff:fe6d:d374)
2021-11-10 07:06:53 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-11-10 07:08:49 +0100ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
2021-11-10 07:13:55 +0100CannabisIndica(~herb@user/mesaboogie) (Quit: ZNC - https://znc.in)
2021-11-10 07:14:02 +0100hiruji(~hiruji@user/hiruji) (Ping timeout: 240 seconds)
2021-11-10 07:15:53 +0100ServerStatsDisco(~serversta@2001:470:69fc:105::1a) (Quit: Client limit exceeded: 20000)
2021-11-10 07:17:17 +0100CannabisIndica(~herb@user/mesaboogie)
2021-11-10 07:19:29 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-11-10 07:20:51 +0100mcgroin(~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-11-10 07:24:04 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2021-11-10 07:28:32 +0100zincy(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
2021-11-10 07:33:02 +0100zincy(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 240 seconds)
2021-11-10 07:34:32 +0100hiruji(~hiruji@user/hiruji)
2021-11-10 07:38:07 +0100mcgroin(~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 250 seconds)
2021-11-10 07:39:03 +0100img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2021-11-10 07:44:05 +0100yauhsien(~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-11-10 07:44:39 +0100yauhsien(~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
2021-11-10 07:47:46 +0100img(~img@user/img)
2021-11-10 07:52:34 +0100Sgeo_(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-11-10 07:52:43 +0100Sgeo(~Sgeo@user/sgeo)
2021-11-10 07:59:26 +0100deadmarshal(~deadmarsh@95.38.114.152)
2021-11-10 08:05:06 +0100zincy(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
2021-11-10 08:07:31 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-11-10 08:09:06 +0100yauhsien(~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-11-10 08:09:46 +0100zincy(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 268 seconds)
2021-11-10 08:10:05 +0100sprout_(~quassel@2a02:a467:ccd6:1:3471:ef4b:ebc8:3b49)
2021-11-10 08:13:39 +0100sprout(~quassel@2a02:a467:ccd6:1:315a:c7df:cdab:4da8) (Ping timeout: 250 seconds)
2021-11-10 08:17:33 +0100mcgroin(~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-11-10 08:24:49 +0100noddy(~user@user/noddy)
2021-11-10 08:27:01 +0100mmhat(~mmh@55d4b224.access.ecotel.net)
2021-11-10 08:38:34 +0100mmhat(~mmh@55d4b224.access.ecotel.net) (Quit: WeeChat 3.3)
2021-11-10 08:40:28 +0100zincy(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
2021-11-10 08:43:23 +0100vysn(~vysn@user/vysn)
2021-11-10 08:44:37 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl)
2021-11-10 08:44:47 +0100zincy(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 246 seconds)
2021-11-10 08:45:19 +0100Inst(~Inst@2601:6c4:4080:3f80:75c6:91f1:4f95:975b)
2021-11-10 08:47:31 +0100drdo(~drdo@roach0.drdo.eu) (Quit: Ping timeout (120 seconds))
2021-11-10 08:47:36 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl) (Remote host closed the connection)
2021-11-10 08:47:50 +0100drdo(~drdo@roach0.drdo.eu)
2021-11-10 08:50:17 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl)
2021-11-10 08:51:04 +0100bairyn(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
2021-11-10 08:51:32 +0100ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 240 seconds)
2021-11-10 08:53:06 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:54fc:9972:155c:27b0)
2021-11-10 08:56:44 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl) (Remote host closed the connection)
2021-11-10 08:56:46 +0100Inst(~Inst@2601:6c4:4080:3f80:75c6:91f1:4f95:975b) (Ping timeout: 245 seconds)
2021-11-10 08:57:06 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl)
2021-11-10 08:57:38 +0100markusde(~makrus@2604:3d08:6f80:6b00::9610)
2021-11-10 08:57:51 +0100lavaman(~lavaman@98.38.249.169)
2021-11-10 09:00:54 +0100vshabanov(~vshabanov@85.203.46.25)
2021-11-10 09:02:22 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
2021-11-10 09:10:29 +0100 <markusde> Yo- looking to start contributing to some oss projects. Anyone know of any that are newbie friendly and need help?
2021-11-10 09:10:30 +0100ServerStatsDisco(~serversta@2001:470:69fc:105::1a)
2021-11-10 09:14:09 +0100deadmarshal(~deadmarsh@95.38.114.152) (Ping timeout: 256 seconds)
2021-11-10 09:14:39 +0100hololeap(~hololeap@user/hololeap) (Ping timeout: 276 seconds)
2021-11-10 09:15:53 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-10 09:15:54 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 260 seconds)
2021-11-10 09:20:51 +0100robosexual(~spaceoyst@88.85.216.62)
2021-11-10 09:22:22 +0100 <[exa]> markusde: hard to tell. do you have any specific project you want to improve?
2021-11-10 09:22:30 +0100ubert(~Thunderbi@p200300ecdf4fca6ff42c1e431d1c483e.dip0.t-ipconnect.de)
2021-11-10 09:23:22 +0100 <[exa]> generally, most OSS is friendly and will happily accept PRs that make sense, the usual advice is to do something _you_ are interested in/need to have working
2021-11-10 09:24:43 +0100deadmarshal(~deadmarsh@95.38.114.152)
2021-11-10 09:24:56 +0100 <markusde> exa: ic ic. I'l just troll around github then
2021-11-10 09:25:13 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-11-10 09:25:42 +0100 <[exa]> like, if all OSS works just right for you, there's no reason to code more, right? :]
2021-11-10 09:27:28 +0100ubert(~Thunderbi@p200300ecdf4fca6ff42c1e431d1c483e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2021-11-10 09:27:32 +0100 <markusde> exa: lmao
2021-11-10 09:27:47 +0100 <[exa]> anyway if you just need practice, there's afaik no library for regexes that has a good machine-buildable&representable immediate representation of the regexes... :]
2021-11-10 09:27:49 +0100ubert(~Thunderbi@p548c9652.dip0.t-ipconnect.de)
2021-11-10 09:28:01 +0100 <[exa]> s/representable/analyzable/
2021-11-10 09:31:43 +0100boxscape_(~boxscape_@mue-88-130-59-079.dsl.tropolys.de) (Quit: Connection closed)
2021-11-10 09:34:07 +0100 <tomsmeding> that sounds like something you might personally like [exa] :p
2021-11-10 09:35:19 +0100 <[exa]> yes.
2021-11-10 09:35:54 +0100 <tomsmeding> does it need to be fast? how expressive the regexen?
2021-11-10 09:36:09 +0100 <[exa]> I basically want to build a lexer online
2021-11-10 09:36:40 +0100 <[exa]> so basically taking tiny pieces of regexes, connecting them into a larger DFA, triggering actions when some state gets reached
2021-11-10 09:37:09 +0100 <tomsmeding> online as in online algorithm, not as in web-based?
2021-11-10 09:37:17 +0100xff0x(~xff0x@2001:1a81:53aa:5400:49da:2933:d5c1:bd65) (Ping timeout: 264 seconds)
2021-11-10 09:37:25 +0100 <[exa]> online as "the lexing specification is the input of the user"
2021-11-10 09:37:32 +0100 <tomsmeding> right
2021-11-10 09:37:51 +0100 <tomsmeding> sounds hard to get fast due to the dynamic nature
2021-11-10 09:37:52 +0100michalz(~michalz@185.246.204.33)
2021-11-10 09:37:58 +0100xff0x(~xff0x@2001:1a81:53aa:5400:2665:d30f:dc60:ace5)
2021-11-10 09:38:37 +0100 <[exa]> I might have talked about that here already
2021-11-10 09:38:44 +0100chele(~chele@user/chele)
2021-11-10 09:38:55 +0100kuribas(~user@188.189.234.163)
2021-11-10 09:38:59 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl)
2021-11-10 09:39:50 +0100 <[exa]> basically I want something that can cut programs into labeled whitespace and non-whitespace tokens; the meaning of whitespace depends on context (e.g. in C, ' ' in a string is not a whitespace, and comments tokenize differently than the text around)
2021-11-10 09:40:34 +0100 <[exa]> and well you know, languages are infinite so having the user supply the language spec themselves saves me a lot of stress :D
2021-11-10 09:40:39 +0100 <tomsmeding> for C specifically, the better solution would be to statically write a state machine
2021-11-10 09:40:47 +0100 <tomsmeding> right
2021-11-10 09:41:12 +0100 <tomsmeding> you have indeed talked about this before
2021-11-10 09:41:33 +0100 <[exa]> yap, still no time to actually push it :D
2021-11-10 09:41:44 +0100 <tomsmeding> https://ircbrowse.tomsmeding.com/day/haskell/2020/12/30?id=226295#trid226295
2021-11-10 09:41:51 +0100tomsmedingused search superpowers
2021-11-10 09:42:00 +0100 <tomsmeding> aka SELECT
2021-11-10 09:43:03 +0100 <[exa]> oh what a nice tool, people can just grab random good ideas from #haskell now and start businesses around them. :D
2021-11-10 09:43:10 +0100 <[exa]> ^ wishful thinking
2021-11-10 09:43:12 +0100 <tomsmeding> ircbrowse really needs search
2021-11-10 09:43:32 +0100 <[exa]> throw it into elasticsearch
2021-11-10 09:43:39 +0100 <tomsmeding> no
2021-11-10 09:43:45 +0100 <[exa]> y no
2021-11-10 09:43:48 +0100 <tomsmeding> I already have one annoying to install dep, postgres
2021-11-10 09:43:55 +0100 <tomsmeding> original ircbrowse used sphinx
2021-11-10 09:44:01 +0100 <tomsmeding> haven't bothered to install that yet
2021-11-10 09:44:26 +0100 <tomsmeding> I've done some work to try to eliminate the postgres dep but ended up in the weeds
2021-11-10 09:44:26 +0100 <[exa]> in postgres there are pretty good text search things
2021-11-10 09:44:59 +0100 <tomsmeding> better than LIKE '%regex%' ?
2021-11-10 09:45:16 +0100 <[exa]> yeah, literal fulltext search with inverted indexes
2021-11-10 09:45:23 +0100 <tomsmeding> ö
2021-11-10 09:45:23 +0100 <[exa]> don't even start with LIKE :D
2021-11-10 09:45:55 +0100 <tomsmeding> yeah because LIKE is nice for one-off searching like I just did but is a performance nightmare
2021-11-10 09:46:05 +0100 <[exa]> basically add a table like (postID int, author text, message tsvector, msgcontext tsvector )
2021-11-10 09:46:25 +0100 <[exa]> to context you add a bit of messages from the environs, you can even weight them
2021-11-10 09:47:04 +0100 <[exa]> and then there's some operator (iirc @@) that allows you to efficiently match the table rows using a googlish text query in tsvector
2021-11-10 09:47:09 +0100markusde(~makrus@2604:3d08:6f80:6b00::9610) (Quit: Leaving)
2021-11-10 09:47:27 +0100 <[exa]> unfortunately markusde just left, this would be a nice OSS project.. :D
2021-11-10 09:47:33 +0100 <tomsmeding> :p
2021-11-10 09:47:50 +0100 <tomsmeding> fancy, noting down; currently swamped in work but that may change at some point ever maybe
2021-11-10 09:48:10 +0100gaff(~gaff@49.207.214.48)
2021-11-10 09:48:19 +0100 <[exa]> https://www.postgresql.org/docs/9.5/textsearch-tables.html
2021-11-10 09:48:26 +0100gaff(~gaff@49.207.214.48) (Client Quit)
2021-11-10 09:48:39 +0100zincy(~zincy@host86-181-60-139.range86-181.btcentralplus.com)
2021-11-10 09:48:43 +0100zava(~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de)
2021-11-10 09:48:45 +0100acidjnk_new(~acidjnk@p200300d0c724a7710420fe3aa4fdb454.dip0.t-ipconnect.de)
2021-11-10 09:48:45 +0100 <[exa]> if you're not into details such as correct stemming, it's literally just about adding a few columns
2021-11-10 09:49:03 +0100deadmarshal(~deadmarsh@95.38.114.152) (Ping timeout: 268 seconds)
2021-11-10 09:50:04 +0100kuribas(~user@188.189.234.163) (Read error: Connection reset by peer)
2021-11-10 09:50:06 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-11-10 09:50:13 +0100 <[exa]> postgres = underrated
2021-11-10 09:50:36 +0100 <tomsmeding> that particular point I was already aware of
2021-11-10 09:51:37 +0100kuribas(~user@188.189.234.163)
2021-11-10 09:53:10 +0100gehmehgeh(~user@user/gehmehgeh)
2021-11-10 09:53:14 +0100zincy(~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 260 seconds)
2021-11-10 09:55:10 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-10 09:55:18 +0100kuribas`(~user@188.188.45.223)
2021-11-10 09:55:54 +0100mei3(~mei@user/mei)
2021-11-10 09:56:53 +0100kuribas(~user@188.189.234.163) (Ping timeout: 246 seconds)
2021-11-10 10:00:00 +0100shriekingnoise(~shrieking@186.137.144.80) (Quit: Quit)
2021-11-10 10:02:38 +0100deadmarshal(~deadmarsh@95.38.114.152)
2021-11-10 10:04:49 +0100vshabanov(~vshabanov@85.203.46.25) (Quit: Client closed)
2021-11-10 10:06:20 +0100x6C697370(~michael@2600:1700:7c02:3180::49) (Ping timeout: 246 seconds)
2021-11-10 10:09:26 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-11-10 10:10:35 +0100c_wraith(~c_wraith@adjoint.us) (Ping timeout: 264 seconds)
2021-11-10 10:11:25 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-11-10 10:12:21 +0100cfricke(~cfricke@user/cfricke)
2021-11-10 10:12:35 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Remote host closed the connection)
2021-11-10 10:12:53 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-11-10 10:15:51 +0100deadmarshal(~deadmarsh@95.38.114.152) (Ping timeout: 250 seconds)
2021-11-10 10:17:33 +0100allbery_b(~geekosaur@xmonad/geekosaur)
2021-11-10 10:17:33 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-11-10 10:17:36 +0100allbery_bgeekosaur
2021-11-10 10:17:46 +0100kuribas`(~user@188.188.45.223) (Quit: ERC (IRC client for Emacs 26.3))
2021-11-10 10:24:05 +0100zincy(~zincy@host86-181-60-139.range86-181.btcentralplus.com)
2021-11-10 10:27:31 +0100Profpatsch(~Profpatsc@static.88-198-193-255.clients.your-server.de)
2021-11-10 10:28:48 +0100 <Profpatsch> I’m trying to fullfill the requirements for https://hackage.haskell.org/package/servant-conduit-0.15.1/docs/Servant-Conduit.html#t:ConduitToSo… in my Monad m
2021-11-10 10:28:53 +0100zincy(~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 264 seconds)
2021-11-10 10:28:57 +0100CiaoSen(~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2021-11-10 10:29:03 +0100 <Profpatsch> Namely m ~ IO => ConduitToSourceIO (ResourceT m)
2021-11-10 10:29:10 +0100 <tomsmeding> [exa]: would something like this work for your purpose, or am I misunderstanding? https://paste.tomsmeding.com/Hx3MUFXv (not saying I'm going to build this any time soon, was just procrastinating)
2021-11-10 10:29:13 +0100 <Profpatsch> My m is in (MonadIO m)
2021-11-10 10:29:21 +0100 <Profpatsch> Can I somehow make the m ~ IO work for it?
2021-11-10 10:29:31 +0100 <Profpatsch> Maybe with some fancy lifting?
2021-11-10 10:29:48 +0100 <tomsmeding> Profpatsch: no, you'll never get m ~ IO from just MonadIO m
2021-11-10 10:29:56 +0100 <Profpatsch> I would say I’m a pretty good Haskeller, but monad-transformer shenanigans always make me cry very hard
2021-11-10 10:30:26 +0100 <tomsmeding> usually when people require hard IO instead of just MonadIO, they do some fancy exception handling where they can't tolerate other, unknown monads getting in the way
2021-11-10 10:30:29 +0100 <Profpatsch> tomsmeding: I don’t know how this is supposed to work then; Do I have to just propagate (MonadResource m) out of my function?
2021-11-10 10:30:41 +0100 <dminuoso> Profpatsch: this is why I generally follow the RIO pattern (without actually using RIO)
2021-11-10 10:30:49 +0100 <dminuoso> So I can always unlift back to IO
2021-11-10 10:30:53 +0100 <Profpatsch> I had an error where it hard-required (MonadResource IO)
2021-11-10 10:31:06 +0100 <Profpatsch> But that might have been a type sig that was too specific
2021-11-10 10:31:13 +0100 <tomsmeding> where did that constraint come from?
2021-11-10 10:31:16 +0100 <tomsmeding> not from this class
2021-11-10 10:31:37 +0100 <dminuoso> 10:29:48 tomsmeding | Profpatsch: no, you'll never get m ~ IO from just MonadIO m
2021-11-10 10:31:48 +0100 <dminuoso> I think I must misunderstand what you're saying here, tomsmeding.
2021-11-10 10:32:02 +0100 <dminuoso> If something is polymorphic over m with a MonadIO m constraint, surely I can simply pick m ~ IO?
2021-11-10 10:32:11 +0100andjjj23(~irc@107.170.228.47) (Ping timeout: 264 seconds)
2021-11-10 10:32:14 +0100 <tomsmeding> if you have control over the choice of m, yes
2021-11-10 10:32:16 +0100 <Profpatsch> tomsmeding: That’s usually my question, where do contraints come from :) GHC is really bad at telling you without a lot of poking
2021-11-10 10:32:24 +0100 <tomsmeding> if you don't and only know that MonadIO m holds, then tough luck
2021-11-10 10:32:35 +0100 <dminuoso> Profpatsch: Type error slices would be really wonderful to have.
2021-11-10 10:32:36 +0100mmaruseacph2(~mihai@198.199.100.72) (Ping timeout: 245 seconds)
2021-11-10 10:32:46 +0100 <tomsmeding> classic caller/consumer duality :)
2021-11-10 10:33:07 +0100 <dminuoso> Imagine if GHC could generate type error slices, transport these via LSP and have a specialized visualization in haskell-lsp in emacs.
2021-11-10 10:33:19 +0100 <dminuoso> Perhaps with some ergonomics to chase/follow inference
2021-11-10 10:33:42 +0100 <Profpatsch> tomsmeding: So basically I want to return a (MonadIO m, MonadError ServantError m) => m (SourceIO returnType) from my servant handler, so that it can stream the result
2021-11-10 10:33:45 +0100 <tomsmeding> gut feeling says Helium should have some of the required machinery for such a thing (not necessarily all)
2021-11-10 10:33:59 +0100 <Profpatsch> But unfortunately Servant documentation is horrible, so I’m dumbfounded at how to do that when it requires a hard IO
2021-11-10 10:34:04 +0100mmhat(~mmh@55d4b224.access.ecotel.net)
2021-11-10 10:34:28 +0100 <Profpatsch> My intuition is that in order to do correct resource handling, I have to pass the ResourceT in somehow
2021-11-10 10:34:32 +0100 <tomsmeding> SourceIO itself is already a monad
2021-11-10 10:35:05 +0100 <tomsmeding> are you sure (I don't know either, just guessing) that you don't want something like 'SourceT m returnType' instead?
2021-11-10 10:35:18 +0100 <Profpatsch> tomsmeding: Ohhh, hmmm
2021-11-10 10:35:20 +0100 <Profpatsch> let me try
2021-11-10 10:36:45 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Remote host closed the connection)
2021-11-10 10:36:51 +0100 <Profpatsch> I’m very close to throwing out all of servant and starting over with a good web framework tbh
2021-11-10 10:37:24 +0100 <Profpatsch> tomsmeding: I don’t think it’s so easily possible, the documentation in https://hackage.haskell.org/package/servant-0.18/docs/Servant-API.html#t:SourceIO says
2021-11-10 10:37:30 +0100 <Profpatsch> > Stream endpoints may be implemented as producing a SourceIO chunk.
2021-11-10 10:37:32 +0100 <lambdabot> <hint>:1:67: error:
2021-11-10 10:37:32 +0100 <lambdabot> parse error (possibly incorrect indentation or mismatched brackets)
2021-11-10 10:37:37 +0100zincy(~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684)
2021-11-10 10:37:41 +0100 <tomsmeding> poor lambdabot
2021-11-10 10:37:56 +0100 <tomsmeding> but yeah I don't know either :p
2021-11-10 10:38:04 +0100 <Profpatsch> who uses a blockquote character for eval anyway :)
2021-11-10 10:38:12 +0100 <tomsmeding> just saying that 'm (SourceIO r)' looks weird to me if SourceIO is already a monad
2021-11-10 10:38:22 +0100 <Profpatsch> yeah, same
2021-11-10 10:38:29 +0100 <tomsmeding> not impossible, just weird
2021-11-10 10:38:31 +0100 <Profpatsch> But the type is kinda forced by the Servant typelevel bullshit
2021-11-10 10:38:52 +0100 <zincy> How best would you "go back in time" for a hashmap. I was thinking [(UtcTime Map]) is there something better?
2021-11-10 10:38:54 +0100 <Profpatsch> Plus the bad decision to try and abstract over pipe libraries instead of just requiring one pipe lib
2021-11-10 10:38:57 +0100 <zincy> tuple that is
2021-11-10 10:39:03 +0100 <dminuoso> zincy: What does "go back in time" mean?
2021-11-10 10:39:17 +0100 <dminuoso> And what is `UtcTime Map` supposed to denote?
2021-11-10 10:39:21 +0100 <zincy> Have a record of changes associated to timestamps
2021-11-10 10:39:32 +0100 <zincy> So going back in time would mean iteration
2021-11-10 10:39:50 +0100 <dminuoso> Without knowing way more context, this is going to be difficult to answer.
2021-11-10 10:40:37 +0100jzsinatra(~jzsinatra@88-114-238-31.elisa-laajakaista.fi)
2021-11-10 10:40:50 +0100 <zincy> Say you have a todo list represented by newtype TodoList = TodoList (Map TodoId Todo)
2021-11-10 10:41:17 +0100 <zincy> I can do CRUD on my todo list which is simple.
2021-11-10 10:41:27 +0100 <dminuoso> zincy: First question is, do you just want to maintain a linear history, or some tree history?
2021-11-10 10:41:36 +0100 <zincy> Ooh good question
2021-11-10 10:41:54 +0100 <zincy> Tree history sounds fun
2021-11-10 10:42:50 +0100 <tomsmeding> tree history is only relevant if you want to undo, then apply changes again, then undo once more and go back into your original branch
2021-11-10 10:43:12 +0100 <dminuoso> Side note, tree-mode in emacs is absolutely amazing.
2021-11-10 10:43:22 +0100 <tomsmeding> tree undo in text editors is amazing
2021-11-10 10:43:23 +0100 <dminuoso> Linear history for a code editor is frustratingly limiting
2021-11-10 10:43:31 +0100 <tomsmeding> in a todo app it feels quite overpowered :p
2021-11-10 10:43:38 +0100fluxit(~fluxit@techsmix.net) (Quit: Bye!)
2021-11-10 10:43:39 +0100 <dminuoso> Yes, no, perhaps.
2021-11-10 10:44:06 +0100 <dminuoso> tomsmeding: What can I say, tree-mode + org-mode gives me *both*
2021-11-10 10:44:16 +0100 <dminuoso> sorry *tree undo + org-mode
2021-11-10 10:44:27 +0100 <tomsmeding> tree-org
2021-11-10 10:45:06 +0100 <dminuoso> Btw, I recently did the mistake of looking at the.. original "specification" of markdown
2021-11-10 10:45:11 +0100 <dminuoso> Wow, what a huge mistake.
2021-11-10 10:45:34 +0100 <dminuoso> I assumed to find some document with a formal bnf grammar and some clean semantics.
2021-11-10 10:45:45 +0100 <tomsmeding> you assumed wrong
2021-11-10 10:45:53 +0100 <dminuoso> Heh yeah.
2021-11-10 10:45:57 +0100 <tomsmeding> wasn't it a perl script
2021-11-10 10:46:09 +0100 <yushyin> markdown is just a bad format through and through
2021-11-10 10:46:14 +0100 <tomsmeding> like, originally
2021-11-10 10:46:29 +0100 <dminuoso> It doesnt even have semantics, it just presents a bunch of *examples* and then shows how it renders. I managed to trigger a dozen undesirable side effects in the reference implementation
2021-11-10 10:46:31 +0100 <tomsmeding> markdown is an amazing format because it works for a lot of people in a lot of contexts
2021-11-10 10:46:33 +0100deadmarshal(~deadmarsh@95.38.114.152)
2021-11-10 10:46:35 +0100 <dminuoso> yushyin: Its not even a format.
2021-11-10 10:46:36 +0100 <tomsmeding> the lack of standardisation is annoying though
2021-11-10 10:46:38 +0100 <dminuoso> It's just.. something.
2021-11-10 10:47:03 +0100 <dminuoso> The reference implementation is just some quickly written adhoc nonsense that misbehaves in so many bizarre ways
2021-11-10 10:47:13 +0100 <dminuoso> It's not even wrong.
2021-11-10 10:47:16 +0100 <tomsmeding> I format my personal notes in markdown even if I'm not actually pulling it through a renderer
2021-11-10 10:47:38 +0100yahb(xsbot@user/mniip/bot/yahb) (Ping timeout: 268 seconds)
2021-11-10 10:47:42 +0100 <tomsmeding> and the non-definedness of the format makes that possible :D
2021-11-10 10:48:03 +0100yauhsien(~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
2021-11-10 10:48:05 +0100 <zincy> Oh thanks I will try tree mode in emacs!
2021-11-10 10:48:08 +0100 <Profpatsch> Oh god there is an example https://github.com/haskell-servant/servant/blob/master/servant-conduit/example/Main.hs
2021-11-10 10:48:14 +0100 <Profpatsch> Why isn’t this mentioned anywhere in the docs
2021-11-10 10:48:16 +0100 <dminuoso> zincy: https://www.emacswiki.org/emacs/UndoTree
2021-11-10 10:48:22 +0100 <Profpatsch> why isn’t it *in* the docs
2021-11-10 10:48:34 +0100 <zincy> Yeah lets go for linear history
2021-11-10 10:48:34 +0100 <dminuoso> It's really amazing. :)
2021-11-10 10:48:37 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2021-11-10 10:48:37 +0100 <tomsmeding> but yeah </trolling>, the ill-definedness is annoying and I'm consistently annoyed by the indentation requirements for lists as well
2021-11-10 10:48:40 +0100 <zincy> Its a todo app :D
2021-11-10 10:49:17 +0100 <dminuoso> zincy: As a starter you can simply maintain some [TodoList]
2021-11-10 10:49:29 +0100 <dminuoso> And each modification just prepends a new TodoList to that.
2021-11-10 10:49:42 +0100 <zincy> Thanks!
2021-11-10 10:49:54 +0100 <dminuoso> The main difficulty will consist in keeping enough state around to bring your editor into a sensible state when you go back
2021-11-10 10:50:01 +0100 <dminuoso> that is if you undo or redo
2021-11-10 10:50:15 +0100 <zincy> yeah
2021-11-10 10:53:49 +0100yahb(xsbot@user/mniip/bot/yahb)
2021-11-10 10:56:45 +0100 <Profpatsch> tomsmeding: even the example just has all handlers in IO
2021-11-10 10:57:14 +0100 <Profpatsch> So idk how to do any of that. I can’t add it to my servant routes that way
2021-11-10 10:57:34 +0100 <Profpatsch> Maybe I can implement an orphan instance that is in MonadIO somehow
2021-11-10 10:57:43 +0100 <Profpatsch> Or I have to do MonadUnliftIO stuff
2021-11-10 10:59:14 +0100 <int-e> does this count as a todo app? https://paste.debian.net/1218951/
2021-11-10 11:00:55 +0100 <zincy> int-e: haha
2021-11-10 11:01:08 +0100 <zincy> Todo lists all the way down
2021-11-10 11:01:51 +0100zava(~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) (Quit: WeeChat 3.3)
2021-11-10 11:04:00 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-11-10 11:06:53 +0100hololeap(~hololeap@user/hololeap)
2021-11-10 11:07:11 +0100eruditass(uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-10 11:09:12 +0100pop3(~pop3@user/pop3) (Remote host closed the connection)
2021-11-10 11:10:43 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-11-10 11:11:02 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-11-10 11:11:12 +0100 <Profpatsch> tomsmeding: Uh, when I try to create an orphan instacnce instance MonadIO m => Servant.Conduit.ConduitToSourceIO (ResourceT m) where
2021-11-10 11:11:23 +0100 <Profpatsch> GHC complains that it already exists, and points to the m ~ IO => instance
2021-11-10 11:11:33 +0100c_wraith(~c_wraith@adjoint.us)
2021-11-10 11:11:44 +0100 <tomsmeding> yeah, that instance is basically saying that you can't do what you want
2021-11-10 11:12:26 +0100 <tomsmeding> writing 'instance m ~ X => Class m where' means that whenever GHC sees "Class m", it's going to use this instance, and then discover that m ~ X
2021-11-10 11:12:47 +0100 <tomsmeding> as opposed to 'instance Class X where', where the instance only gets chosen if it is already known that m ~ X
2021-11-10 11:13:09 +0100 <Profpatsch> hrm
2021-11-10 11:13:13 +0100fluxit(~fluxit@techsmix.net)
2021-11-10 11:13:20 +0100tomsmedingknows nothing about servant
2021-11-10 11:13:26 +0100mmaruseacph2(~mihai@198.199.100.72)
2021-11-10 11:13:36 +0100 <Profpatsch> I assume it has something to do with how ResourceT wants to free resources?
2021-11-10 11:13:56 +0100 <Profpatsch> But I don’t understand why I can’t put a ResourceT in my m and then have it handle it for me
2021-11-10 11:13:59 +0100 <tomsmeding> yeah finalizers are fundamentally incompatible with arbitrary monad transformers
2021-11-10 11:14:13 +0100 <tomsmeding> like, what if the user layers an except monad on top? then finalizers might never get run
2021-11-10 11:14:41 +0100 <tomsmeding> or hm, this depends on in which order you compose the transformers exactly
2021-11-10 11:15:34 +0100 <tomsmeding> I don't know :D
2021-11-10 11:15:38 +0100 <Profpatsch> tomsmeding: But ResourceT in particular is in MonadUnliftIO http://localhost:9090/file/nix/store/1an4ayakan989gr05h0qf65w3zzs4q61-conduit-1.3.4.1-doc/share/do…
2021-11-10 11:15:47 +0100 <Profpatsch> So that points to it maybe being possible just not done yet?
2021-11-10 11:15:58 +0100 <Profpatsch> Now if there were only comments somewhere that described the restriction
2021-11-10 11:16:18 +0100 <Profpatsch> I feel like this is all accidental complexity
2021-11-10 11:18:07 +0100 <[exa]> tomsmeding: I got caught in the meeting but yes, that's it
2021-11-10 11:18:17 +0100 <merijn> tomsmeding: ResourceT works by forcing everything into, effectively, a giant "with" bracket
2021-11-10 11:19:09 +0100 <[exa]> tomsmeding: on top of that something like `Map LexState [(regexlike, LexState)]` for making actual DFA out of that
2021-11-10 11:20:08 +0100hololeap(~hololeap@user/hololeap) (Remote host closed the connection)
2021-11-10 11:20:20 +0100nschoe(~quassel@2a01:e0a:8e:a190:5cf1:3cc3:9b0b:354b)
2021-11-10 11:21:51 +0100hololeap(~hololeap@user/hololeap)
2021-11-10 11:24:47 +0100mc47(~mc47@xmonad/TheMC47)
2021-11-10 11:25:56 +0100__monty__(~toonn@user/toonn)
2021-11-10 11:29:07 +0100yauhsien(~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-11-10 11:31:11 +0100andjjj23(~irc@107.170.228.47)
2021-11-10 11:32:31 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-10 11:33:02 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 240 seconds)
2021-11-10 11:34:25 +0100 <[exa]> tomsmeding: anyway, if this is slow then at very worst I can literally compile it to flex using this representation. :D
2021-11-10 11:34:49 +0100yauhsien(~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
2021-11-10 11:37:16 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816)
2021-11-10 11:39:47 +0100yauhsien(~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-11-10 11:41:32 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Ping timeout: 246 seconds)
2021-11-10 11:42:37 +0100bairyn(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 256 seconds)
2021-11-10 11:44:58 +0100ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
2021-11-10 11:58:13 +0100DNH(~DNH@2a09:bac0:48::82b:7a35)
2021-11-10 11:59:26 +0100mei3(~mei@user/mei) (Read error: Connection reset by peer)
2021-11-10 12:00:21 +0100kadir(~kadir@78.178.105.36)
2021-11-10 12:00:52 +0100alx741(~alx741@181.196.68.101)
2021-11-10 12:07:13 +0100mrmonday(~robert@what.i.hope.is.not.a.tabernaevagant.es) (Quit: No Ping reply in 180 seconds.)
2021-11-10 12:08:34 +0100mrmonday(~robert@what.i.hope.is.not.a.tabernaevagant.es)
2021-11-10 12:16:17 +0100yauhsien(~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
2021-11-10 12:20:39 +0100yauhsien(~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 250 seconds)
2021-11-10 12:24:07 +0100zincy_(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
2021-11-10 12:27:23 +0100Neuromancer(~Neuromanc@user/neuromancer)
2021-11-10 12:28:53 +0100zincy_(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 264 seconds)
2021-11-10 12:34:24 +0100mbuf(~Shakthi@122.174.254.232) (Leaving)
2021-11-10 12:36:02 +0100CiaoSen(~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2021-11-10 12:40:45 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-11-10 12:41:46 +0100 <mcgroin> can we use coerce on a function and turn it into another function accepting the coerced parameters?
2021-11-10 12:44:58 +0100 <amesgen[m]> mcgroin: Yes, thats e.g. how deriving via is implemented.
2021-11-10 12:45:00 +0100 <merijn> mcgroin: Yes
2021-11-10 12:45:29 +0100shriekingnoise(~shrieking@186.137.144.80)
2021-11-10 12:45:54 +0100 <mcgroin> great
2021-11-10 12:46:13 +0100 <tomsmeding> [exa]: ah so you actually want Automaton to be non-opaque
2021-11-10 12:46:33 +0100 <tomsmeding> (sorry meetings)
2021-11-10 12:51:47 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2021-11-10 12:56:36 +0100jmorris(uid433911@id-433911.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-10 12:57:46 +0100DNH(~DNH@2a09:bac0:48::82b:7a35) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-11-10 12:58:24 +0100bliminse(~bliminse@host86-185-253-43.range86-185.btcentralplus.com) (Quit: leaving)
2021-11-10 12:59:39 +0100lavaman(~lavaman@98.38.249.169)
2021-11-10 12:59:54 +0100deadmarshal(~deadmarsh@95.38.114.152) (Ping timeout: 260 seconds)
2021-11-10 13:01:11 +0100hololeap(~hololeap@user/hololeap) (Read error: Connection reset by peer)
2021-11-10 13:02:41 +0100hololeap(~hololeap@user/hololeap)
2021-11-10 13:03:45 +0100deadmarshal(~deadmarsh@95.38.114.152)
2021-11-10 13:04:02 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
2021-11-10 13:08:33 +0100bliminse(~bliminse@host86-185-253-43.range86-185.btcentralplus.com)
2021-11-10 13:22:12 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-11-10 13:25:01 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl)
2021-11-10 13:25:46 +0100 <maerwald> is there a solution to use `cabal build`, but then install binaries and libraries in a way that makes it work (if `-dynamic` is used)?
2021-11-10 13:30:25 +0100gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2021-11-10 13:31:40 +0100Cajun(~Cajun@user/cajun) (Quit: Client closed)
2021-11-10 13:31:46 +0100gehmehgeh(~user@user/gehmehgeh)
2021-11-10 13:31:56 +0100neurocyte0132889(~neurocyte@94.46.71.199)
2021-11-10 13:31:56 +0100neurocyte0132889(~neurocyte@94.46.71.199) (Changing host)
2021-11-10 13:31:56 +0100neurocyte0132889(~neurocyte@user/neurocyte)
2021-11-10 13:32:19 +0100jmorris(uid433911@id-433911.hampstead.irccloud.com)
2021-11-10 13:35:48 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2021-11-10 13:36:18 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-11-10 13:39:51 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816)
2021-11-10 13:40:44 +0100awpr(uid446117@id-446117.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-10 13:43:10 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-11-10 13:44:02 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Ping timeout: 240 seconds)
2021-11-10 13:45:01 +0100machinedgod(~machinedg@24.105.81.50)
2021-11-10 13:47:53 +0100deadmarshal(~deadmarsh@95.38.114.152) (Ping timeout: 246 seconds)
2021-11-10 13:50:04 +0100neurocyte0132889(~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
2021-11-10 13:50:53 +0100gehmehgeh_(~user@user/gehmehgeh)
2021-11-10 13:53:47 +0100mark__(~a@p200300ef973db1e34086f0a6a24fc4dd.dip0.t-ipconnect.de)
2021-11-10 13:54:22 +0100neurocyte0132889(~neurocyte@94.46.71.199)
2021-11-10 13:54:22 +0100neurocyte0132889(~neurocyte@94.46.71.199) (Changing host)
2021-11-10 13:54:22 +0100neurocyte0132889(~neurocyte@user/neurocyte)
2021-11-10 13:54:48 +0100gehmehgeh(~user@user/gehmehgeh) (Ping timeout: 276 seconds)
2021-11-10 13:59:08 +0100v01d4lph4(~v01d4lph4@user/v01d4lph4) (Remote host closed the connection)
2021-11-10 13:59:11 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
2021-11-10 13:59:25 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 268 seconds)
2021-11-10 13:59:33 +0100deadmarshal(~deadmarsh@95.38.114.152)
2021-11-10 14:00:01 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-11-10 14:02:14 +0100max22-(~maxime@2a01cb0883359800c49e7f6f9540e9e4.ipv6.abo.wanadoo.fr) (Ping timeout: 246 seconds)
2021-11-10 14:02:34 +0100ubert1(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233)
2021-11-10 14:03:38 +0100DNH(~DNH@8.43.122.53)
2021-11-10 14:08:02 +0100v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-11-10 14:08:58 +0100boxscape_(~boxscape_@134.171.69.87)
2021-11-10 14:11:29 +0100 <boxscape_> gratuitous syntax extension idea #27: Use !<class> to introduce a new variable whose type must be an instance of that class. e.g. `5 :: !Num` or `pure :: a -> !Applicative a`
2021-11-10 14:13:53 +0100CiaoSen(~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2021-11-10 14:15:17 +0100 <robosexual> so it's basically `anonymous` constrained type variables. since `pure :: a -> !Applicative a` <=> `pure :: Applicative _f => a -> _f a` where `_f` can be reffered only once
2021-11-10 14:15:38 +0100 <boxscape_> right
2021-11-10 14:16:15 +0100 <robosexual> might make some stuff a bit more readable for sure
2021-11-10 14:18:42 +0100 <robosexual> there is a lot of functiouns with signature as such `some :: (Monad m) => A -> B -> m C` which could be just `some :: A -> B -> !Monad C`
2021-11-10 14:19:03 +0100 <boxscape_> yeah
2021-11-10 14:19:24 +0100 <robosexual> nice:)
2021-11-10 14:19:44 +0100 <boxscape_> alas, probably not actually worth an extension
2021-11-10 14:21:44 +0100 <robosexual> ideas shall be spoken:)
2021-11-10 14:22:20 +0100v01d4lph4(~v01d4lph4@user/v01d4lph4) (Remote host closed the connection)
2021-11-10 14:22:25 +0100deadmarshal(~deadmarsh@95.38.114.152) (Ping timeout: 256 seconds)
2021-11-10 14:23:13 +0100zincy_(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
2021-11-10 14:23:26 +0100MidAutumnMoon(~MidAutumn@user/midautumnmoon) (Ping timeout: 260 seconds)
2021-11-10 14:24:21 +0100deadmarshal(~deadmarsh@95.38.114.152)
2021-11-10 14:24:55 +0100MidAutumnMoon(~MidAutumn@user/midautumnmoon)
2021-11-10 14:27:36 +0100zincy_(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 245 seconds)
2021-11-10 14:31:51 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2021-11-10 14:31:52 +0100chele_(~chele@user/chele)
2021-11-10 14:33:45 +0100chele(~chele@user/chele) (Ping timeout: 256 seconds)
2021-11-10 14:44:35 +0100aliosablack(~chomwitt@2a02:587:dc0f:7c00:12c3:7bff:fe6d:d374) (Ping timeout: 246 seconds)
2021-11-10 14:44:39 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-11-10 14:45:37 +0100chomwitt(~chomwitt@2a02:587:dc0f:7c00:12c3:7bff:fe6d:d374)
2021-11-10 14:47:03 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2021-11-10 14:47:42 +0100deadmarshal(~deadmarsh@95.38.114.152) (Ping timeout: 260 seconds)
2021-11-10 14:47:59 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-11-10 14:52:55 +0100v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-11-10 14:55:11 +0100yauhsien(~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
2021-11-10 14:55:25 +0100servytor(uid525486@id-525486.hampstead.irccloud.com)
2021-11-10 14:55:31 +0100vysn(~vysn@user/vysn) (Ping timeout: 245 seconds)
2021-11-10 14:56:10 +0100motherfsck(~motherfsc@user/motherfsck)
2021-11-10 14:57:32 +0100v01d4lph4(~v01d4lph4@user/v01d4lph4) (Ping timeout: 240 seconds)
2021-11-10 14:59:49 +0100yauhsien(~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-11-10 15:01:02 +0100rkrishnan(~user@122.167.19.65) (Ping timeout: 240 seconds)
2021-11-10 15:01:25 +0100justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
2021-11-10 15:04:41 +0100 <adamCS> My hls setup (emacs, mac os) often tries to make such a long and not-useful completion list that it gets in the way much more than it helps. Anyone know how to configure anything about that or where to look to figure it out? I haven't found a lot of documentation of the options I can configure.
2021-11-10 15:08:32 +0100ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 240 seconds)
2021-11-10 15:12:57 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2021-11-10 15:13:25 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2021-11-10 15:13:29 +0100zincy_(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
2021-11-10 15:14:26 +0100ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
2021-11-10 15:18:07 +0100justCityjustache
2021-11-10 15:18:21 +0100zincy_(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 268 seconds)
2021-11-10 15:19:14 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-11-10 15:22:18 +0100tomku|twotomku
2021-11-10 15:29:31 +0100v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-11-10 15:33:32 +0100v01d4lph4(~v01d4lph4@user/v01d4lph4) (Ping timeout: 240 seconds)
2021-11-10 15:35:24 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl)
2021-11-10 15:39:13 +0100 <cigsender> adamCS: you might get a faster reply on #haskell-language-server :)
2021-11-10 15:39:41 +0100 <adamCS> cigsender: yep. I'll try that...Thanks!
2021-11-10 15:39:45 +0100 <tomsmeding> adamCS: what editor?
2021-11-10 15:40:19 +0100 <tomsmeding> there have been result ordering issues with HLS, that have been fixed with a PR _today_, so not in any released version yet -- but whether you're hit by this depends on your editor
2021-11-10 15:40:47 +0100 <geekosaur> "My hls setup (emacs, mac os)"
2021-11-10 15:40:54 +0100 <adamCS> tomsmeding: emacs. I think my issue might be company rather than hls?
2021-11-10 15:41:20 +0100 <tomsmeding> adamCS: see https://github.com/haskell/haskell-language-server/issues/2291#issuecomment-949477646 and https://github.com/haskell/haskell-language-server/issues/2291
2021-11-10 15:41:31 +0100 <tomsmeding> is it possible that the problem is simply result _ordering_? If so, probably this
2021-11-10 15:41:48 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816)
2021-11-10 15:42:37 +0100 <adamCS> I'm trying to simplify the company setup. Half the problem was having number completions on and a bunch of my variables have numbers in the names and so things often went...haywire. But also, emacs would hang when gathering the list (I think) and then the list wouldn't make sense. That last bit might be ordering.
2021-11-10 15:45:56 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Ping timeout: 245 seconds)
2021-11-10 15:46:12 +0100nschoe(~quassel@2a01:e0a:8e:a190:5cf1:3cc3:9b0b:354b) (Remote host closed the connection)
2021-11-10 15:47:24 +0100nschoe(~quassel@2a01:e0a:8e:a190:b8f5:7f5:bf66:e7c)
2021-11-10 15:47:35 +0100gentauro_(~gentauro@185.107.12.141) (Changing host)
2021-11-10 15:47:35 +0100gentauro_(~gentauro@user/gentauro)
2021-11-10 15:47:53 +0100max22-(~maxime@2a01cb0883359800a8cb049c70e9b71a.ipv6.abo.wanadoo.fr)
2021-11-10 15:48:31 +0100gentauro_(~gentauro@user/gentauro) (Quit: leaving)
2021-11-10 15:48:45 +0100gentauro(~gentauro@user/gentauro)
2021-11-10 15:48:47 +0100jkaye(~jkaye@2601:281:8300:7530:212b:79de:3c7b:f9e0)
2021-11-10 15:49:17 +0100bontaq(~user@ool-45779fe5.dyn.optonline.net)
2021-11-10 15:50:02 +0100mark__(~a@p200300ef973db1e34086f0a6a24fc4dd.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2021-11-10 15:50:23 +0100xkuru(~xkuru@user/xkuru)
2021-11-10 15:52:29 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-11-10 15:53:43 +0100deadmarshal(~deadmarsh@95.38.114.152)
2021-11-10 15:54:49 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-11-10 15:54:49 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-11-10 15:54:49 +0100wroathe(~wroathe@user/wroathe)
2021-11-10 15:56:04 +0100dyeplexer(~dyeplexer@user/dyeplexer)
2021-11-10 15:59:27 +0100slowButPresent(~slowButPr@user/slowbutpresent)
2021-11-10 16:00:47 +0100adamCS(~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com) (Ping timeout: 250 seconds)
2021-11-10 16:01:10 +0100alzgh(~alzgh@user/alzgh)
2021-11-10 16:02:41 +0100gehmehgeh_(~user@user/gehmehgeh) (Remote host closed the connection)
2021-11-10 16:02:47 +0100zincy_(~zincy@host86-181-60-139.range86-181.btcentralplus.com)
2021-11-10 16:03:25 +0100gehmehgeh_(~user@user/gehmehgeh)
2021-11-10 16:04:41 +0100deadmarshal(~deadmarsh@95.38.114.152) (Ping timeout: 250 seconds)
2021-11-10 16:05:24 +0100k`(~user@152.1.137.158)
2021-11-10 16:05:33 +0100adamCS(~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com)
2021-11-10 16:06:09 +0100v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-11-10 16:06:23 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 264 seconds)
2021-11-10 16:06:54 +0100mark__(~a@p200300ef973db1dc4086f0a6a24fc4dd.dip0.t-ipconnect.de)
2021-11-10 16:07:22 +0100timCF(~timCF@200-149-20-81.sta.estpak.ee)
2021-11-10 16:07:35 +0100zincy_(~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 264 seconds)
2021-11-10 16:07:52 +0100 <k`> Is there a way to use associated type families with functional dependencies? Like `class Foo a b | (Bar a) -> b where type Bar a` ?
2021-11-10 16:08:32 +0100dyeplexer(~dyeplexer@user/dyeplexer) (Ping timeout: 240 seconds)
2021-11-10 16:08:49 +0100 <geekosaur> have you tried it?
2021-11-10 16:10:35 +0100v01d4lph4(~v01d4lph4@user/v01d4lph4) (Ping timeout: 264 seconds)
2021-11-10 16:12:47 +0100 <timCF> Hello! Is there the way to declare somehow system library dependencies in package.yaml file?
2021-11-10 16:14:11 +0100 <boxscape_> k` hmmm I'm not sure if that has the inference advantages you're likely looking for but maybe something like `class (c ~ Bar a) => Foo a b c | c -> b where type Bar a` could work
2021-11-10 16:15:39 +0100 <geekosaur> timCF, why are you still using package.yaml? even the stack folks have gone back to cabal files, because package.yaml is so limited
2021-11-10 16:16:31 +0100 <timCF> geekosaur: I didn't know this :) But is it possible to do the same thing in cabal file?
2021-11-10 16:16:49 +0100 <geekosaur> at least two ways to do it in the cabal file
2021-11-10 16:17:46 +0100 <timCF> geekosaur: and how?
2021-11-10 16:18:26 +0100[Kalisto]_(~nico@user/kalisto/x-8968079)
2021-11-10 16:18:33 +0100[Kalisto](~nico@user/kalisto/x-8968079) (Ping timeout: 250 seconds)
2021-11-10 16:18:38 +0100 <geekosaur> pkgconfig-depends and extra-libraries
2021-11-10 16:18:46 +0100 <geekosaur> had to doublecheck the names, sorry
2021-11-10 16:19:18 +0100 <geekosaur> pkgconfig-depends is used when the library has a pkg-config specification (*.pc file), otherwise extra-libraries is used
2021-11-10 16:19:22 +0100Andrew_(~andrew@user/andrewyu)
2021-11-10 16:19:29 +0100 <timCF> geekosaur: thanks a lot, I'll check corresponding docs!
2021-11-10 16:19:32 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 240 seconds)
2021-11-10 16:20:15 +0100AndrewYu(~andrew@user/andrewyu) (Read error: Connection reset by peer)
2021-11-10 16:21:04 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-10 16:21:16 +0100dyeplexer(~dyeplexer@user/dyeplexer)
2021-11-10 16:21:42 +0100justsomeguy(~justsomeg@user/justsomeguy)
2021-11-10 16:22:34 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-11-10 16:22:34 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-11-10 16:22:34 +0100wroathe(~wroathe@user/wroathe)
2021-11-10 16:23:07 +0100v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-11-10 16:23:14 +0100v01d4lph4(~v01d4lph4@user/v01d4lph4) (Read error: Connection reset by peer)
2021-11-10 16:23:24 +0100 <maerwald> you can also use a custom Setup.hs
2021-11-10 16:23:47 +0100p_____(~dyeplexer@user/dyeplexer)
2021-11-10 16:23:54 +0100 <maerwald> e.g. https://github.com/llvm-hs/llvm-hs/blob/llvm-12/llvm-hs/Setup.hs
2021-11-10 16:24:21 +0100 <geekosaur> but the cabal folks don't like custom Setup.hs
2021-11-10 16:24:23 +0100p_____(~dyeplexer@user/dyeplexer) (Remote host closed the connection)
2021-11-10 16:24:47 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-11-10 16:25:10 +0100 <maerwald> so?
2021-11-10 16:25:31 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-11-10 16:25:35 +0100 <maerwald> cabal has insufficient means to discover libraries
2021-11-10 16:25:56 +0100 <maerwald> in fact, pkg-config shouldn't even be a cabal feature imo. The main reason it's used is because it's fed into the solver
2021-11-10 16:26:04 +0100v01d4lph4(~v01d4lph4@223.190.93.72)
2021-11-10 16:26:04 +0100v01d4lph4(~v01d4lph4@223.190.93.72) (Changing host)
2021-11-10 16:26:04 +0100v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-11-10 16:26:20 +0100 <maerwald> but in reality... pkg-config files are not a standard, just one of many ways for libraries to expose such info
2021-11-10 16:26:43 +0100mimmy(~mimmyjau@72.142.88.18)
2021-11-10 16:26:46 +0100dyeplexer(~dyeplexer@user/dyeplexer) (Ping timeout: 245 seconds)
2021-11-10 16:27:02 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2021-11-10 16:27:07 +0100 <geekosaur> pkg-config is really useful when you need custom build flags (-I, defines etc.) as well as libraries
2021-11-10 16:27:20 +0100 <sclv> its mainly used not for the solver but as geekosaur said, for the linker flags
2021-11-10 16:27:43 +0100asthasr_(~asthasr@162.210.28.151) (Quit: asthasr_)
2021-11-10 16:28:11 +0100zer0bitz(~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi)
2021-11-10 16:28:28 +0100 <maerwald> geekosaur: for that it's also not a standard
2021-11-10 16:28:56 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2021-11-10 16:29:02 +0100 <maerwald> instead, cabal should provide better/easier API to write custom Setup.hs without understanding all the internals
2021-11-10 16:29:20 +0100 <sclv> no we should eliminate all custom setup
2021-11-10 16:29:49 +0100 <maerwald> how do you support llvm then as linked above?
2021-11-10 16:29:57 +0100 <geekosaur> but with custom Setup, just one thing that occurs to me is now you need to run package configure while running the solver, and possibly restart the solver afterward
2021-11-10 16:30:23 +0100 <geekosaur> because your list of dependencies may have changed
2021-11-10 16:30:38 +0100 <sclv> maerwald: we extend the grammar of cabal files to express what people currently need custom setup for
2021-11-10 16:30:45 +0100Sgeo(~Sgeo@user/sgeo)
2021-11-10 16:30:52 +0100 <maerwald> I don't think that's a good idea
2021-11-10 16:32:04 +0100 <maerwald> you can never satisfy all and it's a constantly evolving story
2021-11-10 16:32:24 +0100 <kritzefitz> sclv so you say Cabal shouldn't be extendable?
2021-11-10 16:32:29 +0100 <maerwald> cargo also has build.rs
2021-11-10 16:35:02 +0100 <sclv> well i mean i think we'll be stuck with custom setups foreverish
2021-11-10 16:35:11 +0100 <sclv> but ideally we can minimize how many we need continously
2021-11-10 16:35:33 +0100 <k`> boxscape_: I'm trying to avoid having `Bar a` as a type parameter of the class instance that defines it. That would pretty much defeat the purpose.
2021-11-10 16:35:49 +0100xddq[m](~xddqmatri@2001:470:69fc:105::bfd8)
2021-11-10 16:36:04 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl)
2021-11-10 16:36:14 +0100zincy_(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
2021-11-10 16:36:30 +0100 <tomsmeding> adamCS: I tested 'master' of haskell-language-server and that fixes ordering problems for me; note that it now also makes the first character of the completion case-sensitive, where previously the whole match was case-insensitive.
2021-11-10 16:36:51 +0100Sgeo_(~Sgeo@user/sgeo)
2021-11-10 16:36:55 +0100 <kritzefitz> sclv: so ideally Cabal should support compiling gettext PO files and installing the results?
2021-11-10 16:37:31 +0100 <sclv> kritzefitz: why would that be necessary?
2021-11-10 16:37:39 +0100 <maerwald> Anything that isn't pkg-config, such as llvm-config, is likely gonna be ad-hoc and can't be used to design an interface. Unless you require the user to write wrapper scripts that convert to known format (which Ben has been doing with fake pkg-config scripts)
2021-11-10 16:37:42 +0100 <boxscape_> k` if you also add `a -> c` as functional dependency you might be able to always write _ (with -XPartialTypeSignatures) instead of actually passing the c argument, I think
2021-11-10 16:37:57 +0100 <adamCS> tomsmeding: That's great! Thanks! Can I just cabal build it and then put in the ghcup/bin directory and point all the links to it? Or should I just wait for a release?
2021-11-10 16:38:11 +0100 <boxscape_> ideally you'd want a way to have an invisible argument for the class, but as far as I can tell that's not supported
2021-11-10 16:38:22 +0100 <kritzefitz> sclv, because some packages might want to use gettext localization files and thus need to compile them on build and install them accordingly?
2021-11-10 16:38:25 +0100 <sclv> i imagine custom preprocessors can cover a lot of the ground currently used by Setup.hs
2021-11-10 16:38:30 +0100 <maerwald> https://github.com/bgamari/nix-pkgconfig
2021-11-10 16:38:32 +0100 <maerwald> I think that
2021-11-10 16:38:47 +0100 <tomsmeding> adamCS: if you're using cabal, then yes, just cabal build and put the binary somewhere in your path, doesn't even need to be .ghcup/bin -- though it needs to be _before_ .ghcup/bin in your path if you put it anywhere else
2021-11-10 16:38:54 +0100 <k`> boxscape_: Thanks, that's what I was wondering. Not the answer I wanted, but it's good to know I can stop trying.
2021-11-10 16:38:57 +0100justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
2021-11-10 16:39:10 +0100mimmy(~mimmyjau@72.142.88.18) (Quit: WeeChat 3.3)
2021-11-10 16:39:12 +0100 <tomsmeding> adamCS: if you're using ghc >= 9.0, mind the custom cabal.project files
2021-11-10 16:39:14 +0100Sgeo(~Sgeo@user/sgeo) (Ping timeout: 260 seconds)
2021-11-10 16:39:17 +0100 <tomsmeding> (otherwise hls won't build)
2021-11-10 16:39:22 +0100 <maerwald> adamCS: you can compile hls via ghcup
2021-11-10 16:39:39 +0100 <adamCS> maerwald: un unreleased version?
2021-11-10 16:39:42 +0100 <maerwald> yes
2021-11-10 16:39:46 +0100 <adamCS> HOW?
2021-11-10 16:39:51 +0100 <maerwald> ghcup compile hls --help
2021-11-10 16:40:36 +0100 <tomsmeding> maerwald++
2021-11-10 16:40:42 +0100 <adamCS> wow.
2021-11-10 16:40:50 +0100 <adamCS> That's cool.
2021-11-10 16:40:53 +0100zincy_(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 264 seconds)
2021-11-10 16:40:55 +0100 <k`> Was hoping I could do something like `class Mapping a b | b (Object a) -> a, a (Object b) -> b where type Object a; type Object a = Param a; map :: (Object a -> Object b) -> a -> b`
2021-11-10 16:40:57 +0100 <kritzefitz> sclv: preprocessors process haskell(ish) source files to output haskell, right? How does that help in compiling non-haskell to other non-haskell or installing files in special locations?
2021-11-10 16:41:36 +0100 <sclv> i mean clearly a cabal package should not just be installing and compiling nonhaskell to nonhaskell, i would argue that is not the job of a haskell package
2021-11-10 16:41:48 +0100 <sclv> people should not do that
2021-11-10 16:41:54 +0100 <tomsmeding> maerwald: I assume for ghc >= 9.0 you'll need to explicitly give the --cabal-project file?
2021-11-10 16:41:55 +0100 <k`> Rather than forcing folks to write, e.g., `instance Mapping (T a) (T b) a b where ...`
2021-11-10 16:42:08 +0100 <kritzefitz> sclv so how do you propose people use gettext?
2021-11-10 16:42:21 +0100 <sclv> i don't want to have a build depends on some haskell library and then have nonhaskell compiled and installed randomly on my system
2021-11-10 16:42:27 +0100 <maerwald> tomsmeding: I guess
2021-11-10 16:42:34 +0100 <adamCS> maerwald, tomsmeding: I'm still not on 9 since too many packages have...issues. I try every couple weeks!
2021-11-10 16:42:37 +0100 <tomsmeding> maerwald: makes sense
2021-11-10 16:43:00 +0100 <kritzefitz> sclv so you think data files are evil as well?
2021-11-10 16:43:10 +0100 <sclv> no we control where data files go
2021-11-10 16:43:17 +0100 <sclv> in the standard format
2021-11-10 16:43:31 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 256 seconds)
2021-11-10 16:43:37 +0100 <kritzefitz> There are also standard locations for gettext files. Cabal just doesn't know about them.
2021-11-10 16:44:02 +0100 <sclv> gettext is low level enough i can imagine cabal support tbqh
2021-11-10 16:44:20 +0100 <adamCS> maerwald: Does the version number need to match in that command need to match the cabal file in the repo or can I set to, e.g., 1.4.1 so I keep the old 1.4 around?
2021-11-10 16:44:22 +0100 <sclv> but i imagine with some concerted effort then preprocessors and other tools would suffice
2021-11-10 16:44:39 +0100 <maerwald> adamCS: see --overwrite-version option
2021-11-10 16:45:07 +0100 <adamCS> maerwald: nice
2021-11-10 16:45:54 +0100cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.3)
2021-11-10 16:46:35 +0100jmorris(uid433911@id-433911.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-10 16:46:43 +0100 <maerwald> I don't see what's wrong with Setup.hs being a low-level interface like build.rs, providing useful library helpers for common things like pkg-config, gettext etc
2021-11-10 16:47:07 +0100 <sclv> well we'd maybe just want to cut out some features of setup.hs in that case
2021-11-10 16:47:22 +0100 <sclv> like have a subset that doesn't dynamically create a haskell module manifest
2021-11-10 16:47:31 +0100 <kritzefitz> sclv: maybe. Excuse my nagging. I'm just a bit frustrated sometimes, because it feels like Cabal seems to loose basic features from time to time, because people think they're not used.
2021-11-10 16:47:33 +0100 <sclv> the problem is that its entirely unrestricted
2021-11-10 16:47:45 +0100 <sclv> nobody is getting rid of setup.hs anytime soon
2021-11-10 16:47:49 +0100 <maerwald> sclv: yes, but that's can be solved with seccomp :)
2021-11-10 16:47:55 +0100 <sclv> the GOAL is that we try to make as many things as possible not need it
2021-11-10 16:48:24 +0100 <sclv> so that we can analyze statically as much about a package ecosystem as possible without running haskell code
2021-11-10 16:48:30 +0100 <sclv> or rather without running arbitrary haskell code
2021-11-10 16:48:43 +0100 <maerwald> package managers also use sandboxes
2021-11-10 16:48:53 +0100 <maerwald> that's the right solution... it's just hard cross-platform
2021-11-10 16:50:02 +0100 <sclv> no also you just don't want to have to run everyone's code just to understand their packages
2021-11-10 16:50:04 +0100 <sclv> even without security
2021-11-10 16:50:28 +0100 <kritzefitz> Mostly I'm a bit sore, because installing packages to prefixes isn't a thing since new-style cabal. And I'm pretty stuck on a project where I would need that.
2021-11-10 16:50:46 +0100 <sclv> that's something we need a good story for
2021-11-10 16:51:00 +0100 <sclv> the datafiles stuff is really hacky and we don't have a good full answer
2021-11-10 16:51:05 +0100coady(~coady@31.132.2.93)
2021-11-10 16:51:32 +0100 <maerwald> sclv: uhm... you're constantly running a lot of code from your package manager that you didn't write. I don't think that's a criteria.
2021-11-10 16:51:37 +0100 <adamCS> maerwald: Can't make it work. When I specify the repo via "-r https://github.com/haskell/haskell-language-server" I get "Invalid option `-r'" though then it lists that as an option in the subsequent help.
2021-11-10 16:51:55 +0100 <maerwald> like, do you read all the source rpms, ebuilds, etc?
2021-11-10 16:52:03 +0100 <kritzefitz> sclv: If that's what is missing, I would gladly help by writing down my intended use case. (Just not right now)
2021-11-10 16:52:21 +0100 <sclv> kritzefitz: please do browse the tickets, and either comment on one or open a new one!
2021-11-10 16:52:37 +0100 <maerwald> adamCS: sure the entire line
2021-11-10 16:52:41 +0100 <maerwald> *show
2021-11-10 16:52:56 +0100ec(~ec@gateway/tor-sasl/ec)
2021-11-10 16:53:06 +0100 <adamCS> maerwald: ghcup compile hls -v 1.4.0 -r "https://github.com/haskell/haskell-language-server" -g 9415e55672a0c60a353f0bff3ae8546bdf0e7903 -o 1.4-ro 8.10.7
2021-11-10 16:53:29 +0100 <maerwald> adamCS: you can't combine -v and -r
2021-11-10 16:53:29 +0100burnsidesLlama(~burnsides@dhcp168-030.wadham.ox.ac.uk)
2021-11-10 16:53:55 +0100 <maerwald> you want -g instead of -r
2021-11-10 16:54:09 +0100 <adamCS> Oh!
2021-11-10 16:54:14 +0100 <adamCS> That makes sense.
2021-11-10 16:54:31 +0100deadmarshal(~deadmarsh@95.38.114.152)
2021-11-10 16:54:40 +0100 <maerwald> I'd also avoid 1.4-ro and use 1.4.1.1 or so (there's a bug in 0.1.17.3 with version suffixes)
2021-11-10 16:54:57 +0100 <maerwald> which is fixed on master but not released
2021-11-10 16:55:35 +0100 <adamCS> maerwald: Thank you!
2021-11-10 16:55:59 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2021-11-10 16:56:12 +0100 <maerwald> sclv: my point is... I don't even trust cabal, not just Setup.hs. Ultimately, even ghcup would run within a syscall sandbox (e.g. because it invokes GHC makefiles, unrestricted)
2021-11-10 16:56:14 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2021-11-10 16:57:24 +0100 <maerwald> reducing custom API surface is a never ending effort
2021-11-10 16:57:47 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl) (Remote host closed the connection)
2021-11-10 16:59:03 +0100 <maerwald> paludis uses sydbox (seccomp based), portage uses something else afair
2021-11-10 16:59:13 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-11-10 16:59:26 +0100alzgh(~alzgh@user/alzgh) (Ping timeout: 256 seconds)
2021-11-10 17:00:07 +0100 <maerwald> https://gitweb.gentoo.org/proj/sandbox.git
2021-11-10 17:00:46 +0100 <maerwald> ah, it uses ptrace
2021-11-10 17:01:02 +0100lavaman(~lavaman@98.38.249.169)
2021-11-10 17:03:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-10 17:05:37 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2021-11-10 17:06:11 +0100boxscape_(~boxscape_@134.171.69.87) (Ping timeout: 256 seconds)
2021-11-10 17:08:12 +0100[Kalisto]_[Kalisto]
2021-11-10 17:09:36 +0100roconnor(~roconnor@host-45-58-217-8.dyn.295.ca)
2021-11-10 17:11:19 +0100 <roconnor> When the Haskell report says "A Word is an unsigned integral type, with the same size as Int." What does the same "size" mean? Does it guarentee that it can hold at least up to 2^30-1 (twice maxBound of Int) or does it only guarentee up to 2^29-1 like Int?
2021-11-10 17:11:29 +0100deadmarshal(~deadmarsh@95.38.114.152) (Ping timeout: 264 seconds)
2021-11-10 17:11:47 +0100 <k`> `WORD_SIZE`
2021-11-10 17:11:48 +0100 <c_wraith> it means the same bit size
2021-11-10 17:12:11 +0100 <c_wraith> also, it means "as the implementation's Int type"
2021-11-10 17:12:35 +0100 <roconnor> okay, and Int's bitsize is at least 30, right?
2021-11-10 17:12:36 +0100 <c_wraith> so it's less about the minimum range required for Int, and more about how the same compiler defined Int
2021-11-10 17:13:06 +0100alzgh(alzgh@user/alzgh)
2021-11-10 17:13:07 +0100 <c_wraith> yes, it does mean it must be at least 30 bits
2021-11-10 17:13:14 +0100 <roconnor> thanks.
2021-11-10 17:13:19 +0100 <c_wraith> But more to the point, it must be the same size as Int
2021-11-10 17:15:55 +0100 <roconnor> bitSize.
2021-11-10 17:21:25 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl)
2021-11-10 17:22:46 +0100rkrishnan(~user@122.167.19.65)
2021-11-10 17:25:02 +0100mimmyjau(~mimmyjau@72.142.88.18)
2021-11-10 17:27:16 +0100mimmyjau(~mimmyjau@72.142.88.18) (Client Quit)
2021-11-10 17:27:36 +0100mimmyjau(~mimmy@72.142.88.18)
2021-11-10 17:27:50 +0100zincy_(~zincy@host86-181-60-139.range86-181.btcentralplus.com)
2021-11-10 17:28:01 +0100jakalx(~jakalx@base.jakalx.net)
2021-11-10 17:28:48 +0100mimmyjau(~mimmy@72.142.88.18) (Client Quit)
2021-11-10 17:32:15 +0100zincy_(~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 256 seconds)
2021-11-10 17:33:42 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-11-10 17:35:27 +0100geekosaur(~geekosaur@xmonad/geekosaur)
2021-11-10 17:35:31 +0100Kaipi(~Kaiepi@156.34.44.192) (Read error: Connection reset by peer)
2021-11-10 17:35:42 +0100Kaipi(~Kaiepi@156.34.44.192)
2021-11-10 17:36:44 +0100acidjnk_new(~acidjnk@p200300d0c724a7710420fe3aa4fdb454.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-11-10 17:37:08 +0100acidjnk_new(~acidjnk@p200300d0c724a7710420fe3aa4fdb454.dip0.t-ipconnect.de)
2021-11-10 17:38:20 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-11-10 17:38:34 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:54fc:9972:155c:27b0) (Quit: WeeChat 2.8)
2021-11-10 17:42:38 +0100acidjnk_new(~acidjnk@p200300d0c724a7710420fe3aa4fdb454.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-11-10 17:42:59 +0100acidjnk_new(~acidjnk@p200300d0c724a7710420fe3aa4fdb454.dip0.t-ipconnect.de)
2021-11-10 17:45:57 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816)
2021-11-10 17:46:18 +0100DNH(~DNH@8.43.122.53) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-11-10 17:47:27 +0100v01d4lph4(~v01d4lph4@user/v01d4lph4) (Read error: Connection reset by peer)
2021-11-10 17:51:45 +0100bitmapper(uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-10 17:52:07 +0100 <nf> hi, i'm trying to refactor this code https://github.com/ncfavier/ni/blob/master/src/Nirc.hs#L110 to float the execStateT [] initialContext to the top of the program, so that the main loop happens in the state monad
2021-11-10 17:53:11 +0100 <nf> so now i need "lifted" versions of timeout and tryIOError that work with StateT (with the obvious semantics "restore the old state on timeout"). i was only able to find such a timeout in lifted-base, and tryIO in unliftio and others, but this feels a bit scattered
2021-11-10 17:53:52 +0100 <nf> alternatively i could just store the context in an IORef
2021-11-10 17:54:01 +0100 <nf> what would you do?
2021-11-10 17:54:07 +0100 <monochrom> I recommend not.
2021-11-10 17:54:41 +0100 <monochrom> But if you insist, perhaps the "layers" package offers yet another solution, complete or incomplete, I haven't deeply looked.
2021-11-10 17:55:23 +0100 <monochrom> "lifting" is a very naïve idea once control flow is involved.
2021-11-10 17:55:43 +0100 <monochrom> and a pandora's box
2021-11-10 17:55:50 +0100 <monochrom> can of worms
2021-11-10 17:56:52 +0100 <monochrom> The difficulty of timeout is that you now have two threads, too.
2021-11-10 17:57:04 +0100 <nf> i'll look into layers
2021-11-10 17:57:20 +0100 <nf> when you say you recommend not, did you mean the IORef part or the refactoring part?
2021-11-10 17:57:23 +0100 <monochrom> What does it even mean to "lift" forkIO to StateT.
2021-11-10 17:57:34 +0100 <nf> well, nothing
2021-11-10 17:57:34 +0100 <monochrom> refactoring.
2021-11-10 17:57:39 +0100 <monochrom> "refactoring"
2021-11-10 17:57:45 +0100 <nf> i'm only interested in the special case of lifting timeout, with the semantics i mentioned
2021-11-10 17:58:02 +0100v01d4lph4(~v01d4lph4@223.190.93.72)
2021-11-10 17:58:02 +0100v01d4lph4(~v01d4lph4@223.190.93.72) (Changing host)
2021-11-10 17:58:02 +0100v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-11-10 17:58:08 +0100 <nf> yeah i guess it's more than refactoring
2021-11-10 17:58:18 +0100 <monochrom> timeout is done by forkIO and a lot of other moving parts
2021-11-10 17:58:32 +0100v01d4lph4(~v01d4lph4@user/v01d4lph4) (Read error: Connection reset by peer)
2021-11-10 17:59:49 +0100notzmv(~zmv@user/notzmv)
2021-11-10 18:00:10 +0100 <nf> so to be clear, what would you rather do? the goal being to reuse the context across invocations, instead of using initialContext every time
2021-11-10 18:01:21 +0100DNH(~DNH@8.43.122.53)
2021-11-10 18:02:11 +0100ubert1(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection)
2021-11-10 18:02:50 +0100lbseale(~lbseale@user/ep1ctetus)
2021-11-10 18:05:10 +0100alzgh(alzgh@user/alzgh) (Ping timeout: 256 seconds)
2021-11-10 18:07:18 +0100dsallifts pandora's box of worms
2021-11-10 18:08:40 +0100alzgh(~alzgh@user/alzgh)
2021-11-10 18:09:22 +0100 <tomsmeding> dsal: pray don't open it
2021-11-10 18:09:53 +0100dsalunlifts
2021-11-10 18:09:59 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Remote host closed the connection)
2021-11-10 18:13:29 +0100nschoe(~quassel@2a01:e0a:8e:a190:b8f5:7f5:bf66:e7c) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-11-10 18:17:03 +0100hgolden(~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Quit: Konversation terminated!)
2021-11-10 18:18:57 +0100zincy_(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
2021-11-10 18:21:28 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2021-11-10 18:22:43 +0100hgolden(~hgolden2@cpe-172-114-81-123.socal.res.rr.com)
2021-11-10 18:23:22 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com)
2021-11-10 18:23:58 +0100zincy_(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 268 seconds)
2021-11-10 18:30:08 +0100urdh(~urdh@user/urdh) (Remote host closed the connection)
2021-11-10 18:30:11 +0100deadmarshal(~deadmarsh@95.38.114.152)
2021-11-10 18:31:35 +0100rkrishnan(~user@122.167.19.65) (Ping timeout: 250 seconds)
2021-11-10 18:34:03 +0100ec(~ec@gateway/tor-sasl/ec) (Quit: ec)
2021-11-10 18:34:28 +0100awpr(uid446117@id-446117.lymington.irccloud.com)
2021-11-10 18:34:40 +0100ec(~ec@gateway/tor-sasl/ec)
2021-11-10 18:39:07 +0100deadmarshal(~deadmarsh@95.38.114.152) (Ping timeout: 256 seconds)
2021-11-10 18:41:54 +0100royo(~royo@user/royo) (Ping timeout: 260 seconds)
2021-11-10 18:42:10 +0100deadmarshal(~deadmarsh@95.38.114.152)
2021-11-10 18:44:35 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 250 seconds)
2021-11-10 18:45:08 +0100nvmd(~nvmd@user/nvmd) (Quit: Later, nerds.)
2021-11-10 18:45:30 +0100coady1(~coady@94.196.131.116.threembb.co.uk)
2021-11-10 18:46:50 +0100coady2(~coady@159.48.55.98)
2021-11-10 18:48:11 +0100cheater(~Username@user/cheater) (Ping timeout: 246 seconds)
2021-11-10 18:48:39 +0100coady2(~coady@159.48.55.98) (Client Quit)
2021-11-10 18:49:19 +0100coady(~coady@31.132.2.93) (Ping timeout: 256 seconds)
2021-11-10 18:50:11 +0100coady1(~coady@94.196.131.116.threembb.co.uk) (Ping timeout: 264 seconds)
2021-11-10 18:50:41 +0100ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2021-11-10 18:51:13 +0100ec(~ec@gateway/tor-sasl/ec)
2021-11-10 18:51:31 +0100ski_ski
2021-11-10 18:51:48 +0100chele_(~chele@user/chele) (Remote host closed the connection)
2021-11-10 18:56:29 +0100zebrag(~chris@user/zebrag)
2021-11-10 18:56:49 +0100yauhsien(~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
2021-11-10 18:57:33 +0100robosexual(~spaceoyst@88.85.216.62) (Quit: Konversation terminated!)
2021-11-10 19:00:45 +0100cheater(~Username@user/cheater)
2021-11-10 19:01:35 +0100yauhsien(~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 264 seconds)
2021-11-10 19:03:03 +0100td_(~td@94.134.91.32)
2021-11-10 19:04:26 +0100econo(uid147250@user/econo)
2021-11-10 19:10:22 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816)
2021-11-10 19:10:44 +0100zincy_(~zincy@host86-181-60-139.range86-181.btcentralplus.com)
2021-11-10 19:14:53 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-11-10 19:15:09 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Ping timeout: 268 seconds)
2021-11-10 19:15:23 +0100zincy_(~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 256 seconds)
2021-11-10 19:15:31 +0100v01d4lph4(~v01d4lph4@223.190.93.72)
2021-11-10 19:15:31 +0100v01d4lph4(~v01d4lph4@223.190.93.72) (Changing host)
2021-11-10 19:15:31 +0100v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-11-10 19:18:42 +0100DNH(~DNH@8.43.122.53) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-11-10 19:19:01 +0100cosimone(~user@93-44-184-123.ip98.fastwebnet.it)
2021-11-10 19:20:06 +0100jkaye(~jkaye@2601:281:8300:7530:212b:79de:3c7b:f9e0) (Ping timeout: 245 seconds)
2021-11-10 19:22:33 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816)
2021-11-10 19:22:43 +0100yauhsien(~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
2021-11-10 19:25:38 +0100neurocyte0132889(~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
2021-11-10 19:28:05 +0100neurocyte0132889(~neurocyte@94.46.71.199)
2021-11-10 19:28:05 +0100neurocyte0132889(~neurocyte@94.46.71.199) (Changing host)
2021-11-10 19:28:05 +0100neurocyte0132889(~neurocyte@user/neurocyte)
2021-11-10 19:28:23 +0100pgib(~textual@173.38.117.83)
2021-11-10 19:29:02 +0100yauhsien(~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2021-11-10 19:33:07 +0100mcgroin(~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 250 seconds)
2021-11-10 19:33:08 +0100 <joel135> can i get ghc/ghci to spit out the types of all subterms of a code block, like a typing derivation?
2021-11-10 19:34:39 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-10 19:39:11 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds)
2021-11-10 19:41:20 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-11-10 19:43:55 +0100v01d4lph4(~v01d4lph4@user/v01d4lph4) (Read error: Connection reset by peer)
2021-11-10 19:43:58 +0100ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2021-11-10 19:44:23 +0100ec(~ec@gateway/tor-sasl/ec)
2021-11-10 19:44:32 +0100emf(~emf@2620:10d:c090:400::5:69be)
2021-11-10 19:50:49 +0100Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
2021-11-10 19:54:52 +0100jeslie0(~user@135-23-172-182.cpe.pppoe.ca)
2021-11-10 19:58:21 +0100zincy_(~zincy@host86-181-60-139.range86-181.btcentralplus.com)
2021-11-10 19:58:32 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Remote host closed the connection)
2021-11-10 19:58:51 +0100 <shapr> joel135: You can use haskell-language-server to do some of that.
2021-11-10 19:59:45 +0100justache(~justache@user/justache) (Read error: Connection reset by peer)
2021-11-10 20:00:08 +0100jkaye(~jkaye@2601:281:8300:7530:65b4:1325:4217:bff5)
2021-11-10 20:00:40 +0100justache(~justache@user/justache)
2021-11-10 20:03:05 +0100zincy_(~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 264 seconds)
2021-11-10 20:03:21 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-11-10 20:03:37 +0100urdh(~urdh@user/urdh)
2021-11-10 20:05:20 +0100ec(~ec@gateway/tor-sasl/ec)
2021-11-10 20:07:24 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-11-10 20:07:27 +0100 <mark__> Sorry, still trying to understand MMR and WHNF. If I do ":set -XNoMonomorphismRestriction; x = Just 1" and then force evaluation to WHNF "seq x ()" I get x = _. Why does it not eval until the first value constructor Just. The polymorphic thing is inside the Just.
2021-11-10 20:08:31 +0100 <monochrom> If you don't mind one subterm at a time, https://downloads.haskell.org/ghc/latest/docs/html/users_guide/ghci.html#ghci-cmd-:type-at
2021-11-10 20:08:39 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2021-11-10 20:08:46 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-11-10 20:09:08 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-11-10 20:09:09 +0100 <monochrom> Or, if you don't mind all subterms of the whole file, https://downloads.haskell.org/ghc/latest/docs/html/users_guide/ghci.html#ghci-cmd-:all-types
2021-11-10 20:09:38 +0100 <monochrom> :type-at is what emacs haskell-mode and dante use.
2021-11-10 20:09:42 +0100DNH(~DNH@8.43.122.53)
2021-11-10 20:09:57 +0100 <monochrom> It is also why I still don't need IDEs.
2021-11-10 20:11:10 +0100 <monochrom> mark__, unfortunately you have "Num a => Maybe a" not "Maybe (Num a => a)".
2021-11-10 20:11:33 +0100 <mark__> Thanks for the links. My theory is that (Just (1 :: Num a => a)) is in core something like (\$dNum -> Just ..) so the dict must be supplied at the start.
2021-11-10 20:11:51 +0100 <monochrom> Equivalently, the polymorphic thing is precisely outside the Just.
2021-11-10 20:12:22 +0100 <mark__> That makes sense.
2021-11-10 20:12:23 +0100 <monochrom> Why? Because Hindley-Milner does neither rank-n nor impredicativity.
2021-11-10 20:17:45 +0100deadmarshal(~deadmarsh@95.38.114.152) (Ping timeout: 250 seconds)
2021-11-10 20:21:07 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-11-10 20:21:21 +0100jgeerds(~jgeerds@55d41b94.access.ecotel.net)
2021-11-10 20:22:07 +0100 <joel135> shapr: good idea. i ended up settling with holes for now though
2021-11-10 20:22:32 +0100chomwitt(~chomwitt@2a02:587:dc0f:7c00:12c3:7bff:fe6d:d374) (Ping timeout: 240 seconds)
2021-11-10 20:22:53 +0100 <joel135> and simple redundant let bindings
2021-11-10 20:33:13 +0100zincy_(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
2021-11-10 20:35:34 +0100ec(~ec@gateway/tor-sasl/ec) (Quit: ec)
2021-11-10 20:37:32 +0100zincy_(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 240 seconds)
2021-11-10 20:40:32 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 240 seconds)
2021-11-10 20:41:10 +0100DNH(~DNH@8.43.122.53) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-11-10 20:41:15 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816)
2021-11-10 20:51:14 +0100player205(~player205@net-93-71-138-138.cust.vodafonedsl.it)
2021-11-10 20:51:37 +0100player205(~player205@net-93-71-138-138.cust.vodafonedsl.it) (Client Quit)
2021-11-10 20:51:55 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-11-10 20:52:20 +0100player205(~player205@net-93-71-138-138.cust.vodafonedsl.it)
2021-11-10 20:54:03 +0100ec(~ec@gateway/tor-sasl/ec)
2021-11-10 20:56:30 +0100michalz(~michalz@185.246.204.33) (Remote host closed the connection)
2021-11-10 20:56:55 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2021-11-10 21:02:38 +0100lavaman(~lavaman@98.38.249.169)
2021-11-10 21:03:26 +0100DNH(~DNH@8.43.122.53)
2021-11-10 21:05:02 +0100juhp(~juhp@128.106.188.220) (Ping timeout: 240 seconds)
2021-11-10 21:05:05 +0100kjak(~kjak@pool-108-45-56-21.washdc.fios.verizon.net)
2021-11-10 21:06:41 +0100pgib(~textual@173.38.117.83) (Quit: 00 PC LOAD LETTER)
2021-11-10 21:06:42 +0100juhp(~juhp@128.106.188.220)
2021-11-10 21:06:47 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 246 seconds)
2021-11-10 21:08:58 +0100sander(~sander@user/sander) (Quit: So long! :))
2021-11-10 21:13:36 +0100mei3(~mei@user/mei)
2021-11-10 21:15:31 +0100coady(~coady@159.48.55.98)
2021-11-10 21:16:48 +0100coady(~coady@159.48.55.98) (Client Quit)
2021-11-10 21:18:06 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-11-10 21:18:48 +0100hololeap(~hololeap@user/hololeap) (Remote host closed the connection)
2021-11-10 21:19:29 +0100alx741(~alx741@181.196.68.101) (Ping timeout: 256 seconds)
2021-11-10 21:20:03 +0100gehmehgeh_(~user@user/gehmehgeh) (Ping timeout: 276 seconds)
2021-11-10 21:20:16 +0100hololeap(~hololeap@user/hololeap)
2021-11-10 21:21:05 +0100gehmehgeh_(~user@user/gehmehgeh)
2021-11-10 21:21:38 +0100nineonine(~nineonine@2604:3d08:7780:cd00:187c:a4eb:abb4:3c17)
2021-11-10 21:22:46 +0100deadmarshal(~deadmarsh@95.38.114.152)
2021-11-10 21:24:02 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2021-11-10 21:24:49 +0100zincy_(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
2021-11-10 21:25:25 +0100jushur(~human@user/jushur)
2021-11-10 21:27:02 +0100deadmarshal(~deadmarsh@95.38.114.152) (Ping timeout: 240 seconds)
2021-11-10 21:27:03 +0100burnsidesLlama(~burnsides@dhcp168-030.wadham.ox.ac.uk) (Remote host closed the connection)
2021-11-10 21:27:17 +0100Guest4249(~Guest42@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2021-11-10 21:27:52 +0100mc47(~mc47@xmonad/TheMC47)
2021-11-10 21:27:53 +0100kupi(uid212005@id-212005.hampstead.irccloud.com)
2021-11-10 21:28:22 +0100hololeap(~hololeap@user/hololeap) (Read error: Connection reset by peer)
2021-11-10 21:29:15 +0100zincy_(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 250 seconds)
2021-11-10 21:30:08 +0100kadir(~kadir@78.178.105.36) (WeeChat 3.3)
2021-11-10 21:30:42 +0100hololeap(~hololeap@user/hololeap)
2021-11-10 21:30:55 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Remote host closed the connection)
2021-11-10 21:31:02 +0100kayprish(~kayprish@46.240.130.158)
2021-11-10 21:33:47 +0100alx741(~alx741@186.178.109.114)
2021-11-10 21:34:49 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Excess Flood)
2021-11-10 21:35:04 +0100themc47(~mc47@xmonad/TheMC47)
2021-11-10 21:35:11 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-11-10 21:36:42 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-11-10 21:37:34 +0100falafel(~falafel@cpe-76-168-195-162.socal.res.rr.com)
2021-11-10 21:38:17 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-11-10 21:40:30 +0100kayprish(~kayprish@46.240.130.158) (Quit: leaving)
2021-11-10 21:40:40 +0100kayprish(~kayprish@46.240.130.158)
2021-11-10 21:47:02 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 240 seconds)
2021-11-10 21:50:00 +0100beka(~beka@104.193.170.240)
2021-11-10 21:51:20 +0100jespada(~jespada@190.7.36.46)
2021-11-10 21:51:55 +0100player205(~player205@net-93-71-138-138.cust.vodafonedsl.it) (Quit: WeeChat 3.0.1)
2021-11-10 21:55:09 +0100 <fendor[m]> Can I not pass -package-env to ghci using `:seti` or `:set`? ☹️
2021-11-10 21:55:15 +0100mcgroin(~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-11-10 21:56:28 +0100jespada(~jespada@190.7.36.46) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-11-10 21:56:44 +0100 <monochrom> Probably too late after ghci has started.
2021-11-10 21:56:49 +0100 <geekosaur> I think it's too late for that by that point? although 9.2.1 at least seems to think it's a dynamic option
2021-11-10 21:58:18 +0100 <fendor[m]> well clearing the package db, and setting a couple of new ones should be easily possible at run-time
2021-11-10 21:58:27 +0100 <fendor[m]> or am I missing a feature of package-envs?
2021-11-10 21:59:17 +0100 <monochrom> No. Long in the past, I already discovered that ghci doesn't want to even know any change in the package db after startup.
2021-11-10 22:00:02 +0100 <monochrom> And generally I wouldn't think in terms of "it should be easy for someone else to add a feature I want".
2021-11-10 22:01:19 +0100 <fendor[m]> I am not, I rather mean "it should be possible, is there a reason why it isn't right now?" And if the answer is no, I am inclined to add that feature
2021-11-10 22:02:06 +0100 <fendor[m]> and I bet the answer is "no particular reason, but it is complicated"
2021-11-10 22:02:10 +0100lavaman(~lavaman@98.38.249.169)
2021-11-10 22:02:28 +0100 <geekosaur> one thoing thatoccurs to me is you'd potenntially have to throw out everything ghci currently knows and start over (like :load)
2021-11-10 22:03:01 +0100 <geekosaur> perhaps not complicated, but possibly invasive and annoying to the user
2021-11-10 22:03:21 +0100 <geekosaur> this said, many things ghci doesn't do just because nobody asked for it before
2021-11-10 22:04:01 +0100 <fendor[m]> that is indeed true, if that is the only option that causes such reloads then it is rather annoying and unexpected
2021-11-10 22:04:05 +0100 <geekosaur> ghci wasn't designed, it just kinda grew
2021-11-10 22:04:58 +0100burnsidesLlama(~burnsides@dhcp168-030.wadham.ox.ac.uk)
2021-11-10 22:05:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-10 22:07:19 +0100 <fendor[m]> it is still amazingly good, imo
2021-11-10 22:11:03 +0100themc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-11-10 22:11:37 +0100burnsidesLlama(~burnsides@dhcp168-030.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
2021-11-10 22:14:11 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-11-10 22:17:42 +0100zincy_(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
2021-11-10 22:19:13 +0100 <dsal> Heh, I just saw this via rss: http://logicaltypes.blogspot.com/2021/11/november-2021-1haskelladay-1liners.html
2021-11-10 22:21:23 +0100mei3(~mei@user/mei) (Ping timeout: 268 seconds)
2021-11-10 22:22:17 +0100zincy_(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 264 seconds)
2021-11-10 22:23:12 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-11-10 22:23:21 +0100ec(~ec@gateway/tor-sasl/ec)
2021-11-10 22:24:34 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-11-10 22:24:51 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-11-10 22:25:05 +0100geekosaur(~geekosaur@xmonad/geekosaur)
2021-11-10 22:25:09 +0100mikoto-c1(~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 250 seconds)
2021-11-10 22:25:33 +0100 <yin> fun!
2021-11-10 22:25:45 +0100mikoto-c1(~mikoto-ch@esm-84-240-99-143.netplaza.fi)
2021-11-10 22:26:02 +0100 <yin> @pl \f -> (\x -> f (x x)) (\x -> f (x x))
2021-11-10 22:26:02 +0100 <lambdabot> ap (. join id) (. join id)
2021-11-10 22:26:12 +0100burnsidesLlama(~burnsides@dhcp168-030.wadham.ox.ac.uk)
2021-11-10 22:26:15 +0100 <yin> @pl \f -> (\x -> x x) (\x -> f (x x))
2021-11-10 22:26:15 +0100 <lambdabot> join id . (. join id)
2021-11-10 22:26:19 +0100 <yin> :)
2021-11-10 22:27:53 +0100 <kronicmage> @t \f -> (\x -> x x) (\x -> f (x x))
2021-11-10 22:27:53 +0100 <lambdabot> Maybe you meant: tell thank you thanks thesaurus thx tic-tac-toe ticker time todo todo-add todo-delete type v @ ? .
2021-11-10 22:27:59 +0100vysn(~vysn@user/vysn)
2021-11-10 22:29:02 +0100 <kronicmage> huh pl works on maltyped things
2021-11-10 22:29:04 +0100 <kronicmage> til
2021-11-10 22:29:23 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-11-10 22:29:24 +0100 <geekosaur> yeh, @pl just does substitutions, it doesn't really know haskell
2021-11-10 22:30:00 +0100 <yin> fun!
2021-11-10 22:31:00 +0100 <yin> what can we learn from this? i feel that `ap (. join id) (. join id)` should be a big insight
2021-11-10 22:34:17 +0100ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 256 seconds)
2021-11-10 22:34:35 +0100 <dsal> I can learn that if I see that in code somewhere, someone didn't come up with it and probably doesn't understand it, but sent it through @pl and copied it because they thought it looked cool.
2021-11-10 22:34:46 +0100acidjnk_new3(~acidjnk@p200300d0c721b7398586a2e711bd371d.dip0.t-ipconnect.de)
2021-11-10 22:35:50 +0100 <Taneb> I did once write a horrifying program to calculate factorials that was mostly "pure", "(<*>)", and "unsafeCoerce"
2021-11-10 22:36:04 +0100 <Taneb> It ran out of memory for numbers bigger than 11
2021-11-10 22:36:20 +0100ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
2021-11-10 22:38:29 +0100acidjnk_new(~acidjnk@p200300d0c724a7710420fe3aa4fdb454.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2021-11-10 22:39:41 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-11-10 22:39:48 +0100 <Taneb> If anyone has IRC logs for June 2012, it's probably linked to from there
2021-11-10 22:42:48 +0100 <tomsmeding> for bonus points, replace (.) with fmap
2021-11-10 22:43:06 +0100 <tomsmeding> fmap (join id) `ap` fmap (join id)
2021-11-10 22:43:13 +0100pavonia(~user@user/siracusa)
2021-11-10 22:46:11 +0100yauhsien(~yauhsien@118-167-47-187.dynamic-ip.hinet.net)
2021-11-10 22:46:18 +0100 <dsal> :t fmap (join id) `ap` fmap (join id)
2021-11-10 22:46:19 +0100 <lambdabot> error:
2021-11-10 22:46:19 +0100 <lambdabot> • Occurs check: cannot construct the infinite type: a ~ a -> b1
2021-11-10 22:46:19 +0100 <lambdabot> Expected type: a -> a -> b1
2021-11-10 22:46:40 +0100 <dsal> So annoyed by haskell's finite types.
2021-11-10 22:47:33 +0100 <yin> what would be the undesirable consequences of allowing infinite types?
2021-11-10 22:47:46 +0100 <yin> besides non termination
2021-11-10 22:48:28 +0100 <dsal> It's kind of hard to think about.
2021-11-10 22:49:53 +0100jmorris(uid433911@id-433911.hampstead.irccloud.com)
2021-11-10 22:50:33 +0100sander(~sander@user/sander)
2021-11-10 22:50:43 +0100yauhsien(~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-11-10 22:51:45 +0100zincy_(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
2021-11-10 22:52:23 +0100alzgh(~alzgh@user/alzgh) (Remote host closed the connection)
2021-11-10 22:52:43 +0100alzgh(~alzgh@user/alzgh)
2021-11-10 22:53:12 +0100f-a(f2a@f2a.jujube.ircnow.org)
2021-11-10 22:53:45 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 250 seconds)
2021-11-10 22:55:55 +0100zincy_(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 250 seconds)
2021-11-10 22:57:02 +0100ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 240 seconds)
2021-11-10 22:57:27 +0100 <maerwald> tomsmeding: I love fmap so much, I think I actually did that once in production code
2021-11-10 22:57:54 +0100royo(~royo@user/royo)
2021-11-10 22:58:14 +0100 <k`> :q
2021-11-10 22:58:22 +0100k`(~user@152.1.137.158) (Remote host closed the connection)
2021-11-10 22:59:39 +0100ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
2021-11-10 22:59:57 +0100 <yin> dsal: too hard even for this channel?
2021-11-10 22:59:59 +0100 <dolio> yin: Almost every time you under/over apply a function by accident, you could give it an infinite type.
2021-11-10 23:00:48 +0100 <dolio> So, the only thing that gives you an error message instead of something much more confusing to figure out is rejecting infinite types.
2021-11-10 23:01:19 +0100f-a(f2a@f2a.jujube.ircnow.org) ()
2021-11-10 23:01:39 +0100 <dolio> At least, deciding not to infer infinite types.
2021-11-10 23:02:37 +0100Noobish(~Noobish@64.150.15.15)
2021-11-10 23:03:43 +0100 <monochrom> "f (x:xs) = ... f x ..." is also a common beginner mistake that, if accepted, would cause an infinite type.
2021-11-10 23:03:56 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
2021-11-10 23:04:04 +0100 <dolio> Yeah, lots of typos.
2021-11-10 23:04:20 +0100 <dolio> (xs:x) instead of (x:xs).
2021-11-10 23:04:29 +0100 <monochrom> Practical experience says that 99.99% of infinite types are typos, not intentional.
2021-11-10 23:04:35 +0100 <dsal> infinite typos
2021-11-10 23:04:53 +0100 <yin> :)
2021-11-10 23:05:13 +0100 <dsal> I've not run into a situation where I wish I had an infinite type.
2021-11-10 23:05:28 +0100 <monochrom> And among the intentional legit ones, 99% lead to hard-to-follow code.
2021-11-10 23:05:34 +0100 <dsal> Why can't an element of a list be the same type as the list of the elements of that list?
2021-11-10 23:06:05 +0100ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 264 seconds)
2021-11-10 23:06:45 +0100 <yin> let a = [a] in [a]
2021-11-10 23:06:46 +0100 <dolio> That's set theory.
2021-11-10 23:07:33 +0100ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
2021-11-10 23:07:48 +0100 <monochrom> It turns out that when you intend to have an infinite type, going isorecursive is nicer for your readers, e.g., with "newtype D = MkD{unD :: D->D}", your explicit "MkD foo" and "unD bar" help your reader recognize "ah you're now converting D to D->D" "ah you're now convering D->D to D".
2021-11-10 23:08:26 +0100 <monochrom> In fact the same can be said of all recursive ADTs.
2021-11-10 23:08:56 +0100 <monochrom> Infinite type is just a special case of the stance of equirecursive types.
2021-11-10 23:09:24 +0100Noobish(~Noobish@64.150.15.15) (Remote host closed the connection)
2021-11-10 23:11:14 +0100 <monochrom> And equi-vs-iso is in turn just a special case of structural-vs-nomial.
2021-11-10 23:11:18 +0100 <monochrom> err, nominal
2021-11-10 23:12:16 +0100 <monochrom> "type IntStream = (Int, IntStream)" vs "newtype IntStream = Ctor (Int, IntStream)"
2021-11-10 23:13:21 +0100sagax(~sagax_nb@user/sagax) (Quit: Konversation terminated!)
2021-11-10 23:18:34 +0100 <monochrom> Set theory has an "axiom of foundation" that disallows x = {x}, among related infinite-descent things.
2021-11-10 23:19:03 +0100 <dolio> Yeah, but the cool set theories have the axiom of anti-foundation.
2021-11-10 23:19:11 +0100 <monochrom> However! There are CS areas that find it useful to omit that axiom and allow infinite-descent sets.
2021-11-10 23:20:12 +0100 <dolio> Actually, there are multiple variants of anti-foundation axioms, I think.
2021-11-10 23:20:21 +0100lbseale_(~lbseale@user/ep1ctetus)
2021-11-10 23:20:48 +0100 <dolio> Depending to the different kinds of cyclic graphs you allow sets to correspond to.
2021-11-10 23:21:22 +0100 <yin> @def data Fix f = Fix (f (Fix f))
2021-11-10 23:21:23 +0100 <lambdabot> Defined.
2021-11-10 23:21:30 +0100 <monochrom> My favourite anti-foundation axiom is "it's lasagna all the way down" :P
2021-11-10 23:21:32 +0100 <yin> @kind Fix
2021-11-10 23:21:32 +0100 <lambdabot> (* -> *) -> *
2021-11-10 23:21:54 +0100 <dolio> Also, like, if `x = {x}` and `y = {y}` does x = y?
2021-11-10 23:23:15 +0100 <dolio> x is a set that contains itself, and y is a set that contains itself, but do they contain all the same sets?
2021-11-10 23:23:33 +0100 <dsal> yin: do you have a good understanding of fix/Fix?
2021-11-10 23:23:35 +0100 <dolio> Extensionality can't answer the question. :)
2021-11-10 23:23:56 +0100 <yin> dsal: fix yes, Fix i think i'm struggling with
2021-11-10 23:24:09 +0100lbseale(~lbseale@user/ep1ctetus) (Ping timeout: 256 seconds)
2021-11-10 23:24:44 +0100 <dsal> Fix is just fix at the type level. This is a good read: https://chrispenner.ca/posts/asts-with-fix-and-free
2021-11-10 23:25:15 +0100 <yin> thanks!
2021-11-10 23:25:17 +0100max22-(~maxime@2a01cb0883359800a8cb049c70e9b71a.ipv6.abo.wanadoo.fr) (Quit: Leaving)
2021-11-10 23:28:14 +0100 <monochrom> We almost had the same issue with streams for example (generally coinductive types). If x=():x and y=():y, does x=y?
2021-11-10 23:28:43 +0100 <monochrom> The narrow version of extensionality (two records are equal iff respect fields are equal) can't answer it either.
2021-11-10 23:29:17 +0100 <monochrom> Eventually someone figured out "x and y are bisimilar, let's define 'equal' to just mean that".
2021-11-10 23:29:26 +0100 <dolio> Exactly.
2021-11-10 23:33:13 +0100ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 256 seconds)
2021-11-10 23:33:36 +0100 <yin> what if y = ():x ?
2021-11-10 23:34:10 +0100 <monochrom> Then x and this y are bisimilar, too.
2021-11-10 23:34:37 +0100Sgeo(~Sgeo@user/sgeo)
2021-11-10 23:34:52 +0100Sgeo_(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-11-10 23:34:55 +0100 <yin> so infinity+1 == infinity
2021-11-10 23:35:25 +0100 <monochrom> I wouldn't jump to that conclusion. : is not +, x is not infinity.
2021-11-10 23:35:32 +0100zebrag(~chris@user/zebrag) (Ping timeout: 246 seconds)
2021-11-10 23:35:53 +0100zebrag(~chris@user/zebrag)
2021-11-10 23:36:07 +0100 <yin> can't you make the argument that at the type level that wuld be peano infinity?
2021-11-10 23:36:36 +0100 <yin> (i don't know what i'm saying)
2021-11-10 23:36:37 +0100 <monochrom> I don't know peano infinity and I don't know that argument.
2021-11-10 23:36:44 +0100cosimone(~user@93-44-184-123.ip98.fastwebnet.it) (Quit: ERC (IRC client for Emacs 27.1))
2021-11-10 23:37:43 +0100 <awpr> sounds to me like: if you define a peano naturals type in Haskell, you get an extra inhabitant `infinity = S infinity`, and that is in the same sense bisimilar to `S infinity`
2021-11-10 23:37:59 +0100bitmapper(uid464869@id-464869.lymington.irccloud.com)
2021-11-10 23:38:11 +0100 <dolio> Depends how you define it.
2021-11-10 23:38:13 +0100 <awpr> IIUC it's not supposed to be a member of the Peano naturals, but it sneaks in due to laziness
2021-11-10 23:38:15 +0100gehmehgeh_(~user@user/gehmehgeh) (Quit: Leaving)
2021-11-10 23:38:32 +0100 <awpr> "how you define it" = by not using a strict field?
2021-11-10 23:38:39 +0100 <dolio> Right.
2021-11-10 23:39:53 +0100ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
2021-11-10 23:41:33 +0100opqdonut(opqdonut@pseudo.fixme.fi) (Ping timeout: 268 seconds)
2021-11-10 23:41:48 +0100opqdonut(opqdonut@pseudo.fixme.fi)
2021-11-10 23:41:52 +0100 <monochrom> Yes, I was waiting for you to set up an explicit homomorphism from [()] to "data N = Z | S N", and then the conclusion is OK.
2021-11-10 23:42:40 +0100 <yin> ^
2021-11-10 23:42:58 +0100finsternis(~X@23.226.237.192)
2021-11-10 23:43:54 +0100 <Axman6> type FatPeano = [()]
2021-11-10 23:44:49 +0100 <yin> @type [( )]
2021-11-10 23:44:50 +0100 <lambdabot> [()]
2021-11-10 23:47:40 +0100kupi(uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-10 23:51:20 +0100 <yin> can a compiler optimize something like `data L a = L a (Maybe (L a))` to `data L a = E a | N a (L a)` ?
2021-11-10 23:51:39 +0100 <sclv> kritzefitz: btw is this ticket germane to the discussion we were having this morning? https://github.com/haskell/cabal/issues/3586
2021-11-10 23:53:32 +0100 <Axman6> yin: no
2021-11-10 23:53:46 +0100 <yin> Axman6: could it, theretically?
2021-11-10 23:53:51 +0100 <Axman6> unboxed sum types might helkp though
2021-11-10 23:54:24 +0100 <Axman6> you''d end up with data L a = L a (#a|Void#) or something
2021-11-10 23:54:38 +0100 <Axman6> uh,
2021-11-10 23:54:55 +0100 <Axman6> data L a = L a (#L a|Void#)
2021-11-10 23:55:06 +0100 <Axman6> which... doesn't make sense I think
2021-11-10 23:55:21 +0100 <Axman6> that would lead to an infinitely sized L so no
2021-11-10 23:55:33 +0100 <hpc> rust does something like this, but it helps that rust is strict
2021-11-10 23:55:43 +0100 <Axman6> anyway, no - maybe it could but it doesn't. what would be the reason for doing that? Saving an indirection?
2021-11-10 23:56:09 +0100 <yin> yes, that's what i has in mind
2021-11-10 23:56:24 +0100 <yin> s/has/had
2021-11-10 23:56:42 +0100 <monochrom> Saves a little memory, "E 3" stores less than "L 3 Nothing".
2021-11-10 23:57:23 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2021-11-10 23:57:26 +0100 <yin> and all the Justs, i'm thinking
2021-11-10 23:57:29 +0100 <yin> n?
2021-11-10 23:57:45 +0100 <janus> another cabal-docspec success story: https://github.com/sol/doctest/issues/301#issuecomment-965818593 oh happy day
2021-11-10 23:57:56 +0100sagax(~sagax_nb@user/sagax)