2023/04/30

2023-04-30 00:02:50 +0000berberman(~berberman@user/berberman) (Quit: ZNC 1.8.2 - https://znc.in)
2023-04-30 00:04:18 +0000berberman(~berberman@user/berberman)
2023-04-30 00:05:13 +0000cheater(~Username@user/cheater)
2023-04-30 00:05:53 +0000cheater(~Username@user/cheater) (Read error: Connection reset by peer)
2023-04-30 00:08:06 +0000 <mmynsted[m]> I guess hard-coded into cabal. https://github.com/haskell/cabal/blob/3af1731c01c35614fd902ee5c1aec40f5587fde6/cabal-install/src/D…
2023-04-30 00:11:53 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds)
2023-04-30 00:13:27 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2023-04-30 00:21:22 +0000Albina_Pavlovna(~Albina_Pa@2603-7000-76f0-76e0-e9a1-4bc6-a339-90d3.res6.spectrum.com)
2023-04-30 00:28:00 +0000Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
2023-04-30 00:40:42 +0000harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2023-04-30 00:41:23 +0000shailangsa(~shailangs@host165-120-169-78.range165-120.btcentralplus.com) (Remote host closed the connection)
2023-04-30 00:45:26 +0000nate1(~nate@98.45.169.16)
2023-04-30 00:47:12 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-04-30 00:47:45 +0000cheater(~Username@user/cheater)
2023-04-30 00:50:09 +0000cheater(~Username@user/cheater) (Read error: Connection reset by peer)
2023-04-30 00:54:58 +0000cheater(~Username@user/cheater)
2023-04-30 01:05:50 +0000cheater(~Username@user/cheater) (Read error: Connection reset by peer)
2023-04-30 01:11:09 +0000albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-04-30 01:12:20 +0000Inst__(~Inst@2601:6c4:4081:54f0:9027:6f4:a9a6:93a0) (Ping timeout: 260 seconds)
2023-04-30 01:16:48 +0000gehmehgeh(~user@user/gehmehgeh)
2023-04-30 01:17:16 +0000albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-04-30 01:19:20 +0000gmg(~user@user/gehmehgeh) (Ping timeout: 240 seconds)
2023-04-30 01:21:25 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
2023-04-30 01:34:30 +0000harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2023-04-30 01:37:59 +0000 <talismanick> Oh, how I wish there was a standard math notation equivalent to <$>...
2023-04-30 01:40:08 +0000Nic(~Nic@c-24-127-33-212.hsd1.mi.comcast.net)
2023-04-30 01:43:48 +0000 <int-e> f <$> x = F(f)(x) where F is the functor in question?
2023-04-30 01:45:42 +0000Nic(~Nic@c-24-127-33-212.hsd1.mi.comcast.net) (Quit: Connection closed)
2023-04-30 01:47:03 +0000xff0x_(~xff0x@fsa056e3ab.kytj202.ap.nuro.jp)
2023-04-30 01:47:21 +0000 <monochrom> Since in math usually you have multiple functors flying around in the same equation, it may not be a good idea to call all of their fmaps the same name.
2023-04-30 01:48:40 +0000 <johnjaye> Diophantus called the unknown Ϛ, even if there were a dozen unknowns to solve for.
2023-04-30 01:48:48 +0000nate1(~nate@98.45.169.16) (Ping timeout: 248 seconds)
2023-04-30 01:52:12 +0000 <monochrom> Consider for example a natural transformation p from F to G. We already have some slack with "p . F h = G h . p" --- the two p's are of different types.
2023-04-30 01:52:45 +0000 <monochrom> Now imagine we further add <$> overloading and write "p . (h <$>) = (h <$>) . p" >:0
2023-04-30 01:57:47 +0000 <monochrom> Hrm let's code-golf that further!
2023-04-30 01:57:57 +0000 <monochrom> @pl \h -> p . fmap h
2023-04-30 01:57:58 +0000 <lambdabot> (p .) . fmap
2023-04-30 01:58:06 +0000 <monochrom> @pl \h -> fmap h . p
2023-04-30 01:58:07 +0000 <lambdabot> (. p) . fmap
2023-04-30 01:58:23 +0000 <monochrom> (p .) . fmap = (. p) . fmap
2023-04-30 01:58:30 +0000 <monochrom> This is profound. >:)
2023-04-30 01:58:47 +0000 <int-e> now replace (.) by fmap. Is it still true?
2023-04-30 01:59:08 +0000 <monochrom> I prefer replacing fmap by (.) hahaha
2023-04-30 01:59:19 +0000 <monochrom> "..."
2023-04-30 02:01:51 +0000 <monochrom> "Hi I saw on a blog f $ g $ x = f <$> g $ x so what's the difference between <$> and $?" >:)
2023-04-30 02:02:29 +0000 <int-e> <$> has more characters
2023-04-30 02:02:42 +0000 <monochrom> sharp edges :)
2023-04-30 02:02:54 +0000 <int-e> (if in doubt, answer such questions at the lexical level)
2023-04-30 02:05:06 +0000hgolden_(~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
2023-04-30 02:07:00 +0000hgolden(~hgolden@cpe-172-251-233-141.socal.res.rr.com)
2023-04-30 02:16:42 +0000bitmapper(uid464869@id-464869.lymington.irccloud.com)
2023-04-30 02:23:29 +0000ryantrinkle(~ryantrink@204.2.88.230) (Ping timeout: 246 seconds)
2023-04-30 02:29:33 +0000falafel(~falafel@2603-8000-d700-115c-557c-00d7-83ff-43f9.res6.spectrum.com)
2023-04-30 02:30:52 +0000slack1256(~slack1256@186.11.41.76)
2023-04-30 02:39:23 +0000Albina_Pavlovna(~Albina_Pa@2603-7000-76f0-76e0-e9a1-4bc6-a339-90d3.res6.spectrum.com) (Quit: ZZZzzz…)
2023-04-30 02:41:32 +0000 <ski> clearly `p_h' is a more suitable notation for `p_B . F h' / `G h . p_A'
2023-04-30 02:44:03 +0000 <ski> talismanick : any particular functor in mind ?
2023-04-30 02:44:15 +0000xff0x_(~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) (Ping timeout: 250 seconds)
2023-04-30 02:46:13 +0000xff0x_(~xff0x@fsa056e3ab.kytj202.ap.nuro.jp)
2023-04-30 02:46:49 +0000 <ski> (you could also write `(| p f ; h a |) : G B', if `(| f ; a |) : F A')
2023-04-30 02:48:16 +0000Square(~Square@user/square)
2023-04-30 02:50:38 +0000 <Square> Hey. I'm using ExistentialQuantification for a type : data Foo = forall a. Eq a => Foo a. How would I be able to make Foo derive Eq? In this example any cheat is ok, as long as its correct.
2023-04-30 02:51:55 +0000 <ski> `instance Eq Foo where _ == _ = True' should be okay, i think ?
2023-04-30 02:52:56 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds)
2023-04-30 02:53:14 +0000td_(~td@i53870937.versanet.de) (Ping timeout: 246 seconds)
2023-04-30 02:53:33 +0000slac19128(~slack1256@191.125.26.100)
2023-04-30 02:54:05 +0000 <Square> ski, looks like always True to me?
2023-04-30 02:54:09 +0000 <ski> the only think you can do with a value of type `Foo', when unpacking it, is to pass the internal value of type `a' (some hidden/forgotten/opaque/abstract/skolem type), *twice*, to `(==)' (or to `(/=)') (if we discount passing stuff like `undefined') .. and so we can't get any information out of a `Foo' value. so all values ought to count as equal
2023-04-30 02:54:14 +0000 <ski> Square : yes
2023-04-30 02:54:31 +0000 <ski> s/only think/only thing/
2023-04-30 02:55:07 +0000td_(~td@i53870931.versanet.de)
2023-04-30 02:55:31 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-04-30 02:55:46 +0000 <ski> so, it seems to me, this is the only sensible `Eq' instance you can make (however useless it is), for this type. if you allow changing the definition of `Foo', that's a different question, however ..
2023-04-30 02:55:49 +0000slack1256(~slack1256@186.11.41.76) (Ping timeout: 265 seconds)
2023-04-30 02:55:57 +0000 <int-e> ski: heh, I'm surprised that you didn't use ⦇ ⦈ there
2023-04-30 02:56:09 +0000 <ski> .. although, perhaps a better question would be : what are you trying to achieve here ?
2023-04-30 02:56:52 +0000 <ski> int-e : i was following suit with the Haskell-like syntax
2023-04-30 03:00:49 +0000 <ski> (i've also used that ascii approximation before, in this context, in the channel)
2023-04-30 03:00:54 +0000 <Square> ski, I have "form" descriptions. Some select type fields have enum like field types. like 'data Field = forall a. FInt | Choice (Set a) | ...' and then 'type Form = [Field]'
2023-04-30 03:01:20 +0000 <Square> sorry
2023-04-30 03:01:32 +0000 <Square> data Field = forall a. Eq a => FInt | Choice (Set a) | ...
2023-04-30 03:02:10 +0000 <Square> (really i was hoping on mashing more fields into the Choice type to support some sort of unpacking.)
2023-04-30 03:02:24 +0000 <ski> i presume you meant to attach that `forall a. Eq a =>' to the `Choice' data constructor
2023-04-30 03:02:36 +0000 <Square> yeah.. i guess i can move it
2023-04-30 03:03:22 +0000 <ski> how do you intend to use this set alternative of a field ?
2023-04-30 03:04:19 +0000 <ski> mashing them into it, how, in what sense ?
2023-04-30 03:04:26 +0000xff0x_(~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) (Ping timeout: 246 seconds)
2023-04-30 03:04:26 +0000 <Square> a) for Generic type matches. b) to render field and read field input.
2023-04-30 03:04:51 +0000jero98772(~jero98772@2800:484:1d84:9000::2) (Remote host closed the connection)
2023-04-30 03:04:51 +0000 <ski> (also, is `FInt' intended to take any payload ? like maybe an `Int' or something ?)
2023-04-30 03:05:09 +0000 <Square> its just field definition, not the actual input.
2023-04-30 03:05:20 +0000 <Square> on "FInt"
2023-04-30 03:05:43 +0000 <ski> mhm
2023-04-30 03:05:51 +0000 <Square> The Set of Choice are the possible options
2023-04-30 03:06:20 +0000 <ski> it seems there's very little you can do with your value of type `Set a', with `a' unknown, and only `Eq a' known about it
2023-04-30 03:06:39 +0000 <ski> you could call `size :: Set a -> Int' on it, i suppose
2023-04-30 03:07:11 +0000 <Square> I simplified the description of the problem here to make it clearer.
2023-04-30 03:07:32 +0000 <ski> unfortunately, the simplification was too radical
2023-04-30 03:07:39 +0000 <Square> Hashable?
2023-04-30 03:08:24 +0000 <ski> i'm assuming you're still thinking about `Eq Field' ? or some other class than `Eq' ?
2023-04-30 03:08:50 +0000 <Square> correct
2023-04-30 03:09:37 +0000 <Square> Eq seems to be the problematic one as it takes 2 arguments to ==
2023-04-30 03:09:39 +0000 <ski> perhaps some sample set example would help to see what you're after modelling
2023-04-30 03:10:35 +0000ryantrinkle(~ryantrink@204.2.88.230)
2023-04-30 03:10:49 +0000 <ski> yea, the problem is that if you have two `Field's, and both happen to be of the `Choice' alternative, then there's no guarantee they'll be using the same unknown type `a'. in fact, since you can't rely on that, you must assume that they are not
2023-04-30 03:12:11 +0000 <ski> (if you had added `Typeable a' to the set of constraints on `a', then you could probably compare the types, at least if the sets were non-empty .. but it's not obvious this is the correct way forward)
2023-04-30 03:12:15 +0000 <Square> Gotcha. I was hoping you could produce some hash of both and use that for equality.
2023-04-30 03:13:13 +0000 <Square> I got Typeable on them and I compare types. But yeah. The actual values aren't comparable atm.
2023-04-30 03:14:14 +0000berberman(~berberman@user/berberman) (Ping timeout: 246 seconds)
2023-04-30 03:14:33 +0000 <ski> what else, apart from calling operations that require `Eq', do you want to do with `Field's ?
2023-04-30 03:18:16 +0000merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
2023-04-30 03:18:22 +0000 <Square> Show..., maybe some To/FromJSON. Also for the Choice fields, I want Read for the actual type.
2023-04-30 03:18:26 +0000 <ski> hmm. you mentioned generic type matches, as well as rendering fields and reading inputs corresponding to them. i dunno what you mean by the former, and have only a vague idea of what you may mean by the latter
2023-04-30 03:18:49 +0000 <ski> `Read', but not, say, `Show' ?
2023-04-30 03:20:04 +0000 <ski> also `Read' sounds like it would be more important, when constructing `Field's, than when deconstructing them
2023-04-30 03:20:18 +0000 <Square> data Field = FInt | forall a. (Eq a, Show a, Typeable a, Read a, Ord a) => Choice a deriving (Show, Eq).
2023-04-30 03:20:28 +0000 <Square> would be more like it
2023-04-30 03:20:39 +0000 <ski> (`Ord a' implies `Eq a', btw)
2023-04-30 03:20:54 +0000 <Square> oh? i did not know.
2023-04-30 03:21:05 +0000 <ski> @src Ord
2023-04-30 03:21:05 +0000 <lambdabot> class (Eq a) => Ord a where
2023-04-30 03:21:05 +0000 <lambdabot> compare :: a -> a -> Ordering
2023-04-30 03:21:05 +0000 <lambdabot> (<), (<=), (>), (>=) :: a -> a -> Bool
2023-04-30 03:21:06 +0000 <lambdabot> max, min :: a -> a -> a
2023-04-30 03:21:42 +0000 <Square> Ord require Eq so to speak.
2023-04-30 03:21:49 +0000 <ski> yep
2023-04-30 03:23:01 +0000 <ski> (so `(Eq a,Ord a)' amounts to the same thing as `Ord a', it's just the former is wordier (and maybe slightly less efficient .. dunno whether GHC would just remove implied constraints from the code))
2023-04-30 03:23:24 +0000 <Square> gotcha.
2023-04-30 03:24:42 +0000 <ski> how would you render fields ? (and was the input reading means to be done in tandem to that ?)
2023-04-30 03:24:46 +0000 <Square> I'm mentally sketching here for an idea I'm not 100% it will work out. I was thinking I could provide a "Eq a" for Choice through hashable, but maybe I need to dumb it down with strings or something.
2023-04-30 03:25:40 +0000 <ski> i'm still wondering why `forall a. (..a..) => Choice (Set a)' would be preferable over `Choice Int' (the `Int' being the `size' of the set in question)
2023-04-30 03:26:39 +0000 <ski> what information would you like to be able to get out of the set, that's not captured by the size of the set ? .. i suspect the rendering of the field comes in play here
2023-04-30 03:27:13 +0000 <Square> case fld of ; Choice set -> fmap render set. And that would require some sort of 'Render a => Choice (Set a)'
2023-04-30 03:28:04 +0000 <ski> also, what are specific candidate types, which `a' could possibly be ?
2023-04-30 03:28:09 +0000 <Square> Q: "i'm still wondering why `forall a. (..a..)..." A: Cause "a" can be wildly different between Choice fields
2023-04-30 03:28:56 +0000 <Square> I'm thinking no-arg sum types. Enum?
2023-04-30 03:29:27 +0000 <ski> a single such type ? or multiple ones ?
2023-04-30 03:29:38 +0000mncheck-m(~mncheck@193.224.205.254) (Ping timeout: 246 seconds)
2023-04-30 03:30:08 +0000 <Square> Multiple... 100s of different.
2023-04-30 03:33:20 +0000 <Square> That's why its important I get the Eq implementation correct. I need to be able to tell if fld1 == fld2.
2023-04-30 03:34:29 +0000 <ski> and if two sets use different enumeration types, they're to be considered definitely different sets ?
2023-04-30 03:34:30 +0000 <Square> Choice (Set.fromList [A1,A2]) /= Choice (Set.fromList [B1,B2])
2023-04-30 03:34:53 +0000 <Square> exactly
2023-04-30 03:34:55 +0000 <ski> (the answer to that question isn't obviously "yes")
2023-04-30 03:35:36 +0000 <Square> maybe not, but for me its important.
2023-04-30 03:36:02 +0000 <ski> i guess you may want to use `Typeable', then
2023-04-30 03:36:55 +0000 <ski> you should be able to use `cast' to convert one set into (statically) having the same type as the other one (in case the types are indeed the same)
2023-04-30 03:38:59 +0000 <ski> @type let hetEqSet :: (Typeable a,Typeable b,Eq a,Eq b) => S.Set a -> S.Set b -> Bool; hetEqSet sa sb = case cast sa of Nothing -> False; Just sa -> sa == sb in hetEqSet
2023-04-30 03:39:00 +0000 <lambdabot> (Typeable a, Typeable b, Eq a, Eq b) => S.Set a -> S.Set b -> Bool
2023-04-30 03:39:33 +0000 <Square> sweet!
2023-04-30 03:39:41 +0000 <Square> That looks helpful
2023-04-30 03:40:08 +0000 <ski> (you may still run into other difficulties with the existential, mind)
2023-04-30 03:41:07 +0000 <ski> (of course, nothing in the code of that `hetEqSet' is specific to it handling sets .. but that's the situation you had, so)
2023-04-30 03:41:07 +0000 <Square> I know I know. It's not good form. But yeah, in this case the total type isn't that important.
2023-04-30 03:41:26 +0000zmt00(~zmt00@user/zmt00)
2023-04-30 03:41:38 +0000 <Square> ski, thanks a bunch for helping me think along. Much appreciated.
2023-04-30 03:42:14 +0000 <ski> i'm still not convinced using existentials like this, or using `Typeable' here (in case the existential is warranted), is sensible
2023-04-30 03:42:50 +0000 <ski> but you may explore this option further down the road a bit, and perhaps discover some other roadblock later .. or not
2023-04-30 03:45:00 +0000 <Square> what would you suggest instead? Note these flds will be part of tree like structures. A HList like type would be too. Encoding the Choice values to common type would ofcourse be an approach.
2023-04-30 03:45:28 +0000 <ski> i still only have a quite vague idea of what you're really doing, so it's hard to say
2023-04-30 03:45:44 +0000nate1(~nate@98.45.169.16)
2023-04-30 03:45:54 +0000 <Square> yeah. ill try this and we'll see. Thanks a bunch.
2023-04-30 03:46:17 +0000 <ski> have fun
2023-04-30 03:46:31 +0000slac19128slack1256
2023-04-30 03:50:07 +0000nate1(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2023-04-30 03:50:37 +0000nattiestnate(~nate@202.138.250.62) (Quit: WeeChat 3.8)
2023-04-30 03:52:52 +0000merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
2023-04-30 03:53:42 +0000 <ski> ("Eq seems to be the problematic one as it takes 2 arguments to ==" -- btw, this echoes problems with "binary methods" in OO -- not too surprisingly, since OO can be thought of in terms of existentials)
2023-04-30 04:05:20 +0000Square(~Square@user/square) (Ping timeout: 246 seconds)
2023-04-30 04:07:26 +0000falafel(~falafel@2603-8000-d700-115c-557c-00d7-83ff-43f9.res6.spectrum.com) (Ping timeout: 246 seconds)
2023-04-30 04:17:34 +0000ddellacosta(~ddellacos@143.244.47.73) (Ping timeout: 252 seconds)
2023-04-30 04:26:18 +0000berberman(~berberman@user/berberman)
2023-04-30 04:40:19 +0000szkl(uid110435@id-110435.uxbridge.irccloud.com)
2023-04-30 04:43:02 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2023-04-30 04:55:36 +0000berberman(~berberman@user/berberman) (Remote host closed the connection)
2023-04-30 04:55:56 +0000berberman(~berberman@user/berberman)
2023-04-30 05:12:43 +0000bilegeek(~bilegeek@2600:1008:b06c:a5bb:d8ca:a8ce:a1a:8895)
2023-04-30 05:25:52 +0000trev(~trev@user/trev)
2023-04-30 05:29:20 +0000JScript(~JScript@144.48.39.18) (Ping timeout: 246 seconds)
2023-04-30 05:36:04 +0000sgarcia_(sgarcia@swarm.znchost.com) (Quit: Hosted by www.ZNCHost.com)
2023-04-30 05:39:14 +0000sgarcia(sgarcia@swarm.znchost.com)
2023-04-30 05:42:36 +0000wroathe(~wroathe@user/wroathe) (Quit: leaving)
2023-04-30 05:44:37 +0000JScript(~JScript@45.248.77.142)
2023-04-30 05:46:53 +0000slack1256(~slack1256@191.125.26.100) (Remote host closed the connection)
2023-04-30 05:48:43 +0000merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
2023-04-30 05:53:50 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2023-04-30 05:53:50 +0000ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2023-04-30 05:53:50 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2023-04-30 05:53:51 +0000jpds2(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2023-04-30 05:53:59 +0000thegeekinside(~thegeekin@189.180.38.222)
2023-04-30 05:54:14 +0000jpds2(~jpds@gateway/tor-sasl/jpds)
2023-04-30 05:54:20 +0000ec(~ec@gateway/tor-sasl/ec)
2023-04-30 05:54:25 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-04-30 05:54:58 +0000gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2023-04-30 05:55:00 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-04-30 05:55:01 +0000chiselfuse(~chiselfus@user/chiselfuse) (Remote host closed the connection)
2023-04-30 05:55:27 +0000chiselfuse(~chiselfus@user/chiselfuse)
2023-04-30 05:55:44 +0000gehmehgeh(~user@user/gehmehgeh)
2023-04-30 06:04:08 +0000takuan(~takuan@178-116-218-225.access.telenet.be)
2023-04-30 06:07:09 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Quit: Lost terminal)
2023-04-30 06:07:54 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-04-30 06:15:01 +0000mei(~mei@user/mei) (Quit: mei)
2023-04-30 06:16:37 +0000mei(~mei@user/mei)
2023-04-30 06:21:04 +0000bilegeek(~bilegeek@2600:1008:b06c:a5bb:d8ca:a8ce:a1a:8895) (Quit: Leaving)
2023-04-30 06:22:14 +0000user363627(~user36362@146.70.198.100) (Ping timeout: 250 seconds)
2023-04-30 06:22:45 +0000merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2023-04-30 06:25:36 +0000jpds2(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2023-04-30 06:26:05 +0000jpds2(~jpds@gateway/tor-sasl/jpds)
2023-04-30 06:42:47 +0000szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2023-04-30 06:43:12 +0000acidjnk_new(~acidjnk@p200300d6e715c467d9596cc51d075b5b.dip0.t-ipconnect.de)
2023-04-30 06:43:54 +0000falafel(~falafel@2603-8000-d700-115c-a14b-5f58-a067-9cc9.res6.spectrum.com)
2023-04-30 06:50:12 +0000azimut(~azimut@gateway/tor-sasl/azimut)
2023-04-30 06:50:56 +0000ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
2023-04-30 06:52:40 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2023-04-30 06:53:13 +0000ec(~ec@gateway/tor-sasl/ec)
2023-04-30 06:53:48 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-04-30 06:54:34 +0000stiell_(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2023-04-30 06:55:03 +0000stiell_(~stiell@gateway/tor-sasl/stiell)
2023-04-30 07:01:24 +0000ddellacosta(~ddellacos@146.70.168.100)
2023-04-30 07:06:56 +0000gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-04-30 07:11:51 +0000falafel(~falafel@2603-8000-d700-115c-a14b-5f58-a067-9cc9.res6.spectrum.com) (Remote host closed the connection)
2023-04-30 07:12:16 +0000falafel(~falafel@2603-8000-d700-115c-9d8a-36a2-86b0-529b.res6.spectrum.com)
2023-04-30 07:17:08 +0000falafel(~falafel@2603-8000-d700-115c-9d8a-36a2-86b0-529b.res6.spectrum.com) (Ping timeout: 246 seconds)
2023-04-30 07:22:18 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2023-04-30 07:22:19 +0000gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2023-04-30 07:22:27 +0000thegeekinside(~thegeekin@189.180.38.222) (Remote host closed the connection)
2023-04-30 07:22:52 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-04-30 07:23:03 +0000gehmehgeh(~user@user/gehmehgeh)
2023-04-30 07:24:46 +0000ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2023-04-30 07:25:07 +0000ec(~ec@gateway/tor-sasl/ec)
2023-04-30 07:34:08 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-04-30 07:46:56 +0000nate1(~nate@98.45.169.16)
2023-04-30 07:48:05 +0000neohtetxyz[m](~neohtetxy@2001:470:69fc:105::3:314c)
2023-04-30 07:50:46 +0000tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Remote host closed the connection)
2023-04-30 07:51:05 +0000tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
2023-04-30 07:51:47 +0000nate1(~nate@98.45.169.16) (Ping timeout: 246 seconds)
2023-04-30 07:53:31 +0000merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
2023-04-30 07:54:05 +0000econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2023-04-30 07:55:12 +0000gurkenglas(~gurkengla@dynamic-046-114-176-011.46.114.pool.telefonica.de)
2023-04-30 08:18:23 +0000jespada_(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: Textual IRC Client: www.textualapp.com)
2023-04-30 08:22:48 +0000czy(~user@host-140-24.ilcub310.champaign.il.us.clients.pavlovmedia.net) (Remote host closed the connection)
2023-04-30 08:25:39 +0000jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2023-04-30 08:27:08 +0000GerryH(~Brgaammin@p5b375702.dip0.t-ipconnect.de)
2023-04-30 08:33:59 +0000acidbong(6e5528b381@198.108.77.94)
2023-04-30 08:39:46 +0000_ht(~Thunderbi@82.174.52.28)
2023-04-30 08:46:29 +0000Inst(~Inst@2601:6c4:4081:54f0:7880:a3e7:2b04:1611)
2023-04-30 08:46:41 +0000trev(~trev@user/trev) (Quit: trev)
2023-04-30 08:51:51 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:d4d0:8bd2:d805:7ab6) (Remote host closed the connection)
2023-04-30 08:57:14 +0000merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
2023-04-30 08:57:47 +0000bontaq(~user@ool-45779b84.dyn.optonline.net) (Ping timeout: 250 seconds)
2023-04-30 09:03:34 +0000zeenk(~zeenk@2a02:2f04:a20f:5200::7fe)
2023-04-30 09:10:43 +0000Digitteknohippie(~user@user/digit)
2023-04-30 09:11:02 +0000Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
2023-04-30 09:11:35 +0000Digit(~user@user/digit) (Ping timeout: 246 seconds)
2023-04-30 09:15:47 +0000pyook(~puke@user/puke) (Ping timeout: 246 seconds)
2023-04-30 09:16:05 +0000merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
2023-04-30 09:16:13 +0000DigitteknohippieDigit
2023-04-30 09:16:27 +0000zmt01(~zmt00@user/zmt00)
2023-04-30 09:19:28 +0000zmt00(~zmt00@user/zmt00) (Ping timeout: 250 seconds)
2023-04-30 09:20:45 +0000merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2023-04-30 09:22:19 +0000 <Helle> hrm, is there a canonically reasonable tool for linting Haskell, other then both the compiler and hlint ?, trying to make sure I didn't make a complete mess before continuing, heh
2023-04-30 09:25:01 +0000 <geekosaur[m]> hlint is pretty much it
2023-04-30 09:25:40 +0000 <Helle> shame
2023-04-30 09:26:11 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-85e1-23ae-ea70-6ae4.rev.sfr.net) (Remote host closed the connection)
2023-04-30 09:26:13 +0000 <Helle> I mean the compiler gives more useful warnings then hlint for the most part (also surprised that hlint does not complain about bare imports)
2023-04-30 09:26:30 +0000 <[exa]> Helle: why would it complain when the compiler already complains?
2023-04-30 09:26:31 +0000Digitteknohippie(~user@user/digit)
2023-04-30 09:26:56 +0000 <jade[m]> hlint is integrated into HLS, right?
2023-04-30 09:26:56 +0000 <Helle> [exa]: because it generates nice reports
2023-04-30 09:27:12 +0000 <[exa]> ah.
2023-04-30 09:28:32 +0000 <geekosaur> HLS uses both pedantic compiler warnings and hlint, yes
2023-04-30 09:29:00 +0000Digit(~user@user/digit) (Ping timeout: 250 seconds)
2023-04-30 09:29:34 +0000 <mauke> (I like how what gcc calls "pedantic" warnings are the minimum diagnostics required by the C standard)
2023-04-30 09:29:37 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net)
2023-04-30 09:29:58 +0000 <Helle> mauke: don't get me started on other languages :P
2023-04-30 09:31:30 +0000DigitteknohippieDigit
2023-04-30 09:38:42 +0000tzh(~tzh@24.21.73.154) (Quit: zzz)
2023-04-30 09:52:19 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:d4d0:8bd2:d805:7ab6)
2023-04-30 09:54:17 +0000GerryH(~Brgaammin@p5b375702.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-04-30 09:56:44 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:d4d0:8bd2:d805:7ab6) (Ping timeout: 246 seconds)
2023-04-30 09:57:01 +0000gehmehgehgmg
2023-04-30 10:13:10 +0000zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2023-04-30 10:24:51 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-04-30 10:29:27 +0000 <somerandomnick[m> a linter is more congruent with a language like python or typescript, where the philosophy is: different coders solving the same problem shall come up with the same code
2023-04-30 10:30:21 +0000 <somerandomnick[m> haskell philosophy is dual to that, hosting the many different EDSL
2023-04-30 10:30:26 +0000 <geekosaur> but the original `lint` was for C
2023-04-30 10:31:04 +0000jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds)
2023-04-30 10:31:25 +0000enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2023-04-30 10:31:57 +0000 <somerandomnick[m> I did not know that
2023-04-30 10:32:36 +0000 <somerandomnick[m> anyways in haskell, id rather have the type system "lint" for me
2023-04-30 10:33:12 +0000 <somerandomnick[m> also what would a linter know about balancing out pointfree with pointful style
2023-04-30 10:33:41 +0000 <mauke> the original lint was for C because the compiler couldn't typecheck function calls
2023-04-30 10:36:04 +0000xff0x_(~xff0x@fsa056e3ab.kytj202.ap.nuro.jp)
2023-04-30 10:42:08 +0000gurkenglas(~gurkengla@dynamic-046-114-176-011.46.114.pool.telefonica.de) (Ping timeout: 248 seconds)
2023-04-30 10:44:15 +0000GerryH(~Brgaammin@p5b375702.dip0.t-ipconnect.de)
2023-04-30 10:44:23 +0000Inst(~Inst@2601:6c4:4081:54f0:7880:a3e7:2b04:1611) (Ping timeout: 246 seconds)
2023-04-30 10:48:27 +0000enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2023-04-30 10:53:22 +0000L29Ah(~L29Ah@wikipedia/L29Ah) ()
2023-04-30 10:54:05 +0000erisco(~erisco@d24-141-66-165.home.cgocable.net) (Ping timeout: 240 seconds)
2023-04-30 10:55:07 +0000xff0x_(~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) (Ping timeout: 248 seconds)
2023-04-30 10:57:14 +0000xff0x_(~xff0x@fsa056e3ab.kytj202.ap.nuro.jp)
2023-04-30 11:08:41 +0000zeenk(~zeenk@2a02:2f04:a20f:5200::7fe) (Quit: Konversation terminated!)
2023-04-30 11:14:20 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2023-04-30 11:16:39 +0000merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
2023-04-30 11:19:23 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-04-30 11:20:10 +0000GerryH(~Brgaammin@p5b375702.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2023-04-30 11:41:17 +0000nate1(~nate@98.45.169.16)
2023-04-30 11:45:56 +0000nate1(~nate@98.45.169.16) (Ping timeout: 246 seconds)
2023-04-30 11:50:50 +0000merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
2023-04-30 11:53:41 +0000stallmanator(~stallmana@user/stallmanator)
2023-04-30 11:56:16 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-04-30 11:56:30 +0000titibandit(~titibandi@user/titibandit)
2023-04-30 11:56:59 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection)
2023-04-30 11:59:28 +0000xff0x_(~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) (Ping timeout: 248 seconds)
2023-04-30 12:00:32 +0000stiell_(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds)
2023-04-30 12:01:25 +0000xff0x_(~xff0x@fsa056e3ab.kytj202.ap.nuro.jp)
2023-04-30 12:06:27 +0000stiell_(~stiell@gateway/tor-sasl/stiell)
2023-04-30 12:06:51 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) (Remote host closed the connection)
2023-04-30 12:07:19 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net)
2023-04-30 12:08:11 +0000tremon(~tremon@83.80.159.219)
2023-04-30 12:12:18 +0000gawen(~gawen@user/gawen) (Quit: cya)
2023-04-30 12:13:39 +0000gawen(~gawen@user/gawen)
2023-04-30 12:15:42 +0000Joao003(~Joao003@2804:840:8311:b700:5c98:76bb:dd08:e1ad)
2023-04-30 12:17:33 +0000 <Joao003> Hello
2023-04-30 12:18:54 +0000 <[exa]> o/
2023-04-30 12:21:27 +0000 <Joao003> [exa]: What
2023-04-30 12:22:33 +0000 <[exa]> wait I'll wave with the other hand, hope you'll see it then
2023-04-30 12:22:35 +0000 <[exa]> \o
2023-04-30 12:22:53 +0000 <stallmanator> hi
2023-04-30 12:24:15 +0000 <Joao003> Oh
2023-04-30 12:26:19 +0000gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-04-30 12:26:21 +0000pyook(~puke@user/puke)
2023-04-30 12:26:55 +0000 <Helle> oooh, I'm already pushing the boundaries of the type system, always fun
2023-04-30 12:29:14 +0000 <Helle> I know I probably shouldn't be doing this
2023-04-30 12:29:27 +0000 <[exa]> Helle: traditionally I have to ask about what direction are you pushing, w.r.t. to the direction towards undecidability
2023-04-30 12:29:30 +0000 <[exa]> :D
2023-04-30 12:30:12 +0000 <Helle> [exa]: quite close, I am reminded that during my bachelor I found a bug in PostgreSQL's query planner that forced it to solve the halting planner
2023-04-30 12:30:20 +0000 <Helle> err, halting problem
2023-04-30 12:30:30 +0000 <Helle> that was fun when I finally realised why the query didn't work
2023-04-30 12:31:31 +0000 <Helle> let's see if I can phrase the question for this, and excuse my incorrect terminology, my Haskell is super rusty
2023-04-30 12:31:47 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-04-30 12:32:19 +0000 <[exa]> lol cool
2023-04-30 12:32:32 +0000 <Joao003> Halting Problem? Did you mean impossible?
2023-04-30 12:32:37 +0000 <Helle> Joao003: yes
2023-04-30 12:32:41 +0000 <Joao003> XD
2023-04-30 12:33:25 +0000 <Helle> it was also a bug in the query planner, it is supposed to be written in such a way that that never happens, but humans
2023-04-30 12:33:28 +0000 <Helle> anyway
2023-04-30 12:33:30 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection)
2023-04-30 12:35:28 +0000 <Helle> I have a variable of type Node, https://www.stackage.org/haddock/nightly-2023-04-28/xml-conduit-1.9.1.2/src/Text.XML.html#Node passed to a function, I need to work on only the ones of decomposed type Element and I want it to be an error (ideally a type error) to pass it any Node that has a different underlying type, I currently just pattern match it and pass back a Nothing, but ideally would like the type
2023-04-30 12:35:34 +0000 <Helle> system to help me and eliminate that
2023-04-30 12:36:47 +0000 <Joao003> Guys
2023-04-30 12:37:08 +0000 <Helle> but I am probably short some concept with the type declaration of the function
2023-04-30 12:37:18 +0000 <Helle> (as said, quite rusty)
2023-04-30 12:38:27 +0000 <Joao003> I just solved a kata in Codewars, and 4 people did the most clever thing possible: `Set.toList . Set.fromList` instead of `sort . nub`
2023-04-30 12:38:28 +0000 <[exa]> Helle: why not just go with Element?
2023-04-30 12:38:47 +0000pyook(~puke@user/puke) (Ping timeout: 246 seconds)
2023-04-30 12:39:38 +0000CiaoSen(~Jura@tmo-110-209.customers.d1-online.com)
2023-04-30 12:39:43 +0000 <Helle> [exa]: I didn't get to choose to be passed a Node (library function) instead of the Element
2023-04-30 12:39:51 +0000 <ncf> Joao003: nub doesn't need sorting
2023-04-30 12:40:41 +0000 <Joao003> ncf: It does
2023-04-30 12:40:50 +0000 <Joao003> Because of the kata's objective
2023-04-30 12:41:08 +0000 <ncf> ah, you're sorting after nub
2023-04-30 12:41:17 +0000 <[exa]> Helle: then you probably can't typecheck it easily, you'd need to decompose the library function to have the top of the structure represented in types
2023-04-30 12:41:49 +0000ft(~ft@p4fc2a88b.dip0.t-ipconnect.de) (Remote host closed the connection)
2023-04-30 12:42:15 +0000 <[exa]> (or at least annotated in types, but for that I guess there won't be enough polymorphism)
2023-04-30 12:42:43 +0000 <Helle> [exa]: yeah, I got the feeling that that would be the case
2023-04-30 12:43:20 +0000 <[exa]> (generally, valuechecking by types is hard)
2023-04-30 12:43:56 +0000 <Helle> mhm
2023-04-30 12:44:05 +0000 <Joao003> ncf: The objective of that kata was to get the longest lexicographically sorted string pulling characters from two input strings
2023-04-30 12:44:23 +0000 <Joao003> With distinct characters
2023-04-30 12:44:52 +0000 <[exa]> Helle: otoh you can easily patternmatch on the result and have a relatively sane error handling if not
2023-04-30 12:45:07 +0000Alex_test(~al_test@178.34.150.15) (Quit: ;-)
2023-04-30 12:45:28 +0000 <Helle> [exa]: yeah, but I can't have compile time checking in that case, right ?
2023-04-30 12:45:29 +0000AlexZenon(~alzenon@178.34.150.15) (Quit: ;-)
2023-04-30 12:45:53 +0000AlexNoo(~AlexNoo@178.34.150.15) (Quit: Leaving)
2023-04-30 12:45:56 +0000 <[exa]> Helle: yeah, I kinda guess you're trying to push the typechecker into doing input validation for you
2023-04-30 12:46:27 +0000 <Helle> [exa]: not even
2023-04-30 12:46:49 +0000 <Helle> although good point, that is why the issue exists
2023-04-30 12:47:01 +0000 <Helle> because the pattern is quite similar to that
2023-04-30 12:47:08 +0000pyook(~puke@user/puke)
2023-04-30 12:47:11 +0000 <[exa]> anyway in cases like this I usually just go for some shortcirtuiting monad like a Maybe that shortcuts when the patternmatch fails
2023-04-30 12:48:32 +0000 <[exa]> e.g. you can have the error handled literally by `x <- element input` where element returns `Maybe Element`
2023-04-30 12:48:45 +0000 <Helle> yep
2023-04-30 12:48:58 +0000 <Helle> literally what it does right now
2023-04-30 12:49:14 +0000 <Helle> (otoh, the underlying type in this case is knowable, but I seem to remember the type checker being forgetful on purpose in cases like this, gah, you are making me actually require some stuff I studied)
2023-04-30 12:50:02 +0000 <Joao003> Oh no
2023-04-30 12:50:34 +0000 <Helle> (Trying to recall if it was a performance choice, or for the exact same reason as why I bugged out the PostgreSQL query planner.....)
2023-04-30 12:50:42 +0000 <Joao003> In the Haskell solutions for a Kata in Codewars, someone didn't know about currying nor `id` XD
2023-04-30 12:50:51 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) (Remote host closed the connection)
2023-04-30 12:51:13 +0000 <Helle> Joao003: I mean
2023-04-30 12:51:23 +0000alexherbo2(~alexherbo@211.190.65.81.rev.sfr.net)
2023-04-30 12:51:24 +0000 <Helle> never blame someone for still solving it
2023-04-30 12:51:31 +0000Hellelooks at how bad her current code is
2023-04-30 12:52:17 +0000 <Joao003> Take a look at it for yourself
2023-04-30 12:53:21 +0000ft(~ft@p4fc2a88b.dip0.t-ipconnect.de)
2023-04-30 12:53:25 +0000 <Joao003> https://paste.tomsmeding.com/PELz6Ja5
2023-04-30 12:53:29 +0000 <[exa]> Helle: anyway yeah the "forgetting" of the structure may be a blocker there, it's beneficial for keeping stuff simple for the compiler but you see, problems.
2023-04-30 12:54:47 +0000 <[exa]> Helle: it might be nicer if e.g. the package allowed you to pass in a functor or an applicative or so, you might then force it to remember stuff using say `MyFunctor Element a`
2023-04-30 12:55:05 +0000 <[exa]> but that gets unwieldy for the package implementors...
2023-04-30 12:57:43 +0000 <Helle> yep
2023-04-30 12:58:34 +0000 <Hecate> not using `id` means that you've spent too much time in your code and need to take a step back
2023-04-30 12:58:35 +0000 <Helle> anyway, I am enjoying running into limits and them turning out to be actual limitations, that shows that I atleast have some grasp of this :)
2023-04-30 13:01:32 +0000 <Helle> also, just remembered, I can make it hit an.... error
2023-04-30 13:01:46 +0000 <Helle> but I think I can produce a more userfriendly instructing some yelling at a dev
2023-04-30 13:03:51 +0000euandreh(~Thunderbi@189.6.18.7) (Ping timeout: 265 seconds)
2023-04-30 13:05:18 +0000 <Hecate> :D
2023-04-30 13:11:02 +0000 <Helle> (the only failure cases would be am incompatible library update, or new code that does incorrect stuff)w
2023-04-30 13:11:02 +0000 <stallmanator> does the let keyword do anything differently or is it just syntactic sugar?
2023-04-30 13:11:58 +0000xff0x_(~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) (Ping timeout: 276 seconds)
2023-04-30 13:12:40 +0000L29Ah(~L29Ah@wikipedia/L29Ah)
2023-04-30 13:13:40 +0000xff0x_(~xff0x@fsa056e3ab.kytj202.ap.nuro.jp)
2023-04-30 13:14:17 +0000GerryH(~Brgaammin@p5b375702.dip0.t-ipconnect.de)
2023-04-30 13:14:46 +0000 <Joao003> Who uses `let ... in` outside of GHCI?
2023-04-30 13:15:45 +0000CiaoSen(~Jura@tmo-110-209.customers.d1-online.com) (Ping timeout: 240 seconds)
2023-04-30 13:16:05 +0000 <ski> stallmanator : `let' is not syntactic sugar
2023-04-30 13:16:27 +0000 <ski> (and differently from what ?)
2023-04-30 13:17:11 +0000 <stallmanator> the book I'm reading compares let x = 1 to x = 1
2023-04-30 13:17:32 +0000 <ski> where ?
2023-04-30 13:18:24 +0000 <stallmanator> the part where it introduces let
2023-04-30 13:18:31 +0000ski's also delightfully surprised this use of monospace is not terminated by "clear all attributes"
2023-04-30 13:18:54 +0000 <ski> stallmanator : no, i mean, in which context is the book considering those two program fragments ?
2023-04-30 13:20:02 +0000 <ski> are those being placed as commands in a `do', as defining equations in a `where', in the top-level of a module (after its `where'), in the interactor (like GHCi), &c. ?
2023-04-30 13:20:02 +0000gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2023-04-30 13:20:49 +0000gmg(~user@user/gehmehgeh)
2023-04-30 13:20:51 +0000 <stallmanator> I'm yet to encounter where but yes I think it's talking in context of ghci
2023-04-30 13:21:43 +0000myme(~myme@2a01:799:d60:e400:d3f8:a1c2:97a0:2fb) (Ping timeout: 260 seconds)
2023-04-30 13:21:46 +0000 <ski> ok. in *that* specific context, you can leave out the `let' (so the form without `let' could be seen as syntactic sugar)
2023-04-30 13:22:19 +0000 <Joao003> stallmanator: Have you seen `let ... in` yet?
2023-04-30 13:22:22 +0000 <stallmanator> I see, well really thanks help for the help :)
2023-04-30 13:22:23 +0000 <ski> (in other contexts, either the `let' is required, or it's not allowed)
2023-04-30 13:22:29 +0000 <stallmanator> Joao003: yeah I found the wiki page on hackage
2023-04-30 13:22:35 +0000myme(~myme@2a01:799:d60:e400:62e6:cfdd:2547:9938)
2023-04-30 13:23:04 +0000 <stallmanator> oh sorry my bad: https://wiki.haskell.org/Let_vs._Where this page
2023-04-30 13:23:24 +0000AlexNoo(~AlexNoo@178.34.150.15)
2023-04-30 13:23:28 +0000 <stallmanator> I heard hackage somewhere and it's been stuck in my head because sounds like a pretty cool name :)
2023-04-30 13:24:13 +0000 <ski> @where hackage
2023-04-30 13:24:14 +0000 <lambdabot> <http://hackage.haskell.org/packages>, also see `revdeps',`status'
2023-04-30 13:24:20 +0000AlexZenon(~alzenon@178.34.150.15)
2023-04-30 13:25:19 +0000 <mauke> @where revdeps
2023-04-30 13:25:19 +0000 <lambdabot> <http://packdeps.haskellers.com/reverse>,<http://packdeps.haskellers.com/>,<http://www.yesodweb.com/blog/2011/02/reverse-packdeps>
2023-04-30 13:25:25 +0000 <mauke> @where status
2023-04-30 13:25:26 +0000 <lambdabot> <https://status.haskell.org>,<http://auto-status.haskell.org/>,<https://twitter.com/haskellstatus>
2023-04-30 13:27:59 +0000Alex_test(~al_test@178.34.150.15)
2023-04-30 13:31:51 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-04-30 13:35:09 +0000 <somerandomnick[m> ski: does it help the compiler to utilize referential transparency, to avoid re-evaluation?
2023-04-30 13:35:28 +0000 <ski> "it" being ?
2023-04-30 13:35:52 +0000 <Joao003> Is there a non-inclusive `enumFromTo`?
2023-04-30 13:36:04 +0000 <ski> not that i'm aware of
2023-04-30 13:36:20 +0000 <ski> > range (0,9)
2023-04-30 13:36:22 +0000 <lambdabot> [0,1,2,3,4,5,6,7,8,9]
2023-04-30 13:36:57 +0000 <int-e> ski: I've had so many off-by-one errors because of that
2023-04-30 13:37:10 +0000 <ski> `range' or `enumFromTo' ?
2023-04-30 13:37:14 +0000 <int-e> range
2023-04-30 13:38:04 +0000 <ski> > range ((0,2),(3,3))
2023-04-30 13:38:06 +0000 <lambdabot> [(0,2),(0,3),(1,2),(1,3),(2,2),(2,3),(3,2),(3,3)]
2023-04-30 13:38:59 +0000acidjnk(~acidjnk@p200300d6e715c46789327d173b2333a9.dip0.t-ipconnect.de)
2023-04-30 13:39:05 +0000 <int-e> . o O ( >>> list(range(0,9)) --> [0, 1, 2, 3, 4, 5, 6, 7, 8] )
2023-04-30 13:39:22 +0000 <ski> Python ?
2023-04-30 13:39:30 +0000 <int-e> Yes.
2023-04-30 13:39:44 +0000titibandit(~titibandi@user/titibandit) (Remote host closed the connection)
2023-04-30 13:40:00 +0000 <int-e> And recently, Rust.
2023-04-30 13:40:25 +0000 <int-e> Which has a 0..9 syntax for an iterator over 0,1,...,8 and 0..=9 for 0,1,...,9
2023-04-30 13:40:27 +0000acidjnk_new(~acidjnk@p200300d6e715c467d9596cc51d075b5b.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-04-30 13:40:48 +0000 <int-e> hmm, well, technically it's a range and it auto-converts into an iterator for loops
2023-04-30 13:42:26 +0000 <ski> i'm guessing it doesn't do multi-dimensional ranges
2023-04-30 13:42:32 +0000 <ski> hmm
2023-04-30 13:42:57 +0000coot_(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-04-30 13:46:06 +0000coot_(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Client Quit)
2023-04-30 13:47:25 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-04-30 13:47:31 +0000merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
2023-04-30 13:47:44 +0000 <Joao003> > enumFromTo "aa" "zz"
2023-04-30 13:47:46 +0000 <lambdabot> error:
2023-04-30 13:47:46 +0000 <lambdabot> • No instance for (Enum [Char]) arising from a use of ‘enumFromTo’
2023-04-30 13:47:46 +0000 <lambdabot> • In the expression: enumFromTo "aa" "zz"
2023-04-30 13:48:14 +0000 <Joao003> > enumFromTo ('a', 'a') ('z', 'z')
2023-04-30 13:48:15 +0000 <lambdabot> error:
2023-04-30 13:48:15 +0000 <lambdabot> • No instance for (Enum (Char, Char))
2023-04-30 13:48:15 +0000 <lambdabot> arising from a use of ‘enumFromTo’
2023-04-30 13:49:08 +0000Luj(~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb) (Quit: The Lounge - https://thelounge.chat)
2023-04-30 13:49:21 +0000 <geekosaur> there's at least two possible definitions for that
2023-04-30 13:49:37 +0000 <probie> > join (liftM2 (\x y -> [x,y])) (enumFromTo 'a' 'z')
2023-04-30 13:49:39 +0000 <lambdabot> ["aa","ab","ac","ad","ae","af","ag","ah","ai","aj","ak","al","am","an","ao",...
2023-04-30 13:49:39 +0000 <geekosaur> better to implement the one you want yourself
2023-04-30 13:49:59 +0000 <ski> total order (lexicographic) vs. partial order
2023-04-30 13:50:13 +0000 <int-e> Oh, the range *is* the iterator; it updates the start of the range as you iterate. So with that design it really can't do multi-dimensional ranges. A different design of the library could...
2023-04-30 13:50:45 +0000 <int-e> It's all apples and oranges, of course.
2023-04-30 13:50:53 +0000 <ski> > replicateM 2 ['a' .. 'z']
2023-04-30 13:50:55 +0000 <lambdabot> ["aa","ab","ac","ad","ae","af","ag","ah","ai","aj","ak","al","am","an","ao",...
2023-04-30 13:51:03 +0000Luj(~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb)
2023-04-30 13:54:46 +0000 <Joao003> Who here hates list comprehensions?
2023-04-30 13:55:19 +0000 <Joao003> And how is `map` defined?
2023-04-30 13:55:22 +0000 <Joao003> @src map
2023-04-30 13:55:22 +0000 <lambdabot> map _ [] = []
2023-04-30 13:55:22 +0000 <lambdabot> map f (x:xs) = f x : map f xs
2023-04-30 13:55:26 +0000 <Joao003> Cool.
2023-04-30 13:55:33 +0000 <int-e> (it's a lie)
2023-04-30 13:55:53 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:d4d0:8bd2:d805:7ab6)
2023-04-30 13:56:08 +0000 <Joao003> So it's actually `map f xs = [f x | x <- xs]`?
2023-04-30 13:57:27 +0000 <int-e> No. In fact, GHC.Base does contain that code verbatim. But most of the time, the compiler will rewrite `map f xs` to something else to enable list fusion.
2023-04-30 13:57:28 +0000 <Joao003> The difference between `foldl` and `foldr` can be annoying at times, specifically the folding function's arguments swapping
2023-04-30 13:58:06 +0000 <int-e> And list fusion in turn is essential for making list comprehension not suck.
2023-04-30 13:58:06 +0000 <Joao003> > foldl (-) [5..1]
2023-04-30 13:58:08 +0000 <lambdabot> error:
2023-04-30 13:58:08 +0000 <lambdabot> • No instance for (Num [Integer]) arising from a use of ‘e_151’
2023-04-30 13:58:08 +0000 <lambdabot> • In the expression: e_151
2023-04-30 13:58:18 +0000 <Joao003> > foldl (-) 0 [5..1]
2023-04-30 13:58:18 +0000Me-me(~Me-me@user/me-me) (Quit: Something has gone terribly, terribly wrong, that being that I'm not here any more.)
2023-04-30 13:58:19 +0000 <lambdabot> 0
2023-04-30 13:58:26 +0000 <int-e> > [5..1]
2023-04-30 13:58:28 +0000 <lambdabot> []
2023-04-30 13:58:32 +0000 <Joao003> > foldl (-) 0 [1..5]
2023-04-30 13:58:35 +0000 <lambdabot> -15
2023-04-30 13:58:41 +0000 <Joao003> > foldr (-) 0 [1..5]
2023-04-30 13:58:44 +0000 <lambdabot> 3
2023-04-30 13:58:46 +0000 <Joao003> Ugh
2023-04-30 13:58:58 +0000 <int-e> Joao003: you can message lambdabot privately too
2023-04-30 13:59:29 +0000 <Joao003> It became 1-(2-(3-(4-(5-0))))
2023-04-30 13:59:42 +0000 <int-e> of course
2023-04-30 13:59:59 +0000 <geekosaur> easy to remember what foldr does, it replaces , with the operator/function and [] with the base case
2023-04-30 14:00:02 +0000 <Joao003> > foldr (flip (-)) 0 [1..5]
2023-04-30 14:00:02 +0000 <int-e> (what did you expect?)
2023-04-30 14:00:04 +0000 <lambdabot> -15
2023-04-30 14:00:27 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:d4d0:8bd2:d805:7ab6) (Ping timeout: 260 seconds)
2023-04-30 14:00:44 +0000 <Joao003> > scanl (*) 1 [1..10]
2023-04-30 14:00:46 +0000 <lambdabot> [1,1,2,6,24,120,720,5040,40320,362880,3628800]
2023-04-30 14:00:49 +0000 <Joao003> Factorials
2023-04-30 14:01:02 +0000 <geekosaur> sorry replaces (:), you need to look at it in (:) form (the actual list) to understand it
2023-04-30 14:01:22 +0000 <probie> > foldr subtract 0 [1..5]
2023-04-30 14:01:27 +0000 <lambdabot> -15
2023-04-30 14:01:36 +0000 <int-e> > fix (scanl (+) 0 . (1:))
2023-04-30 14:01:38 +0000 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,...
2023-04-30 14:01:46 +0000 <Joao003> > 1:2:3:4:[5]
2023-04-30 14:01:47 +0000 <lambdabot> [1,2,3,4,5]
2023-04-30 14:02:11 +0000 <geekosaur> > 1:2:3:4:5:[]
2023-04-30 14:02:13 +0000 <lambdabot> [1,2,3,4,5]
2023-04-30 14:02:43 +0000 <Joao003> > let snoc = reverse . (:) . reverse in foldl snoc [] [1..5]
2023-04-30 14:02:45 +0000 <lambdabot> error:
2023-04-30 14:02:45 +0000 <lambdabot> • Couldn't match type ‘[[a2]] -> [[a2]]’ with ‘[a3]’
2023-04-30 14:02:45 +0000 <lambdabot> Expected type: [a2] -> [a3]
2023-04-30 14:02:49 +0000xff0x_(~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) (Ping timeout: 252 seconds)
2023-04-30 14:02:55 +0000 <Joao003> > let snoc = reverse . (:) . reverse in foldr snoc [] [1..5]
2023-04-30 14:02:57 +0000 <lambdabot> error:
2023-04-30 14:02:57 +0000 <lambdabot> • Couldn't match type ‘[[a2]] -> [[a2]]’ with ‘[a3]’
2023-04-30 14:02:57 +0000 <lambdabot> Expected type: [a2] -> [a3]
2023-04-30 14:03:03 +0000 <int-e> Joao003: please experiment somewhere else
2023-04-30 14:03:12 +0000pyooque(~puke@user/puke)
2023-04-30 14:03:12 +0000pukeGuest8720
2023-04-30 14:03:12 +0000Guest8720(~puke@user/puke) (Killed (copper.libera.chat (Nickname regained by services)))
2023-04-30 14:03:12 +0000pyooquepuke
2023-04-30 14:03:49 +0000puke(~puke@user/puke) (Max SendQ exceeded)
2023-04-30 14:04:42 +0000xff0x_(~xff0x@fsa056e3ab.kytj202.ap.nuro.jp)
2023-04-30 14:05:05 +0000puke(~puke@user/puke)
2023-04-30 14:05:52 +0000alexherbo2(~alexherbo@211.190.65.81.rev.sfr.net) (Remote host closed the connection)
2023-04-30 14:05:52 +0000puke(~puke@user/puke) (Max SendQ exceeded)
2023-04-30 14:07:05 +0000puke(~puke@user/puke)
2023-04-30 14:07:31 +0000 <int-e> @pl \x xs -> reverse (x : reverse xs)
2023-04-30 14:07:32 +0000 <lambdabot> (reverse .) . (. reverse) . (:)
2023-04-30 14:07:42 +0000 <int-e> (almost pretty)
2023-04-30 14:08:34 +0000chomwitt(~chomwitt@2a02:587:7a1d:9d00:1ac0:4dff:fedb:a3f1)
2023-04-30 14:21:16 +0000 <Helle> *sigh* "Oh, I wonder where you'd really use id all that much" 10 minutes laters I found a pretty reasonable use for it, so I guess, right there
2023-04-30 14:21:41 +0000merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
2023-04-30 14:23:32 +0000 <ski> ooc, where did you use it ?
2023-04-30 14:25:56 +0000 <Helle> well, I also just removed it again, heh
2023-04-30 14:26:10 +0000 <Helle> so not that great
2023-04-30 14:27:37 +0000 <Helle> maybe default id, but fromMaybe does just that without requiring the id, though just as many characters :P
2023-04-30 14:27:56 +0000 <Helle> (thanks hlint)
2023-04-30 14:39:21 +0000jade[m]uploaded an image: (512KiB) < https://libera.ems.host/_matrix/media/v3/download/matrix.org/GbfgntNYrnWgZtoCMUmcnDxN/image.png >
2023-04-30 14:39:21 +0000 <jade[m]> I made this by accident
2023-04-30 14:39:22 +0000 <jade[m]> looks kinda sick
2023-04-30 14:40:48 +0000 <int-e> :t foldMap id -- this one has a name though, `fold`
2023-04-30 14:40:49 +0000 <lambdabot> (Foldable t, Monoid m) => t m -> m
2023-04-30 14:44:00 +0000 <int-e> :t foldr (.) id
2023-04-30 14:44:01 +0000 <lambdabot> Foldable t => t (b -> b) -> b -> b
2023-04-30 14:47:49 +0000L29Ah(~L29Ah@wikipedia/L29Ah) ()
2023-04-30 14:48:22 +0000Square(~Square@user/square)
2023-04-30 14:51:32 +0000acidjnk(~acidjnk@p200300d6e715c46789327d173b2333a9.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2023-04-30 14:52:29 +0000 <fbytez> In a statement like the following, does it ever make sense to use `deriving`?: `newtype Thing = Thing String`
2023-04-30 14:52:50 +0000 <fbytez> I was actually expecting a warning or something from the compiler.
2023-04-30 14:53:44 +0000 <fbytez> I was using `data` as I didn't know about `newtype`.
2023-04-30 14:54:07 +0000Joao003(~Joao003@2804:840:8311:b700:5c98:76bb:dd08:e1ad) (Quit: Leaving)
2023-04-30 14:58:13 +0000 <probie> fbytez: why wouldn't it make sense to use deriving?
2023-04-30 14:58:58 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2023-04-30 15:00:23 +0000 <fbytez> I guess I thought it was closer to `type` than `data`.
2023-04-30 15:00:49 +0000 <fbytez> So, is basically like `data` but without any fields?
2023-04-30 15:00:49 +0000trev(~trev@user/trev)
2023-04-30 15:01:15 +0000 <ski> you can have `newtype Think = MkThing {getThing :: Spring}'
2023-04-30 15:03:49 +0000 <fbytez> Right. I just got `The constructor of a newtype must have exactly one field` in ghci.
2023-04-30 15:05:06 +0000 <fbytez> So, is there any technical reason to use `newtype` instead of `data`?
2023-04-30 15:05:32 +0000 <ski> there are semantic reasons
2023-04-30 15:05:39 +0000 <ncf> https://wiki.haskell.org/Newtype
2023-04-30 15:06:21 +0000 <ski> `newtype' doesn't add an extra bottom
2023-04-30 15:07:29 +0000 <ncf> @let newtype Thing = Thing String
2023-04-30 15:07:30 +0000 <lambdabot> /sandbox/tmp/.L.hs:165:1: error:
2023-04-30 15:07:30 +0000 <lambdabot> Multiple declarations of ‘Thing’
2023-04-30 15:07:30 +0000 <lambdabot> Declared at: /sandbox/tmp/.L.hs:163:1
2023-04-30 15:07:39 +0000 <ncf> > case error "no" of Thing _ -> "yes"
2023-04-30 15:07:41 +0000 <lambdabot> "yes"
2023-04-30 15:07:50 +0000 <ncf> @let data DataThing = Thing String
2023-04-30 15:07:51 +0000 <lambdabot> /sandbox/tmp/.L.hs:165:18: error:
2023-04-30 15:07:51 +0000 <lambdabot> Multiple declarations of ‘Thing’
2023-04-30 15:07:51 +0000 <lambdabot> Declared at: /sandbox/tmp/.L.hs:163:17
2023-04-30 15:07:57 +0000 <ncf> @let data DataThing = DataThing String
2023-04-30 15:07:59 +0000 <lambdabot> Defined.
2023-04-30 15:08:03 +0000 <ncf> > case error "no" of DataThing _ -> "yes"
2023-04-30 15:08:05 +0000 <lambdabot> "*Exception: no
2023-04-30 15:08:40 +0000 <ski> `newtype' data constructors are also always strict
2023-04-30 15:09:13 +0000 <ski> (but matching on them is a no-op, unlike matching on (all) `data' constructors)
2023-04-30 15:11:49 +0000 <fbytez> The wiki page that ncf shared seems informative but I don't quite get it yet.
2023-04-30 15:13:53 +0000 <ski> in terms of implementation, `data Foo = MkFoo Bar' adds some extra memory for `MkFoo', over the plain `Bar', but `newtype Foo = MkFoo Bar' doesn't, the representation for a `Foo' is the same as the one for a `Bar', so converting between the two is a no-op
2023-04-30 15:14:08 +0000econo(uid147250@user/econo)
2023-04-30 15:15:22 +0000gurkenglas(~gurkengla@dynamic-046-114-176-011.46.114.pool.telefonica.de)
2023-04-30 15:15:40 +0000 <ski> if `Bar' is `Bool', then the possible values for `Foo', if it's a `data' type, are `_|_',`MkFoo _|_',`MkFoo False',`MkFoo True'. but if `Foo' is a `newtype', then `_|_' and `MkFoo _|_' are not distinct
2023-04-30 15:16:13 +0000 <ski> (in case you're unsure, perhaps now is the time to ask about what `_|_' means)
2023-04-30 15:21:19 +0000 <fbytez> That's helpful, ski, thankyou.
2023-04-30 15:22:38 +0000GerryH(~Brgaammin@p5b375702.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-04-30 15:22:54 +0000heraldo(~heraldo@user/heraldo)
2023-04-30 15:23:20 +0000 <ncf> it means someone doesn't know how to type ⊥
2023-04-30 15:24:04 +0000 <heraldo> It means she shouldn't look over her shoulder at you when she walks away.
2023-04-30 15:25:58 +0000heraldo(~heraldo@user/heraldo) ()
2023-04-30 15:27:20 +0000trev(~trev@user/trev) (*.net *.split)
2023-04-30 15:27:20 +0000Alex_test(~al_test@178.34.150.15) (*.net *.split)
2023-04-30 15:27:20 +0000myme(~myme@2a01:799:d60:e400:62e6:cfdd:2547:9938) (*.net *.split)
2023-04-30 15:27:20 +0000tremon(~tremon@83.80.159.219) (*.net *.split)
2023-04-30 15:27:20 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (*.net *.split)
2023-04-30 15:27:20 +0000takuan(~takuan@178-116-218-225.access.telenet.be) (*.net *.split)
2023-04-30 15:27:20 +0000sus0(zero@user/zeromomentum) (*.net *.split)
2023-04-30 15:27:20 +0000talismanick(~user@2601:204:ef80:6c80::a8e2) (*.net *.split)
2023-04-30 15:27:20 +0000vulpine(xfnw@tilde.team) (*.net *.split)
2023-04-30 15:27:20 +0000johnw(~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (*.net *.split)
2023-04-30 15:27:20 +0000ix(~ix@2a02:8012:281f:0:d65d:64ff:fe52:5efe) (*.net *.split)
2023-04-30 15:27:20 +0000PHO`(~pho@akari.cielonegro.org) (*.net *.split)
2023-04-30 15:27:20 +0000pieguy128_(~pieguy128@bras-base-mtrlpq5031w-grc-56-65-92-162-12.dsl.bell.ca) (*.net *.split)
2023-04-30 15:27:20 +0000bgamari_(~bgamari@64.223.233.113) (*.net *.split)
2023-04-30 15:27:20 +0000Philonous(~Philonous@user/philonous) (*.net *.split)
2023-04-30 15:27:20 +0000Unode(~Unode@fg-ext-220.embl.de) (*.net *.split)
2023-04-30 15:27:20 +0000yaroot(~yaroot@2400:4052:ac0:d900:1cf4:2aff:fe51:c04c) (*.net *.split)
2023-04-30 15:27:20 +0000telser(~quassel@user/telser) (*.net *.split)
2023-04-30 15:27:20 +0000Profpatsch(~Profpatsc@static.88-198-193-255.clients.your-server.de) (*.net *.split)
2023-04-30 15:27:20 +0000lambdabot(~lambdabot@haskell/bot/lambdabot) (*.net *.split)
2023-04-30 15:27:20 +0000sa(sid1055@id-1055.tinside.irccloud.com) (*.net *.split)
2023-04-30 15:27:20 +0000NiKaN(sid385034@id-385034.helmsley.irccloud.com) (*.net *.split)
2023-04-30 15:27:20 +0000megeve(sid523379@id-523379.hampstead.irccloud.com) (*.net *.split)
2023-04-30 15:27:20 +0000rubin55(sid175221@id-175221.hampstead.irccloud.com) (*.net *.split)
2023-04-30 15:27:20 +0000astra(sid289983@user/amish) (*.net *.split)
2023-04-30 15:27:20 +0000welterde(welterde@thinkbase.srv.welterde.de) (*.net *.split)
2023-04-30 15:27:20 +0000TMA(tma@twin.jikos.cz) (*.net *.split)
2023-04-30 15:27:20 +0000energizer(~energizer@user/energizer) (*.net *.split)
2023-04-30 15:27:20 +0000dagit(~dagit@2001:558:6025:38:71c6:9d58:7252:8976) (*.net *.split)
2023-04-30 15:27:20 +0000SoF(~skius@user/skius) (*.net *.split)
2023-04-30 15:27:20 +0000kawzeg_(kawzeg@2a01:7e01::f03c:92ff:fee2:ec34) (*.net *.split)
2023-04-30 15:27:20 +0000codedmart(~codedmart@li335-49.members.linode.com) (*.net *.split)
2023-04-30 15:27:20 +0000bonz060(~quassel@2001:bc8:47a4:a23::1) (*.net *.split)
2023-04-30 15:27:20 +0000acro(~acro@user/acro) (*.net *.split)
2023-04-30 15:27:20 +0000acidsys(~crameleon@openSUSE/member/crameleon) (*.net *.split)
2023-04-30 15:27:20 +0000nonzen(~nonzen@user/nonzen) (*.net *.split)
2023-04-30 15:27:20 +0000aaronm04(~user@user/aaronm04) (*.net *.split)
2023-04-30 15:27:20 +0000ames(~amelia@offtopia/offtopian/amelia) (*.net *.split)
2023-04-30 15:27:20 +0000haveo_(~haveo@sl35.iuwt.fr) (*.net *.split)
2023-04-30 15:27:20 +0000xnbya2(~xnbya@2a01:4f8:c17:cbdd::1) (*.net *.split)
2023-04-30 15:27:20 +0000Fangs(sid141280@id-141280.hampstead.irccloud.com) (*.net *.split)
2023-04-30 15:27:20 +0000mxs(~mxs@user/mxs) (*.net *.split)
2023-04-30 15:27:20 +0000rune(sid21167@id-21167.ilkley.irccloud.com) (*.net *.split)
2023-04-30 15:27:20 +0000fiddlerwoaroof(~fiddlerwo@user/fiddlerwoaroof) (*.net *.split)
2023-04-30 15:27:20 +0000jackdk(sid373013@cssa/jackdk) (*.net *.split)
2023-04-30 15:27:20 +0000mustafa(sid502723@rockylinux/releng/mustafa) (*.net *.split)
2023-04-30 15:27:20 +0000parseval(sid239098@id-239098.helmsley.irccloud.com) (*.net *.split)
2023-04-30 15:27:20 +0000T_S_(sid501726@id-501726.uxbridge.irccloud.com) (*.net *.split)
2023-04-30 15:27:20 +0000bw(sid2730@user/betawaffle) (*.net *.split)
2023-04-30 15:27:20 +0000JSharp(sid4580@id-4580.lymington.irccloud.com) (*.net *.split)
2023-04-30 15:27:20 +0000buhman(sid411355@user/buhman) (*.net *.split)
2023-04-30 15:27:20 +0000mhatta(~mhatta@www21123ui.sakura.ne.jp) (*.net *.split)
2023-04-30 15:27:20 +0000integral(sid296274@user/integral) (*.net *.split)
2023-04-30 15:27:20 +0000bjs(sid190364@user/bjs) (*.net *.split)
2023-04-30 15:27:20 +0000Boarders___(sid425905@2a03:5180:f:2::6:7fb1) (*.net *.split)
2023-04-30 15:27:20 +0000Kamuela(sid111576@2a03:5180:f::1:b3d8) (*.net *.split)
2023-04-30 15:27:20 +0000conjunctive(sid433686@2a03:5180:f:1::6:9e16) (*.net *.split)
2023-04-30 15:27:20 +0000gonz_______(sid304396@2a03:5180:f:2::4:a50c) (*.net *.split)
2023-04-30 15:27:20 +0000hamishmack(sid389057@2a03:5180:f:4::5:efc1) (*.net *.split)
2023-04-30 15:27:20 +0000agander_m(sid407952@2a03:5180:f::6:3990) (*.net *.split)
2023-04-30 15:27:20 +0000sa1(sid7690@id-7690.ilkley.irccloud.com) (*.net *.split)
2023-04-30 15:27:20 +0000jonrh(sid5185@id-5185.ilkley.irccloud.com) (*.net *.split)
2023-04-30 15:27:29 +0000xnbya(~xnbya@2a01:4f8:c17:cbdd::1)
2023-04-30 15:27:30 +0000lambdabot(~lambdabot@silicon.int-e.eu)
2023-04-30 15:27:30 +0000mxs(~mxs@user/mxs)
2023-04-30 15:27:34 +0000takuan(~takuan@178-116-218-225.access.telenet.be)
2023-04-30 15:27:34 +0000Unode(~Unode@fg-ext-220.embl.de)
2023-04-30 15:27:36 +0000parseval(sid239098@id-239098.helmsley.irccloud.com)
2023-04-30 15:27:37 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-04-30 15:27:37 +0000TMA(tma@twin.jikos.cz)
2023-04-30 15:27:38 +0000codedmart(~codedmart@li335-49.members.linode.com)
2023-04-30 15:27:38 +0000johnw(~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
2023-04-30 15:27:39 +0000Alex_test(~al_test@178.34.150.15)
2023-04-30 15:27:40 +0000Fangs(sid141280@id-141280.hampstead.irccloud.com)
2023-04-30 15:27:41 +0000bonz060(~quassel@2001:bc8:47a4:a23::1)
2023-04-30 15:27:46 +0000talismanick(~user@2601:204:ef80:6c80::a8e2)
2023-04-30 15:27:51 +0000rune(sid21167@id-21167.ilkley.irccloud.com)
2023-04-30 15:27:51 +0000lambdabot(~lambdabot@silicon.int-e.eu) (Changing host)
2023-04-30 15:27:51 +0000lambdabot(~lambdabot@haskell/bot/lambdabot)
2023-04-30 15:27:53 +0000kawzeg_(kawzeg@2a01:7e01::f03c:92ff:fee2:ec34)
2023-04-30 15:27:56 +0000conjunctive(sid433686@id-433686.helmsley.irccloud.com)
2023-04-30 15:27:57 +0000myme(~myme@2a01:799:d60:e400:62e6:cfdd:2547:9938)
2023-04-30 15:27:57 +0000Profpatsch(~Profpatsc@static.88-198-193-255.clients.your-server.de)
2023-04-30 15:27:57 +0000jackdk(sid373013@id-373013.tinside.irccloud.com)
2023-04-30 15:27:58 +0000trev(~trev@109-252-34-44.nat.spd-mgts.ru)
2023-04-30 15:28:06 +0000bw_(sid2730@user/betawaffle)
2023-04-30 15:28:07 +0000hamishmack(sid389057@id-389057.hampstead.irccloud.com)
2023-04-30 15:28:08 +0000Kamuela(sid111576@2a03:5180:f::1:b3d8)
2023-04-30 15:28:10 +0000jonrh(sid5185@id-5185.ilkley.irccloud.com)
2023-04-30 15:28:11 +0000sus0(zero@user/zeromomentum)
2023-04-30 15:28:11 +0000gonz_______(sid304396@id-304396.lymington.irccloud.com)
2023-04-30 15:28:12 +0000agander_m(sid407952@2a03:5180:f::6:3990)
2023-04-30 15:28:13 +0000megeve(sid523379@id-523379.hampstead.irccloud.com)
2023-04-30 15:28:15 +0000welterde(welterde@thinkbase.srv.welterde.de)
2023-04-30 15:28:15 +0000T_S_(sid501726@id-501726.uxbridge.irccloud.com)
2023-04-30 15:28:16 +0000rubin55(sid175221@id-175221.hampstead.irccloud.com)
2023-04-30 15:28:19 +0000ix(~ix@2a02:8012:281f:0:d65d:64ff:fe52:5efe)
2023-04-30 15:28:19 +0000bjs(sid190364@id-190364.helmsley.irccloud.com)
2023-04-30 15:28:19 +0000astra(sid289983@id-289983.hampstead.irccloud.com)
2023-04-30 15:28:19 +0000integral(sid296274@id-296274.lymington.irccloud.com)
2023-04-30 15:28:19 +0000mustafa(sid502723@id-502723.hampstead.irccloud.com)
2023-04-30 15:28:22 +0000Boarders___(sid425905@id-425905.lymington.irccloud.com)
2023-04-30 15:28:31 +0000sa1(sid7690@id-7690.ilkley.irccloud.com)
2023-04-30 15:28:33 +0000jackdk(sid373013@id-373013.tinside.irccloud.com) (Changing host)
2023-04-30 15:28:33 +0000jackdk(sid373013@cssa/jackdk)
2023-04-30 15:28:34 +0000acidsys(~crameleon@openSUSE/member/crameleon)
2023-04-30 15:28:34 +0000trev(~trev@109-252-34-44.nat.spd-mgts.ru) (Changing host)
2023-04-30 15:28:34 +0000trev(~trev@user/trev)
2023-04-30 15:28:44 +0000sa(sid1055@2a03:5180:f::41f)
2023-04-30 15:28:58 +0000buhman(sid411355@id-411355.tinside.irccloud.com)
2023-04-30 15:29:00 +0000JSharp(sid4580@id-4580.lymington.irccloud.com)
2023-04-30 15:29:01 +0000bjs(sid190364@id-190364.helmsley.irccloud.com) (Changing host)
2023-04-30 15:29:01 +0000bjs(sid190364@user/bjs)
2023-04-30 15:29:01 +0000integral(sid296274@id-296274.lymington.irccloud.com) (Changing host)
2023-04-30 15:29:01 +0000integral(sid296274@user/integral)
2023-04-30 15:29:04 +0000mustafa(sid502723@id-502723.hampstead.irccloud.com) (Changing host)
2023-04-30 15:29:04 +0000mustafa(sid502723@rockylinux/releng/mustafa)
2023-04-30 15:29:07 +0000bgamari(~bgamari@64.223.233.113)
2023-04-30 15:29:13 +0000buhman(sid411355@id-411355.tinside.irccloud.com) (Changing host)
2023-04-30 15:29:13 +0000buhman(sid411355@user/buhman)
2023-04-30 15:29:22 +0000NiKaN(sid385034@id-385034.helmsley.irccloud.com)
2023-04-30 15:29:23 +0000yaroot(~yaroot@2400:4052:ac0:d900:1cf4:2aff:fe51:c04c)
2023-04-30 15:29:33 +0000mhatta(~mhatta@www21123ui.sakura.ne.jp)
2023-04-30 15:29:36 +0000ixGuest3954
2023-04-30 15:29:41 +0000pieguy128(~pieguy128@bas1-montreal02-65-92-162-12.dsl.bell.ca)
2023-04-30 15:29:52 +0000tremon(~tremon@83.80.159.219)
2023-04-30 15:29:53 +0000telser(~quassel@user/telser)
2023-04-30 15:29:58 +0000Philonous(~Philonous@user/philonous)
2023-04-30 15:30:19 +0000nonzen(~nonzen@user/nonzen)
2023-04-30 15:30:43 +0000PHO`(~pho@2406:da14:856:600:e03a:2c8f:39c:7838)
2023-04-30 15:30:44 +0000aaronm04(~user@user/aaronm04)
2023-04-30 15:30:46 +0000energizer(~energizer@user/energizer)
2023-04-30 15:30:59 +0000ryantrinkle(~ryantrink@204.2.88.230) (Ping timeout: 246 seconds)
2023-04-30 15:31:13 +0000vulpine(xfnw@tilde.team)
2023-04-30 15:33:00 +0000haveo(~haveo@51.15.176.9)
2023-04-30 15:33:29 +0000acro(~acro@user/acro)
2023-04-30 15:33:59 +0000welterde(welterde@thinkbase.srv.welterde.de) (Quit: WeeChat 3.0.1)
2023-04-30 15:34:10 +0000welterde(welterde@thinkbase.srv.welterde.de)
2023-04-30 15:34:33 +0000fiddlerwoaroof(~fiddlerwo@user/fiddlerwoaroof)
2023-04-30 15:37:04 +0000gurkenglas(~gurkengla@dynamic-046-114-176-011.46.114.pool.telefonica.de) (Ping timeout: 248 seconds)
2023-04-30 15:37:52 +0000Profpatsch(~Profpatsc@static.88-198-193-255.clients.your-server.de) (Quit: WeeChat 3.8)
2023-04-30 15:38:06 +0000Profpatsch(~Profpatsc@static.88-198-193-255.clients.your-server.de)
2023-04-30 15:38:54 +0000gurkenglas(~gurkengla@dynamic-046-114-179-053.46.114.pool.telefonica.de)
2023-04-30 15:40:05 +0000xff0x_(~xff0x@fsa056e3ab.kytj202.ap.nuro.jp) (Ping timeout: 246 seconds)
2023-04-30 15:43:10 +0000nate1(~nate@98.45.169.16)
2023-04-30 15:46:05 +0000ryantrinkle(~ryantrink@204.2.88.230)
2023-04-30 15:47:42 +0000nate1(~nate@98.45.169.16) (Ping timeout: 265 seconds)
2023-04-30 15:49:10 +0000gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-04-30 15:56:23 +0000JScript2(~JScript@cpe-172-193-181-254.qld.foxtel.net.au)
2023-04-30 15:56:44 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net)
2023-04-30 16:00:58 +0000JScript(~JScript@45.248.77.142) (Ping timeout: 276 seconds)
2023-04-30 16:02:00 +0000harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2023-04-30 16:04:33 +0000ames(~amelia@offtopia/offtopian/amelia)
2023-04-30 16:09:31 +0000harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2023-04-30 16:12:35 +0000hammond(proscan@gateway02.insomnia247.nl) (Changing host)
2023-04-30 16:12:35 +0000hammond(proscan@user/hammond2)
2023-04-30 16:14:52 +0000nicm[m](~nicmollel@2001:470:69fc:105::1:feeb)
2023-04-30 16:17:31 +0000gurkenglas(~gurkengla@dynamic-046-114-179-053.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
2023-04-30 16:18:06 +0000merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
2023-04-30 16:34:40 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:d4d0:8bd2:d805:7ab6)
2023-04-30 16:35:00 +0000L29Ah(~L29Ah@wikipedia/L29Ah)
2023-04-30 16:37:29 +0000Square(~Square@user/square) (Ping timeout: 246 seconds)
2023-04-30 16:42:23 +0000chomwitt(~chomwitt@2a02:587:7a1d:9d00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
2023-04-30 16:43:05 +0000swamp_(~zmt00@user/zmt00)
2023-04-30 16:46:03 +0000zmt01(~zmt00@user/zmt00) (Ping timeout: 248 seconds)
2023-04-30 16:47:27 +0000JScript2(~JScript@cpe-172-193-181-254.qld.foxtel.net.au) (Read error: Connection reset by peer)
2023-04-30 16:47:54 +0000JScript(~JScript@103.137.12.21)
2023-04-30 16:48:13 +0000SoF(~skius@user/skius)
2023-04-30 16:50:10 +0000pavonia(~user@user/siracusa) (Quit: Bye!)
2023-04-30 16:52:45 +0000merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
2023-04-30 16:57:14 +0000tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2023-04-30 17:00:16 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 248 seconds)
2023-04-30 17:02:11 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-04-30 17:04:45 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-04-30 17:10:47 +0000fsestini(~fsestini@5.151.90.160)
2023-04-30 17:22:15 +0000 <sm> looks very nice
2023-04-30 17:22:22 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) (Remote host closed the connection)
2023-04-30 17:22:37 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net)
2023-04-30 17:25:33 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) (Remote host closed the connection)
2023-04-30 17:25:46 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net)
2023-04-30 17:33:34 +0000Guest|82(~Guest|82@pd9e0ad5b.dip0.t-ipconnect.de)
2023-04-30 17:36:04 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) (Remote host closed the connection)
2023-04-30 17:36:20 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net)
2023-04-30 17:40:37 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) (Remote host closed the connection)
2023-04-30 17:41:28 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net)
2023-04-30 17:50:03 +0000ryantrinkle(~ryantrink@204.2.88.230) (Ping timeout: 260 seconds)
2023-04-30 17:51:26 +0000wootehfoot(~wootehfoo@user/wootehfoot)
2023-04-30 17:52:21 +0000jade[m]uploaded an image: (186KiB) < https://libera.ems.host/_matrix/media/v3/download/matrix.org/rMfrmjpTVaUROQSFsHIpjytX/image.png >
2023-04-30 17:52:22 +0000 <jade[m]> Not sure if I'm happy with this code
2023-04-30 17:53:57 +0000extor(~extor@2001:41d0:1004:636::1)
2023-04-30 17:59:43 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) (Remote host closed the connection)
2023-04-30 18:00:15 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net)
2023-04-30 18:03:02 +0000 <geekosaur> at some point you should learn to use a pastebin; it's really hard to cut and paste from an image
2023-04-30 18:04:02 +0000extor(~extor@2001:41d0:1004:636::1) (Quit: ZNC 1.8.2+deb2build5 - https://znc.in)
2023-04-30 18:06:20 +0000talismanick(~user@2601:204:ef80:6c80::a8e2) (Remote host closed the connection)
2023-04-30 18:08:10 +0000extor(~extor@ns3018124.ip-149-202-82.eu)
2023-04-30 18:13:09 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-04-30 18:14:34 +0000[_](~itchyjunk@user/itchyjunk/x-7353470)
2023-04-30 18:14:41 +0000 <[exa]> (not to mention the font choices that don't really port across screens and viewing conditions)
2023-04-30 18:14:45 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2023-04-30 18:16:05 +0000pieguy128(~pieguy128@bas1-montreal02-65-92-162-12.dsl.bell.ca) (Quit: ZNC 1.8.2 - https://znc.in)
2023-04-30 18:16:25 +0000pieguy128(~pieguy128@bras-base-mtrlpq5031w-grc-56-65-92-162-12.dsl.bell.ca)
2023-04-30 18:18:33 +0000fsestini(~fsestini@5.151.90.160) (Ping timeout: 245 seconds)
2023-04-30 18:19:45 +0000zeenk(~zeenk@2a02:2f04:a20f:5200::7fe)
2023-04-30 18:24:21 +0000 <somerandomnick[m> it is pretty.
2023-04-30 18:24:23 +0000 <somerandomnick[m> you did it
2023-04-30 18:25:42 +0000 <somerandomnick[m> ll 16-12 is python style though
2023-04-30 18:26:03 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-04-30 18:26:03 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-04-30 18:26:03 +0000wroathe(~wroathe@user/wroathe)
2023-04-30 18:26:49 +0000somerandomnick[msent a code block: https://libera.ems.host/_matrix/media/v3/download/libera.chat/089612aff82d71194d8eac553c2eff529566…
2023-04-30 18:26:55 +0000 <somerandomnick[m> what do you think about this style
2023-04-30 18:27:27 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-04-30 18:27:38 +0000 <jade[m]> It's what the lsp format did haha
2023-04-30 18:27:45 +0000 <jade[m]> I originally had it inline
2023-04-30 18:28:00 +0000Guest4285(~Guest42@ip5f5be7a8.dynamic.kabel-deutschland.de)
2023-04-30 18:28:24 +0000 <somerandomnick[m> helpful tools being helpful as always
2023-04-30 18:28:33 +0000Guest4285(~Guest42@ip5f5be7a8.dynamic.kabel-deutschland.de) (Client Quit)
2023-04-30 18:32:25 +0000hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 276 seconds)
2023-04-30 18:40:11 +0000TonyStone(~TonyStone@cpe-74-76-57-186.nycap.res.rr.com)
2023-04-30 18:43:04 +0000[_][itchyjunk]
2023-04-30 18:43:33 +0000hugo(znc@verdigris.lysator.liu.se)
2023-04-30 18:47:28 +0000brettgilio(~brettgili@147.182.241.1) (Ping timeout: 248 seconds)
2023-04-30 18:56:48 +0000thejdoe(~thejdoe@201-35-245-62.user3p.brasiltelecom.net.br)
2023-04-30 18:57:45 +0000Guest7110(~Guest71@201-35-245-62.user3p.brasiltelecom.net.br)
2023-04-30 18:59:08 +0000Bocaneri(~sauvin@user/Sauvin)
2023-04-30 18:59:31 +0000BocaneriGuest1315
2023-04-30 19:00:59 +0000Sauvin(~sauvin@user/Sauvin) (Ping timeout: 246 seconds)
2023-04-30 19:05:31 +0000GerryH(~Brgaammin@ip-046-223-087-181.um13.pools.vodafone-ip.de)
2023-04-30 19:06:11 +0000GerryH(~Brgaammin@ip-046-223-087-181.um13.pools.vodafone-ip.de) (Client Quit)
2023-04-30 19:15:52 +0000wroathe(~wroathe@user/wroathe) (Quit: leaving)
2023-04-30 19:21:04 +0000michalz(~michalz@185.246.207.221)
2023-04-30 19:21:12 +0000Sgeo(~Sgeo@user/sgeo)
2023-04-30 19:22:36 +0000Guest7110(~Guest71@201-35-245-62.user3p.brasiltelecom.net.br) (Quit: Client closed)
2023-04-30 19:26:30 +0000bitmapper(uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-04-30 19:29:28 +0000 <monochrom> I wonder how long it takes the young generation to realize that in response to our "pastebin not pics" they can reply "you can OCR if you need to".
2023-04-30 19:30:14 +0000 <monochrom> Cf. https://xkcd.com/763/
2023-04-30 19:31:24 +0000 <geekosaur> they didn't even receive it (or yours), the bridge isn't relaying from irc to matrix
2023-04-30 19:31:41 +0000 <geekosaur> which I have just been informed is "operating normally: 😞
2023-04-30 19:31:51 +0000 <mauke> ooh, secret chats
2023-04-30 19:32:11 +0000 <mauke> we call it information hiding
2023-04-30 19:32:21 +0000 <monochrom> Well, we don't actually want the young generation to see what I said there, right? >:)
2023-04-30 19:35:54 +0000 <int-e> geekosaur: Wait what? What's the bridge for then, just advertising the m*****x platform?
2023-04-30 19:36:09 +0000 <geekosaur> no clue
2023-04-30 19:36:28 +0000 <geekosaur> I'm not the only one seeing it either, nothing IRC-side is making it to matrix
2023-04-30 19:36:33 +0000 <int-e> I swear I've had discussions with [m] folks recently.
2023-04-30 19:36:53 +0000 <geekosaur> (I had some overnight, this only started a few hours ago
2023-04-30 19:38:08 +0000trev(~trev@user/trev) (Quit: trev)
2023-04-30 19:38:16 +0000 <int-e> maybe it's a late April Fool's joke
2023-04-30 19:38:42 +0000Guest1315Sauvin
2023-04-30 19:44:25 +0000nate1(~nate@98.45.169.16)
2023-04-30 19:48:59 +0000michalz(~michalz@185.246.207.221) (Remote host closed the connection)
2023-04-30 19:49:19 +0000acidjnk(~acidjnk@p200300d6e715c46489327d173b2333a9.dip0.t-ipconnect.de)
2023-04-30 19:49:31 +0000nate1(~nate@98.45.169.16) (Ping timeout: 260 seconds)
2023-04-30 19:50:23 +0000 <remexre> https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/type_data.html
2023-04-30 19:50:40 +0000 <remexre> looks like someone forgot the syntax for comments lol
2023-04-30 19:50:53 +0000 <remexre> (the bottom two code blocks)
2023-04-30 19:51:25 +0000 <geekosaur> lol
2023-04-30 19:51:44 +0000 <mauke> I mean, it does say that the code is invalid
2023-04-30 19:55:51 +0000 <hpc> this is why i only use semicolon comments
2023-04-30 19:56:50 +0000gurkenglas(~gurkengla@dynamic-046-114-179-053.46.114.pool.telefonica.de)
2023-04-30 20:00:20 +0000pavonia(~user@user/siracusa)
2023-04-30 20:04:07 +0000puke(~puke@user/puke) (Quit: puke)
2023-04-30 20:05:15 +0000_ht(~Thunderbi@82.174.52.28) (Remote host closed the connection)
2023-04-30 20:08:59 +0000Guest7148(~Guest71@201-35-245-62.user3p.brasiltelecom.net.br)
2023-04-30 20:25:35 +0000puke(~puke@user/puke)
2023-04-30 20:26:49 +0000Guest7148(~Guest71@201-35-245-62.user3p.brasiltelecom.net.br) (Quit: Client closed)
2023-04-30 20:26:49 +0000thejdoe(~thejdoe@201-35-245-62.user3p.brasiltelecom.net.br) (Remote host closed the connection)
2023-04-30 20:31:55 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-04-30 20:35:15 +0000puke(~puke@user/puke) (Remote host closed the connection)
2023-04-30 20:49:34 +0000puke(~puke@user/puke)
2023-04-30 20:50:15 +0000fun-safe-math(~fun-safe-@c-24-22-94-205.hsd1.or.comcast.net)
2023-04-30 21:07:32 +0000gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-04-30 21:14:15 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) (Remote host closed the connection)
2023-04-30 21:14:30 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net)
2023-04-30 21:21:23 +0000Guest|82(~Guest|82@pd9e0ad5b.dip0.t-ipconnect.de) (Quit: Connection closed)
2023-04-30 21:23:32 +0000c0c0(~coco@212-51-146-137.fiber7.init7.net) (Quit: WeeChat 3.7.1)
2023-04-30 21:29:02 +0000fun-safe-math(~fun-safe-@c-24-22-94-205.hsd1.or.comcast.net) (Quit: Leaving)
2023-04-30 21:29:57 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-04-30 21:34:09 +0000jero98772(~jero98772@2800:484:1d84:9000::3)
2023-04-30 21:43:28 +0000justsomeguy(~justsomeg@user/justsomeguy)
2023-04-30 21:45:58 +0000trev(~trev@user/trev)
2023-04-30 21:46:25 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2023-04-30 21:51:32 +0000trev(~trev@user/trev) (Quit: trev)
2023-04-30 21:51:45 +0000jmdaemon(~jmdaemon@user/jmdaemon)
2023-04-30 21:54:11 +0000machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-04-30 21:58:20 +0000euandreh(~Thunderbi@189.6.18.7)
2023-04-30 21:59:44 +0000jpds2(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
2023-04-30 22:06:59 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net) (Remote host closed the connection)
2023-04-30 22:08:26 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-d5f7-1d09-2f8d-3550.rev.sfr.net)
2023-04-30 22:12:36 +0000puke(~puke@user/puke) (Quit: puke)
2023-04-30 22:12:50 +0000jpds2(~jpds@gateway/tor-sasl/jpds)
2023-04-30 22:17:16 +0000puke(~puke@user/puke)
2023-04-30 22:21:20 +0000takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2023-04-30 22:21:55 +0000masterbu1lder(~masterbui@user/masterbuilder) (Quit: leaving)
2023-04-30 22:26:55 +0000Square(~Square@user/square)
2023-04-30 22:27:48 +0000jpds2(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2023-04-30 22:28:09 +0000 <Square> Iirc there are some language extensions that can complicate your code a fair bit. Any comes to mind?
2023-04-30 22:28:36 +0000 <Square> (and I don't mean OverloadedLists or OverloadedStrings)
2023-04-30 22:29:12 +0000 <justsomeguy> So I just noticed that these are the same... :set -XTypeApplications; :type flip (concatMap @[]); :type (>>=) @[];
2023-04-30 22:29:27 +0000 <Square> Suspects are FlexibleInstances, FlexibleContexts, UndecidableInstances, AllowAmbiguousTypes...
2023-04-30 22:29:38 +0000jpds2(~jpds@gateway/tor-sasl/jpds)
2023-04-30 22:37:38 +0000justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 246 seconds)
2023-04-30 22:38:44 +0000RED_cat_King(~RED_cat_K@2001:b07:a3d:74f4:11f4:5630:82d4:8e1f)
2023-04-30 22:42:11 +0000 <geekosaur> I think the two `Flexible` are considered pretty safe
2023-04-30 22:42:25 +0000fun-safe-math(~fun-safe-@c-24-22-94-205.hsd1.or.comcast.net)
2023-04-30 22:45:01 +0000 <geekosaur> UndecidableInstances means you accept the blame if the typechecker goes into an infinite loop. (It's OverlappingInstances and especially IncoherentInstances that are really problematic.)
2023-04-30 22:45:15 +0000gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2023-04-30 22:46:00 +0000gmg(~user@user/gehmehgeh)
2023-04-30 22:46:08 +0000 <geekosaur> AllowAmbiguousTypes means you accept the responsibility to use TypeApplications to help the typechecker along
2023-04-30 22:47:32 +0000 <geekosaur> But it gets you out of situations where ghc can't figure out a type by itself and needs that help
2023-04-30 22:50:27 +0000 <Square> geekosaur, thanks. I think UndecidableInstances is what got me in trouble before.
2023-04-30 22:52:54 +0000 <monochrom> I guess I have a different idea of what "complicate" means.
2023-04-30 22:54:01 +0000 <monochrom> or rather, "complicate your code". (which is different from "complicate the language")
2023-04-30 22:56:36 +0000RED_cat_King(~RED_cat_K@2001:b07:a3d:74f4:11f4:5630:82d4:8e1f) (Quit: Client closed)
2023-04-30 23:06:11 +0000falafel(~falafel@2603-8000-d700-115c-a6c7-5a73-c391-763a.res6.spectrum.com)
2023-04-30 23:10:32 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2023-04-30 23:17:44 +0000caryhartline(~caryhartl@2600:1700:2d0:8d30:9843:3567:836:49e9)
2023-04-30 23:19:45 +0000fun-safe-math(~fun-safe-@c-24-22-94-205.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2023-04-30 23:22:41 +0000 <Square> monochrom, I this case I'm later using some constructed instances / classes to construct combined instances that. And I remember that was tricky once i involved UndecidableInstances. Could be my lacking know how that get's in the way. =D
2023-04-30 23:23:45 +0000burakcank(burakcank@has.arrived.and.is.ready-to.party) (Quit: fBNC - https://bnc4free.com)
2023-04-30 23:26:31 +0000jinsun(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2023-04-30 23:27:00 +0000Batzy(~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2023-04-30 23:27:22 +0000Batzy(~quassel@user/batzy)
2023-04-30 23:28:08 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
2023-04-30 23:28:23 +0000jinsun(~jinsun@user/jinsun)
2023-04-30 23:37:58 +0000mauke_(~mauke@user/mauke)
2023-04-30 23:39:19 +0000 <fbytez> Am I just writing an existing builtin function? ...
2023-04-30 23:39:24 +0000 <fbytez> ors :: [a -> Bool] -> a -> Bool
2023-04-30 23:39:25 +0000 <fbytez> ors [] a = False
2023-04-30 23:39:25 +0000 <fbytez> ors (f:fs) a = f a || ors fs a
2023-04-30 23:39:52 +0000mauke(~mauke@user/mauke) (Ping timeout: 276 seconds)
2023-04-30 23:39:52 +0000mauke_mauke
2023-04-30 23:41:28 +0000 <monochrom> It's a bit close to a library function but not obvious: ors fs a = any (\f -> f a) fs
2023-04-30 23:42:31 +0000 <int-e> :t (or .) . sequence
2023-04-30 23:42:32 +0000 <lambdabot> Traversable t => t (a -> Bool) -> a -> Bool
2023-04-30 23:44:35 +0000 <int-e> :t (getAny . ) . foldMap (Any .)
2023-04-30 23:44:36 +0000 <lambdabot> Foldable t => t (a -> Bool) -> a -> Bool
2023-04-30 23:44:45 +0000machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 240 seconds)
2023-04-30 23:45:54 +0000 <int-e> I'd go with monochrom's except I'd write (\f -> f a) as ($ a)
2023-04-30 23:45:55 +0000nate1(~nate@98.45.169.16)
2023-04-30 23:46:43 +0000son0p(~ff@181.136.122.143)
2023-04-30 23:46:56 +0000Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
2023-04-30 23:47:26 +0000 <int-e> @pl ors fs a = any (\f -> f a) fs
2023-04-30 23:47:26 +0000 <lambdabot> ors = flip (any . flip id)
2023-04-30 23:47:39 +0000 <int-e> nice flips
2023-04-30 23:47:41 +0000 <fbytez> Does it short-circuit or evaluate all?
2023-04-30 23:47:49 +0000 <monochrom> short circuits
2023-04-30 23:48:02 +0000 <fbytez> Thanks very much.
2023-04-30 23:48:22 +0000 <monochrom> > any (\f -> f 0) ((== 0) : undefined)
2023-04-30 23:48:23 +0000 <lambdabot> True
2023-04-30 23:51:11 +0000nate1(~nate@98.45.169.16) (Ping timeout: 264 seconds)
2023-04-30 23:51:43 +0000acidjnk(~acidjnk@p200300d6e715c46489327d173b2333a9.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2023-04-30 23:57:51 +0000zeenk(~zeenk@2a02:2f04:a20f:5200::7fe) (Quit: Konversation terminated!)