Home liberachat/#haskell: Logs Calendar

Logs on 2022-01-05 (liberachat/#haskell)

00:00:27 shapr joins (~user@2601:7c0:c202:5190:ea69:7e3b:73f6:8004)
00:01:01 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
00:01:22 falafel__ joins (~falafel@cpe-76-168-195-162.socal.res.rr.com)
00:01:48 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
00:01:51 × kaph quits (~kaph@net-2-38-107-19.cust.vodafonedsl.it) (Read error: Connection reset by peer)
00:02:17 × falafel quits (~falafel@2603-8000-d800-688c-c064-54e6-9a05-e359.res6.spectrum.com) (Ping timeout: 240 seconds)
00:04:17 × falafel_ quits (~falafel@2603-8000-d800-688c-c064-54e6-9a05-e359.res6.spectrum.com) (Ping timeout: 240 seconds)
00:04:37 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 240 seconds)
00:04:57 × shapr quits (~user@2601:7c0:c202:5190:ea69:7e3b:73f6:8004) (Ping timeout: 240 seconds)
00:08:10 × coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Quit: coot)
00:09:37 × jumper149 quits (~jumper149@static.6.71.203.116.clients.your-server.de) (Quit: WeeChat 3.3)
00:13:03 × max22- quits (~maxime@2a01cb088335980073d4db6cd0f566a2.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
00:16:41 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 256 seconds)
00:18:28 alx741 joins (~alx741@157.100.93.160)
00:23:25 × falafel__ quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 240 seconds)
00:23:53 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
00:25:16 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
00:25:53 machinedgod joins (~machinedg@24.105.81.50)
00:27:47 motherfsck joins (~motherfsc@user/motherfsck)
00:29:35 ouestbillie joins (~gallup@192-222-138-215.qc.cable.ebox.net)
00:31:30 × cheater quits (~Username@user/cheater) (Ping timeout: 260 seconds)
00:32:55 × ouestbillie quits (~gallup@192-222-138-215.qc.cable.ebox.net) (Client Quit)
00:33:58 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
00:33:58 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
00:33:58 wroathe joins (~wroathe@user/wroathe)
00:35:08 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
00:38:01 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
00:38:56 Tuplanolla joins (~Tuplanoll@91-159-69-90.elisa-laajakaista.fi)
00:39:47 shapr joins (~user@2601:7c0:c202:5190:e1f:9ab:bb49:711d)
00:41:10 × xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer)
00:41:26 <Axman6> So I nerdsniped myself at the end of last year trying to write a function based on edwardk's discrimination package with the following type: memo :: forall t a. Grouping t => (t -> a) -> (t -> a) it feels like it might not be possible, even if you used unsafePerformIO but would love to be proven incorrect
00:41:55 alx741 joins (~alx741@157.100.93.160)
00:45:11 ouestbillie joins (~gallup@192-222-138-215.qc.cable.ebox.net)
00:45:59 nhatanh02 joins (~satori@123.24.172.30)
00:46:02 × jgeerds_ quits (~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 240 seconds)
00:46:19 × TonyStone quits (~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com) (Remote host closed the connection)
00:48:03 TonyStone joins (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
00:51:08 × coolnickname quits (uid531864@user/coolnickname) (Quit: Connection closed for inactivity)
00:51:57 × ouestbillie quits (~gallup@192-222-138-215.qc.cable.ebox.net) (Quit: Lost terminal)
00:52:47 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
00:53:29 <Hecate> I just used an MVar for the first time in a real setup
00:53:31 <Hecate> damn
00:53:52 <Axman6> MVars are great
00:56:08 cheater joins (~Username@user/cheater)
00:57:25 × nhatanh02 quits (~satori@123.24.172.30) (Ping timeout: 240 seconds)
01:01:41 BrokenClutch joins (~pioneer@2804:d41:c292:6c00:33d8:d2f1:d8af:153e)
01:02:05 × califax quits (~califax@user/califx) (Remote host closed the connection)
01:02:16 <jackdk> mmmvar
01:03:05 califax joins (~califax@user/califx)
01:06:48 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
01:07:31 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
01:08:57 × shapr quits (~user@2601:7c0:c202:5190:e1f:9ab:bb49:711d) (Ping timeout: 240 seconds)
01:08:59 alx741 joins (~alx741@157.100.93.160)
01:11:03 falafel__ joins (~falafel@cpe-76-168-195-162.socal.res.rr.com)
01:15:01 × falafel__ quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 240 seconds)
01:15:43 × epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
01:17:16 × biog quits (~user1@159.224.42.85) (Quit: ZZZzzz…)
01:17:25 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
01:18:07 yauhsien joins (~yauhsien@61-231-58-217.dynamic-ip.hinet.net)
01:18:12 Erutuon joins (~Erutuon@user/erutuon)
01:19:26 <edwardk> Axman6: hrmm
01:19:50 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
01:19:58 <meer> nick Inst
01:20:00 <meer> ummm
01:20:03 meer is now known as Inst
01:20:13 ouestbillie joins (~gallup@192-222-138-215.qc.cable.ebox.net)
01:20:26 <Inst> if I have a type of IO Maybe a, is there a way to change it to Maybe IO a?
01:20:54 <Axman6> % :t sequence @(IO (Maybe a))
01:20:54 <yahb> Axman6: ; <interactive>:1:22: error: Not in scope: type variable `a'
01:20:54 <EvanR> not in the way you want no
01:21:27 <geekosaur> % :t sequence @Maybe @IO
01:21:27 <yahb> geekosaur: Maybe (IO a) -> IO (Maybe a)
01:21:42 <geekosaur> other way around is always possible, but the way you want generally is not
01:21:47 <edwardk> Axman6: did you try starting with (t -> a) -> IO (t -> IO a) ?
01:21:59 <Axman6> I did not
01:22:10 <edwardk> do that, then you can get the effects in the right place
01:22:19 fcc977 joins (~kaph@net-2-38-107-19.cust.vodafonedsl.it)
01:22:20 × fcc977 quits (~kaph@net-2-38-107-19.cust.vodafonedsl.it) (Remote host closed the connection)
01:22:31 <Axman6> I was struggling to figure out what thew types should be, specifically what should the `b` in getGroup be
01:22:49 <Inst> so sequence?
01:22:51 kaph joins (~kaph@net-2-38-107-19.cust.vodafonedsl.it)
01:23:01 <EvanR> sequence will do the opposite of what you said
01:23:10 <geekosaur> no, sequence does theopposite. reread what I wrote
01:23:33 × yauhsien quits (~yauhsien@61-231-58-217.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
01:23:43 <edwardk> b should be the 'a'
01:23:51 <edwardk> and a should be your t
01:23:59 <edwardk> its what you are discriminating on
01:24:11 <edwardk> ad you are storing the result in the schwartzian transform
01:24:55 <edwardk> its been a while but i wrote one of these once
01:25:06 <edwardk> i forget the trick though
01:25:09 <Axman6> why doesn't that surprise me :P
01:25:54 <EvanR> I see your schwartzian transform is as big as mine!
01:25:56 <Inst> yeah IO is not traversable
01:26:48 <EvanR> you have to ask yourself what IO (Maybe a) -> Maybe (IO a) would even mean
01:26:56 <Axman6> and if you think hard about it, it makes sense that it isn't
01:27:07 <Inst> not sure, I'm sort of annoying the people on the Haskell / FP discord
01:27:26 <Axman6> :t f :: IO (Maybe a) -> Maybe (IO a); f _ = Nothing
01:27:27 <lambdabot> error: parse error on input ‘;’
01:27:32 <Axman6> :t let f :: IO (Maybe a) -> Maybe (IO a); f _ = Nothing in f
01:27:33 <lambdabot> IO (Maybe a) -> Maybe (IO a)
01:28:11 <Inst> i'm trying to utilize the library TinyFileDialogs
01:28:15 <geekosaur> interestingly, this types. I wonder what it does
01:28:30 <geekosaur> % :t sequence @Maybe @IO
01:28:30 <yahb> geekosaur: Maybe (IO a) -> IO (Maybe a)
01:28:32 × Tuplanolla quits (~Tuplanoll@91-159-69-90.elisa-laajakaista.fi) (Quit: Leaving.)
01:28:41 <Axman6> that one's fine
01:28:56 <geekosaur> oh, got that backwards, sigh
01:29:05 × retro_ quits (~retro@05412d78.skybroadband.com) (Quit: Connection error?!)
01:29:17 <EvanR> run the IO action to see if you get Just x, if so, go back in time to stop the I/O from ever happening and return Just actionReturningXForSureIfYouTryAgain
01:29:24 <geekosaur> right, not Traversable
01:29:36 geekosaur should just go to bed
01:29:43 <Inst> i have a type of IO Maybe [Text], and I want to feed it to a function that requires String
01:30:08 <EvanR> IO (Maybe [Text]), the parentheses may be helpful understanding what's going on
01:30:11 <Axman6> then you need to execute that thing of tyoe IO (Maybe [Text])
01:30:23 <Axman6> and yes, those parens are important
01:30:28 <Inst> so... (IO (Maybe [Text]) -> (String -> IO Handle)
01:30:36 <Axman6> IO Maybe [Test] doesn't make any sense
01:30:38 <geekosaur> val >>= fromMaybe id
01:30:43 <geekosaur> er
01:30:48 <Inst> yeah, parentheses, sorry
01:30:49 <geekosaur> val >>= fromMaybe ""
01:31:12 <geekosaur> gives you a Text, then you have to convert to String, then you have to put it back into IO
01:31:28 <geekosaur> after calling your function
01:31:41 <Inst> so far, I have a working function that outputs IO (Maybe String)
01:31:49 <Axman6> > getInput >>= \mTexts -> newFile (maybe "default.txt" (toString . T.concat) mTexts
01:31:51 <lambdabot> <hint>:1:82: error:
01:31:51 <lambdabot> parse error (possibly incorrect indentation or mismatched brackets)
01:32:00 <Axman6> uhm forget that >
01:32:03 <Inst> GHCI is being a dick to me
01:32:19 <EvanR> yourAction >>= \theMaybeText -> whatever you wanna do with it
01:32:19 <geekosaur> you cannot take something out of IO
01:32:34 <Inst> basically, it complains it expects Maybe (Maybe String) instead of IO (Maybe String)
01:32:36 <geekosaur> unless you put it back in after you're done
01:32:43 <Axman6> Inst: it would be infinitely easiler to help you if you shared what you've actually tried to do
01:33:02 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:33:21 <Axman6> as there are literally an infinite number of programs that could have caused that error
01:33:25 <Inst> https://cdn.discordapp.com/attachments/528863657363505159/928098789229727774/unknown.png
01:34:08 <Inst> treat this as a learning exercise, FP discord is telling me "just use monad transformers / combinators"
01:34:22 <jackdk> geekosaur: you probably already know this, but I find it helpful to never think in terms of "taking something out" when using `(>>=)`. Thinking instead in terms of `fmap` then `join` makes it clear that nothing magical is happening
01:34:49 <Axman6> ther's no need for monad transformers here, particularly since you're stilling learning the basics of the IO monad
01:35:01 <Inst> when Expected: IO (IO String)
01:35:01 <Inst> Actual: IO (Maybe String)
01:35:03 <Inst> thank you Axman6
01:35:09 Inst hugs Axman6 and throws money at him
01:35:31 <Axman6> extract looks weird, what do you believe its type is?
01:36:00 <Inst> from
01:36:13 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
01:36:13 <Axman6> I think you would make your life a hell of a lot simpler if you just used dio notation
01:36:17 <Axman6> do*
01:36:38 <Inst> i don't feel comfortable with do notation, still learning it
01:36:50 <Inst> rather, i'd rather skip it for a while to get comfortable with what's going under the hood
01:37:40 alx741 joins (~alx741@157.100.93.160)
01:37:45 <Inst> ; -> (>>) {-Then-}, x <- y converts to y >>= \x -> ...
01:38:17 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
01:38:17 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
01:38:18 <Axman6> ok, well you'll end up with something that looks like ugly do notation anyway
01:39:25 <Axman6> openFilePAth = openFileDialog ... >>= \maybeTexts -> case maybeTexts of Just [aText] -> pure (Just (unpack aText)); _ -> pure Nothing
01:39:36 <EvanR> we've been telling the likes of Inst to not use do notation until you understand >>= xD
01:40:05 <Axman6> the pures here are of type a -> IO a (or in thise case, Maybe String -> IO (Maybe String)
01:40:18 <Axman6> there is no need for sequence
01:40:24 <edwardk> Axman6: ok, i wrote it up more or less. i don't have a working ghci to test with but
01:40:28 <edwardk> https://www.irccloud.com/pastebin/MCWdxUyf/
01:40:36 <edwardk> ^- i think that should roughly do what you want
01:41:17 <edwardk> the b there = 't' but could just as easily used f t (t2a t) and laziness in the final function
01:41:33 <edwardk> then its a matter of unsafely performing all the things
01:41:39 <Axman6> edwardk: I thought of doing something like that, and it's horrific :P
01:41:54 <Inst> yeah the pures are nightmares
01:41:59 <Axman6> this isn't threadsafe right?
01:42:02 <Inst> i don't know how to use :: to force a particular type interpretation
01:42:24 <Axman6> the compiler knows, it's you who doesn't :)
01:42:42 <edwardk> "thread safe" is doable but requires a custom primop
01:42:59 <edwardk> ooh, no it doesn't. its easy
01:43:08 <edwardk> change 'b' to be the pair of the answer 'a' and an ioref to write it to
01:43:12 <Inst> openFilePath was working before, it's more dialogedFilePath
01:43:17 <Inst> I added sequence in there for some dumb reason
01:43:20 <edwardk> and generate a fresh ioref on each invocation
01:44:03 <edwardk> the other way is to temporarily pin the io action to the current HEC with a custom primop that convinces it it can't move, then do the above but with a fixed ioref per hec. less allocation, more performance, but not as pretty
01:44:58 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
01:44:58 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
01:44:58 wroathe joins (~wroathe@user/wroathe)
01:46:31 <Axman6> I has thought about allocating an IORef per `t` but that would use a lot of RAM... does this actually memoise the calls?
01:47:44 <edwardk> each 't' causes the creation of one of those functions that always writes the same 'a' back to the ref memoized. you don't use a fresh ref per 't' but a fresh ref per invocation in the 'easy threadsafe' version
01:47:47 <Axman6> I was also trying to think if there was a way to use laziness to avoid the need for an IORef at all - for each t we want to run t2a on t just once and then store that
01:48:13 <edwardk> you have an IO action that needs to return () and it needs tog et a result out. so you need to smuggle the answer out in some form of ref type
01:48:30 <edwardk> and throwing an exception to sidestep that has the wrong semantics
01:49:00 <Axman6> yeah that was the main problem I ran into, not being able to hold onto a reference
01:49:29 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
01:50:14 <Axman6> I'm still a bit confused how this memoises things... is the stored value basically in the closure _\ -> ... ? :mindblown: ok I think I get it
01:50:33 <Inst> dialogedFileOpen = openFilePath >>= (\x ->
01:50:34 <Inst> x >>= (id))
01:50:43 <Inst> why does this not typecheck? I'm trying to remove the maybe inside
01:50:47 <Axman6> wow, this is amazing and gross at the same time. Classic Ed
01:50:56 <edwardk> *takes a bow*
01:50:59 <Axman6> what's the type of openFilePath?
01:51:07 <Inst> IO (Maybe String)
01:51:36 <Axman6> jackdk: ^ just got Ed'd, I have regrets
01:51:38 <EvanR> Maybe is there so you have to case analyze it and deal with Nothings
01:51:40 <jackdk> Axman6: https://hackage.haskell.org/package/acme-smuggler perhaps?
01:51:52 <Inst> I was assuming the bind instance for maybe handles it
01:51:53 <edwardk> for axman https://www.irccloud.com/pastebin/t28Y6Ti4/thread-safe.hs
01:52:12 <Inst> so, at this point, then, I should run a case x of, to get to the string inside?
01:52:17 <Inst> it feels like >>= is confused
01:52:19 <Axman6> Inst: but the function passed to >>= for IO needs to have type: a -> IO b
01:52:40 <EvanR> > Just "foo" >>= \str -> return (reverse str)
01:52:41 <Inst> so basically, >>= is pretty useless when dealing with nested monads of different types?
01:52:42 <lambdabot> Just "oof"
01:52:47 <jackdk> >>= is not confused - it is the >>= for IO
01:52:48 <EvanR> it doesn't remove a Maybe
01:52:50 yauhsien joins (~yauhsien@61-231-58-217.dynamic-ip.hinet.net)
01:53:13 <EvanR> it lets you operate on the Just value if there is one
01:53:14 <Inst> so when I define >>=, the type signature that's either hand-written, spawned by autopilots, or inferred by type checker
01:53:24 <jackdk> Inst: monad transformers are a solution to this problem. I recommend not reading about them until you're used to writing things out by hand
01:53:38 <Inst> i know
01:53:44 <Axman6> edwardk: ok, this I can deal with... now is this morally safe to use unsafePerformIO on (twice)?
01:53:48 <Inst> monad transformers are basically the "I bashed my head into the wall 30 times and I give up"
01:53:50 <Axman6> I guess it is now
01:53:52 <edwardk> oh you can drop the 'output' i forgot
01:53:56 <edwardk> yes
01:54:29 <EvanR> not exactly a beginner tool
01:54:34 <Inst> when I use >>=, it only infers a single type and with dissimilar monad nesting levels, it tells me to scram?
01:54:50 <Axman6> Inst: this is why I was trying to lead you to something that wasn't using the monsd instance for both Maybe an dIO
01:55:10 <EvanR> a single use of >>= will interpreted only 1 way
01:55:15 <Axman6> stop thinking of Mayb e as a monad and don't use its (>>=)
01:55:27 <jackdk> ^ good advice, for now
01:56:18 <EvanR> >>= won't just do all effects of all monads in sight, it's 1 monad at a time
01:56:19 alx741 joins (~alx741@157.100.93.160)
01:56:19 <Axman6> edwardk: does that version memoise? looks like it'll call t2a t for every call - the fiew pattern trick before looked like a good way to do this
01:56:26 <edwardk> you can get fancier and pass (t2a a) as the argument to the ioref and read it out of there and save some thunk construction in exchange for an unncessary read from the thunk
01:56:37 <EvanR> so might as well deal with 1 monad at a time xD
01:56:48 <EvanR> at most
01:56:51 <Inst> spawned a case of
01:56:54 <edwardk> it makes thunk for the evaluation of t2a t every time, but only ever returns the first thunk
01:57:02 <Inst> it's complaining it expects IO (IO Handle)
01:57:18 <Inst> instead of Maybe IO Handle
01:57:33 <Axman6> hmm, hand on, `output` isn't used - one of ref1 or ref2 should be output?
01:57:35 <EvanR> I think your IDE is confusing you more
01:57:41 shapr joins (~user@2601:7c0:c202:5190:5625:d6db:b1c1:a272)
01:57:49 <edwardk> oh, that one is wrong i forgot to write in the base case, because i'd started to do the change to storing 'a' in the ioref but didn't finish, one sec
01:57:51 <Axman6> Inst: you _do not want Maybe (IO Handle)
01:57:54 <Axman6> _
01:58:34 <Inst> i mean, there's an ugly hack i've gotten to work
01:58:49 <edwardk> https://www.irccloud.com/pastebin/Dio1MtKJ/
01:58:52 <Inst> just have the first function print out IO String, and hope there's no way for openFileDialogs to legitimately generate the specific string
01:59:05 <edwardk> there/ i forgot the 'priming' writeIORef basically
01:59:12 <Inst> then test for the string on the function calling it
01:59:21 <EvanR> what are you actually trying to do again
01:59:58 <Inst> hopefully, once I stop sucking at Haskell, build Teach.Effects so that learners of Haskell from non-programmer backgrounds
02:00:17 × tomku quits (~tomku@user/tomku) (Ping timeout: 240 seconds)
02:00:39 <Axman6> I thought that `writeIORef ref1 a` wasn't actually needed, but realised that it's used for just the first call for each t. got it
02:00:39 <Inst> can get into Effects early on and put in their problem sets as .exes (or whatever equivalent binary) that can parse data from files and network files, as well as output data into local files
02:00:48 <edwardk> https://www.irccloud.com/pastebin/7zTQAoyz/
02:00:49 <EvanR> Effects
02:01:12 <Inst> TBH I'm starting to think this was a bad idea, that you can't teach IO early like this
02:01:12 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
02:01:14 <edwardk> ^- that version stuffs the answer in the ioref as a thunk, but doesn't do it, then copies it out to all future refs
02:01:26 <Inst> the thing is, I want it to hook into a GUI
02:01:44 <Axman6> Inst: personally I thnk teaching IO using do notation works fine, I've done it with plenty of first year students
02:01:48 <EvanR> IO is fine, it's not necessary to fully understand theory of monads to just do basic stuff like read and write files
02:01:53 <edwardk> avoids allocating the tuple every time, no 'undefineds' remains threadsafe, etc.
02:02:23 <EvanR> some kind of Effects library, that is what I'm skeptical about, for total beginners
02:02:38 <edwardk> if you want to go further you could pass in a function that consumes an 'a' rather than an IORef, but it seems superfluous
02:02:58 <Inst> oh okay, but I'm sort of over-doing it by insisting on hand-crafting a hack linking TinyFileDialogs (UI / API caller) to my stuff in such a way that a beginner could understand what's going on
02:03:02 <Axman6> yeah this is fine
02:03:07 pragma- parts (~chaos@user/pragmatic-chaos) (Bye!)
02:03:08 <edwardk> because to implement it you'd need to do the ioref dance anyways
02:03:20 <Inst> EvanR: yeah, I'm discovering the problem
02:03:22 × kvakil quits (~keyhan@2601:645:8500:4fc0:2df5:f7d6:e89:c64b) (Remote host closed the connection)
02:03:27 <Inst> understanding IO, as opposed to just doing it, is a nightmare
02:03:47 <Axman6> Inst: I think you should try and get this wqorking using do notation for the IO stuff and avoid using anything Monad related for Maybe. then you can desugar it
02:04:06 <Inst> i have a working variant with the "nothing" logic in main
02:04:23 <edwardk> finally you can replace all IOs with ST s, and the unsafePerformIOs with unsafePerformST to feel a tiny bit better about yourself or judicious trickery around unsafeInterleaveST to feel slightly more smug, but its all the same
02:04:24 <Axman6> I don't think that's the problem, you haven't developed the skills of typechecking in your head yet, so you're getting unexpected results
02:04:41 <Inst> i can typecheck just well when it's not nested dissimilar monads
02:04:48 <Inst> it's only when it's nested dissimilar monads when everything goes to hell
02:04:55 <EvanR> the fact that Maybe is a monad shouldn't even matter
02:04:59 <EvanR> forget this fact xD
02:05:20 <Inst> thank you for being encouraging
02:05:23 <EvanR> it's not helping you
02:05:28 <Inst> tbh i wasted like 6 hours of Functional Programming discord's time today
02:05:32 <Axman6> so follow our advice and stop treating Maybe as monad, it's not even a useful thing to be thinking about at the moment
02:06:11 <Axman6> in fact, the code you want to write just needs fmap at the moment
02:07:15 <Inst> i guess i haven't built up the intuition for it
02:07:17 <Axman6> since you're starting with IO (Maybe [Text]) and you want IO (Maybe String) that's just fmap of a function of type Maybe [Text] -> Maybe String
02:07:27 <Inst> https://cdn.discordapp.com/attachments/528863657363505159/928107214500151336/unknown.png
02:07:42 <Axman6> which you have written a few times already, but added in unnexessary IO stuff to complicate thing
02:08:01 <Inst> i have the IO (Maybe String)
02:08:02 <EvanR> data Maybe a = Nothing | Just a
02:08:15 <Inst> at this point I need Maybe IO Handle or IO Maybe Handle or IO Maybe IO Handle
02:08:29 <EvanR> damn the lack of parens is confusing
02:08:40 <Axman6> the -> Nothing has type Maybe a, you need IO (Maybe (IO Handle))
02:08:45 <Inst> Maybe (IO Handle) or IO (Maybe Handle) or IO (Maybe (IO Handle))
02:08:52 × ensyde quits (~ensyde@2600:1702:2e30:1a40:d1f0:4880:2e12:11ff) (Quit: Leaving)
02:09:33 <EvanR> handling Maybe is as simple as case analysis on those two cases above
02:09:50 <Axman6> both branches of that case statement need to return IO <something>
02:10:10 <Axman6> but at the moment, they are both return Maybe <something>
02:10:18 <Axman6> IO /= Maybe
02:10:26 <Axman6> how do you go from a to IO a?
02:13:22 <Axman6> jackdk: just looked at acma-smuggle. I hate it
02:13:27 <Axman6> acme*
02:14:10 <jackdk> Axman6: ^_^
02:14:24 <monochrom> smuggler*
02:16:32 <Inst> thank you
02:16:35 <Inst> i love you all
02:16:46 <Inst> cancer.hs, interpreted)
02:16:53 <Inst> Ok, one module loaded.
02:17:29 alx741 joins (~alx741@157.100.93.160)
02:18:21 <Inst> inb4 folks on Functional Programming Discord start going "AAAAAAAAAAH" and complain it should be written in Monad Transformers, etc etc
02:18:33 califax- joins (~califax@user/califx)
02:18:54 <jackdk> eventually you will want to learn transformers and MTL, but not today.
02:19:02 <jackdk> good work and good luck moving forward
02:19:20 <Inst> https://pastebin.com/X4GyvTXP
02:19:25 <Inst> thanks
02:21:23 <Inst> here's the monolithic prototype:
02:21:25 <Inst> https://cdn.discordapp.com/attachments/528863657363505159/928110841264488478/unknown.png
02:21:49 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
02:22:00 × califax quits (~califax@user/califx) (Ping timeout: 276 seconds)
02:22:01 califax- is now known as califax
02:23:00 <EvanR> you can save yourself a lot of space munging just indenting once for each level (when possible)
02:23:22 <EvanR> using whatever, 2 space per tab like you did
02:23:51 <EvanR> instead of 2 and a half spaces per tab
02:24:03 <EvanR> er, 2.5 indents per level
02:24:09 <Inst> i know
02:24:46 <Inst> i have 5 different beginner haskell textbooks, the textbook on functional programming datastructures by okasaki, algorithms by bird, "the book of monads" by that Spanish guy
02:24:54 <EvanR> coerceList ??
02:24:57 <Inst> one of them says indent twice
02:25:07 <EvanR> oh this is like string conversion
02:25:13 <Inst> that's probably the wrong term, I picked that up from Haskellbook / Haskell Programming from First Principles
02:25:33 <EvanR> by indent twice they might mean at least 2 space per tab
02:25:40 <Inst> the original plan was to use a friend who's a good social media influencer
02:25:53 <Inst> to get her to attract people to my course, once the prototypes etc were done and we had it perfected
02:26:08 <Inst> now i'm planning to pay people MMO gold to do it
02:27:02 <Inst> unfortunately, the friend ran off to Python and is taking a 3 week course on it
02:27:04 <EvanR> you are paying people to take your Haskell course
02:27:07 <Inst> yes
02:27:17 <Inst> I'm very obsessed with Haskell, maybe it's autism or whatever
02:27:28 <Inst> recursion, etc, it gets me going
02:27:41 <Inst> I was also planning to get a friend of my friend, who's an art school graduate, to design a mascot for Haskell
02:28:02 <Inst> and pay her like 40, or something, then eventually try to get Haskell Foundation to cover me
02:28:07 <Inst> ballooned into 200
02:28:09 <Inst> too elaborate
02:28:17 × sagax quits (~sagax_nb@user/sagax) (Ping timeout: 240 seconds)
02:29:22 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
02:29:22 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
02:29:22 wroathe joins (~wroathe@user/wroathe)
02:29:25 × mmhat quits (~mmh@55d49f73.access.ecotel.net) (Ping timeout: 240 seconds)
02:29:49 <Inst> my goal is to get the language to twice the difficulty of Python for new learners
02:30:31 <Inst> then claim, "you're smart, don't learn Python, learn Haskell instead"
02:30:33 × qwedfg quits (~qwedfg@user/qwedfg) (Read error: Connection reset by peer)
02:32:39 qwedfg joins (~qwedfg@user/qwedfg)
02:32:56 mikail_ joins (~mikail@94.1.27.214)
02:33:09 neurocyte09 joins (~neurocyte@IP-045128182210.dynamic.medianet-world.de)
02:33:09 × neurocyte09 quits (~neurocyte@IP-045128182210.dynamic.medianet-world.de) (Changing host)
02:33:09 neurocyte09 joins (~neurocyte@user/neurocyte)
02:35:01 × neurocyte0 quits (~neurocyte@user/neurocyte) (Ping timeout: 240 seconds)
02:35:01 neurocyte09 is now known as neurocyte0
02:35:17 × mikail quits (~mikail@2a02:c7f:bc1f:4a00:1f95:fc24:559b:d565) (Ping timeout: 240 seconds)
02:36:16 lavaman joins (~lavaman@98.38.249.169)
02:37:28 × xff0x quits (~xff0x@2001:1a81:53aa:f200:f1a6:48ec:fa1:3025) (Ping timeout: 268 seconds)
02:38:47 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
02:39:11 xff0x joins (~xff0x@2001:1a81:53e7:b00:1d48:798f:68c9:16a8)
02:40:01 alx741 joins (~alx741@157.100.93.160)
02:40:54 Jing joins (~hedgehog@2604:a840:3::103c)
02:43:04 mmhat joins (~mmh@55d49507.access.ecotel.net)
02:44:36 <dsal> openFilePath looks like `fmap unpack <$> openFileDialog "" "" [] "" False`
02:45:14 Inst sighs
02:45:14 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
02:46:10 <EvanR> fmap (fmap (fmap (...
02:46:41 <Inst> why would someone [Text] anyways?
02:46:47 nhatanh02 joins (~satori@123.24.172.30)
02:47:11 <dsal> Oh, I missed that that was partial.
02:47:11 <EvanR> the lines of a file is a thing
02:47:26 tomku joins (~tomku@user/tomku)
02:47:29 <Inst> it loads up the bleeding path of a filename
02:47:44 <dsal> It also asks for more than one filename.
02:47:53 <dsal> Some programs work on more than one file.
02:47:53 <EvanR> oh, filepicker, yeah
02:48:04 <EvanR> multi-file select
02:48:46 <dsal> So `fmap (unpack . head) <$> openFileDialog "" "" [] "" False` I guess.
02:49:37 <EvanR> better pick a file, any file, or I'll fuckin crash
02:50:01 <Inst> <$>, I forget, what's that operator? Should be fmap?
02:50:08 <EvanR> it's fmap
02:50:54 <Inst> EvanR: well, doing it in a hacky way is relatively easy
02:51:04 <Inst> just dump random stuff, bind to fh or something
02:51:08 <Inst> then cite fh
02:51:09 <dsal> Partial functions are just deferred regrets.
02:51:55 <Inst> also, iirc, i've ran it before, i don't think it'll crash
02:51:59 <EvanR> Let It Crash
02:52:01 <Inst> returns Nothing
02:52:03 <dsal> It'll definitely crash.
02:52:12 <Inst> hence the fucking Maybe that drove me nuts for 18 hours
02:52:15 <EvanR> Fail Fast Fail Often
02:52:42 <Inst> one of the annoying things about Haskell, as opposed to other languages, is that your functions can't return stuff of different types
02:52:44 <EvanR> Avoid Success At All Costs
02:52:45 <Inst> unless you do forall, iirc
02:52:57 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
02:53:03 <dsal> It's a bad API, though. It looks like the Boolean at the end defines the size of the results. It also does it incorrectly.
02:53:08 <EvanR> more like in those languages everything is the same type
02:53:11 <dsal> Inst: What do you mean? Sure it can.
02:53:13 <EvanR> e.g. Dynamic
02:53:58 <Inst> it's annoying because if i'm trying to do control flows, i can't have it arbitrarily branch
02:54:09 <Inst> has to have some kind of evaluation call that returns the same type... oh wait
02:54:18 <dsal> I'm sorry you feel that way. I don't seem to have that issue.
02:54:23 <EvanR> data Javascript = JSNum Double | JSString Text | JSArray (Vector Javascript) | ...
02:54:42 <EvanR> enjoy
02:54:46 <Inst> yeah just define a type for controlling stuff
02:55:10 <dsal> Your limitations aren't language limitations.
02:55:39 <Inst> i don't mind if you call me dumb
02:56:18 <dsal> Haskell's the easiest language I've worked in over the last few years. If I have a problem, it's usually because I'm trying to do something that I'd later regret if I succeeded.
02:56:47 <dsal> I'm not saying you're dumb. But you're saying things about the language that aren't about the language… they're about you. The language lets you do all kinds of things.
02:57:33 × lavaman quits (~lavaman@98.38.249.169) (Read error: Connection reset by peer)
02:57:33 awschnap joins (~lavaman@98.38.249.169)
02:57:33 <EvanR> control flow is one of those things that don't have to be built into haskell, because laziness
02:57:36 <Inst> yeah, just a bit demoralized, first foray into trying "imperative" programming in Haskell
02:58:15 <EvanR> so instead you have a small fortune of ways to control flow, some of which are techniques, some of which are in libraries
02:58:45 <Inst> I tend to sing praises of Whitington's book, it's absolutely great, intros data structures and algorithms
02:58:52 <EvanR> just checking a Maybe however is not something that requires much ingenuity
02:59:05 <Inst> Either is probably better
02:59:29 <dsal> Either complicates a lot of things and doesn't behave all the ways you'd expect.
02:59:35 <dsal> Maybe is quite consistent.
02:59:41 × joo-_ quits (~joo-_@fsf/member/joo--) (Ping timeout: 268 seconds)
02:59:50 <Inst> just wish there were a way to learn / teach Haskell so you could be making effectual programs by the end of the first or second week of the course (if it were 3-4 credit uni)
03:00:45 <EvanR> there is
03:00:49 <Inst> really?
03:00:55 <EvanR> sure
03:01:02 <Inst> i mean beyond the main = putStrLn "Hello World" nonsense
03:01:11 joo-_ joins (~joo-_@87-49-147-115-mobile.dk.customer.tdc.net)
03:01:11 × joo-_ quits (~joo-_@87-49-147-115-mobile.dk.customer.tdc.net) (Changing host)
03:01:11 joo-_ joins (~joo-_@fsf/member/joo--)
03:01:15 <dsal> I'm not convinced trying to learn things in a hurry is best for most people.
03:01:23 <EvanR> plenty of resources and war stories from people who do this for a living
03:01:36 <Inst> oh, I could look up the ANU course
03:01:57 <dsal> @where cs194
03:01:57 <lambdabot> I know nothing about cs194.
03:02:05 <Inst> the UPenn one
03:02:11 <dsal> https://www.seas.upenn.edu/~cis194/fall16/
03:02:14 <Inst> the reason I'm crazy about Haskell is that for whatever stupid reason
03:02:23 <Inst> C++ never clicked for me, neither did Basic, Visual Basic, etc
03:02:44 <Inst> I think I tried a few Python tutorials
03:03:14 <Inst> this one did, would be fascinating if you could start targeting newbies, I wonder what it'd look like on a college application if the applicant
03:03:14 × yauhsien quits (~yauhsien@61-231-58-217.dynamic-ip.hinet.net) (Remote host closed the connection)
03:03:18 <EvanR> one of the insights I got from Haskell is a better appreciation for other languages, boring industrial, also languages "beyond" haskell
03:03:19 <dsal> Haskell's definitely easier than C++. heh
03:03:28 alx741 joins (~alx741@157.100.93.160)
03:03:28 <Inst> posted Github repositories for Haskell
03:03:33 <EvanR> tooling around with Python forever does not help your soul
03:03:44 <Axman6> Inst: Based on what I've seen, I feel like you're not too far off from having haskell click for you, you're pretty close. but you're making the same mistakes we all made too
03:03:54 <EvanR> but all languages have their charms
03:04:04 <Inst> you know Whitington's book, right?
03:04:09 yauhsien joins (~yauhsien@61-231-58-217.dynamic-ip.hinet.net)
03:04:09 sub0 joins (~bc8147f2@cerf.good1.com)
03:04:16 <Inst> "Haskell From the Very Beginning"
03:04:28 <Inst> I spent 12-16 hours hacking at one of the problems with binary trees
03:04:29 <Axman6> Inst: also, I and jackdk have both been involved with tutoring for the ANU couse (and the NICTA/Data61/System-F course too, and dibblego wrote most of it)
03:04:35 <Inst> oh wow
03:04:46 <Inst> enjoying your reverse spiralling toilets? :)
03:05:08 <Axman6> Who even has toilets that spiral, that’s inefficient
03:05:17 <jackdk> Inst: and our summer Christmases
03:05:28 <Inst> wondering if Aus actually leads the world, instead of the Japanese, in toilet technology
03:05:33 <Inst> best anti-Chinese weapon you have
03:05:45 <Inst> their premier in the 1990s disappeared to one of your bathrooms, went missing from a conference
03:05:54 <Inst> turns out he was disassembling and studying your toilets
03:05:55 <Axman6> Javing lived in Japan, their toilets are definitely superior
03:06:10 <Axman6> H*
03:06:41 × awschnap quits (~lavaman@98.38.249.169) (Remote host closed the connection)
03:06:59 <Inst> let me look it up again
03:07:17 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
03:07:21 <Inst> tbh i think reaching imperative programmers is like a dead end, because they'll just get the functional concepts dumped into their own languages
03:07:36 <Inst> better to start with amateurs, students, etc
03:07:42 <dsal> lol
03:07:56 <Inst> https://cs.anu.edu.au/courses/comp1100/labs/01/
03:08:09 <jackdk> I'm mostly here for the types. FP is a consequence of wanting good types.
03:08:25 <dsal> The opinion to understanding ratio is kind of hilarious.
03:09:02 <Axman6> that's one of the reasons ANU uses Haskell, much more of an even playing field, prople who know programming before they arrive don't know Haskell
03:09:02 <EvanR> yes advanced types in imperative languages are mildly terrifying
03:10:30 <Inst> which was whitington's line, i think he was teaching OCaml at Cambridge
03:10:37 × yauhsien quits (~yauhsien@61-231-58-217.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
03:10:54 <Inst> FP gives everyone an even playing field
03:11:02 Axman6 can't even load the ANU link above
03:11:17 <Inst> https://cs.anu.edu.au/courses/comp1100/
03:11:52 <Axman6> yes, it's not responding for me
03:11:59 <BrokenClutch> FP is too dense e complex. Like, you don't have the same flow you have with imperative languages
03:12:13 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 240 seconds)
03:12:27 <Inst> got it working
03:12:30 <dsal> How is FP more complex than imperative languages? I find the opposite.
03:12:52 <EvanR> well, my FP solutions to advent of code disagree xD
03:12:55 <Inst> FP doing imperative stuff seems more complex
03:12:55 <BrokenClutch> I actually prefer FP, I think it's easier to reason about. But imperative makes more sense for people, It's easier to think on a sequence of commands than some complex monad computation
03:13:06 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
03:13:17 <EvanR> Inst, you should try doing functional stuff in a non-functional language xD
03:13:20 <dsal> Imperative makes sense to people who were trained that way.
03:13:31 lavaman joins (~lavaman@98.38.249.169)
03:13:42 <Inst> when I was trying to learn C++, people in #C++ and ##programming were wagging their fingers
03:13:42 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
03:13:55 <Inst> because I tried to run stuff with recursive loops
03:13:58 <EvanR> BrokenClutch, this is why I only resort to monads .. as a last resort
03:14:02 <Inst> "we don't have TCO, this is bad"
03:14:05 <BrokenClutch> I've tried both with my 60 yrld dad and other people. They grasp imperative faster than FP
03:14:42 <BrokenClutch> The idea of "statement" really helps
03:14:56 <EvanR> well FP has a math component, specifically, algebraic skills like substituting
03:15:04 <EvanR> many people never heard of this
03:15:19 <EvanR> meanwhile, "goto" is self evident
03:15:31 <Inst> i actually learned recursion in terms of goto
03:16:01 <Inst> also to finish the comment about binary trees, it was to combine two binary trees
03:16:17 <Inst> Whitington's solution was to melt the trees down into lists and then rebuild them
03:16:29 <Inst> I got an accumulator set up after hours of moaning
03:16:37 <Inst> was incredibly satisfying
03:17:01 <Inst> i.e, one tree would be treated as an accumulator, the other tree would be recursively dismantled
03:18:02 <BrokenClutch> I don't think FP will get popular, some FP things could get, but FP no.
03:18:29 <BrokenClutch> I really like FP, it's easier to reason about, give me less headaches and keep things more fun
03:18:32 <EvanR> I have to report on my own attempt to learn programming in BASIC, using only goto I had a very hard time structuring any program
03:18:36 <Inst> there are some people for whom FP is native
03:18:38 <EvanR> very mysterious to me as a 6 year old
03:18:48 <Inst> satisfying as an 8 year old
03:19:00 <Inst> or was that 11 year old? Been decades.
03:19:07 <EvanR> I was like how the F could zork ever work like this
03:19:58 <Inst> i mean there are people for whom FP is native, i.e, FP seems to have lower working memory requirements than imperative
03:20:01 <BrokenClutch> I will probably try scheme vs go, when showing people FP vs imperative. I will write the results to see if there is some difference : D
03:20:18 <jackdk> I find that explaining evaluation by substitution (especially in a nonstrict language) is much easier to teach than evaluation by moving an instruction pointer around while keeping some scratch space
03:20:20 <Inst> hence why I talk about non-programmers, i.e, if they have poor working memory and FP sticks better
03:20:32 <dsal> Inst: What does "native" mean? Nobody is born with any particular programming skills.
03:20:40 <Inst> dsal: I mean, a type of intellect
03:21:18 <EvanR> I can guarantee you the BASIC manual made no particular sense to me as a child
03:21:21 <BrokenClutch> Man, this does not make sense. Like, haskellborn?
03:21:32 <Inst> there was a BASIC manual?
03:21:34 <EvanR> so it couldn't have been especially intuitive
03:21:37 <EvanR> I had a manual
03:21:52 <Inst> like, my attempts at learning imperative programming were ruined because I couldn't read the code in the textbooks
03:21:57 <EvanR> though copying the code listings from the back worked
03:22:04 <BrokenClutch> EvanR: I could even take a bath, like, children are f dumb
03:22:04 <Inst> took way too long to process what the hell the code was supposed to do and what it actually did
03:22:26 <BrokenClutch> Inst: Imperative code is harder to reason about it
03:22:33 <BrokenClutch> This i can agree on
03:22:37 <EvanR> at least, once it gets off 1 page
03:22:55 <BrokenClutch> couldn't take a bath*
03:23:20 <Inst> i don't think my math background is particularly good
03:23:38 <jackdk> Is anyone about who is connected with the stackverse? I am about to ship a PR to amazonka-dynamodb that requires `hashable >=1.3.4.0` (`instance (Hashable k, Hashable v) => Hashable (Map k v)`). Latest stackage snapshots for GHC 8.10.7 still lock to `hashable-1.3.0.0`. What are the odds of this ever changing (i.e., should I work around their reluctance to update things)?
03:23:53 <Inst> okay, i'll idle off, need to read my textbooks
03:24:50 <Inst> as in, i dropped real analysis twice when i was younger, but got past linear algebra track with good grades
03:25:21 <Inst> but haskell seemed more intuitive to me, i.e, i'm stating that there are probably more people whose intellects take more naturally to FP than imperative, and these people are probably non-coders because most code is imperative
03:25:47 <BrokenClutch> Inst: Or you had bad teachers
03:25:49 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
03:25:49 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
03:25:49 finn_elija is now known as FinnElija
03:26:22 <dsal> Most code is buggy.
03:26:53 <dsal> Imperative just means someone thinks they thought through all the details for something and wrote them down in a lot of detail for some machine to deal with.
03:27:17 <dsal> We've got better abstractions. We can do things like state a goal and reuse stuff.
03:27:22 × remexre quits (~remexre@user/remexre) (Remote host closed the connection)
03:27:51 <dsal> And since we have a useful type system, we can do things like refactor code without being terribly afraid everything's about to break.
03:27:59 <Inst> put another way, FP abstractions are harder to understand, but once you get them, they're easy to work with
03:28:01 <BrokenClutch> Lot of imperative languages have good abstractions, lot of them don't even have types
03:28:04 <Axman6> The majority of code that has been wirtten has been imperative because that's where we started (machine code -> assembly -> <dead languages> -> C -> ...) but that doesn't mean that it's inherently easier, it's just a more direct translation to what the machine executes. there's no reason we couldn't have started with FP
03:28:18 <Inst> someone on FP discord
03:28:23 × mmhat quits (~mmh@55d49507.access.ecotel.net) (Quit: WeeChat 3.4)
03:28:30 <Inst> keeps on talking about the possibility of a machine that can do lambda calculus natively
03:28:35 <dsal> FP abstractions aren't harder to understand. They just… exist.
03:28:35 <Inst> i'm wondering if such a thing is possible
03:28:38 <Axman6> ther's been a few
03:28:41 <BrokenClutch> lisp machines
03:28:42 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4)
03:28:45 remexre joins (~remexre@user/remexre)
03:28:47 <Axman6> the reduceron
03:28:54 <Inst> but are they more performant than equivalent imperative machines?
03:28:59 <BrokenClutch> no
03:29:26 <BrokenClutch> Because people didn't put enough time I think, or because FP is bad. I don't think we researched enough.
03:29:51 alx741 joins (~alx741@157.100.93.160)
03:30:08 <Inst> somehow I get the feeling pure and mostly pure functional languages like OCaml / Haskell, etc, are probably best suited to being Python for Ivy Leaguers
03:30:34 <EvanR> please don't put javascript-level of funding into hardware lambda calculus, until everyone involved in required to write a million lines of code in lambda calculus to make sure it's worth it
03:30:35 <dsal> I'm not sure anyone knows what that means. Surely you don't.
03:30:44 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:30:54 <EvanR> I say this because something better likely exists and is easier to hardware
03:30:56 <Inst> I mean that I don't think that FP can displace imperative programming due to the ecosystem lead
03:31:04 <dsal> python is "easy" to do a small throwaway thing in. Haskell is easier to write software in than python by far.
03:31:26 <Inst> Python for Ivy Leaguers -> scripting / prototyping language for smart people
03:31:52 <Inst> who are smart enough or have the type of intellect necessary to easily grasp the abstractions
03:32:11 Axman6 is weaiting for ARM to add a Jazellescript extension to run Javascript natively
03:32:14 <Axman6> waiting*
03:32:18 <dsal> I don't use the abstractions because I'm smart -- I use them because I'm dumb.
03:32:47 <Inst> but it takes a lot of intelligence to actually grasp the abstractions, no?
03:32:54 <EvanR> I use abstractions because they're cool
03:32:59 <Axman6> Inst: Facebook use Haskell for the whole spam filtering system, and specifically use it for people who aren't primarily programmers
03:33:28 Everything joins (~Everythin@37.115.210.35)
03:33:38 <Inst> I use abstractions because I'm mentally disturbed and have a weird subjective experience when facing difficult ideas
03:33:39 <dsal> You don't have to immediately grasp *every* abstraction, but my experience with people doing imperative languages is that they just reinvent the abstractions in every function, but are more creative with bugs.
03:34:13 <Inst> as in, to make it worksafe, abstractions, ideas, etc, get me high
03:34:21 <EvanR> some of the abstractions in haskell are just beautiful, if not particularly useful
03:34:25 <Axman6> Inst: The majority of abstractions we use are _very_ simple - Monad is a good example, understanding the notion of "and then" is pretty easy, but it is also very abstract to learning all the ways it is applicable is difficult, precisely because the abstractions are so simple
03:34:36 <Inst> yeah i finally understood today and yesterday
03:34:39 <Inst> why people say monads are hard
03:34:43 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:34:48 <Inst> monads as a concept aren't hard, understanding how to use them, on the other hand, is painful
03:34:49 <EvanR> Functor, Applicative are beautiful and useful though
03:34:55 <dsal> Oh good. Maybe you can explain to me why people say monads are hard.
03:35:06 <Inst> because of poor branding
03:35:18 <EvanR> monads are basically a meme
03:35:19 <Inst> think Chevy Nova, which had to be rebranded in Hispanic markets because No Va -> No go
03:35:24 <Axman6> I think a lot of that poor branding comes from people who don't understand them
03:35:37 <Inst> rename them glorified boxes
03:35:43 <EvanR> burritos
03:35:47 <Axman6> "Monads are just a hack so you can do IO in Haskell" "Monads are just containers"
03:35:49 <EvanR> night clubs
03:35:55 <Inst> boxes with methods defined on them that make them predictable and useful
03:35:57 <Axman6> Inst: how is a function a box?
03:36:02 <Inst> actually
03:36:03 <EvanR> don't ask that
03:36:03 <Inst> in Chinese
03:36:04 <Axman6> how is State a box?
03:36:14 <Inst> functional literally means "contains numbers"
03:36:24 <EvanR> "_ is a box because imagine a box with a button that when pressed, _ pops out"
03:36:26 <Inst> erm, is literally composed of the word for container and numbers
03:36:42 <EvanR> imagine an analogy in a box
03:36:50 <Inst> imagine an analogy in an analogy
03:36:59 <Axman6> you can join those analogy
03:37:01 <Inst> why I love Haskell part 2323: I find recursion intrinsically hilarious
03:37:04 <Axman6> therefore analogies are monads
03:37:25 <EvanR> recursion is punk rock
03:37:28 <Axman6> analogies*
03:37:42 <Axman6> Imagine only being able to use loops, how pleb is that?
03:38:17 <Inst> "Monads are strictly a typeclass in Haskell, for which types can be made instances of the Typeclass Monad by defining return/pure and >>= (or join), <*>, and fmap"
03:38:30 <Axman6> "But I wanna look at both branches of the tree" "NO! You must add a data structure that represents the call tree you really wanted!"
03:38:40 <Inst> see, I pissed off people on FP
03:38:45 <Inst> by arguing that recursion is a form of looping
03:38:48 <jackdk> "The Monad type class is a software engineering pattern to facilitate code reuse."
03:38:55 <Axman6> looping is a subset of recursion
03:39:07 <Axman6> jackdk wins
03:39:18 <Inst> actually, the reason I like the box metaphor
03:39:21 <jackdk> I just parrot the sayings of people smarter than me
03:39:28 <Inst> is because boxes can be used in many ways
03:39:38 <Axman6> the box metaphor is fundamentally wrong
03:39:39 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
03:39:40 <EvanR> if a monad is "just a box", then what is a comonad / cobox
03:39:54 <EvanR> also yes
03:39:58 <Inst> so what's wrong with the box / container metaphor?
03:40:19 <dsal> Like most metaphors, it artificially limits your understanding.
03:40:24 <EvanR> box / container is often used as an analogy for basically anything or everything
03:40:25 <Inst> houses are boxes, so are cars, so is clothing, in a way
03:40:26 <Axman6> a monad is now a box, it a bowl, and because the existance of comonads, we can also program in COBOWL and earn a lot of money in finance
03:40:26 <Inst> i see
03:40:30 <jackdk> there is an `instance Monad ((->) r)` and functions are not boxes
03:40:30 <EvanR> it's lost all meaning
03:40:36 <Axman6> Inst: how is a function a box
03:40:36 <dsal> Especially bad for monad because if it's a box, then you'd think you'd be able to take something out of it, but you can't take a value out of a monad.
03:40:40 <dsal> (generally)
03:40:49 <Inst> Axman6: are you making a sincere inquiry into Chinese?
03:40:54 <Inst> 函数
03:41:15 <EvanR> functions are often explained as a black box
03:41:24 <EvanR> with input and output
03:41:27 <Inst> contains numbers
03:41:33 <Axman6> but then you view source and they become white boxes
03:41:36 <Inst> that's the literal translation, i.e
03:41:54 <Axman6> I have no idea what you're talking about
03:41:56 <dsal> I don't think anyone cares about literal translations of Chinese here.
03:42:03 <Inst> i mean a function is just a list corresponding unique inputs to outputs
03:42:14 × ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec)
03:42:24 <EvanR> a box is simultaneously any concept and so not helpful
03:42:26 <Inst> functions may not have a known source
03:42:35 ec joins (~ec@gateway/tor-sasl/ec)
03:42:42 <EvanR> at least people have somehow made it that way
03:42:45 <Inst> yeah
03:42:58 <Inst> the course I'm paying people with MMO gold ot take
03:43:06 <Inst> monads are introduced on the first problem set
03:43:17 retroid_ joins (~retro@05412d78.skybroadband.com)
03:43:24 <Inst> discussed briefly at the end of the second lesson
03:43:27 <EvanR> Functor is a better type class to introduce first
03:43:41 <dsal> Inst: You seem to understand things so poorly, I'm curious what you feel you have to offer.
03:43:47 <Inst> the problem with Whitington's book is that he makes Haskell very
03:43:49 <Inst> see, dsal :)
03:44:12 × little_mac quits (~little_ma@2601:410:4300:3ce0:5087:9b0e:bd55:ec33) (Remote host closed the connection)
03:44:20 <EvanR> I'm taking all this whitington publicity very negatively
03:44:24 <Axman6> Inst: I must say, it is very frustrating trying to help someone who both claims to know very little, but also ignores any and all advice to try and change that
03:44:26 <Inst> why?
03:44:41 little_mac joins (~little_ma@2601:410:4300:3ce0:5ce7:d67c:9eeb:3f76)
03:44:45 <Inst> I'm familiar with the definition of Monads as "an abstraction to facilitate software reuse"
03:45:05 <EvanR> boxes also do that, at least in UML
03:45:07 <Inst> What I didn't finish
03:45:08 <Axman6> We're here to help you and anyone else who wants it, but at this point you're wasting our time because you haven't listened to a thing we've said
03:45:23 × ec quits (~ec@gateway/tor-sasl/ec) (Client Quit)
03:45:35 ec joins (~ec@gateway/tor-sasl/ec)
03:45:37 <Inst> was that saying that it's of interest to me because apparently my understanding of monads is too incomplete to teach it, even as an introduction
03:45:49 <EvanR> yeah probably
03:45:55 <EvanR> the monad tutorial fallacy and all
03:46:02 <dsal> But why are you even considering teaching things you don't understand yet?
03:46:12 <Inst> it gives me an incentive and target to learn
03:46:17 <Inst> erm, goal, for learning
03:46:24 <EvanR> your game theory is interesting
03:46:40 <EvanR> you get points for teaching the course, but don't lose any for teaching it really bad?
03:46:59 <Inst> originally I was hoping to get someone to supervise it, i.e, treat it as a hybrid seminar
03:47:19 <Inst> obv i realize my computer science knowledge isn't sufficient, so i'd ask someone to review lesson plans and to watch
03:47:43 <Inst> not sure, still have Dad (if he's going to live much longer), some cousin at Microsoft, but neither know Haskell
03:48:15 <EvanR> you might want to try getting help with haskell online
03:48:17 <EvanR> somewhere
03:48:22 <Axman6> I think you'll find the learning process much easier if you actually listen to the answers to the questions you ask
03:48:33 <Inst> like, that my interpretation of monads was wrong?
03:48:33 <dsal> You have to go through the effort of learning all the parts before suggesting that it's being taught incorrectly, though. I liked the order of HPFFP. I don't even remember when IO was introduced, but List was like, Chapter 14.
03:48:49 <Inst> it was a hypothesis, one that I'm beginning to question
03:49:13 <dsal> The way I learned Monads was to stop trying to learn Monads and just work with lots of different Monads until I started reaching for common tools.
03:49:16 <Inst> that, since Haskell doesn't have loops, classes, etc, it might be possible to get to IO faster, but experientially, I'd either have to have ass it with libraries
03:49:21 <Inst> yeah, I know
03:49:42 <Inst> with my previous programming experience, I sort of gave up because I couldn't do IO fast enough
03:49:45 <dsal> IO is the dirtiest part. I don't know why you'd want to hurry up and get tehre.
03:49:45 × td_ quits (~td@94.134.91.122) (Ping timeout: 256 seconds)
03:49:51 <Axman6> like, we have literally solved the problem you were running into with using IO and Maybe several times, and you seem to have wholy ignored all of them. when we point out what you're doing wrong, you just ignore it. when we ask you questions to push you in the right direction, you don't answer. We've been doing this for a very long time, we're not just taking wild stabs in the dark, we know how to help you learn, but you are the most important in doing that
03:50:03 × sirlensalot quits (~sirlensal@ool-44c5f8c9.dyn.optonline.net) (Quit: sirlensalot)
03:50:23 <Inst> Axman: are you talking FP discord or here?
03:50:33 <Axman6> here
03:50:55 <Inst> I'm not communicative
03:51:03 <Inst> I think you guys were helpful and supportive and I couldn't have done it without you
03:51:24 td_ joins (~td@94.134.91.82)
03:51:38 <Inst> I guess I had implicit conditions I never explained properly, and I was probably not even aware of them
03:51:44 <Inst> like, the ideal was to use bind to do everything for me
03:52:00 <Axman6> bind isn't magic, it does what its type says
03:52:02 <Inst> finally explaining not to treat Maybe as a monad
03:52:07 zebrag joins (~chris@user/zebrag)
03:52:25 <Inst> except that bind isn't apparetnly going to switch types constantly
03:52:35 <dsal> Monads are also functors, and IMO, functor is easier to understand and what you actually needed in the examples you showed.
03:52:37 <Axman6> no, and its type doesn't claim to
03:52:47 <Axman6> :t (>>=)
03:52:48 <lambdabot> Monad m => m a -> (a -> m b) -> m b
03:52:52 <Axman6> all the same m
03:53:03 <Axman6> m is IO, or m is Maybe, it is never both(*)
03:53:16 <Inst> I apologize for being aggravating
03:53:20 <dsal> Functions are concrete. If you're using a function defined in a type class, the concrete type is selected so a specific function is called.
03:53:47 <edwardk> MaybeT IO.... *runs and hides*
03:54:35 <Axman6> you activated my (*) card!
03:55:04 × little_mac quits (~little_ma@2601:410:4300:3ce0:5ce7:d67c:9eeb:3f76) (Remote host closed the connection)
03:55:05 <Inst> EvanR, btw, the point about Whitington is that that can be arguably why his book is bad
03:55:15 <Inst> he teaches you how to use monads, but never explains the concept or what a monad is
03:55:16 <EvanR> yeah that's what I'm getting
03:55:21 little_mac joins (~little_ma@2601:410:4300:3ce0:5087:9b0e:bd55:ec33)
03:55:28 <Inst> then leaves you with a "we never explained monads" as a teaser at the end
03:55:40 <Inst> I'm familiar with the monad tutorial fallacy, but that sort of drives people to get monads
03:55:50 <Inst> the way he teaches everything else, though, it just seems so simple, creating perhaps a false overconfidence
03:56:03 <Inst> then again, the last term is a double negative, no?
03:56:21 <Inst> the other benefit, imo, is that his book seems problem set driven, and I like teaching methods that rely on that
03:57:08 <Axman6> I've found that this article/video works quite well at conveying the concept on what a monad means, by using a more familiar (Ruby) syntax: https://tomstu.art/refactoring-ruby-with-monads
03:57:37 alx741 joins (~alx741@157.100.93.160)
03:57:40 <Inst> that said
03:57:44 <Inst> in FP discord
03:57:49 <lechner> Axman6: thanks for earlier! i was actually having a problem with vector but i think i got it know
03:57:57 <Inst> I had a bleeding urge to teach Haskell (recursion, etc)
03:58:12 <Axman6> it's not perfect, but I think it does a good job of showing that three very different types (things which might eb null, lists, futures) all have a common shape and a reasonable meaning for an `andThen` method, and that is exactly what >>= is
03:58:13 <Inst> I was sort of desperate for anyone who found Haskell fun, and some Lisper asked me to teach Monads to them
03:58:23 <Inst> which I did using the typeclass definition, under others' supervision
03:58:40 <Axman6> lechner: no worries, I miss getting to use haswl :(
03:58:43 <Axman6> hasql*
03:58:58 <Inst> functor is just a typeclass for which fmap is defined, which allows you to apply a function to the inside of a functor type
03:59:19 <Axman6> that's probably not too far off
03:59:24 <Inst> applicative is just a typeclass for which pure and <*> are defined, with (I used the Hutton book to get what I thought was an acceptable understanding of Monads)
03:59:33 <Inst> the intuition being to find ways to fmap multiple arguments
03:59:43 <Axman6> we often talk about lifting a function into some context. so fmap takes (a -> b) and gives us back (f a -> f b)
03:59:47 <Inst> monads share pure with applicative, but have bind, which is defined as a composition of join and fmap
03:59:56 <Inst> context, tbh, is the standard term, i think?
03:59:59 <EvanR> Applicative can have effects, Functor can't
04:00:00 <Inst> boxes are bad because metaphors are bad
04:00:07 <Inst> but context is abstract and hard to understand
04:00:07 <Axman6> that context can mean many things, for Maybe, it means applying that function, if you had a Just or returning Nothing if you had a Nothing
04:00:11 <Inst> what does context mean in this context?
04:00:37 <Axman6> for IO, it means apply that function to the result of that IO action when it is executed. for list, it mean apply that function to every element of that list
04:00:40 <Inst> which specific context are you talking about? In the context of the lesson? In the context of the learner? In the context of the program? In the context of the language?
04:00:57 <Inst> the way I understand it, and for me this is more concrete
04:01:10 <Inst> computations done on something which has a data constructor on it
04:01:15 <Inst> or should I say type constructor?
04:01:36 <Inst> what is a data constructor? A data constructor is a component of a type which can encapsulate another type
04:01:44 <Inst> and iirc, playing around with it
04:01:56 <Inst> i was able to find cases where you could have a functor defined but not an applicative / monad
04:02:07 <Inst> someone mentioned to me a case where a functor couldn't be defined
04:02:10 <Axman6> again, what data constructor do functiosn have? functions are also Functors
04:02:42 <Inst> that's why i'm having difficulty understanding state monads, i.e, i'm unfamiliar with types composed of a data / type constructor imposed on a function
04:03:00 <Axman6> yes, there are plenty of places where Fonctor can't be defined, but the type looks like the right shape
04:03:32 <Inst> from LYAH (RIP), something something left hand of data declaration, type constructors, right side, data/value constructors
04:03:38 <Axman6> newtype Predicate a = Predicate (a -> Bool) -- Can't define Functor for this, there is no function with type (a -> b) -> Predicate a -> Predicate b
04:04:04 <Inst> iirc, the terminology used was that a has to be positive, i.e, (Bool -> a) is valid
04:04:10 <Inst> I don't understand what positive means
04:04:11 <EvanR> State s a = s -> (a, s)
04:04:14 <Axman6> yep
04:04:32 <Axman6> well, in this case, a is in negative position, you need to feed in an a, you're not producing one
04:04:58 <Inst> yeah, i can get a rough intuition, although the idea of being able to apply data constructors onto functions is weird
04:05:02 <Inst> it has to result in a polymorphic type
04:05:19 <Inst> and iirc that was what the discussion turned out into
04:05:23 <jackdk> https://youtu.be/JZPXzJ5tp9w?t=484 George Wilson on positive/negative positions (aside from a longer but also good talk)
04:05:31 <Axman6> one of the very few things I like about scala is that is has a way to say that a type is in negative or positive (or... invariant?) position
04:05:38 <EvanR> newtype Endo a = Endo (a -> a)
04:05:42 <Inst> the one mystery i'm really interested in regarding monads / applicatives / functors
04:05:48 <EvanR> not mind blowing
04:05:53 <Axman6> there's always a good George Wilson talk
04:06:10 <Inst> is how can an applicative not be reducible to a monad?
04:06:38 <Inst> like, I can't think of examples wherein applicatives can't be turned into monads because there's no way to define a join
04:07:02 <Axman6> Const a b is an applicative (if a is a Monoid), but can't be made a Monad
04:07:21 <Axman6> daya Const a b = Const a
04:07:32 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
04:07:32 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
04:07:32 wroathe joins (~wroathe@user/wroathe)
04:07:33 <Inst> /s/daya/data
04:07:39 <Axman6> yes
04:08:01 <Inst> i guess it's because i don't understand type constructors
04:08:02 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
04:08:39 <Inst> or rather, in that case
04:08:41 <EvanR> constructors in general?
04:08:53 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
04:08:53 <Inst> constructors are functions that take a value into another type
04:09:01 <EvanR> imagine Const x being a heap object with x in it
04:09:08 <Inst> I don't understand the notion of heap
04:09:09 <EvanR> like... a box
04:09:12 <jackdk> Inst: this type has no valid `Monad` instance, because it will not satisfy `(<*>) = ap` https://www.irccloud.com/pastebin/1sjEEDOV/Validation.hs
04:09:14 <Inst> or rather heap object
04:09:22 <EvanR> are you sure
04:09:26 <Axman6> the exercise is to try to implement Functor, Applicative and Monad for Const. instance Functor (Const b) where fmap f (Const a) = ???; instance Monoid a => Applicative (Const a) where (Const l) <*> (Const r) = ???
04:10:14 <Inst> i'm guessing what goes wrong with Const a b = Const a
04:10:28 <Inst> is that you can't fully nest Const a b within Const a b
04:10:30 <Inst> because there is no b
04:10:44 <dsal> It's unclear what you mean by that. There's a b
04:10:53 <EvanR> the question is why you can't write a law abiding monad instance, not whether you can't write an instance
04:10:55 <Axman6> so, to be clear, in data Const a b = Const a, something of type Const Int Bool is something which contains an Int but no Bool
04:10:55 <Inst> there's no b in the data constructor side
04:10:59 <Inst> ah, i see
04:11:37 <Axman6> Const 7 :: Const Int Bool (or also Const Int String, or Const Int (IO ()))
04:11:48 <Inst> and if you pure it?
04:12:05 <Axman6> using the GADT syntax, you might say data Const a b where Const :: a -> Const a b
04:12:45 <Axman6> pure :: Monoid m => a -> Const m a
04:12:51 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
04:13:33 <Axman6> (this is one of two reasons why we need the Monoid constraint on the a in Applicative (Const a) - without it, or something equivalent, it's impossible)
04:13:57 <Inst> i barely have an understanding of monoids, i.e, a type for which a binary associative operator is defined
04:14:05 <Axman6> @src Monoid
04:14:05 <lambdabot> class Monoid a where
04:14:05 <lambdabot> mempty :: a
04:14:05 <lambdabot> mappend :: a -> a -> a
04:14:05 <lambdabot> mconcat :: [a] -> a
04:14:13 <Axman6> ignore mconcat
04:14:47 <Inst> i.e, convenience method, not actually part of the definition, since it's requiring list
04:14:52 <Axman6> mempty is a well known name for the "zero" or identity element of the monoid
04:15:06 <Axman6> for lists it's []
04:15:08 <Inst> also an id element
04:15:28 <Axman6> mempty is the identity element for that particular a
04:15:55 <Axman6> so, you can always create an a if a is a monoid, and the specific a you create will be the identity for that monoid
04:16:12 <Inst> mappend, i'm guessing that's the associative binary operator
04:16:19 <Axman6> yep
04:16:28 <Axman6> > mappend [1,2,3] [4,5,6]
04:16:29 <lambdabot> [1,2,3,4,5,6]
04:16:44 <Axman6> > mappend [1,2,3] mempty
04:16:45 <lambdabot> [1,2,3]
04:16:51 <Axman6> > mappend mempty [1,2,3]
04:16:52 <lambdabot> [1,2,3]
04:17:01 <EvanR> > mappend mempty mempty
04:17:02 <lambdabot> ()
04:17:05 <EvanR> lol
04:17:08 <Inst> actually, i'll ask the question that'll make me sound stupid
04:17:13 <Inst> and this is why i'm so annoying
04:17:16 <Inst> what is ap?
04:17:20 <dsal> :t ap
04:17:20 <lambdabot> Monad m => m (a -> b) -> m a -> m b
04:17:44 <Axman6> ap is the same as Applicative's <*> but is the older name from before Applicatives had been discovered
04:17:52 <Inst> but if you can't define a <*>
04:18:15 <Inst> you can't define an applicative, so const a b being unmonadable
04:18:21 <Inst> can't be a result of <*> = ap failure
04:18:40 <Axman6> you can define an Applicative instance for Const, but you cannot define a Monad instance
04:18:52 <Inst> but Const lacks an <*> / ap?
04:18:59 <Axman6> no, it doesn't
04:19:37 <Axman6> you can define (<*>) :: Const x (a -> b) -> Const x a -> Const x b, as long as x is a Monoid
04:20:06 <Inst> so how does Const a b = Const a fail to be definable as a monad?
04:20:16 <Axman6> (Const l) <*> (Const r) = ???
04:20:41 <Inst> oh, I see what you mean, that it'd fail the monad laws
04:20:53 <Axman6> because we need to define (>>=) :: (Const x a) -> (a -> Const x b) -> Const x b - to create that Const x b, we _need_ an a
04:21:17 × shapr quits (~user@2601:7c0:c202:5190:5625:d6db:b1c1:a272) (Ping timeout: 240 seconds)
04:21:24 <EvanR> I guess you don't even get to the defense of the monad laws
04:21:30 <EvanR> nothing to defend
04:21:37 <Axman6> how many a's does something of type Const x a contain?
04:21:47 <Inst> only one
04:21:52 <Axman6> try again
04:22:02 <Axman6> data Const x a = Const x
04:22:05 × jiribenes_ quits (~jiribenes@rosa.jiribenes.com) (Ping timeout: 252 seconds)
04:22:09 <Inst> ah
04:22:16 <EvanR> a is phantom
04:22:22 <Axman6> spooky
04:22:39 <Inst> see, the real problem i guess i have, is that i don't understand monads in terms of >>=
04:22:46 <Inst> >>= I just translate to composite of join and fmap
04:22:56 <EvanR> that's all it is
04:23:06 <Axman6> you can try defining join instead
04:23:19 <Axman6> join :: Const x (Const x a) -> Const x a
04:23:21 jiribenes joins (~jiribenes@rosa.jiribenes.com)
04:23:34 <Inst> that was my intuition
04:23:43 <Inst> that the phantom a was blocking things
04:23:48 <Axman6> you _can_ define that but it won't be lawful
04:24:41 alx741 joins (~alx741@157.100.93.160)
04:25:01 <Axman6> now I'm struggling to remember why
04:25:07 <Inst> sorry
04:25:12 <Inst> axman6, thank you for your time
04:25:16 <Inst> i hope you got something out of it
04:25:31 <Axman6> it;s alwaysd good to go over the basics
04:25:33 <jackdk> Axman6: `join . pure = id`, which sets `x = mempty`
04:25:42 <Inst> do you still teach intro haskell at ANU?
04:25:48 <Axman6> like learning how to type, one day I will learn the basics of that
04:25:57 <Inst> I hope at least, having to deal with someone as dense as me, can at least help you get your dumber students a C
04:26:03 <Axman6> No, if I had more time I would like to
04:26:19 <jackdk> that was terse. `join . pure` should be `id`, but `join . pure` for your unlawful `Const x` will always give you `Const mempty`.
04:26:25 <Axman6> particularly is jackdk was around and we could do it together. what a dream team
04:26:45 <jackdk> I would have so much fun, but I'm elsewhere these days
04:27:35 <Inst> i might be able to pay, but depends on finances i guess
04:27:40 <Inst> like i said, i need a supervisor
04:28:11 <Inst> i was trying to get my lady friend a city university (as in, the university run by the city, not Columbia) of New York professor to see if she'd be willing to supervise independent study
04:28:16 <Axman6> We're all here to help for free, 24ish hours a day
04:28:18 <Inst> and she ran off to python :(
04:29:14 <Inst> so, to recap
04:29:17 <Axman6> Inst: while I remember, I would highly recommend reading https://tomstu.art/refactoring-ruby-with-monads, I think you're at a good stage to have it make a positive impact
04:29:18 <Inst> and i'm sorry for my partial understanding
04:29:32 <Inst> i don't know any other programming languages (in a strict sense)!
04:29:32 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
04:30:25 <Inst> to recap, a type / data constructed type cannot be a functor if the type variable is not positive (i.e, at the very end)
04:31:28 <Inst> an functor cannot be an applicative if no meaningful pure can be defined on it (data Useless a = Useless Int)
04:31:53 <Inst> an applicative cannot be a functor if it's carrying a phantom value
04:31:56 <EvanR> Useless isn't
04:32:04 × little_mac quits (~little_ma@2601:410:4300:3ce0:5087:9b0e:bd55:ec33) (Remote host closed the connection)
04:32:04 <EvanR> phantom types can rock
04:32:19 <Inst> it's a pun on applicative
04:32:21 little_mac joins (~little_ma@2601:410:4300:3ce0:5ce7:d67c:9eeb:3f76)
04:32:23 <dsal> An applicative is a functor.
04:32:34 <Inst> erm
04:32:36 <Inst> not applicative
04:32:43 <Inst> an applicative cannot be a monad if it's carrying a phantom value
04:32:46 <Axman6> useless can definitely have a meaningful pure, and (<*>)
04:32:52 <Inst> oh derp
04:32:57 <Axman6> it's not very useful though
04:33:00 <dsal> ST is a monad with a phantom type.
04:33:07 <Inst> i see
04:33:55 <Inst> if the phantom type is positive?
04:35:23 deadmarshal joins (~deadmarsh@95.38.116.69)
04:35:56 <Axman6> phantom types are neither positive or negative
04:36:05 <Inst> yeah, i'm being stupid
04:36:48 <Axman6> data TaggedFunc c a b = Funct (a -> b) -- what are the "signs" of a, b and c?
04:37:12 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
04:37:44 <Inst> b is positive, a is negative, c is phantom (none)
04:37:51 <Axman6> correct
04:38:00 <Inst> sorry, ANU is an elite school
04:38:15 <Inst> you guys have a research tieup with Trina Solar
04:38:45 <Inst> which is iirc the largest solar manufacturer in the world, or at least in china, which produces the majority of the world's solar panels
04:39:13 <dsal> I have solar panels. They run Haskell code.
04:39:18 <Inst> by that, i'm implying, you're very smart, you're the type that doesn't suffer idiots too gladly (i assume, but more gladly than dsal), and you have a teaching method adapted for ANU
04:40:19 <EvanR> don't worry, my shrine to all idiots is burning bright
04:40:25 mbuf joins (~Shakthi@122.174.247.3)
04:41:17 <Inst> philosophically, I'm oriented toward the idea that the world is full of idiots, the world is majority idiot, and making them less idiotic makes the rest of the world better off
04:41:31 <Inst> so thank you again
04:47:25 × xff0x quits (~xff0x@2001:1a81:53e7:b00:1d48:798f:68c9:16a8) (Ping timeout: 240 seconds)
04:47:27 alx741 joins (~alx741@157.100.93.160)
04:48:22 xff0x joins (~xff0x@2001:1a81:53e7:b00:98d2:e416:e1d0:8927)
04:51:56 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
04:52:12 Axman6 sorry for going quiet, we have sprint planning
04:55:49 × rekahsoft quits (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 240 seconds)
04:59:44 <EvanR> is there a slick way to make sure everything in a Data.Vector is evaluated (to WHNF)
05:00:35 × yaroot quits (~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953) (Ping timeout: 252 seconds)
05:01:01 yaroot joins (~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953)
05:01:45 <Axman6> :t foldl seq
05:01:45 <lambdabot> Foldable t => a -> t a -> a
05:01:50 <Axman6> :t foldl seq ()
05:01:51 <lambdabot> Foldable t => t () -> ()
05:02:24 phma joins (phma@2001:5b0:210f:5ed8:55ac:926f:b49e:dcfb)
05:03:05 EvanR squints
05:03:44 <EvanR> interesting
05:03:51 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 256 seconds)
05:04:54 <Axman6> wait
05:05:04 <Axman6> :t foldl (flip seq) ()
05:05:05 <lambdabot> Foldable t => t a -> ()
05:05:09 <Axman6> that one
05:05:54 <EvanR> > foldl (flip seq) () [1,2,error "bomb",4]
05:05:55 <lambdabot> *Exception: bomb
05:06:01 <EvanR> > foldl seq () [1,2,error "bomb",4]
05:06:02 <lambdabot> error:
05:06:02 <lambdabot> • No instance for (Num ()) arising from the literal ‘1’
05:06:02 <lambdabot> • In the expression: 1
05:07:44 <EvanR> > foldl (flip seq) () [1,2,error "💣💣💣",4]
05:07:45 <lambdabot> *Exception: 💣💣💣
05:07:49 <EvanR> oh yes
05:08:10 <EvanR> TOS style
05:08:36 alx741 joins (~alx741@157.100.93.160)
05:09:17 × xff0x quits (~xff0x@2001:1a81:53e7:b00:98d2:e416:e1d0:8927) (Ping timeout: 240 seconds)
05:10:34 xff0x joins (~xff0x@2001:1a81:53e7:b00:62fc:8f05:5cf7:41b5)
05:15:59 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
05:15:59 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
05:15:59 wroathe joins (~wroathe@user/wroathe)
05:16:41 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
05:21:26 <jackdk> % :t rnf
05:21:26 <yahb> jackdk: ; <interactive>:1:1: error: Variable not in scope: rnf
05:21:44 <jackdk> https://hackage.haskell.org/package/deepseq-1.4.6.1/docs/Control-DeepSeq.html#v:rnf this one
05:22:05 × Jing quits (~hedgehog@2604:a840:3::103c) (Remote host closed the connection)
05:22:26 <jackdk> ah, no NFData instances
05:22:41 Jing joins (~hedgehog@115.207.57.60)
05:24:32 × monochrom quits (trebla@216.138.220.146) (Quit: NO CARRIER)
05:26:15 <lechner> Axman6: What do you use now (instead of hasql) please?
05:27:01 <EvanR> full normal form seems a bit brutal though
05:27:57 nattiestnate joins (~nate@2001:448a:20a0:4134:25e:715f:d637:5263)
05:28:02 monochrom joins (trebla@216.138.220.146)
05:28:45 BrokenClutch parts (~pioneer@2804:d41:c292:6c00:33d8:d2f1:d8af:153e) ()
05:30:10 × monochrom quits (trebla@216.138.220.146) (Client Quit)
05:30:23 × shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit)
05:31:05 <dsal> EvanR: It's helpful in benchmarks sometimes.
05:31:57 <EvanR> I can see that
05:33:39 alx741 joins (~alx741@157.100.93.160)
05:37:47 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
05:39:35 <EvanR> and this is awkward xD https://paste.tomsmeding.com/YX8lax0h
05:42:13 × mikail_ quits (~mikail@94.1.27.214) (Ping timeout: 240 seconds)
05:42:52 × whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
05:47:37 <Axman6> lechner: DAML =)
05:52:57 × nattiestnate quits (~nate@2001:448a:20a0:4134:25e:715f:d637:5263) (Quit: WeeChat 3.4)
05:53:05 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
05:54:04 <Axman6> EvanR: curious what this is actually a part of
05:54:48 alx741 joins (~alx741@157.100.93.160)
05:59:27 <EvanR> mad science at this point, I'll keep you apprised
05:59:30 mikail joins (~mikail@2a02:c7f:bc1f:4a00:1f95:fc24:559b:d565)
05:59:38 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
05:59:48 <Axman6> mad science -> science -> technology -> normality
06:00:09 <Axman6> how crazy was the idea of Google thirty years ago
06:02:25 <Axman6> it's kinda satisfying those lines are same length
06:03:51 <EvanR> fixed width fonts vindicated
06:05:05 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:17:19 alx741 joins (~alx741@157.100.93.160)
06:20:04 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
06:21:25 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
06:26:29 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
06:27:32 retro_ joins (~retro@05412d78.skybroadband.com)
06:29:43 monochrom joins (trebla@216.138.220.146)
06:30:34 × retroid_ quits (~retro@05412d78.skybroadband.com) (Ping timeout: 268 seconds)
06:33:17 × mvk quits (~mvk@2607:fea8:5cdd:f000::45db) (Ping timeout: 240 seconds)
06:35:32 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
06:39:01 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
06:39:52 alx741 joins (~alx741@157.100.93.160)
06:43:01 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
06:43:37 × mikail quits (~mikail@2a02:c7f:bc1f:4a00:1f95:fc24:559b:d565) (Ping timeout: 240 seconds)
06:53:59 <Inst> anyone else read Haskell in Depth?
06:54:17 <Inst> "member of the GHC steering committee"
07:01:33 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
07:05:17 <Axman6> @hoogle unsafeInterleveIO
07:05:17 <lambdabot> No results found
07:06:01 × nunggu quits (~q@gateway/tor-sasl/nunggu) (Quit: nunggu)
07:07:37 × n3rdy1 quits (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) (Ping timeout: 240 seconds)
07:16:41 <Axman6> edwardk: I got the memoisation working and it does actually perform as I'd expect :tada:
07:17:50 <Axman6> I can't figure out if using `unsafeDupablePerformIO` is safe in its definition though, since the implementations of the Group might not run atomically
07:17:51 alx741 joins (~alx741@157.100.93.160)
07:20:58 × califax quits (~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in)
07:21:18 califax joins (~califax@user/califx)
07:27:03 jakalx parts (~jakalx@base.jakalx.net) ()
07:33:12 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
07:34:02 d0ku joins (~d0ku@178.43.3.56.ipv4.supernova.orange.pl)
07:34:44 `2jt joins (~jtomas@153.red-83-53-252.dynamicip.rima-tde.net)
07:35:01 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
07:35:30 × little_mac quits (~little_ma@2601:410:4300:3ce0:5ce7:d67c:9eeb:3f76) (Remote host closed the connection)
07:38:21 geekosaur joins (~geekosaur@xmonad/geekosaur)
07:51:18 alx741 joins (~alx741@157.100.93.160)
07:52:30 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
07:53:07 × phma quits (phma@2001:5b0:210f:5ed8:55ac:926f:b49e:dcfb) (Read error: Connection reset by peer)
07:54:20 phma joins (phma@2001:5b0:215a:cac8:aefe:d82b:57fb:72c6)
07:56:39 simendsjo joins (~user@84.211.91.241)
07:59:17 jakalx joins (~jakalx@base.jakalx.net)
08:01:06 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
08:04:52 × sub0 quits (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Session timeout))
08:11:35 <edwardk> i always assume that the code will be invoked from one thread at a time because its used mostly to build up single threaded promise code
08:11:40 <edwardk> nothing i do races myself
08:12:02 <edwardk> so i think unsafeDupablePerformIO should just work
08:14:38 coolnickname joins (uid531864@user/coolnickname)
08:14:56 × kaph quits (~kaph@net-2-38-107-19.cust.vodafonedsl.it) (Read error: Connection reset by peer)
08:17:15 alx741 joins (~alx741@157.100.93.160)
08:23:50 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
08:23:50 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
08:24:17 × xff0x quits (~xff0x@2001:1a81:53e7:b00:62fc:8f05:5cf7:41b5) (Ping timeout: 240 seconds)
08:25:21 xff0x joins (~xff0x@2001:1a81:53e7:b00:4627:8ffd:144:30b1)
08:25:30 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
08:27:08 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:29:20 retroid_ joins (~retro@05412d78.skybroadband.com)
08:31:26 × retro_ quits (~retro@05412d78.skybroadband.com) (Ping timeout: 268 seconds)
08:31:51 kaph joins (~kaph@net-2-38-107-19.cust.vodafonedsl.it)
08:32:56 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
08:34:31 × retroid_ quits (~retro@05412d78.skybroadband.com) (Ping timeout: 268 seconds)
08:35:28 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:36:45 coot joins (~coot@89-64-85-93.dynamic.chello.pl)
08:40:07 <xerox> ls /tmp/ | grep cabal-repl | wc -l ==> 222 is this something fishy or is this normal
08:42:03 alx741 joins (~alx741@157.100.93.160)
08:42:16 <c_wraith> looks normal to me
08:42:24 lortabac joins (~lortabac@2a01:e0a:541:b8f0:c365:2459:70e0:4fac)
08:42:35 chele joins (~chele@user/chele)
08:42:53 <c_wraith> maybe cabal should clean that up on exit.
08:44:22 <c_wraith> but linux distributions tend to come with rules for cleaning out the contents of /tmp
08:44:45 × Jing quits (~hedgehog@115.207.57.60) (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:47:36 maerwald- is now known as maerwald
08:47:49 × maerwald quits (~maerwald@mail.hasufell.de) (Changing host)
08:47:50 maerwald joins (~maerwald@user/maerwald)
08:48:46 benin joins (~benin@183.82.176.241)
08:49:57 machinedgod joins (~machinedg@24.105.81.50)
08:51:36 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
08:51:36 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
08:51:36 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
08:51:36 wroathe joins (~wroathe@user/wroathe)
08:52:10 retroid_ joins (~retro@5ec2ec1d.skybroadband.com)
08:54:26 retro_ joins (~retro@5ec2ec1d.skybroadband.com)
08:56:11 myme1 is now known as myme
08:56:53 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
08:57:20 × retroid_ quits (~retro@5ec2ec1d.skybroadband.com) (Ping timeout: 268 seconds)
08:59:56 × Neuromancer quits (~Neuromanc@user/neuromancer) (Read error: Connection reset by peer)
09:02:55 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:03:34 absence joins (torgeihe@hildring.pvv.ntnu.no)
09:05:21 × retro_ quits (~retro@5ec2ec1d.skybroadband.com) (Ping timeout: 268 seconds)
09:06:31 retroid_ joins (~retro@5ec2ec1d.skybroadband.com)
09:06:54 <merijn> /tmp/ is normally wiped on reboot anyway
09:07:06 <merijn> and some systems on logout or something along those lines
09:07:29 acidjnk_new joins (~acidjnk@p200300d0c7271e933133c43131ec7c10.dip0.t-ipconnect.de)
09:07:29 acidjnk joins (~acidjnk@p200300d0c7271e933133c43131ec7c10.dip0.t-ipconnect.de)
09:08:04 <merijn> Argument for not wiping them could be to speed up repeated repl on an unchanged project
09:09:35 alx741 joins (~alx741@157.100.93.160)
09:11:31 × retroid_ quits (~retro@5ec2ec1d.skybroadband.com) (Ping timeout: 268 seconds)
09:13:16 mcglk joins (~mcglk@131.191.49.120)
09:15:02 × mcglk_ quits (~mcglk@131.191.49.120) (Ping timeout: 240 seconds)
09:15:25 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
09:16:38 retroid_ joins (~retro@2e40edd9.skybroadband.com)
09:18:22 kspalaiologos joins (~kspalaiol@user/kspalaiologos)
09:18:54 <[exa]> user sessions getting all their own tmpfs /tmp/ mounts is pretty much standard now, right?
09:20:42 retro_ joins (~retro@2e40edd9.skybroadband.com)
09:21:23 × retroid_ quits (~retro@2e40edd9.skybroadband.com) (Ping timeout: 268 seconds)
09:24:28 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 268 seconds)
09:25:49 × yahb quits (xsbot@user/mniip/bot/yahb) (Ping timeout: 240 seconds)
09:28:41 × matijja quits (~matijja@193.77.181.201) (Quit: ZNC 1.8.1 - https://znc.in)
09:29:57 matijja joins (~matijja@193.77.181.201)
09:30:05 × mniip quits (mniip@libera/staff/mniip) (Ping timeout: 630 seconds)
09:31:16 biog joins (~user1@159.224.42.85)
09:31:39 alx741 joins (~alx741@157.100.93.160)
09:36:10 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
09:43:06 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
09:43:38 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
09:43:38 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
09:45:05 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
09:47:13 zyzek joins (~zyzek@user/zyzek)
09:53:25 × simendsjo quits (~user@84.211.91.241) (Ping timeout: 256 seconds)
09:54:25 alx741 joins (~alx741@157.100.93.160)
09:54:27 xkuru joins (~xkuru@user/xkuru)
09:56:16 × matijja quits (~matijja@193.77.181.201) (Quit: ZNC 1.8.1 - https://znc.in)
09:56:56 gehmehgeh joins (~user@user/gehmehgeh)
09:58:17 × bliminse quits (~bliminse@host86-186-17-7.range86-186.btcentralplus.com) (Quit: leaving)
09:58:37 × Akiva quits (~Akiva@user/Akiva) (Ping timeout: 240 seconds)
09:59:18 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
10:01:06 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
10:02:22 jgeerds joins (~jgeerds@55d4ac73.access.ecotel.net)
10:03:07 ubert joins (~Thunderbi@2a02:8109:9880:303c:9b:7099:7b8a:3b4d)
10:03:30 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
10:05:03 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
10:06:46 bliminse joins (~bliminse@host86-186-17-7.range86-186.btcentralplus.com)
10:07:04 matijja joins (~matijja@193.77.181.201)
10:11:28 × drdo quits (~drdo@144.172.69.89) (Quit: The Lounge - https://thelounge.chat)
10:11:44 drdo joins (~drdo@144.172.69.89)
10:16:56 alx741 joins (~alx741@157.100.93.160)
10:17:50 × drdo quits (~drdo@144.172.69.89) (Quit: The Lounge - https://thelounge.chat)
10:18:05 drdo joins (~drdo@144.172.69.89)
10:18:08 biberu\ joins (~biberu@user/biberu)
10:19:15 × drdo quits (~drdo@144.172.69.89) (Client Quit)
10:19:30 × emergence quits (~emergence@vm0.max-p.me) (Quit: Ping timeout (120 seconds))
10:19:54 pavonia_ joins (~user@user/siracusa)
10:20:05 emergence joins (~emergence@vm0.max-p.me)
10:20:06 × sus quits (zero@user/zeromomentum) (Read error: Connection reset by peer)
10:20:17 × biog quits (~user1@159.224.42.85) (Ping timeout: 240 seconds)
10:20:17 × infinity0 quits (~infinity0@occupy.ecodis.net) (Ping timeout: 240 seconds)
10:20:17 × shailangsa quits (~shailangs@host86-162-150-202.range86-162.btcentralplus.com) (Ping timeout: 240 seconds)
10:20:19 sus joins (zero@user/zeromomentum)
10:20:21 n8chan joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
10:20:41 Jing joins (~hedgehog@2604:a840:3::103c)
10:20:54 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
10:20:57 × pavonia quits (~user@user/siracusa) (Ping timeout: 240 seconds)
10:21:05 pavonia_ is now known as pavonia
10:21:17 × sim590 quits (~simon@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 240 seconds)
10:21:17 × Cale quits (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Ping timeout: 240 seconds)
10:21:37 × neightchan quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
10:21:37 × biberu quits (~biberu@user/biberu) (Ping timeout: 240 seconds)
10:21:38 biberu\ is now known as biberu
10:21:51 Cale joins (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com)
10:22:09 sim590 joins (~simon@modemcable090.207-203-24.mc.videotron.ca)
10:22:24 infinity0 joins (~infinity0@occupy.ecodis.net)
10:23:30 × zyzek quits (~zyzek@user/zyzek) (Remote host closed the connection)
10:25:09 × absence quits (torgeihe@hildring.pvv.ntnu.no) (Ping timeout: 256 seconds)
10:25:17 × xff0x quits (~xff0x@2001:1a81:53e7:b00:4627:8ffd:144:30b1) (Ping timeout: 240 seconds)
10:25:19 absence joins (torgeihe@hildring.pvv.ntnu.no)
10:25:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
10:27:23 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:28:11 drdo joins (~drdo@144.172.69.89)
10:28:42 xff0x joins (~xff0x@2001:1a81:53e7:b00:95c4:6090:2048:abcf)
10:31:34 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
10:32:17 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
10:32:31 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds)
10:33:18 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:34:22 Lord_of_Life_ is now known as Lord_of_Life
10:36:29 max22- joins (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr)
10:38:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
10:38:57 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:39:28 alx741 joins (~alx741@157.100.93.160)
10:42:29 euouae joins (~euouae@user/euouae)
10:42:36 <euouae> Hello
10:43:42 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
10:44:33 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
10:44:55 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:47:58 <[exa]> ey hello!
10:48:23 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
10:48:26 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
10:50:05 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
10:50:39 × cheater quits (~Username@user/cheater) (Ping timeout: 256 seconds)
10:50:46 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:51:06 __monty__ joins (~toonn@user/toonn)
10:52:23 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
10:52:23 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
10:52:23 wroathe joins (~wroathe@user/wroathe)
10:57:27 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
10:58:51 × ubert quits (~Thunderbi@2a02:8109:9880:303c:9b:7099:7b8a:3b4d) (Remote host closed the connection)
10:59:04 ubert joins (~Thunderbi@2a02:8109:9880:303c:3e40:8797:f0ac:23e)
10:59:47 shailangsa_ joins (~shailangs@host86-162-150-202.range86-162.btcentralplus.com)
11:00:26 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
11:00:51 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
11:01:13 burnsidesLlama joins (~burnsides@dhcp168-021.wadham.ox.ac.uk)
11:02:08 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:02:52 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
11:03:23 alMalsamo joins (~alMalsamo@gateway/tor-sasl/almalsamo)
11:07:01 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
11:08:01 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:12:58 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
11:13:19 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
11:13:37 <euouae> quick question in the category Hask, is 3 :: Int an arrow () -> Int ?
11:14:02 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:14:04 <euouae> because I'm reading that types are objects of Hask and arrows are themselves
11:16:00 duckonomy_ joins (~duckonomy@177.ip-144-217-84.net)
11:17:01 <geekosaur> categories don't care about values
11:17:29 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
11:17:37 <geekosaur> that said, 3 :: Int is secretly a function, but that function is fromInteger
11:18:33 × duckonomy quits (~duckonomy@177.ip-144-217-84.net) (Ping timeout: 268 seconds)
11:18:49 <geekosaur> so there is an arrow there but not because it's a value as such
11:18:57 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
11:19:31 alx741 joins (~alx741@157.100.93.160)
11:19:58 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:20:07 <euouae> isn't every arrow in Hask a function of Haskell?
11:20:17 × duckonomy_ quits (~duckonomy@177.ip-144-217-84.net) (Ping timeout: 240 seconds)
11:22:23 duckonomy joins (~duckonomy@177.ip-144-217-84.net)
11:22:52 × whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
11:23:11 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
11:23:12 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
11:23:12 wroathe joins (~wroathe@user/wroathe)
11:24:34 cheater joins (~Username@user/cheater)
11:24:58 <geekosaur> it is, but the typeclass hackery around numeric values is not an attribute of Hask
11:26:04 <geekosaur> and a value like 'a' simply doesn't exist from the viewpoint of Hask, it's too low level
11:26:10 <tomsmeding> euouae: if types are the objects and function types are arrows (that's what you're saying, right?), then _values_ of types aren't things in the category, right?
11:26:23 <tomsmeding> I think I'm echoing geekosaur in different words
11:26:32 <euouae> tomsmeding types are objects and arrows are arrow values
11:26:35 <xsperry> :t 3
11:26:36 <lambdabot> Num p => p
11:26:38 <xsperry> how is that a function?
11:26:42 <tomsmeding> euouae: oh right
11:26:57 <tomsmeding> xsperry: it's a function that takes a type class dictionary for Num and produces a value
11:26:59 <geekosaur> you can read => as -> where the first parameter is a dictionary
11:26:59 <xsperry> :t 3 :: Int
11:27:00 <lambdabot> Int
11:27:18 <tomsmeding> \NumDict { fromInteger = f } -> f 3#
11:27:25 <geekosaur> in this case it pulls the definition of fromInteger out of the dictionary and applies it to the Integer 3 to get the Int 3
11:28:11 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
11:28:12 <xsperry> right. fromInteger (3 :: Integer) :: Int is not a function
11:28:23 <geekosaur> but fromInteger is
11:28:31 <xsperry> yes, but 3 is not fromInteger
11:28:34 <tomsmeding> euouae: so arrows are _function_ values, right? An arrow A -> B is a function of type A -> B; 'Int' is not a function type, so a value of type Int is not an arrow, right?
11:29:03 <euouae> tomsmeding yeah but the solution is that there are arrows () -> Int
11:29:08 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
11:29:21 <euouae> so e.g. f :: () -> Int, f _ = 3
11:29:24 <tomsmeding> well yeah, '\() -> 3 :: Int' is an arrow from () to Int
11:29:37 <geekosaur> but `3 :: Int` is not such an arrow
11:29:53 <tomsmeding> but '\() -> 3 :: Int' is not the same as '3 :: Int' -- their types aren't even the same :)
11:29:53 <euouae> ah, I get you now
11:29:53 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
11:30:12 <geekosaur> likewise 'a' is not an arrow () -> Char, it's just a Char value which is not the topic of the category
11:30:13 <euouae> right, `Hask` is a simplified model of the real thing
11:30:33 <geekosaur> the very first thing I said, categories do not care about values
11:31:17 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:31:37 <geekosaur> simplified in some ways, more complicated in others. I'd say it's a matter of focus rather than simplicity
11:32:33 <tomsmeding> euouae: and if `f` has an instance of Functor, then `f` corresponds to a functor from Hask to Hask, mapping objects (i.e. types) `T` to `f T` (that's what `f` does in Haskell) and arrows (from `A` to `B`) to arrows (from `f A` to `f B`) (that's what `fmap` does in Haskell)
11:32:59 <tomsmeding> perhaps I should not have capitalised T there
11:33:07 <tomsmeding> or meh
11:33:47 tomsmeding only half-understands this stuff through repeated attempts at reading introductions in this stuff
11:34:48 <euouae> from what I've read on type theory, Unit is a type, () :: Unit and that's the only value with that type
11:35:01 <euouae> so I thought part of the utility of Unit is to pick up "nonarrow" values
11:35:08 <tomsmeding> and haskell isn't type theory, since:
11:35:13 <tomsmeding> :t undefined :: ()
11:35:14 <lambdabot> ()
11:35:23 <geekosaur> part of the utility of unit is to enable laziness. haskell just does that part for you
11:36:03 <geekosaur> every non-strict expression e is actually \() -> e
11:36:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
11:36:32 <euouae> oh. hm... ok that at least looks like what I had in mind
11:36:44 <tomsmeding> euouae: A isn't magically the same as Unit -> A, but because there are exactly as many arrows from Unit to A as there are values in A, Hom(Unit, A) is in a sense isomorphic to A
11:36:59 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:37:07 <geekosaur> this is more or less what you do in e.g. javascript to get a lazy value, except they spell it something like function() { e }
11:37:12 <tomsmeding> haskell then makes everything more complicated because its lazy semantics do stuff like geekosaur said :p
11:37:56 notzmv joins (~zmv@user/notzmv)
11:41:09 <euouae> thanks for the help
11:41:12 × euouae quits (~euouae@user/euouae) (Quit: got to go)
11:41:50 equivrel joins (~user@95.172.236.133)
11:43:20 × equivrel quits (~user@95.172.236.133) (Client Quit)
11:45:33 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
11:47:01 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
11:47:03 alx741 joins (~alx741@157.100.93.160)
11:48:56 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:49:37 gehmehgeh joins (~user@user/gehmehgeh)
11:50:23 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving)
11:52:05 geekosaur joins (~geekosaur@xmonad/geekosaur)
11:53:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
11:53:57 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
11:53:57 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
11:53:57 wroathe joins (~wroathe@user/wroathe)
11:54:44 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:55:07 × polyphem_ quits (~rod@2a02:810d:640:776c:e450:3ca3:b389:687a) (Quit: WeeChat 3.3)
11:56:42 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
11:59:13 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
11:59:27 polyphem joins (~rod@2a02:810d:640:776c:e450:3ca3:b389:687a)
11:59:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
12:00:32 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:06:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
12:06:46 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:07:01 × ircs quits (~ircs@2-111-85-72-cable.dk.customer.tdc.net) (Ping timeout: 240 seconds)
12:08:31 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
12:09:04 Vajb joins (~Vajb@2001:999:50:e6be:1e98:9376:d93e:4506)
12:11:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
12:11:49 × ubert quits (~Thunderbi@2a02:8109:9880:303c:3e40:8797:f0ac:23e) (Ping timeout: 240 seconds)
12:12:04 × sander quits (~sander@user/sander) (Quit: So long! :))
12:12:40 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:13:03 xb0o2 joins (~xb0o2@user/xb0o2)
12:13:58 sander joins (~sander@user/sander)
12:14:35 alx741 joins (~alx741@157.100.93.160)
12:15:14 ubert joins (~Thunderbi@2a02:8109:9880:303c:2a00:eeaf:f8c:1b54)
12:15:50 lavaman joins (~lavaman@98.38.249.169)
12:16:31 kuribas joins (~user@ptr-25vy0i91z2t2xltfc74.18120a2.ip6.access.telenet.be)
12:18:17 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
12:18:25 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:19:40 mmhat joins (~mmh@55d49507.access.ecotel.net)
12:19:40 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
12:20:11 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
12:24:17 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
12:24:25 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:29:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
12:30:07 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:31:58 spaceseller_ joins (~spacesell@31.147.205.13)
12:33:02 × jgeerds quits (~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 240 seconds)
12:35:17 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
12:35:52 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:36:41 alx741 joins (~alx741@157.100.93.160)
12:37:12 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
12:37:19 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Ping timeout: 256 seconds)
12:37:29 _ht joins (~quassel@37.120.218.148)
12:39:23 × spaceseller_ quits (~spacesell@31.147.205.13) (Quit: Leaving)
12:41:31 jpds joins (~jpds@gateway/tor-sasl/jpds)
12:44:02 rond_ joins (~rond_@2a01:115f:943:5e00:d97e:b793:ae8f:1ddd)
12:45:55 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
12:45:55 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
12:47:59 × burnsidesLlama quits (~burnsides@dhcp168-021.wadham.ox.ac.uk) (Remote host closed the connection)
12:48:05 × nhatanh02 quits (~satori@123.24.172.30) (Ping timeout: 256 seconds)
12:49:52 CiaoSen joins (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
12:50:13 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
12:54:47 × waleee quits (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 250 seconds)
13:00:13 × acidjnk_new quits (~acidjnk@p200300d0c7271e933133c43131ec7c10.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
13:00:13 × acidjnk quits (~acidjnk@p200300d0c7271e933133c43131ec7c10.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
13:02:50 alx741 joins (~alx741@157.100.93.160)
13:03:14 jumper149 joins (~jumper149@static.6.71.203.116.clients.your-server.de)
13:06:02 × max22- quits (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) (Ping timeout: 240 seconds)
13:09:18 <Boarders_> could anyone tell me how I pass test-arguments to an executable with cabal. I am trying:
13:09:18 <Boarders_> cabal run my-test -- "--color -m Prelude"
13:10:23 zincy_ joins (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d)
13:12:47 <yushyin> without the quotes it should just work, no?
13:13:26 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
13:15:39 <Boarders_> ah, seems good, thanks!
13:19:00 × zincy_ quits (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Remote host closed the connection)
13:24:56 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
13:25:19 spaceseller_ joins (~spacesell@31.147.205.13)
13:27:17 burnsidesLlama joins (~burnsides@dhcp168-021.wadham.ox.ac.uk)
13:28:05 jgeerds joins (~jgeerds@55d4ac73.access.ecotel.net)
13:29:54 alx741 joins (~alx741@157.100.93.160)
13:31:35 × burnsidesLlama quits (~burnsides@dhcp168-021.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
13:31:49 × ouestbillie quits (~gallup@192-222-138-215.qc.cable.ebox.net) (Ping timeout: 240 seconds)
13:33:06 <Boarders_> I have a cabal file with field: hspec <2.7.9
13:33:06 <Boarders_> but when I configure and then generate the freeze file I get hspec==2.8.2, does anyone know why that might be the case?
13:33:54 ouestbillie joins (~gallup@192-222-138-215.qc.cable.ebox.net)
13:34:37 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
13:35:09 <merijn> Near impossible to say without seeing the cabal file
13:37:29 <Boarders_> one moment
13:37:29 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
13:40:17 <Boarders_> merijn: https://gist.github.com/Boarders/8a4897ab4b2e899dc5ad32bee82d55ff
13:41:00 <merijn> You ran freeze without --enable-tests, didn't you? :)
13:42:40 <Boarders_> ah, yes!
13:43:28 <Boarders_> but doing cabal freeze --enable-tests also gives version 2.8.2
13:43:46 <merijn> Can you show the freeze file?
13:44:36 <merijn> Boarders_: It is not unlikely the 2.8.2 dependency is in one of your transitive dependencies? As long as that dependency isn't linked into your test suite it should be fine
13:44:50 <merijn> Boarders_: You can also use cabal-plan to visualise the transitive dependency graph
13:44:55 <merijn> @hackage cabal-plan
13:44:55 <lambdabot> https://hackage.haskell.org/package/cabal-plan
13:45:33 <Boarders_> The problem is I need this old version because otherwise I need to import different modules between stack and cabal
13:46:08 <merijn> Boarders_: Because stack has an older version?
13:46:57 <merijn> Boarders_: You can easily have an ifdef around the import to check which hspec version is used at compile time and use the right import that way
13:47:10 <Boarders_> it is for stack having the older version yes
13:48:06 <Boarders_> shouldn't I be able to get specific versions with cabal though, seems quite bad it doesn't respect the versions asked for?
13:48:29 <merijn> I am not convinced you have demonstrated it doesn't respect the version asked for
13:48:51 <Boarders_> why not? where would it list the version it is building the tests with?
13:48:58 <merijn> In fact, if what you *think* is happening, is happening, that'd be a pretty massive bug in cabal-install
13:49:10 <Boarders_> could you be les cryptic
13:49:12 <Boarders_> less*
13:49:30 <merijn> Boarders_: hspec-2.8.2 appearing in the freeze file is not the same as "your tests are linked with hspec-2.8.2"
13:49:50 <merijn> in fact, if that was true, building your code with compile should be a compile time error if the new version has different imports
13:50:09 abrantesasf joins (~abrantesa@187.36.170.211)
13:50:13 <Boarders_> ok, but stack and cabal disagree about what is exported between tasty-hspec and hspec so it doesn't appear they are getting the same version
13:50:20 <merijn> Boarders_: hspec-2.8.2 being in the freeze file just shows that "hspec-2.8.2" is *somewhere* in the build plan of your transitive-dependencies
13:50:44 wyrd joins (~wyrd@gateway/tor-sasl/wyrd)
13:50:45 <merijn> Boarders_: You don't have a bound on tasty-hspec, though?
13:50:57 <Boarders_> I added one and it makes no difference
13:52:15 <merijn> Boarders_: Get cabal-plan from hackage, and make it print out the transitive dependencies/full buildplan. *Then* we know what versions of which dependency are linked where, and then you can debug from there
13:52:34 <Boarders_> ok, thanks very much for the info, very helpful
13:53:21 <merijn> Boarders_: Also, compare the errors of the cabal build and compare with the hspec/tasty-hspec changelog to see which version's changes errors relate too
13:53:39 nhatanh02 joins (~satori@123.24.172.30)
13:53:43 <merijn> On a side note, that cabal file is a recipe for disaster with the entire lack of bounds
13:53:57 × CiaoSen quits (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
13:54:11 burnsidesLlama joins (~burnsides@dhcp168-021.wadham.ox.ac.uk)
13:54:38 <yushyin> maybe cabal.project's constraints: may help?
13:55:24 alx741 joins (~alx741@157.100.93.160)
13:57:20 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:58:42 × yates quits (~user@fv-nc-f7af8b91e1-234237-1.tingfiber.com) (Remote host closed the connection)
14:04:21 × Everything quits (~Everythin@37.115.210.35) (Quit: leaving)
14:04:36 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
14:07:36 × abrantesasf quits (~abrantesa@187.36.170.211) (Read error: Connection reset by peer)
14:09:06 <lechner> Hi, for anyone using Emacs (or perhaps Vim): We add small editor notations to our Perl files. Should I do something similar with Haskell? Thanks! https://salsa.debian.org/lintian/lintian/-/blob/master/bin/lintian#L1045-1049
14:10:27 abrantesasf joins (~abrantesa@187.36.170.211)
14:15:58 <tomsmeding> lechner: don't know about emacs, but 'et' for sure, the rest is subjective :p
14:16:12 codygman[m] joins (~codygman@2001:470:69fc:105::b4ba)
14:16:17 <tomsmeding> every style you can reasonably think of is practiced by someone
14:16:31 waleee joins (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4)
14:16:45 <geekosaur> and some you can't
14:16:57 geekosaur will spare everyone's sanity
14:17:42 <tomsmeding> you know that kind of drops just excite people like us
14:18:16 geekosaur can't find that code snippet where someone tried to turn javascript into python
14:19:00 <geekosaur> probably for the best
14:19:26 <tomsmeding> was it like the classic where C was turned into ALGOL
14:19:34 <geekosaur> sort of, yes
14:19:37 <tomsmeding> except you can't do that in js because no macros
14:19:51 <lechner> okay, this one i asked before. what's everone's favorite code formatter please?
14:19:51 <tomsmeding> or did they run CPP on js
14:20:03 <tomsmeding> https://twitter.com/comerijn/status/1257804634833420292
14:20:19 <geekosaur> actually it reminded me more of the bad old days programming perl with poor editor support so we had to put comments at the ends of lines with extra formatting to keep the editor from getting confused
14:20:51 × kspalaiologos quits (~kspalaiol@user/kspalaiologos) (Quit: Leaving)
14:21:12 <tomsmeding> heh, when I still coded in sublime text (which had at that time a mediocre haskell highlighting spec), I used to put `-- =` at the end of function definitions with guards
14:21:27 <tomsmeding> because the highlighting was in type mode until it saw a =
14:21:34 alx741 joins (~alx741@157.100.93.160)
14:22:08 shriekingnoise joins (~shrieking@186.137.144.80)
14:23:59 <lechner> Hi, does cabal only work with a top level file, or can i nest them in sub-directories please?
14:25:00 CiaoSen joins (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
14:25:38 rond_13 joins (~rond_@2a01:115f:943:5e00:d97e:b793:ae8f:1ddd)
14:26:05 <tomsmeding> I presume you're looking for https://cabal.readthedocs.io/en/latest/cabal-project.html
14:26:05 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
14:26:35 × _ht quits (~quassel@37.120.218.148) (Remote host closed the connection)
14:26:53 rond_42 joins (~rond_@2a01:115f:943:5e00:d97e:b793:ae8f:1ddd)
14:27:36 yahb joins (xsbot@user/mniip/bot/yahb)
14:27:39 <geekosaur> I'm not sure I understand the question. cabal normally looks for a single *.cabal file in the current directory, but cabal.project can tell it where to look for multiple cabal files comprising a single project. if you mean source files, there's a cabal file directive for that
14:27:56 mniip joins (mniip@libera/staff/mniip)
14:28:26 × spaceseller_ quits (~spacesell@31.147.205.13) (Quit: Leaving)
14:29:56 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
14:29:57 × rond_ quits (~rond_@2a01:115f:943:5e00:d97e:b793:ae8f:1ddd) (Ping timeout: 256 seconds)
14:30:06 <lechner> yeah, i think that's it. i'm gradually converting my project to Haskell and have several parts. thanks!
14:30:26 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
14:31:04 <lechner> what an addictive language! there ought to be a help line
14:31:05 × rond_13 quits (~rond_@2a01:115f:943:5e00:d97e:b793:ae8f:1ddd) (Ping timeout: 256 seconds)
14:31:34 <merijn> lechner: yeah, if your problem is "I have a bunch of independent packages that depend on each other combined into one project" then cabal.project is the way to go
14:31:39 × nhatanh02 quits (~satori@123.24.172.30) (Ping timeout: 256 seconds)
14:32:39 mikoto-chan joins (~mikoto-ch@esm-84-240-99-143.netplaza.fi)
14:32:56 <lechner> thanks! i may combine the individual cabal files when the conversion is done.
14:35:10 × `2jt quits (~jtomas@153.red-83-53-252.dynamicip.rima-tde.net) (Remote host closed the connection)
14:35:26 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
14:35:34 `2jt joins (~jtomas@153.red-83-53-252.dynamicip.rima-tde.net)
14:36:17 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
14:36:17 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
14:36:17 wroathe joins (~wroathe@user/wroathe)
14:36:48 benin1 joins (benin@gateway/vpn/protonvpn/benin)
14:37:09 geekosaur joins (~geekosaur@xmonad/geekosaur)
14:38:13 × benin quits (~benin@183.82.176.241) (Ping timeout: 240 seconds)
14:38:13 benin1 is now known as benin
14:38:24 eoiles[m] joins (~eoilesmat@2001:470:69fc:105::1:6164)
14:42:30 alx741 joins (~alx741@157.100.93.160)
14:43:42 <lechner> On secnod thought, i just went with a single cabal file. it's all under one license anyway
14:44:33 <lechner> Is 0.1.0.0 a good first version number (these are exectables) in the Haskell ecosystem?
14:44:40 <merijn> lechner: cabal.project is more for when you wanna have independent packages that work in lockstep
14:44:41 <lechner> executables
14:45:24 <merijn> lechner: i.e. I have package foo and package bar (depending on foo). Now new development releases will probably depend on development versions of foo, so I can't just use the hackage dependency. That kinda problem
14:45:43 <merijn> lechner: If you just have a bunch of independent executables there's not much reason to not throw them in the same cabal file, no
14:45:59 <merijn> 0.1.0 is pretty standard, yeah
14:46:18 <lechner> three or four digits?
14:46:42 <merijn> I mean, 4 doesn't seem to really serve a purpose?
14:46:42 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
14:46:44 <merijn> Oh, also
14:46:47 <merijn> @where pvp
14:46:47 <lambdabot> https://pvp.haskell.org/
14:46:50 <merijn> That
14:49:47 × deadmarshal quits (~deadmarsh@95.38.116.69) (Ping timeout: 256 seconds)
14:50:08 <lechner> anything ever came out of this proposal (and the 1.X.Y.Z corollary)? https://taylor.fausak.me/2016/12/28/problematic-versioning-policy/
14:51:00 <lechner> although i won't be uploading to hackage
14:52:12 max22- joins (~maxime@2a01cb088335980086c6bc2422140675.ipv6.abo.wanadoo.fr)
14:55:28 <merijn> lechner: No and I don't think it will
14:55:49 × xff0x quits (~xff0x@2001:1a81:53e7:b00:95c4:6090:2048:abcf) (Ping timeout: 240 seconds)
14:56:02 <merijn> lechner: PVP predates Semantic Version and many people prefer it. Additionally, the PVP is much more explicit about what "breaking" means compared to semver
14:56:42 <merijn> I mean, there isn't a single "semver" anyway
14:56:58 xff0x joins (~xff0x@port-92-195-123-135.dynamic.as20676.net)
14:57:36 <merijn> Most packages and ecosystems have their own "semver-inspired" thing they roll with. Additionally, semver doesn't really solve any of the issues he mentions
14:58:40 <merijn> "PVP doesn't explicitly forbid people from doing dumb things!" I mean, I guess it doesn't? But, like, it's not there's a versioning police that stops people from doing dumb things with semver either?
15:00:23 <lechner> yeah, i'm new to the PVP, but i also think semver may be a bit overrated
15:01:02 <merijn> On the whole, that whole reasoning on that page seems to boil down to "I don't like PVP" with very little objective argumentation to convince me
15:01:21 <lechner> like so much online
15:02:55 <merijn> And far from everyone follows the PVP (strictly or otherwise), but it's by far the most common/popular approach, so if you wanna pick something and fit in, it's a good choice
15:03:27 alx741 joins (~alx741@157.100.93.160)
15:04:26 <tdammers> pvp is a decent idea, it's just a pity that there's no way to properly enforce it, and without enforcement, it loses much of its utility
15:05:07 <tdammers> semver, however, is just pseudo-exact dynamic nonsense
15:05:29 husixu joins (~husixu@137.132.119.2)
15:06:02 × jlamothe quits (~jlamothe@198.251.61.229) (Quit: leaving)
15:06:24 <merijn> The main argument against PVP is usually "but we can't strictly enforce this, so it doesn't actually guarantee anything!". Which is true, but just abandoning the entire idea and going "welp...everyone's on their own...anarchy reigns!" seems...you know, counterproductive
15:06:48 <maerwald> pvp not having beta/rc is a major annoyance though, which caused GHC to use odd version schemes for pre-releases
15:06:53 <tdammers> well yeah. pvp doesn't guarantee anything, but all the alternatives achieve even less
15:07:46 <lechner> merijn: i just want to fit in
15:08:13 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
15:09:08 <merijn> lechner: Then PVP is as much "fitting in" as possible :)
15:09:11 <tdammers> I actually think pvp strikes a pretty good balance. It doesn't guarantee anything, but it's good enough to guide version selection; and when it guides us wrong, then things still won't explode in our faces, we just get a project that won't build until we step in and manually fix the dependency bounds
15:09:51 <maerwald> I think both PVP and semver are the wrong solutions
15:09:58 <maerwald> they encourage breaking API
15:10:37 <tdammers> I prefer to think that they acknowledge that breaking APIs is a fact of life
15:10:51 <merijn> maerwald: You always get the API design right the first time? :p
15:11:00 <merijn> tdammers++
15:11:43 <maerwald> tdammers: hmm... C libraries (and go libraries for some time at least) did fine without constant API breakage
15:11:52 <maerwald> it's a culture thing
15:11:58 ProfSimm joins (~ProfSimm@87.227.196.109)
15:12:05 <merijn> maerwald: "unconstrained API churn" is a maintainer priority issue, not a versioning issue
15:12:35 <maerwald> merijn: versioning policies make breaking API easier
15:12:38 <maerwald> so it creates culture
15:12:55 <lechner> merijn: why do semver (and pvp) encourage breaking api?
15:12:56 <merijn> maerwald: A lot of widely used C libraries are the Nth iteration that have years of experimentation behind them before their stable APIs settled
15:12:59 <lechner> maerwald: ^
15:13:20 <lechner> merijn: sorry
15:13:35 <tdammers> I think the argument is that if you have a mechanism that makes API changes safer, people will more readily change their APIs
15:13:48 <merijn> My APIs breaking isn't a result of PVP "encouraging it", it's a result of me actively experimenting to find the API I like
15:14:07 <tdammers> which, to a degree, is true; but the other side of the medal is that when API changes are dangerous and unmanaged, people will avoid them even when they would be the right thing
15:14:10 <merijn> And I, frankly, don't give a shit about the stability
15:14:23 <maerwald> lechner: because instead of getting hate from your users, you create a mess of contraints due to PVP, then write brittle tools that deal with all the bounds issues, then come up with stack and nix that throw all of those away, then come up with freeze files and hackage revisions (which are a huge hack)
15:14:25 <maerwald> etc. etc.
15:14:46 <maerwald> and people just keep experimenting with APIs
15:14:53 <maerwald> because it's easy
15:14:58 <maerwald> and you don't get hate
15:15:03 <merijn> maerwald: Don't want me to experiment with my APIs? Pay me to maintain a stable version
15:15:16 <merijn> maerwald: You shouldn't get hate anyway
15:15:35 <merijn> Anyway who hates on maintainers for breaking open source stuff can fuck right off
15:15:37 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
15:15:40 <merijn> s/Anyway/Anyone
15:16:16 <maerwald> merijn: uhm... I broke github actions for Haskell... and was the most loved person for a week
15:16:18 <maerwald> ;)
15:16:26 <maerwald> and rightly so
15:16:29 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
15:16:33 <merijn> Disagree
15:16:40 jlamothe joins (~jlamothe@198.251.61.229)
15:16:41 ProfSimm joins (~ProfSimm@87.227.196.109)
15:17:04 <lechner> maerwald: you don't sound like the renegade who authored ghcup!
15:17:23 <maerwald> it's more because virtual-environments on github are rolling release
15:17:26 <merijn> You wanna have stability guarantees and support? You can bloody well pay for them
15:17:30 Sgeo joins (~Sgeo@user/sgeo)
15:17:35 benin5 joins (~benin@183.82.176.241)
15:17:40 <lechner> apt-get will resolve everything for you
15:17:42 <maerwald> so github actions can break any week, basically
15:17:54 <maerwald> if there's a bug in virtual-environments
15:18:05 <maerwald> you can't freeze the instances
15:18:20 <merijn> The professionalisation of open source is one of the worst things of the modern internet, together with the "verzuiling" of the web >.>
15:29:29 × litharge quits (litharge@libera/bot/litharge) (*.net *.split)
15:29:29 × benin5 quits (~benin@183.82.176.241) (*.net *.split)
15:29:29 × Sgeo quits (~Sgeo@user/sgeo) (*.net *.split)
15:29:29 × jlamothe quits (~jlamothe@198.251.61.229) (*.net *.split)
15:29:29 × husixu quits (~husixu@137.132.119.2) (*.net *.split)
15:29:29 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (*.net *.split)
15:29:29 × burnsidesLlama quits (~burnsides@dhcp168-021.wadham.ox.ac.uk) (*.net *.split)
15:29:29 × jgeerds quits (~jgeerds@55d4ac73.access.ecotel.net) (*.net *.split)
15:29:29 × ubert quits (~Thunderbi@2a02:8109:9880:303c:2a00:eeaf:f8c:1b54) (*.net *.split)
15:29:29 × duckonomy quits (~duckonomy@177.ip-144-217-84.net) (*.net *.split)
15:29:29 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (*.net *.split)
15:29:29 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (*.net *.split)
15:29:29 × drdo quits (~drdo@144.172.69.89) (*.net *.split)
15:29:29 × Cale quits (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (*.net *.split)
15:29:29 × shailangsa_ quits (~shailangs@host86-162-150-202.range86-162.btcentralplus.com) (*.net *.split)
15:29:29 × n8chan quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (*.net *.split)
15:29:29 × matijja quits (~matijja@193.77.181.201) (*.net *.split)
15:29:29 × xkuru quits (~xkuru@user/xkuru) (*.net *.split)
15:29:29 × machinedgod quits (~machinedg@24.105.81.50) (*.net *.split)
15:29:29 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:c365:2459:70e0:4fac) (*.net *.split)
15:29:29 × kaph quits (~kaph@net-2-38-107-19.cust.vodafonedsl.it) (*.net *.split)
15:29:29 × coolnickname quits (uid531864@user/coolnickname) (*.net *.split)
15:29:29 × mbuf quits (~Shakthi@122.174.247.3) (*.net *.split)
15:29:29 × tomku quits (~tomku@user/tomku) (*.net *.split)
15:29:29 × neurocyte0 quits (~neurocyte@user/neurocyte) (*.net *.split)
15:29:29 × qwedfg quits (~qwedfg@user/qwedfg) (*.net *.split)
15:29:30 × TonyStone quits (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (*.net *.split)
15:29:30 × kmein quits (~weechat@user/kmein) (*.net *.split)
15:29:30 × _xor quits (~xor@dsl-50-5-233-169.fuse.net) (*.net *.split)
15:29:30 × vysn quits (~vysn@user/vysn) (*.net *.split)
15:29:30 × pooryorick quits (~pooryoric@87-119-174-173.tll.elisa.ee) (*.net *.split)
15:29:30 × bsima quits (~bsima@2604:a880:400:d0::19f1:7001) (*.net *.split)
15:29:30 × doyougnu quits (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (*.net *.split)
15:29:30 × unyu quits (~pyon@user/pyon) (*.net *.split)
15:29:30 × xbreu quits (~xbreu@2001:470:69fc:105::1:5061) (*.net *.split)
15:29:30 × benjamin[m]1234 quits (~benjaminm@2001:470:69fc:105::1:3f2f) (*.net *.split)
15:29:30 × InternetManaging quits (~imjmatrix@2001:470:69fc:105::1:2ea5) (*.net *.split)
15:29:30 × ph88 quits (~ph88@2a02:8109:9e00:71d0::7e04) (*.net *.split)
15:29:30 × Nahra quits (~user@static.161.95.99.88.clients.your-server.de) (*.net *.split)
15:29:30 × kjak quits (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (*.net *.split)
15:29:30 × lechner quits (~lechner@debian/lechner) (*.net *.split)
15:29:30 × meinside quits (uid24933@id-24933.helmsley.irccloud.com) (*.net *.split)
15:29:30 × rembo10 quits (~rembo10@remulis.com) (*.net *.split)
15:29:30 × sprout quits (~quassel@2a02:a467:ccd6:1:48c8:920f:83dd:ae34) (*.net *.split)
15:29:30 × tolt quits (~weechat-h@li219-154.members.linode.com) (*.net *.split)
15:29:30 × leah2 quits (~leah@vuxu.org) (*.net *.split)
15:29:30 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (*.net *.split)
15:29:30 × SquidDev quits (~SquidDev@autoclave.squiddev.cc) (*.net *.split)
15:29:30 × res0nat0r0 quits (~Fletch@dia.whatbox.ca) (*.net *.split)
15:29:30 × glguy quits (x@libera/staff/glguy) (*.net *.split)
15:29:30 × xff0x quits (~xff0x@port-92-195-123-135.dynamic.as20676.net) (*.net *.split)
15:29:30 × benin quits (benin@gateway/vpn/protonvpn/benin) (*.net *.split)
15:29:30 × `2jt quits (~jtomas@153.red-83-53-252.dynamicip.rima-tde.net) (*.net *.split)
15:29:30 × abrantesasf quits (~abrantesa@187.36.170.211) (*.net *.split)
15:29:30 × jumper149 quits (~jumper149@static.6.71.203.116.clients.your-server.de) (*.net *.split)
15:29:30 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (*.net *.split)
15:29:31 × cheater quits (~Username@user/cheater) (*.net *.split)
15:29:31 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (*.net *.split)
15:29:31 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (*.net *.split)
15:29:31 × emergence quits (~emergence@vm0.max-p.me) (*.net *.split)
15:29:31 × biberu quits (~biberu@user/biberu) (*.net *.split)
15:29:31 × bliminse quits (~bliminse@host86-186-17-7.range86-186.btcentralplus.com) (*.net *.split)
15:29:31 × coot quits (~coot@89-64-85-93.dynamic.chello.pl) (*.net *.split)
15:29:31 × td_ quits (~td@94.134.91.82) (*.net *.split)
15:29:31 × Erutuon quits (~Erutuon@user/erutuon) (*.net *.split)
15:29:31 × Alex_test quits (~al_test@94.233.240.16) (*.net *.split)
15:29:31 × AlexNoo quits (~AlexNoo@94.233.240.16) (*.net *.split)
15:29:31 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (*.net *.split)
15:29:31 × mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (*.net *.split)
15:29:31 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (*.net *.split)
15:29:31 × gentauro quits (~gentauro@user/gentauro) (*.net *.split)
15:29:31 × tristanC quits (~tristanC@user/tristanc) (*.net *.split)
15:29:31 × drewr quits (~drew@user/drewr) (*.net *.split)
15:29:31 × hueso quits (~root@user/hueso) (*.net *.split)
15:29:31 × vgtw quits (~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) (*.net *.split)
15:29:31 × jinsun quits (~quassel@user/jinsun) (*.net *.split)
15:29:31 × mrmr quits (~mrmr@user/mrmr) (*.net *.split)
15:29:31 × aku quits (~aku@163.172.137.34) (*.net *.split)
15:29:32 × lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (*.net *.split)
15:29:32 × geekosaur quits (~geekosaur@xmonad/geekosaur) (*.net *.split)
15:29:32 × mikoto-chan quits (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (*.net *.split)
15:29:32 × CiaoSen quits (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (*.net *.split)
15:29:32 × waleee quits (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (*.net *.split)
15:29:32 × ouestbillie quits (~gallup@192-222-138-215.qc.cable.ebox.net) (*.net *.split)
15:29:32 × kuribas quits (~user@ptr-25vy0i91z2t2xltfc74.18120a2.ip6.access.telenet.be) (*.net *.split)
15:29:32 × sander quits (~sander@user/sander) (*.net *.split)
15:29:32 × absence quits (torgeihe@hildring.pvv.ntnu.no) (*.net *.split)
15:29:32 × infinity0 quits (~infinity0@occupy.ecodis.net) (*.net *.split)
15:29:32 × Jing quits (~hedgehog@2604:a840:3::103c) (*.net *.split)
15:29:32 × sus quits (zero@user/zeromomentum) (*.net *.split)
15:29:32 × chele quits (~chele@user/chele) (*.net *.split)
15:29:32 × d0ku quits (~d0ku@178.43.3.56.ipv4.supernova.orange.pl) (*.net *.split)
15:29:32 × yaroot quits (~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953) (*.net *.split)
15:29:32 × remexre quits (~remexre@user/remexre) (*.net *.split)
15:29:32 × ddb quits (~ddb@ipv6two.tilde.club) (*.net *.split)
15:29:32 × tito quits (tito@tilde.team) (*.net *.split)
15:29:32 × awpr quits (uid446117@id-446117.lymington.irccloud.com) (*.net *.split)
15:29:32 × zmt00 quits (~zmt00@user/zmt00) (*.net *.split)
15:29:32 × zaquest quits (~notzaques@5.130.79.72) (*.net *.split)
15:29:32 × Inst quits (~delicacie@2601:6c4:4080:3f80:f131:ad94:e07f:dfdd) (*.net *.split)
15:29:32 × theproffesor quits (~theproffe@user/theproffesor) (*.net *.split)
15:29:32 × carbolymer quits (~carbolyme@dropacid.net) (*.net *.split)
15:29:32 × perro_ quits (~perro@072-191-245-069.res.spectrum.com) (*.net *.split)
15:29:32 × hrdl quits (~hrdl@mail.hrdl.eu) (*.net *.split)
15:29:32 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (*.net *.split)
15:29:32 × mrmonday quits (~robert@what.i.hope.is.not.a.tabernaevagant.es) (*.net *.split)
15:29:32 × Kaiepi quits (~Kaiepi@156.34.47.253) (*.net *.split)
15:29:32 × johnw quits (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (*.net *.split)
15:29:32 × obfusk quits (~quassel@a82-161-150-56.adsl.xs4all.nl) (*.net *.split)
15:29:33 × lagash quits (lagash@lagash.shelltalk.net) (*.net *.split)
15:29:33 × Techcable quits (~Techcable@168.235.93.147) (*.net *.split)
15:29:33 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (*.net *.split)
15:29:33 × neverwas quits (jpneverwas@swissbox.unperson.link) (*.net *.split)
15:29:33 × bsima1 quits (9d7e39c8ad@2604:bf00:561:2000::dd) (*.net *.split)
15:29:33 × opqdonut quits (opqdonut@pseudo.fixme.fi) (*.net *.split)
15:29:33 × nisstyre quits (~wes@user/nisstyre) (*.net *.split)
15:29:33 × greyrat quits (~greyrat@ip202.ip-51-178-215.eu) (*.net *.split)
15:29:33 × Clint quits (~Clint@user/clint) (*.net *.split)
15:29:33 × kristjansson quits (sid126207@id-126207.tinside.irccloud.com) (*.net *.split)
15:29:33 × hexology quits (~hexology@user/hexology) (*.net *.split)
15:29:33 × landonf quits (landonf@mac68k.info) (*.net *.split)
15:29:33 × Logio quits (em@kapsi.fi) (*.net *.split)
15:29:33 × raghavgururajan quits (ea769b8000@user/raghavgururajan) (*.net *.split)
15:29:33 × mstksg quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (*.net *.split)
15:29:33 × totte quits (~totte@h-82-196-112-155.A166.priv.bahnhof.se) (*.net *.split)
15:29:33 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (*.net *.split)
15:29:33 × w1gz quits (~do@159.89.11.133) (*.net *.split)
15:29:33 × In0perable quits (~PLAYER_1@fancydata.science) (*.net *.split)
15:29:33 × iteratee_ quits (~kyle@162.218.222.107) (*.net *.split)
15:29:33 × ridcully quits (~ridcully@p57b52a9a.dip0.t-ipconnect.de) (*.net *.split)
15:29:33 × dolio quits (~dolio@130.44.130.54) (*.net *.split)
15:29:33 × stilgart quits (~Christoph@chezlefab.net) (*.net *.split)
15:29:33 × nurupo quits (~nurupo.ga@user/nurupo) (*.net *.split)
15:29:33 × noddy quits (~user@user/noddy) (*.net *.split)
15:29:33 × enikar quits (~enikar@user/enikar) (*.net *.split)
15:29:33 × farn quits (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (*.net *.split)
15:29:33 × hughjfchen quits (~hughjfche@vmi556545.contaboserver.net) (*.net *.split)
15:29:33 × andjjj23 quits (~irc@107.170.228.47) (*.net *.split)
15:29:34 × tubogram4 quits (~tubogram@user/tubogram) (*.net *.split)
15:29:34 × Axman6 quits (~Axman6@user/axman6) (*.net *.split)
15:29:34 × Boarders_ quits (sid425905@id-425905.lymington.irccloud.com) (*.net *.split)
15:29:34 × JSharp quits (sid4580@id-4580.lymington.irccloud.com) (*.net *.split)
15:29:34 × ysh quits (sid6017@id-6017.ilkley.irccloud.com) (*.net *.split)
15:29:34 × saolsen quits (sid26430@id-26430.lymington.irccloud.com) (*.net *.split)
15:29:34 × tapas quits (sid467876@id-467876.ilkley.irccloud.com) (*.net *.split)
15:29:34 × cbarrett quits (sid192934@id-192934.helmsley.irccloud.com) (*.net *.split)
15:29:34 × enemeth79 quits (sid309041@id-309041.lymington.irccloud.com) (*.net *.split)
15:29:34 × bjs quits (sid190364@user/bjs) (*.net *.split)
15:29:34 × sclv quits (sid39734@haskell/developer/sclv) (*.net *.split)
15:29:34 × mrianbloom quits (sid350277@id-350277.ilkley.irccloud.com) (*.net *.split)
15:29:34 × dmj` quits (sid72307@id-72307.hampstead.irccloud.com) (*.net *.split)
15:29:34 × acertain quits (sid470584@id-470584.hampstead.irccloud.com) (*.net *.split)
15:29:34 × gaze___ quits (sid387101@id-387101.helmsley.irccloud.com) (*.net *.split)
15:29:34 × V quits (~v@anomalous.eu) (*.net *.split)
15:29:34 × SethTisue__ quits (sid14912@id-14912.ilkley.irccloud.com) (*.net *.split)
15:29:34 × hongminhee quits (sid295@id-295.tinside.irccloud.com) (*.net *.split)
15:29:34 × Vajb quits (~Vajb@2001:999:50:e6be:1e98:9376:d93e:4506) (*.net *.split)
15:29:34 × polyphem quits (~rod@2a02:810d:640:776c:e450:3ca3:b389:687a) (*.net *.split)
15:29:34 × notzmv quits (~zmv@user/notzmv) (*.net *.split)
15:29:34 × sim590 quits (~simon@modemcable090.207-203-24.mc.videotron.ca) (*.net *.split)
15:29:34 × retro_ quits (~retro@2e40edd9.skybroadband.com) (*.net *.split)
15:29:34 × phma quits (phma@2001:5b0:215a:cac8:aefe:d82b:57fb:72c6) (*.net *.split)
15:29:34 × jiribenes quits (~jiribenes@rosa.jiribenes.com) (*.net *.split)
15:29:34 × img quits (~img@user/img) (*.net *.split)
15:29:34 × terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (*.net *.split)
15:29:34 × euandreh quits (~euandreh@2804:14c:33:9fe5:58c5:6207:2988:1b06) (*.net *.split)
15:29:34 × lally quits (sid388228@id-388228.uxbridge.irccloud.com) (*.net *.split)
15:29:34 × hugo quits (znc@verdigris.lysator.liu.se) (*.net *.split)
15:29:34 × zero quits (~z@user/zero) (*.net *.split)
15:29:34 × megaTherion quits (~therion@unix.io) (*.net *.split)
15:29:34 × dagit quits (~dagit@2001:558:6025:38:6476:a063:d05a:44da) (*.net *.split)
15:29:34 × berberman quits (~berberman@user/berberman) (*.net *.split)
15:29:34 × adamCS quits (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com) (*.net *.split)
15:29:34 × fjmorazan quits (~quassel@user/fjmorazan) (*.net *.split)
15:29:34 × xdej quits (~xdej@quatramaran.salle-s.org) (*.net *.split)
15:29:34 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (*.net *.split)
15:29:34 × eco_ quits (~ubuntu@ec2-54-201-230-197.us-west-2.compute.amazonaws.com) (*.net *.split)
15:29:34 × ldlework quits (~hexeme@user/hexeme) (*.net *.split)
15:29:34 × jrm quits (~jrm@156.34.249.199) (*.net *.split)
15:29:34 × MasseR quits (~MasseR@51.15.143.128) (*.net *.split)
15:29:34 × Katarushisu quits (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (*.net *.split)
15:29:34 × synthmeat quits (~synthmeat@user/synthmeat) (*.net *.split)
15:29:34 × danso quits (~danso@d67-193-121-2.home3.cgocable.net) (*.net *.split)
15:29:34 × hubvu quits (sid495858@user/hubvu) (*.net *.split)
15:29:34 × tcard quits (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) (*.net *.split)
15:29:34 × burakcank quits (~burakcank@has.arrived.and.is.ready-to.party) (*.net *.split)
15:29:34 × aeka quits (~aeka@user/hiruji) (*.net *.split)
15:29:34 × puke quits (~puke@user/puke) (*.net *.split)
15:29:34 × Hafydd quits (~Hafydd@user/hafydd) (*.net *.split)
15:29:34 × statusbot quits (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (*.net *.split)
15:29:34 × feetwind quits (~mike@user/feetwind) (*.net *.split)
15:29:34 × Ranhir quits (~Ranhir@157.97.53.139) (*.net *.split)
15:29:34 × robbert-vdh quits (~robbert@robbertvanderhelm.nl) (*.net *.split)
15:29:35 × Firedancer quits (sid336191@id-336191.hampstead.irccloud.com) (*.net *.split)
15:29:35 × degraafk quits (sid71464@id-71464.lymington.irccloud.com) (*.net *.split)
15:29:35 × glowcoil quits (sid3405@id-3405.tinside.irccloud.com) (*.net *.split)
15:29:35 × carter quits (sid14827@id-14827.helmsley.irccloud.com) (*.net *.split)
15:29:35 × aweinstock quits (~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com) (*.net *.split)
15:29:35 × pie_ quits (~pie_bnc@user/pie/x-2818909) (*.net *.split)
15:29:35 × [exa] quits (exa@user/exa/x-3587197) (*.net *.split)
15:29:35 × derelict quits (derelict@user/derelict) (*.net *.split)
15:29:35 × ystael quits (~ystael@user/ystael) (*.net *.split)
15:29:35 × ts2 quits (~ts@46.101.20.9) (*.net *.split)
15:29:35 × g quits (x@libera/staff/glguy) (*.net *.split)
15:29:35 × swistak quits (~swistak@185.21.216.141) (*.net *.split)
15:29:35 × Arsen quits (arsen@managarm/dev/Arsen) (*.net *.split)
15:29:35 × nrr__ quits (sid20938@id-20938.lymington.irccloud.com) (*.net *.split)
15:29:35 × integral quits (sid296274@user/integral) (*.net *.split)
15:29:35 × gmc quits (sid58314@id-58314.ilkley.irccloud.com) (*.net *.split)
15:29:35 × dispater quits (~dispater@user/brprice) (*.net *.split)
15:29:35 × jamestmartin quits (~james@jtmar.me) (*.net *.split)
15:29:35 × vjoki quits (~vjoki@2a00:d880:3:1::fea1:9ae) (*.net *.split)
15:29:35 × ehamberg quits (sid18208@id-18208.hampstead.irccloud.com) (*.net *.split)
15:29:35 × TimWolla quits (~timwolla@2a01:4f8:150:6153:beef::6667) (*.net *.split)
15:29:35 × TMA quits (tma@twin.jikos.cz) (*.net *.split)
15:29:35 × iphy quits (sid67735@id-67735.lymington.irccloud.com) (*.net *.split)
15:29:35 × whez quits (sid470288@id-470288.lymington.irccloud.com) (*.net *.split)
15:29:35 × _0x47_ quits (sid508683@id-508683.tinside.irccloud.com) (*.net *.split)
15:29:35 × teehemkay_ quits (sid14792@id-14792.lymington.irccloud.com) (*.net *.split)
15:29:35 × gregberns__ quits (sid315709@id-315709.helmsley.irccloud.com) (*.net *.split)
15:29:35 × MironZ quits (~MironZ@nat-infra.ehlab.uk) (*.net *.split)
15:29:35 × micro quits (~micro@user/micro) (*.net *.split)
15:29:35 × russruss quits (~russruss@my.russellmcc.com) (*.net *.split)
15:29:35 × S11001001 quits (sid42510@id-42510.ilkley.irccloud.com) (*.net *.split)
15:29:35 × NiKaN quits (sid385034@id-385034.helmsley.irccloud.com) (*.net *.split)
15:29:35 × tnks quits (sid412124@id-412124.helmsley.irccloud.com) (*.net *.split)
15:29:35 × marienz quits (~marienz@libera/staff/marienz) (*.net *.split)
15:29:35 × davetapley quits (sid666@id-666.uxbridge.irccloud.com) (*.net *.split)
15:29:35 × rtpg quits (sid443069@id-443069.ilkley.irccloud.com) (*.net *.split)
15:29:35 × b20n quits (sid115913@id-115913.uxbridge.irccloud.com) (*.net *.split)
15:29:35 × lightandlight quits (sid135476@id-135476.helmsley.irccloud.com) (*.net *.split)
15:29:35 × caasih quits (sid13241@id-13241.ilkley.irccloud.com) (*.net *.split)
15:29:35 × edmundnoble quits (sid229620@id-229620.helmsley.irccloud.com) (*.net *.split)
15:29:35 × PotatoGim quits (sid99505@id-99505.lymington.irccloud.com) (*.net *.split)
15:29:35 × travv0 quits (sid293381@user/travv0) (*.net *.split)
15:29:35 × philpax_ quits (sid516926@id-516926.lymington.irccloud.com) (*.net *.split)
15:29:35 × jakesyl_ quits (sid56879@id-56879.hampstead.irccloud.com) (*.net *.split)
15:29:35 × Ekho quits (~Ekho@user/ekho) (*.net *.split)
15:29:36 × bbear quits (~znc@21212.s.t4vps.eu) (*.net *.split)
15:29:36 × dragestil quits (~znc@user/dragestil) (*.net *.split)
15:29:36 × welterde quits (welterde@thinkbase.srv.welterde.de) (*.net *.split)
15:29:36 × earthy quits (~arthurvl@2001:984:275b:1:ba27:ebff:fea0:40b0) (*.net *.split)
15:29:36 × cawfee quits (~root@2406:3003:2077:2758::babe) (*.net *.split)
15:29:36 × liskin quits (~liskin@xmonad/liskin) (*.net *.split)
15:29:36 × defanor quits (~defanor@tart.uberspace.net) (*.net *.split)
15:29:36 × codedmart quits (codedmart@2600:3c01::f03c:92ff:fefe:8511) (*.net *.split)
15:29:36 × mikko quits (~mikko@2a02:7b40:d418:6a61::1) (*.net *.split)
15:29:36 × xnbya quits (~xnbya@2a01:4f8:c17:cbdd::1) (*.net *.split)
15:29:36 × bastelfreak quits (~bastelfre@basteles-bastelknecht.bastelfreak.org) (*.net *.split)
15:29:36 × Adran quits (~adran@botters/adran) (*.net *.split)
15:29:36 × energizer quits (~energizer@user/energizer) (*.net *.split)
15:29:36 × tomjaguarpaw quits (~tom@li367-225.members.linode.com) (*.net *.split)
15:29:36 × immae quits (~immae@2a01:4f8:141:53e7::) (*.net *.split)
15:29:36 × cross quits (~cross@spitfire.i.gajendra.net) (*.net *.split)
15:29:36 × janus quits (janus@anubis.0x90.dk) (*.net *.split)
15:29:36 × phaazon quits (~phaazon@2001:41d0:a:fe76::1) (*.net *.split)
15:29:36 × sphynx quits (~xnyhps@2a02:2770:3:0:216:3eff:fe67:3288) (*.net *.split)
15:29:36 × dixie quits (~dixie@real.wilbury.sk) (*.net *.split)
15:29:36 × dunj3 quits (~dunj3@kingdread.de) (*.net *.split)
15:29:36 × cpape quits (~user@2a01:4f9:c010:632d::1) (*.net *.split)
15:29:36 × sm[i] quits (~user@plaintextaccounting/sm) (*.net *.split)
15:29:36 × max22- quits (~maxime@2a01cb088335980086c6bc2422140675.ipv6.abo.wanadoo.fr) (*.net *.split)
15:29:36 × the_last_immorta quits (~thelastim@2001:470:69fc:105::1:4d57) (*.net *.split)
15:29:36 × octeep[m] quits (~octeepoct@2001:470:69fc:105::1:3dbf) (*.net *.split)
15:29:36 × nomeata quits (~nomeata@2001:470:69fc:105::1:5ed4) (*.net *.split)
15:29:36 × fsckskye[m] quits (~kmatrixth@2001:470:69fc:105::1:3b2f) (*.net *.split)
15:29:36 × fcortesi quits (~fcortesi@2001:470:69fc:105::f3a9) (*.net *.split)
15:29:36 × marinelli[m] quits (~marinelli@2001:470:69fc:105::2d8) (*.net *.split)
15:29:36 × DemiMarieObenour quits (~alwayscur@2001:470:69fc:105::4886) (*.net *.split)
15:29:36 × jneira[m] quits (~jneiramat@2001:470:69fc:105::d729) (*.net *.split)
15:29:37 × maralorn quits (~maralorn@2001:470:69fc:105::251) (*.net *.split)
15:29:37 × Arathorn quits (~arathorn@2001:470:69fc:105::1f) (*.net *.split)
15:29:37 × Topik[m] quits (~topikmatr@2001:470:69fc:105::a082) (*.net *.split)
15:29:37 × fgaz quits (~fgaz@2001:470:69fc:105::842) (*.net *.split)
15:29:37 × sofviic[m] quits (~sofviicma@2001:470:69fc:105::1:51fd) (*.net *.split)
15:29:37 × afotgkmnzj7asv3r quits (~afotgkmnz@2001:470:69fc:105::c24b) (*.net *.split)
15:29:37 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (*.net *.split)
15:29:37 × srk quits (~sorki@user/srk) (*.net *.split)
15:29:37 × haasn quits (~nand@haasn.dev) (*.net *.split)
15:29:37 × bbhoss quits (sid18216@id-18216.tinside.irccloud.com) (*.net *.split)
15:29:37 × scav quits (sid309693@id-309693.helmsley.irccloud.com) (*.net *.split)
15:29:38 × bw quits (sid2730@user/betawaffle) (*.net *.split)
15:29:38 × feliix42 quits (~felix@gibbs.uberspace.de) (*.net *.split)
15:29:38 × cln quits (sid336875@id-336875.ilkley.irccloud.com) (*.net *.split)
15:29:38 × bgamari_ quits (~bgamari@2001:470:e438::1) (*.net *.split)
15:29:38 × ishutin quits (~ishutin@92-249-182-7.pool.digikabel.hu) (*.net *.split)
15:29:38 × slowtyper quits (~slowtyper@user/slowtyper) (*.net *.split)
15:29:38 × wrengr quits (~wrengr@150.12.83.34.bc.googleusercontent.com) (*.net *.split)
15:29:38 × averell quits (~averell@user/averell) (*.net *.split)
15:29:38 × mrus quits (~mrus@2001:19f0:5:1535:5400:3ff:fe7d:10ae) (*.net *.split)
15:29:38 × dwt_ quits (~dwt_@c-98-198-103-176.hsd1.tx.comcast.net) (*.net *.split)
15:29:38 × Ferdirand quits (~somebody@2001:4c78:2012:5000::2) (*.net *.split)
15:29:38 × dfg quits (dfg@user/dfg) (*.net *.split)
15:29:38 × Unhammer quits (~Unhammer@user/unhammer) (*.net *.split)
15:29:38 × relrod quits (~relrod@redhat/ansible.staff.relrod) (*.net *.split)
15:29:38 × platz_ quits (~platz@40.122.118.113) (*.net *.split)
15:29:38 × mht-wtf quits (~mht@2a03:b0c0:3:e0::1e2:c001) (*.net *.split)
15:29:38 × kawpuh quits (~kawpuh@66.42.81.80) (*.net *.split)
15:29:38 × tdammers quits (~tdammers@77.109.72.177.res.static.edpnet.net) (*.net *.split)
15:29:38 × glider quits (~glider@user/glider) (*.net *.split)
15:29:38 × quintasan quits (~quassel@quintasan.pl) (*.net *.split)
15:29:38 × orcus quits (~orcus@user/brprice) (*.net *.split)
15:29:38 × tinwood quits (~tinwood@canonical/tinwood) (*.net *.split)
15:29:38 × Profpatsch quits (~Profpatsc@static.88-198-193-255.clients.your-server.de) (*.net *.split)
15:29:38 × Patternmaster quits (~georg@li1192-118.members.linode.com) (*.net *.split)
15:29:38 × haskl quits (~haskl@user/haskl) (*.net *.split)
15:29:38 × teddyc quits (theodorc@cassarossa.samfundet.no) (*.net *.split)
15:29:38 × dyniec quits (~dyniec@mail.dybiec.info) (*.net *.split)
15:29:38 × anderson quits (~ande@user/anderson) (*.net *.split)
15:29:38 × hiredman quits (~hiredman@frontier1.downey.family) (*.net *.split)
15:29:38 × piele quits (~piele@tbonesteak.creativeserver.net) (*.net *.split)
15:29:38 × dminuoso quits (~dminuoso@user/dminuoso) (*.net *.split)
15:29:38 × OscarH_ quits (~OscarH@90.201.86.195) (*.net *.split)
15:29:39 × arkeet quits (~arkeet@moriya.ca) (*.net *.split)
15:29:39 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (*.net *.split)
15:29:39 × mniip quits (mniip@libera/staff/mniip) (*.net *.split)
15:29:39 × yahb quits (xsbot@user/mniip/bot/yahb) (*.net *.split)
15:29:39 × shriekingnoise quits (~shrieking@186.137.144.80) (*.net *.split)
15:29:39 × mmhat quits (~mmh@55d49507.access.ecotel.net) (*.net *.split)
15:29:39 × __monty__ quits (~toonn@user/toonn) (*.net *.split)
15:29:39 × mcglk quits (~mcglk@131.191.49.120) (*.net *.split)
15:29:39 × monochrom quits (trebla@216.138.220.146) (*.net *.split)
15:29:39 × joo-_ quits (~joo-_@fsf/member/joo--) (*.net *.split)
15:29:39 × motherfsck quits (~motherfsc@user/motherfsck) (*.net *.split)
15:29:39 × AlexZenon quits (~alzenon@94.233.240.16) (*.net *.split)
15:29:39 × Midjak quits (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (*.net *.split)
15:29:39 × juhp quits (~juhp@128.106.188.82) (*.net *.split)
15:29:39 × m1dnight quits (~christoph@christophe.dev) (*.net *.split)
15:29:39 × cosimone quits (~user@93-47-228-11.ip115.fastwebnet.it) (*.net *.split)
15:29:39 × fryguybob quits (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (*.net *.split)
15:29:39 × dextaa quits (~DV@user/dextaa) (*.net *.split)
15:29:39 × xlei quits (~akans@pool-68-129-84-118.nycmny.fios.verizon.net) (*.net *.split)
15:29:39 × eL_Bart0 quits (eL_Bart0@dietunichtguten.org) (*.net *.split)
15:29:39 × jespada quits (~jespada@87.74.32.18) (*.net *.split)
15:29:39 × xsperry quits (~xs@user/xsperry) (*.net *.split)
15:29:39 × kritzefitz quits (~kritzefit@debian/kritzefitz) (*.net *.split)
15:29:39 × bollu quits (~bollu@159.65.151.13) (*.net *.split)
15:29:39 × canta quits (~canta@user/canta) (*.net *.split)
15:29:39 × dsrt^ quits (~dsrt@207.5.21.20) (*.net *.split)
15:29:39 × sabx quits (~sabbas@user/sabbas) (*.net *.split)
15:29:39 × foul_owl quits (~kerry@94.140.8.107) (*.net *.split)
15:29:39 × nhs quits (~nhs@136.49.226.20) (*.net *.split)
15:29:39 × mmalter quits (~mmalter@88.126.10.237) (*.net *.split)
15:29:39 × koolazer quits (~koo@user/koolazer) (*.net *.split)
15:29:39 × jjhoo quits (~jahakala@user/jjhoo) (*.net *.split)
15:29:39 × superbil quits (~superbil@1-34-176-171.hinet-ip.hinet.net) (*.net *.split)
15:29:39 × mjrosenb quits (~mjrosenb@pool-108-54-97-96.nycmny.fios.verizon.net) (*.net *.split)
15:29:39 × oo_migue1 quits (~pi@77.252.47.226) (*.net *.split)
15:29:39 × df quits (~ben@justworks.xyz) (*.net *.split)
15:29:40 × lambdabot quits (~lambdabot@haskell/bot/lambdabot) (*.net *.split)
15:29:40 × exarkun quits (~exarkun@user/exarkun) (*.net *.split)
15:29:40 × ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (*.net *.split)
15:29:40 × tv quits (~tv@user/tv) (*.net *.split)
15:29:40 × maerwald quits (~maerwald@user/maerwald) (*.net *.split)
15:29:40 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (*.net *.split)
15:29:40 × JimL quits (~quassel@89-162-2-132.fiber.signal.no) (*.net *.split)
15:29:40 × acowley quits (~acowley@c-68-83-22-43.hsd1.nj.comcast.net) (*.net *.split)
15:29:40 × hgolden quits (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (*.net *.split)
15:29:40 × jeffz` quits (~user@lambda.xen.prgmr.com) (*.net *.split)
15:29:40 × remedan_ quits (~remedan@octo.cafe) (*.net *.split)
15:29:40 × SoF quits (~skius@user/skius) (*.net *.split)
15:29:40 × hltk quits (~hltk@hltk.fi) (*.net *.split)
15:29:40 × myme quits (~myme@40.51-175-185.customer.lyse.net) (*.net *.split)
15:29:40 × nek0 quits (~nek0@nek0.eu) (*.net *.split)
15:29:40 × joeyh_ quits (~joeyh@kitenet.net) (*.net *.split)
15:29:40 × lambdap quits (~lambdap@static.167.190.119.168.clients.your-server.de) (*.net *.split)
15:29:40 × drewolson quits (~drewolson@user/drewolson) (*.net *.split)
15:29:40 × caubert_ quits (~caubert@136.244.111.235) (*.net *.split)
15:29:40 × Brandon_1X quits (~brandon@178-79-138-117.ip.linodeusercontent.com) (*.net *.split)
15:29:40 × barrucadu quits (~barrucadu@carcosa.barrucadu.co.uk) (*.net *.split)
15:29:40 × siers quits (~ij@user/ij) (*.net *.split)
15:29:40 × shanemikel quits (~shanemike@desk.roadwar.net) (*.net *.split)
15:29:40 × heath quits (~heath@user/heath) (*.net *.split)
15:29:40 × Teacup quits (~teacup@user/teacup) (*.net *.split)
15:29:40 × madnight_ quits (~madnight@static.59.103.201.195.clients.your-server.de) (*.net *.split)
15:29:40 × mmaruseacph2 quits (~mihai@198.199.100.72) (*.net *.split)
15:29:40 × bcoppens quits (~bartcopp@vpn2.bartcoppens.be) (*.net *.split)
15:29:40 × spoonm quits (spoonm@inaba.spoonm.org) (*.net *.split)
15:29:40 × Ram-Z quits (~Ram-Z@li1814-254.members.linode.com) (*.net *.split)
15:29:40 × sajith quits (~sajith@user/sajith) (*.net *.split)
15:29:40 × meejah quits (~meejah@rutas.meejah.ca) (*.net *.split)
15:29:41 × eoiles[m] quits (~eoilesmat@2001:470:69fc:105::1:6164) (*.net *.split)
15:29:41 × hughjfchen[m] quits (~hughjfche@2001:470:69fc:105::c29d) (*.net *.split)
15:29:41 × soft quits (~soft@2001:470:69fc:105::c75) (*.net *.split)
15:29:41 × bb010g quits (~bb010g@2001:470:69fc:105::9a5) (*.net *.split)
15:29:41 × jchia[m] quits (~jchiamatr@2001:470:69fc:105::c50b) (*.net *.split)
15:29:41 × Magnus[m] quits (~magthetch@2001:470:69fc:105::d1a7) (*.net *.split)
15:29:41 × ManofLetters[m] quits (~manoflett@2001:470:69fc:105::3be) (*.net *.split)
15:29:41 × alex[m] quits (~alexchete@2001:470:69fc:105::1:1001) (*.net *.split)
15:29:41 × jinsun_ quits (~jinsun@user/jinsun) (*.net *.split)
15:29:41 × unrooted quits (~unrooted@2001:470:69fc:105::a4a) (*.net *.split)
15:29:41 × ongy[m] quits (~ongymatri@2001:470:69fc:105::5018) (*.net *.split)
15:29:41 × hsiktas[m] quits (~hsiktasma@2001:470:69fc:105::30d4) (*.net *.split)
15:29:41 × simmsb quits (~simmsb@2001:470:69fc:105::1:55c3) (*.net *.split)
15:29:41 × Orbstheorem quits (~orbstheor@2001:470:69fc:105::a56) (*.net *.split)
15:29:41 × jkachmar quits (~jkachmar@2001:470:69fc:105::c72d) (*.net *.split)
15:29:41 × psydroid quits (~psydroid@user/psydroid) (*.net *.split)
15:29:41 × justIrresolute quits (~justache@user/justache) (*.net *.split)
15:29:42 × esoca123 quits (uid534098@id-534098.tinside.irccloud.com) (*.net *.split)
15:29:42 × Megant quits (megant@user/megant) (*.net *.split)
15:29:42 × sweater quits (~sweater@206.81.18.26) (*.net *.split)
15:29:42 × ft quits (~ft@shell.chaostreff-dortmund.de) (*.net *.split)
15:29:42 × ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (*.net *.split)
15:29:42 × a1paca quits (~a1paca@user/a1paca) (*.net *.split)
15:29:42 × obviyus quits (sid415299@user/obviyus) (*.net *.split)
15:29:42 × gonz_____ quits (sid304396@id-304396.lymington.irccloud.com) (*.net *.split)
15:29:42 × mustafa quits (sid502723@rockylinux/releng/mustafa) (*.net *.split)
15:29:42 × Square quits (~a@user/square) (*.net *.split)
15:29:42 × fluxit quits (~fluxit@techsmix.net) (*.net *.split)
15:29:42 × davean quits (~davean@davean.sciesnet.net) (*.net *.split)
15:29:42 × NemesisD quits (sid24071@id-24071.lymington.irccloud.com) (*.net *.split)
15:29:42 × tritlo quits (sid58727@user/tritlo) (*.net *.split)
15:29:42 × abrar_ quits (~abrar@static-108-2-152-54.phlapa.fios.verizon.net) (*.net *.split)
15:29:42 × pippijn quits (~pippijn@ra.xinutec.org) (*.net *.split)
15:29:42 × shane quits (~shane@ana.rch.ist) (*.net *.split)
15:29:42 × koala_man quits (~vidar@157.146.251.23.bc.googleusercontent.com) (*.net *.split)
15:29:42 × edwardk quits (sid47016@haskell/developer/edwardk) (*.net *.split)
15:29:42 × idnar quits (sid12240@debian/mithrandi) (*.net *.split)
15:29:42 × lexi-lambda quits (sid92601@id-92601.hampstead.irccloud.com) (*.net *.split)
15:29:42 × sa1_ quits (sid7690@id-7690.ilkley.irccloud.com) (*.net *.split)
15:29:42 × typetetris quits (sid275937@id-275937.tinside.irccloud.com) (*.net *.split)
15:29:42 × rubin55 quits (sid175221@id-175221.hampstead.irccloud.com) (*.net *.split)
15:29:42 × jackdk quits (sid373013@cssa/jackdk) (*.net *.split)
15:29:42 × gnyeki quits (~gnyeki@user/gnyeki) (*.net *.split)
15:29:42 × dkeohane2 quits (~dkeohane@ec2-18-189-29-140.us-east-2.compute.amazonaws.com) (*.net *.split)
15:29:42 × supersven quits (sid501114@id-501114.ilkley.irccloud.com) (*.net *.split)
15:29:42 × christiaanb quits (sid84827@id-84827.lymington.irccloud.com) (*.net *.split)
15:29:42 × beaky quits (~beaky@2a03:b0c0:0:1010::1e:a001) (*.net *.split)
15:29:42 × spider__ quits (~spider@vps-951ce37a.vps.ovh.ca) (*.net *.split)
15:29:42 × c_wraith quits (~c_wraith@adjoint.us) (*.net *.split)
15:29:42 × drlkf quits (~drlkf@2001:41d0:a:62bb::1) (*.net *.split)
15:29:42 × xerox quits (~edi@user/edi) (*.net *.split)
15:29:42 × bwe quits (~bwe@2a01:4f8:1c1c:4878::2) (*.net *.split)
15:29:42 × _\_ quits (~o@user/ding) (*.net *.split)
15:29:42 × Rembane quits (~Rembane@li346-36.members.linode.com) (*.net *.split)
15:29:42 × kaol quits (~kaol@94-237-42-30.nl-ams1.upcloud.host) (*.net *.split)
15:29:42 × adium quits (adium@user/adium) (*.net *.split)
15:29:42 × nckx quits (~nckx@tobias.gr) (*.net *.split)
15:29:42 × edwtjo quits (~edwtjo@user/edwtjo) (*.net *.split)
15:29:42 × eldritch_ quits (~eldritch@user/eldritch/x-9272577) (*.net *.split)
15:29:42 × Aleksejs quits (~Aleksejs@haskell.lv) (*.net *.split)
15:29:42 × sm1 quits (~sm@plaintextaccounting/sm) (*.net *.split)
15:29:42 × schuelermine[m] quits (~schuelerm@user/schuelermine) (*.net *.split)
15:29:43 × Ollie[m] quits (~ollieocha@2001:470:69fc:105::41a5) (*.net *.split)
15:29:43 × qrpnxz quits (~qrpnxz@user/qrpnxz) (*.net *.split)
15:29:43 × smichel17[m] quits (~smichel17@2001:470:69fc:105::2d32) (*.net *.split)
15:29:43 × quantum quits (~quantum@user/quantum/x-8556232) (*.net *.split)
15:29:43 × Las[m] quits (~lasmatrix@2001:470:69fc:105::74e) (*.net *.split)
15:29:43 × wildsebastian quits (~wildsebas@2001:470:69fc:105::1:14b1) (*.net *.split)
15:29:43 × MatrixTravelerbo quits (~voyagert2@2001:470:69fc:105::22) (*.net *.split)
15:29:43 × aveltras[m] quits (~aveltrasm@2001:470:69fc:105::3ef9) (*.net *.split)
15:29:43 × prrxddq[m] quits (~prrxddqma@2001:470:69fc:105::1:4f72) (*.net *.split)
15:29:43 × lisq quits (~quassel@lis.moe) (*.net *.split)
15:29:43 × cocreature quits (~moritz@2a03:b0c0:3:d0::c8:f001) (*.net *.split)
15:29:43 × martin02 quits (~silas@2001:4ca0:0:fe00:0:5efe:a96:1bc1) (*.net *.split)
15:29:43 × pepeiborra quits (sid443799@id-443799.ilkley.irccloud.com) (*.net *.split)
15:29:43 × wallymathieu quits (uid533252@id-533252.uxbridge.irccloud.com) (*.net *.split)
15:29:43 × YoungFrog quits (~youngfrog@2a02:a03f:c21b:f900:f484:3278:789d:d6a5) (*.net *.split)
15:29:43 × ajb_ quits (~ajb@cupid.whatbox.ca) (*.net *.split)
15:29:43 × cyphase quits (~cyphase@user/cyphase) (*.net *.split)
15:29:43 × incertia quits (~incertia@24.42.241.219) (*.net *.split)
15:29:43 × haask quits (~harry@user/haask) (*.net *.split)
15:29:43 × Flow quits (~none@gentoo/developer/flow) (*.net *.split)
15:29:43 × mncheck quits (~mncheck@193.224.205.254) (*.net *.split)
15:29:43 × dibblego quits (~dibblego@haskell/developer/dibblego) (*.net *.split)
15:29:43 × tomboy64 quits (~tomboy64@user/tomboy64) (*.net *.split)
15:29:44 × |beowulf| quits (1000@sourcemage/mage/beowulf) (*.net *.split)
15:29:44 × aforemny quits (~aforemny@static.248.158.34.188.clients.your-server.de) (*.net *.split)
15:29:44 × wagle quits (~wagle@quassel.wagle.io) (*.net *.split)
15:29:44 × APic quits (apic@apic.name) (*.net *.split)
15:29:44 × ouroboros quits (~ouroboros@user/ouroboros) (*.net *.split)
15:29:44 × raoul quits (~raoul@95.179.203.88) (*.net *.split)
15:29:44 × joel135 quits (sid136450@id-136450.hampstead.irccloud.com) (*.net *.split)
15:29:44 × teehemkay quits (sid14792@id-14792.lymington.irccloud.com) (*.net *.split)
15:29:44 × PHO` quits (~pho@akari.cielonegro.org) (*.net *.split)
15:29:44 × nonzen quits (~nonzen@user/nonzen) (*.net *.split)
15:29:44 × lieven quits (~mal@ns2.wyrd.be) (*.net *.split)
15:29:44 × choucavalier quits (~choucaval@peanutbuttervibes.com) (*.net *.split)
15:29:44 × smunix quits (~smunix@static.26.70.12.49.clients.your-server.de) (*.net *.split)
15:29:44 × sudden quits (~cat@user/sudden) (*.net *.split)
15:29:44 × pjlsergeant quits (sid143467@id-143467.hampstead.irccloud.com) (*.net *.split)
15:29:44 × mcfilib quits (sid302703@user/mcfilib) (*.net *.split)
15:29:44 × tureba quits (~tureba@tureba.org) (*.net *.split)
15:29:44 × loonycyborg quits (~loonycybo@wesnoth/developer/loonycyborg) (*.net *.split)
15:29:44 × jakalx quits (~jakalx@base.jakalx.net) (*.net *.split)
15:29:44 × bah quits (~bah@l1.tel) (*.net *.split)
15:29:44 × hpc quits (~juzz@ip98-169-35-13.dc.dc.cox.net) (*.net *.split)
15:29:44 × alp quits (~alp@mail.fmap.fr) (*.net *.split)
15:29:44 × guibou quits (~guibou@mail.fmap.fr) (*.net *.split)
15:29:44 × yehoshuapw quits (~yehoshuap@2001:470:69fc:105::a5f) (*.net *.split)
15:29:44 × jmcantrell quits (~jmcantrel@user/jmcantrell) (*.net *.split)
15:29:44 × surgeon[m] quits (~surge9nma@2001:470:69fc:105::f585) (*.net *.split)
15:29:44 × SawyerBergeron[m quits (~sawyerber@2001:470:69fc:105::3036) (*.net *.split)
15:29:44 × Artem[m] quits (~artemtype@2001:470:69fc:105::75b) (*.net *.split)
15:29:44 × Christoph[m] quits (~hpotsirhc@2001:470:69fc:105::2ff8) (*.net *.split)
15:29:44 × zwro[m] quits (~zwromatri@2001:470:69fc:105::1d4) (*.net *.split)
15:29:44 × vaibhavsagar[m] quits (~vaibhavsa@2001:470:69fc:105::ffe) (*.net *.split)
15:29:44 × peddie quits (~peddie@2001:470:69fc:105::25d) (*.net *.split)
15:29:44 × denbrahe[m] quits (~denbrahem@2001:470:69fc:105::19c0) (*.net *.split)
15:29:45 × tripa[m] quits (~tripamatr@2001:470:69fc:105::1:4f7e) (*.net *.split)
15:29:45 × grabb0id[m] quits (~alangmatr@2001:470:69fc:105::b489) (*.net *.split)
15:29:45 × wysteriary[m] quits (~wysteriar@2001:470:69fc:105::a42e) (*.net *.split)
15:29:45 × craige[m] quits (~craigemcw@2001:470:69fc:105::35f1) (*.net *.split)
15:29:45 × hays quits (rootvegeta@fsf/member/hays) (*.net *.split)
15:29:45 × eruditass quits (uid248673@id-248673.uxbridge.irccloud.com) (*.net *.split)
15:29:45 × SanchayanMaity quits (sid478177@id-478177.hampstead.irccloud.com) (*.net *.split)
15:29:45 × yushyin quits (opqz58iJgg@mail.karif.server-speed.net) (*.net *.split)
15:29:45 × flukiluke quits (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) (*.net *.split)
15:29:45 × agander_m quits (sid407952@id-407952.tinside.irccloud.com) (*.net *.split)
15:29:45 × truckasaurus quits (sid457088@id-457088.helmsley.irccloud.com) (*.net *.split)
15:29:45 × kronicma1 quits (user76545@neotame.csclub.uwaterloo.ca) (*.net *.split)
15:29:45 × SrPx quits (sid108780@id-108780.uxbridge.irccloud.com) (*.net *.split)
15:29:45 × ncopa3 quits (~ncopa@gbr2-dev1.alpinelinux.org) (*.net *.split)
15:29:45 × Raito_Bezarius quits (~Raito@wireguard/tunneler/raito-bezarius) (*.net *.split)
15:29:45 × DigitalKiwi quits (~kiwi@2604:a880:400:d0::12fc:5001) (*.net *.split)
15:29:45 × Benzi-Junior quits (~BenziJuni@dsl-149-66-61.hive.is) (*.net *.split)
15:29:45 × elvishjerricco quits (sid237756@helmsley.irccloud.com) (*.net *.split)
15:29:45 × alanz quits (sid110616@uxbridge.irccloud.com) (*.net *.split)
15:29:45 × ikke quits (~kevin@alpine/developer/ikke) (*.net *.split)
15:29:45 × systemfault quits (sid267009@id-267009.uxbridge.irccloud.com) (*.net *.split)
15:29:45 × bradparker quits (sid262931@id-262931.uxbridge.irccloud.com) (*.net *.split)
15:29:45 × jakzale quits (6291399afa@user/jakzale) (*.net *.split)
15:29:45 × FragByte quits (~christian@user/fragbyte) (*.net *.split)
15:29:45 × alinab quits (sid468903@helmsley.irccloud.com) (*.net *.split)
15:29:45 × xsarnik quits (xsarnik@lounge.fi.muni.cz) (*.net *.split)
15:29:45 × Pent quits (sid313808@id-313808.lymington.irccloud.com) (*.net *.split)
15:29:45 × asm quits (~alexander@user/asm) (*.net *.split)
15:29:45 × n3t quits (~n3t@user/n3t) (*.net *.split)
15:29:45 × byorgey quits (~byorgey@155.138.238.211) (*.net *.split)
15:29:45 × nshepperd quits (~nshepperd@li364-218.members.linode.com) (*.net *.split)
15:29:45 × bjobjo quits (~bjobjo@user/bjobjo) (*.net *.split)
15:29:45 × andreas303 quits (andreas303@ip227.orange.bnc4free.com) (*.net *.split)
15:29:45 × Hecate quits (~mariposa@user/hecate) (*.net *.split)
15:29:45 × AWizzArd quits (~code@user/awizzard) (*.net *.split)
15:29:45 × aarchi quits (sid486183@id-486183.uxbridge.irccloud.com) (*.net *.split)
15:29:45 × Igloo quits (~ian@matrix.chaos.earth.li) (*.net *.split)
15:29:45 × aristid quits (sid1599@id-1599.uxbridge.irccloud.com) (*.net *.split)
15:29:45 × sa quits (sid1055@id-1055.tinside.irccloud.com) (*.net *.split)
15:29:45 × T_S_ quits (sid501726@id-501726.uxbridge.irccloud.com) (*.net *.split)
15:29:45 × Philonous quits (~Philonous@user/philonous) (*.net *.split)
15:29:45 × tabemann quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (*.net *.split)
15:29:45 × clever quits (~clever@99.192.114.98) (*.net *.split)
15:29:46 × riatre quits (~quassel@2001:310:6000:f::5198:1) (*.net *.split)
15:29:46 × skn quits (~znc@2001:19f0:5:701:5400:ff:fe7c:4e5c) (*.net *.split)
15:29:46 × nerdypepper quits (~nerdypepp@user/nerdypepper) (*.net *.split)
15:29:46 × edr quits (~edr@user/edr) (*.net *.split)
15:29:46 × reda_ quits (~reda@user/reda) (*.net *.split)
15:29:46 × polux quits (~polux@51.15.169.172) (*.net *.split)
15:29:46 × dy quits (~dy@user/dy) (*.net *.split)
15:29:46 × djanatyn quits (~djanatyn@vps-7f49a6b0.vps.ovh.ca) (*.net *.split)
15:29:46 × statusfailed quits (~statusfai@statusfailed.com) (*.net *.split)
15:29:46 × shachaf quits (~shachaf@user/shachaf) (*.net *.split)
15:29:46 × SridharRatnakuma quits (~sridmatri@2001:470:69fc:105::1c2) (*.net *.split)
15:29:46 × pfurla-matrix quits (~pedrofurl@2001:470:69fc:105::1:51d7) (*.net *.split)
15:29:46 × Deide quits (~deide@user/deide) (*.net *.split)
15:29:46 × amesgen[m] quits (~amesgenm]@2001:470:69fc:105::82b) (*.net *.split)
15:29:46 × unclechu quits (~unclechu@2001:470:69fc:105::354) (*.net *.split)
15:29:46 × bitonic quits (~bitonic@2001:470:69fc:105::1812) (*.net *.split)
15:29:46 × Tisoxin quits (~ikosit@user/ikosit) (*.net *.split)
15:29:46 × ormaaj quits (~ormaaj@user/ormaaj) (*.net *.split)
15:29:46 × Nate[m]1 quits (~m52957mat@2001:470:69fc:105::1:591a) (*.net *.split)
15:29:46 × cherryblossom[m] quits (~cherryblo@2001:470:69fc:105::b789) (*.net *.split)
15:29:46 × james[m]123 quits (~jamesnina@2001:470:69fc:105::1:4203) (*.net *.split)
15:29:46 × Michal[m] quits (~oomiguelm@2001:470:69fc:105::1:5ab0) (*.net *.split)
15:29:46 × wz1000 quits (~zubin@static.11.113.47.78.clients.your-server.de) (*.net *.split)
15:29:46 × PigDude quits (~PigDude@159.203.16.199) (*.net *.split)
15:29:46 × Typedfern quits (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (*.net *.split)
15:29:46 × niko quits (~niko@libera/staff/niko) (*.net *.split)
15:29:46 × wolfshappen quits (~waff@irc.furworks.de) (*.net *.split)
15:29:46 × ProofTechnique quits (sid79547@id-79547.ilkley.irccloud.com) (*.net *.split)
15:29:46 × forell quits (~forell@user/forell) (*.net *.split)
15:29:46 × cods quits (~fred@82-65-232-44.subs.proxad.net) (*.net *.split)
15:29:46 × son0p quits (~ff@181.136.122.143) (*.net *.split)
15:29:46 × rookie101 quits (~rookie@165.232.121.13) (*.net *.split)
15:29:46 × finsternis quits (~X@23.226.237.192) (*.net *.split)
15:29:47 × samebchase quits (~samebchas@51.15.68.182) (*.net *.split)
15:29:47 × peutri quits (~peutri@ns317027.ip-94-23-46.eu) (*.net *.split)
15:29:47 × dfordvm quits (~dfordivam@tk2-219-19469.vs.sakura.ne.jp) (*.net *.split)
15:29:47 × bens quits (~bens@www.typius.com) (*.net *.split)
15:29:47 × mjacob_ quits (~mjacob@adrastea.uberspace.de) (*.net *.split)
15:29:47 × ephemient quits (uid407513@id-407513.lymington.irccloud.com) (*.net *.split)
15:29:47 × auri quits (~quassel@fsf/member/auri) (*.net *.split)
15:29:47 × chronon quits (~chronon@user/chronon) (*.net *.split)
15:29:47 × Moyst_ quits (~moyst@user/moyst) (*.net *.split)
15:29:47 × dsal quits (sid13060@id-13060.lymington.irccloud.com) (*.net *.split)
15:29:47 × jmct_ quits (sid160793@id-160793.tinside.irccloud.com) (*.net *.split)
15:29:47 × astra quits (sid289983@user/amish) (*.net *.split)
15:29:47 × amir quits (sid22336@user/amir) (*.net *.split)
15:29:47 × hamishmack_ quits (sid389057@id-389057.hampstead.irccloud.com) (*.net *.split)
15:29:47 × parseval quits (sid239098@id-239098.helmsley.irccloud.com) (*.net *.split)
15:29:47 × bsdbandit quits (~bwell@users.757.org) (*.net *.split)
15:29:47 × mcfrdy quits (~mcfrdy@user/mcfrdy) (*.net *.split)
15:29:47 × dexterfoo quits (dexter@2a01:7e00::f03c:91ff:fe86:59ec) (*.net *.split)
15:29:47 × ringo__ quits (~ringo@157.230.117.128) (*.net *.split)
15:29:47 × oxytocat quits (~alloca@user/suppi) (*.net *.split)
15:29:47 × kawzeg quits (kawzeg@2a01:7e01::f03c:92ff:fee2:ec34) (*.net *.split)
15:29:47 × enyc quits (~enyc@user/enyc) (*.net *.split)
15:29:47 × hexagoxel quits (~hexagoxel@2a01:4f8:c0c:e::2) (*.net *.split)
15:29:47 × fiddlerwoaroof quits (~fiddlerwo@user/fiddlerwoaroof) (*.net *.split)
15:29:47 × nshepperd2 quits (~nshepperd@li364-218.members.linode.com) (*.net *.split)
15:29:47 × deni quits (~deni@user/deni) (*.net *.split)
15:29:47 × krjst quits (~krjst@2604:a880:800:c1::16b:8001) (*.net *.split)
15:29:47 × jocke-l quits (jocke-l@a.x0.is) (*.net *.split)
15:29:47 × thonkpod quits (~thonkpod@user/thonkpod) (*.net *.split)
15:29:47 × codygman[m] quits (~codygman@2001:470:69fc:105::b4ba) (*.net *.split)
15:29:47 × zfnmxt quits (~zfnmxtzfn@2001:470:69fc:105::2b32) (*.net *.split)
15:29:47 × kalxd[m] quits (~kalxdmatr@2001:470:69fc:105::1:576e) (*.net *.split)
15:29:47 × aidy quits (~aidy@2001:470:69fc:105::c7b4) (*.net *.split)
15:29:47 × thomasjm[m] quits (~thomasjmm@2001:470:69fc:105::c6d9) (*.net *.split)
15:29:47 × maerwald[m] quits (~maerwaldm@user/maerwald) (*.net *.split)
15:29:47 × moats quits (~oats@user/oats) (*.net *.split)
15:29:47 × juhp[m] quits (~juhpmatri@2001:470:69fc:105::6e9) (*.net *.split)
15:29:47 × ericson2314 quits (~ericson23@2001:470:69fc:105::70c) (*.net *.split)
15:29:47 × jophish quits (~jophish@2001:470:69fc:105::670) (*.net *.split)
15:29:47 × puffnfresh[m] quits (~puffnfres@2001:470:69fc:105::1:22da) (*.net *.split)
15:29:47 × kadoban quits (~kadoban@user/kadoban) (*.net *.split)
15:29:47 × jesser[m] quits (~jessermat@2001:470:69fc:105::d5ae) (*.net *.split)
15:29:47 × IgnatInsarov[m] quits (~kindaroma@2001:470:69fc:105::f5d9) (*.net *.split)
15:29:47 × RosarioPulella[m quits (~rosariopu@2001:470:69fc:105::a57) (*.net *.split)
15:29:47 × justosophy[m] quits (~justosoph@2001:470:69fc:105::572f) (*.net *.split)
15:29:47 × xddq[m] quits (~xddqmatri@2001:470:69fc:105::bfd8) (*.net *.split)
15:29:47 × int-e quits (~noone@int-e.eu) (*.net *.split)
15:29:47 × Goodbye_Vincent quits (cyvahl@freakshells.net) (*.net *.split)
15:29:47 × Taneb quits (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) (*.net *.split)
15:29:47 × pieguy12- quits (~pieguy128@bras-base-mtrlpq5031w-grc-48-67-70-102-17.dsl.bell.ca) (*.net *.split)
15:29:47 × acidsys quits (~LSD@2.lsd.systems) (*.net *.split)
15:29:47 × Unode quits (~Unode@194.94.44.220) (*.net *.split)
15:29:47 × jzsinatra quits (~jzsinatra@88-114-238-31.elisa-laajakaista.fi) (*.net *.split)
15:29:47 × troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (*.net *.split)
15:29:48 × samhh quits (7569f027cf@2604:bf00:561:2000::e4) (*.net *.split)
15:29:48 × thebnq quits (~bnq@herrokitty.com) (*.net *.split)
15:29:48 × Noinia quits (~Frank@77-162-168-71.fixed.kpn.net) (*.net *.split)
15:29:48 × gawen_ quits (~gawen@user/gawen) (*.net *.split)
15:29:48 × erisco quits (~erisco@d24-57-249-233.home.cgocable.net) (*.net *.split)
15:29:48 × amk quits (~amk@109.255.169.126) (*.net *.split)
15:29:48 × mrkajetanp quits (~mrkajetan@88.98.245.28) (*.net *.split)
15:29:48 × Putonlalla quits (~sapekiis@it-cyan.it.jyu.fi) (*.net *.split)
15:29:48 × Ankhers quits (e99e97ef8e@2604:bf00:561:2000::2a2) (*.net *.split)
15:29:48 × juri_ quits (~juri@178.63.35.222) (*.net *.split)
15:29:48 × Flonk quits (~Flonk@vps-zap441517-1.zap-srv.com) (*.net *.split)
15:29:48 × urdh quits (~urdh@user/urdh) (*.net *.split)
15:29:48 × m4lvin quits (~m4lvin@w4eg.de) (*.net *.split)
15:29:48 × jassob quits (~jassob@h-155-4-71-72.A785.priv.bahnhof.se) (*.net *.split)
15:29:48 × Vq quits (~vq@90-227-195-41-no77.tbcn.telia.com) (*.net *.split)
15:29:48 × acro quits (~acro@user/acro) (*.net *.split)
15:29:48 × catern quits (~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407) (*.net *.split)
15:29:48 × LambdaDuck quits (~anka@ksit.fixme.fi) (*.net *.split)
15:29:48 × xacktm quits (xacktm@user/xacktm) (*.net *.split)
15:29:48 × davl quits (~davl@207.154.228.18) (*.net *.split)
15:29:48 × evanrelf quits (3addc196af@2604:bf00:561:2000::f0) (*.net *.split)
15:29:48 × tomsmeding quits (~tomsmedin@tomsmeding.com) (*.net *.split)
15:29:48 × m5zs7k quits (aquares@web10.mydevil.net) (*.net *.split)
15:29:48 × xstill- quits (xstill@fimu/xstill) (*.net *.split)
15:29:48 × lyxia quits (~lyxia@poisson.chat) (*.net *.split)
15:29:48 × Athas quits (athas@sigkill.dk) (*.net *.split)
15:29:48 × SIben quits (~SIben@ns3106586.ip-5-135-191.eu) (*.net *.split)
15:29:48 × gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (*.net *.split)
15:29:48 × ggVGc quits (~ggVGc@a.lowtech.earth) (*.net *.split)
15:29:48 × ptrcmd quits (~ptrcmd@user/ptrcmd) (*.net *.split)
15:29:48 × Xe quits (~cadey@tailscale/xe) (*.net *.split)
15:29:48 × conjunctive quits (sid433686@id-433686.helmsley.irccloud.com) (*.net *.split)
15:29:48 × dpratt__ quits (sid193493@id-193493.helmsley.irccloud.com) (*.net *.split)
15:29:48 × Adeon quits (sid418992@id-418992.lymington.irccloud.com) (*.net *.split)
15:29:48 × rune quits (sid21167@id-21167.ilkley.irccloud.com) (*.net *.split)
15:29:48 × grfn quits (sid449115@id-449115.helmsley.irccloud.com) (*.net *.split)
15:29:48 × vito quits (sid1962@user/vito) (*.net *.split)
15:29:48 × pierrot quits (~pi@user/pierrot) (*.net *.split)
15:29:48 × bonz060 quits (~quassel@2001:bc8:47a4:a23::1) (*.net *.split)
15:29:48 × Jon quits (jon@dow.land) (*.net *.split)
15:29:48 × Hobbyboy quits (Hobbyboy@hobbyboy.co.uk) (*.net *.split)
15:29:48 × smorgasbord quits (buggy@user/smorgasbord) (*.net *.split)
15:29:48 × ChanServ quits (ChanServ@services.libera.chat) (*.net *.split)
15:29:48 × ProfSimm quits (~ProfSimm@87.227.196.109) (*.net *.split)
15:29:48 × rond_42 quits (~rond_@2a01:115f:943:5e00:d97e:b793:ae8f:1ddd) (*.net *.split)
15:29:48 × xb0o2 quits (~xb0o2@user/xb0o2) (*.net *.split)
15:29:48 × wyrd quits (~wyrd@gateway/tor-sasl/wyrd) (*.net *.split)
15:29:48 × jpds quits (~jpds@gateway/tor-sasl/jpds) (*.net *.split)
15:29:48 × gehmehgeh quits (~user@user/gehmehgeh) (*.net *.split)
15:29:48 × alMalsamo quits (~alMalsamo@gateway/tor-sasl/almalsamo) (*.net *.split)
15:29:48 × califax quits (~califax@user/califx) (*.net *.split)
15:29:48 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (*.net *.split)
15:29:48 × stiell quits (~stiell@gateway/tor-sasl/stiell) (*.net *.split)
15:29:48 × azimut quits (~azimut@gateway/tor-sasl/azimut) (*.net *.split)
15:29:48 × chexum quits (~quassel@gateway/tor-sasl/chexum) (*.net *.split)
15:29:48 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (*.net *.split)
15:32:15 guibou joins (~guibou@mail.fmap.fr)
15:32:15 alp joins (~alp@mail.fmap.fr)
15:32:15 hpc joins (~juzz@ip98-169-35-13.dc.dc.cox.net)
15:32:15 bah joins (~bah@l1.tel)
15:32:15 loonycyborg joins (~loonycybo@wesnoth/developer/loonycyborg)
15:32:15 tureba joins (~tureba@tureba.org)
15:32:15 mcfilib joins (sid302703@user/mcfilib)
15:32:15 pjlsergeant joins (sid143467@id-143467.hampstead.irccloud.com)
15:32:15 sudden joins (~cat@user/sudden)
15:32:15 smunix joins (~smunix@static.26.70.12.49.clients.your-server.de)
15:32:15 choucavalier joins (~choucaval@peanutbuttervibes.com)
15:32:15 lieven joins (~mal@ns2.wyrd.be)
15:32:15 nonzen joins (~nonzen@user/nonzen)
15:32:15 PHO` joins (~pho@akari.cielonegro.org)
15:32:15 teehemkay joins (sid14792@id-14792.lymington.irccloud.com)
15:32:15 joel135 joins (sid136450@id-136450.hampstead.irccloud.com)
15:32:15 raoul joins (~raoul@95.179.203.88)
15:32:15 ouroboros joins (~ouroboros@user/ouroboros)
15:32:15 APic joins (apic@apic.name)
15:32:15 wagle joins (~wagle@quassel.wagle.io)
15:32:15 aforemny joins (~aforemny@static.248.158.34.188.clients.your-server.de)
15:32:15 |beowulf| joins (1000@sourcemage/mage/beowulf)
15:32:15 tomboy64 joins (~tomboy64@user/tomboy64)
15:32:15 dibblego joins (~dibblego@haskell/developer/dibblego)
15:32:15 mncheck joins (~mncheck@193.224.205.254)
15:32:15 Flow joins (~none@gentoo/developer/flow)
15:32:15 haask joins (~harry@user/haask)
15:32:15 incertia joins (~incertia@24.42.241.219)
15:32:15 cyphase joins (~cyphase@user/cyphase)
15:32:15 ajb_ joins (~ajb@cupid.whatbox.ca)
15:32:15 YoungFrog joins (~youngfrog@2a02:a03f:c21b:f900:f484:3278:789d:d6a5)
15:32:15 wallymathieu joins (uid533252@id-533252.uxbridge.irccloud.com)
15:32:15 pepeiborra joins (sid443799@id-443799.ilkley.irccloud.com)
15:32:15 martin02 joins (~silas@2001:4ca0:0:fe00:0:5efe:a96:1bc1)
15:32:15 cocreature joins (~moritz@2a03:b0c0:3:d0::c8:f001)
15:32:15 lisq joins (~quassel@lis.moe)
15:32:15 prrxddq[m] joins (~prrxddqma@2001:470:69fc:105::1:4f72)
15:32:15 aveltras[m] joins (~aveltrasm@2001:470:69fc:105::3ef9)
15:32:15 Las[m] joins (~lasmatrix@2001:470:69fc:105::74e)
15:32:15 wildsebastian joins (~wildsebas@2001:470:69fc:105::1:14b1)
15:32:15 qrpnxz joins (~qrpnxz@user/qrpnxz)
15:32:15 Ollie[m] joins (~ollieocha@2001:470:69fc:105::41a5)
15:32:15 quantum joins (~quantum@user/quantum/x-8556232)
15:32:15 smichel17[m] joins (~smichel17@2001:470:69fc:105::2d32)
15:32:15 schuelermine[m] joins (~schuelerm@user/schuelermine)
15:32:15 sm1 joins (~sm@plaintextaccounting/sm)
15:32:15 jakalx joins (~jakalx@base.jakalx.net)
15:32:15 Aleksejs joins (~Aleksejs@haskell.lv)
15:32:15 edwtjo joins (~edwtjo@user/edwtjo)
15:32:15 nckx joins (~nckx@tobias.gr)
15:32:15 adium joins (adium@user/adium)
15:32:15 kaol joins (~kaol@94-237-42-30.nl-ams1.upcloud.host)
15:32:15 Rembane joins (~Rembane@li346-36.members.linode.com)
15:32:15 _\_ joins (~o@user/ding)
15:32:15 shachaf joins (~shachaf@user/shachaf)
15:32:15 statusfailed joins (~statusfai@statusfailed.com)
15:32:15 djanatyn joins (~djanatyn@vps-7f49a6b0.vps.ovh.ca)
15:32:15 dy joins (~dy@user/dy)
15:32:15 polux joins (~polux@51.15.169.172)
15:32:15 reda_ joins (~reda@user/reda)
15:32:15 edr joins (~edr@user/edr)
15:32:15 nerdypepper joins (~nerdypepp@user/nerdypepper)
15:32:15 skn joins (~znc@2001:19f0:5:701:5400:ff:fe7c:4e5c)
15:32:15 riatre joins (~quassel@2001:310:6000:f::5198:1)
15:32:15 clever joins (~clever@99.192.114.98)
15:32:15 tabemann joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
15:32:15 Philonous joins (~Philonous@user/philonous)
15:32:15 T_S_ joins (sid501726@id-501726.uxbridge.irccloud.com)
15:32:15 sa joins (sid1055@id-1055.tinside.irccloud.com)
15:32:15 aristid joins (sid1599@id-1599.uxbridge.irccloud.com)
15:32:15 Igloo joins (~ian@matrix.chaos.earth.li)
15:32:15 aarchi joins (sid486183@id-486183.uxbridge.irccloud.com)
15:32:15 AWizzArd joins (~code@user/awizzard)
15:32:15 Hecate joins (~mariposa@user/hecate)
15:32:15 andreas303 joins (andreas303@ip227.orange.bnc4free.com)
15:32:15 bjobjo joins (~bjobjo@user/bjobjo)
15:32:15 nshepperd joins (~nshepperd@li364-218.members.linode.com)
15:32:15 byorgey joins (~byorgey@155.138.238.211)
15:32:15 asm joins (~alexander@user/asm)
15:32:15 xsarnik joins (xsarnik@lounge.fi.muni.cz)
15:32:15 alinab joins (sid468903@helmsley.irccloud.com)
15:32:15 Pent joins (sid313808@id-313808.lymington.irccloud.com)
15:32:15 FragByte joins (~christian@user/fragbyte)
15:32:15 bradparker joins (sid262931@id-262931.uxbridge.irccloud.com)
15:32:15 jakzale joins (6291399afa@user/jakzale)
15:32:15 ikke joins (~kevin@alpine/developer/ikke)
15:32:15 n3t joins (~n3t@user/n3t)
15:32:15 systemfault joins (sid267009@id-267009.uxbridge.irccloud.com)
15:32:15 alanz joins (sid110616@uxbridge.irccloud.com)
15:32:15 elvishjerricco joins (sid237756@helmsley.irccloud.com)
15:32:15 Benzi-Junior joins (~BenziJuni@dsl-149-66-61.hive.is)
15:32:15 DigitalKiwi joins (~kiwi@2604:a880:400:d0::12fc:5001)
15:32:15 Raito_Bezarius joins (~Raito@wireguard/tunneler/raito-bezarius)
15:32:15 ncopa3 joins (~ncopa@gbr2-dev1.alpinelinux.org)
15:32:15 SrPx joins (sid108780@id-108780.uxbridge.irccloud.com)
15:32:15 kronicma1 joins (user76545@neotame.csclub.uwaterloo.ca)
15:32:15 truckasaurus joins (sid457088@id-457088.helmsley.irccloud.com)
15:32:15 agander_m joins (sid407952@id-407952.tinside.irccloud.com)
15:32:15 flukiluke joins (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962)
15:32:15 SanchayanMaity joins (sid478177@id-478177.hampstead.irccloud.com)
15:32:15 hays joins (rootvegeta@fsf/member/hays)
15:32:15 eruditass joins (uid248673@id-248673.uxbridge.irccloud.com)
15:32:15 craige[m] joins (~craigemcw@2001:470:69fc:105::35f1)
15:32:15 wysteriary[m] joins (~wysteriar@2001:470:69fc:105::a42e)
15:32:15 grabb0id[m] joins (~alangmatr@2001:470:69fc:105::b489)
15:32:15 tripa[m] joins (~tripamatr@2001:470:69fc:105::1:4f7e)
15:32:15 denbrahe[m] joins (~denbrahem@2001:470:69fc:105::19c0)
15:32:15 peddie joins (~peddie@2001:470:69fc:105::25d)
15:32:15 vaibhavsagar[m] joins (~vaibhavsa@2001:470:69fc:105::ffe)
15:32:15 Artem[m] joins (~artemtype@2001:470:69fc:105::75b)
15:32:15 Christoph[m] joins (~hpotsirhc@2001:470:69fc:105::2ff8)
15:32:15 zwro[m] joins (~zwromatri@2001:470:69fc:105::1d4)
15:32:15 SawyerBergeron[m joins (~sawyerber@2001:470:69fc:105::3036)
15:32:15 surgeon[m] joins (~surge9nma@2001:470:69fc:105::f585)
15:32:15 jmcantrell joins (~jmcantrel@user/jmcantrell)
15:32:15 yehoshuapw joins (~yehoshuap@2001:470:69fc:105::a5f)
15:32:15 yushyin joins (UhIHx5Z1ii@mail.karif.server-speed.net)
15:32:15 dunj3 joins (~dunj3@kingdread.de)
15:32:15 cpape joins (~user@2a01:4f9:c010:632d::1)
15:32:15 dixie joins (~dixie@real.wilbury.sk)
15:32:15 sphynx joins (~xnyhps@2a02:2770:3:0:216:3eff:fe67:3288)
15:32:15 janus joins (janus@anubis.0x90.dk)
15:32:15 phaazon joins (~phaazon@2001:41d0:a:fe76::1)
15:32:15 cross joins (~cross@spitfire.i.gajendra.net)
15:32:15 immae joins (~immae@2a01:4f8:141:53e7::)
15:32:15 tomjaguarpaw joins (~tom@li367-225.members.linode.com)
15:32:15 energizer joins (~energizer@user/energizer)
15:32:15 Adran joins (~adran@botters/adran)
15:32:15 bastelfreak joins (~bastelfre@basteles-bastelknecht.bastelfreak.org)
15:32:15 xnbya joins (~xnbya@2a01:4f8:c17:cbdd::1)
15:32:15 mikko joins (~mikko@2a02:7b40:d418:6a61::1)
15:32:15 codedmart joins (codedmart@2600:3c01::f03c:92ff:fefe:8511)
15:32:15 defanor joins (~defanor@tart.uberspace.net)
15:32:15 liskin joins (~liskin@xmonad/liskin)
15:32:15 cawfee joins (~root@2406:3003:2077:2758::babe)
15:32:15 earthy joins (~arthurvl@2001:984:275b:1:ba27:ebff:fea0:40b0)
15:32:15 welterde joins (welterde@thinkbase.srv.welterde.de)
15:32:15 dragestil joins (~znc@user/dragestil)
15:32:15 bbear joins (~znc@21212.s.t4vps.eu)
15:32:15 Ekho joins (~Ekho@user/ekho)
15:32:15 jakesyl_ joins (sid56879@id-56879.hampstead.irccloud.com)
15:32:15 philpax_ joins (sid516926@id-516926.lymington.irccloud.com)
15:32:15 PotatoGim joins (sid99505@id-99505.lymington.irccloud.com)
15:32:15 edmundnoble joins (sid229620@id-229620.helmsley.irccloud.com)
15:32:15 caasih joins (sid13241@id-13241.ilkley.irccloud.com)
15:32:15 lightandlight joins (sid135476@id-135476.helmsley.irccloud.com)
15:32:15 b20n joins (sid115913@id-115913.uxbridge.irccloud.com)
15:32:15 rtpg joins (sid443069@id-443069.ilkley.irccloud.com)
15:32:15 davetapley joins (sid666@id-666.uxbridge.irccloud.com)
15:32:15 marienz joins (~marienz@libera/staff/marienz)
15:32:15 glguy joins (x@libera/staff/glguy)
15:32:15 tnks joins (sid412124@id-412124.helmsley.irccloud.com)
15:32:15 NiKaN joins (sid385034@id-385034.helmsley.irccloud.com)
15:32:15 S11001001 joins (sid42510@id-42510.ilkley.irccloud.com)
15:32:15 Boarders_ joins (sid425905@id-425905.lymington.irccloud.com)
15:32:15 JSharp joins (sid4580@id-4580.lymington.irccloud.com)
15:32:15 ysh joins (sid6017@id-6017.ilkley.irccloud.com)
15:32:15 saolsen joins (sid26430@id-26430.lymington.irccloud.com)
15:32:15 tapas joins (sid467876@id-467876.ilkley.irccloud.com)
15:32:15 cbarrett joins (sid192934@id-192934.helmsley.irccloud.com)
15:32:15 enemeth79 joins (sid309041@id-309041.lymington.irccloud.com)
15:32:15 bjs joins (sid190364@user/bjs)
15:32:15 sclv joins (sid39734@haskell/developer/sclv)
15:32:15 mrianbloom joins (sid350277@id-350277.ilkley.irccloud.com)
15:32:15 dmj` joins (sid72307@id-72307.hampstead.irccloud.com)
15:32:15 acertain joins (sid470584@id-470584.hampstead.irccloud.com)
15:32:15 gaze___ joins (sid387101@id-387101.helmsley.irccloud.com)
15:32:15 V joins (~v@anomalous.eu)
15:32:15 SethTisue__ joins (sid14912@id-14912.ilkley.irccloud.com)
15:32:15 hongminhee joins (sid295@id-295.tinside.irccloud.com)
15:32:15 russruss joins (~russruss@my.russellmcc.com)
15:32:15 sm[i] joins (~user@plaintextaccounting/sm)
15:32:15 micro joins (~micro@user/micro)
15:32:15 MironZ joins (~MironZ@nat-infra.ehlab.uk)
15:32:15 gregberns__ joins (sid315709@id-315709.helmsley.irccloud.com)
15:32:15 teehemkay_ joins (sid14792@id-14792.lymington.irccloud.com)
15:32:15 whez joins (sid470288@id-470288.lymington.irccloud.com)
15:32:15 _0x47_ joins (sid508683@id-508683.tinside.irccloud.com)
15:32:15 iphy joins (sid67735@id-67735.lymington.irccloud.com)
15:32:15 TMA joins (tma@twin.jikos.cz)
15:32:15 TimWolla joins (~timwolla@2a01:4f8:150:6153:beef::6667)
15:32:15 ehamberg joins (sid18208@id-18208.hampstead.irccloud.com)
15:32:15 vjoki joins (~vjoki@2a00:d880:3:1::fea1:9ae)
15:32:15 jamestmartin joins (~james@jtmar.me)
15:32:15 dispater joins (~dispater@user/brprice)
15:32:15 integral joins (sid296274@user/integral)
15:32:15 gmc joins (sid58314@id-58314.ilkley.irccloud.com)
15:32:15 nrr__ joins (sid20938@id-20938.lymington.irccloud.com)
15:32:15 Arsen joins (arsen@managarm/dev/Arsen)
15:32:15 swistak joins (~swistak@185.21.216.141)
15:32:15 ts2 joins (~ts@46.101.20.9)
15:32:15 ystael joins (~ystael@user/ystael)
15:32:15 g joins (x@libera/staff/glguy)
15:32:15 derelict joins (derelict@user/derelict)
15:32:15 [exa] joins (exa@user/exa/x-3587197)
15:32:15 pie_ joins (~pie_bnc@user/pie/x-2818909)
15:32:15 aweinstock joins (~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com)
15:32:15 andjjj23 joins (~irc@107.170.228.47)
15:32:15 carter joins (sid14827@id-14827.helmsley.irccloud.com)
15:32:15 glowcoil joins (sid3405@id-3405.tinside.irccloud.com)
15:32:15 degraafk joins (sid71464@id-71464.lymington.irccloud.com)
15:32:15 Firedancer joins (sid336191@id-336191.hampstead.irccloud.com)
15:32:15 hughjfchen joins (~hughjfche@vmi556545.contaboserver.net)
15:32:15 robbert-vdh joins (~robbert@robbertvanderhelm.nl)
15:32:15 Ranhir joins (~Ranhir@157.97.53.139)
15:32:15 feetwind joins (~mike@user/feetwind)
15:32:15 tubogram4 joins (~tubogram@user/tubogram)
15:32:15 statusbot joins (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com)
15:32:15 Hafydd joins (~Hafydd@user/hafydd)
15:32:15 Axman6 joins (~Axman6@user/axman6)
15:32:15 puke joins (~puke@user/puke)
15:32:15 farn joins (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505)
15:32:15 aeka joins (~aeka@user/hiruji)
15:32:15 burakcank joins (~burakcank@has.arrived.and.is.ready-to.party)
15:32:15 enikar joins (~enikar@user/enikar)
15:32:15 noddy joins (~user@user/noddy)
15:32:15 tcard joins (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp)
15:32:15 hubvu joins (sid495858@user/hubvu)
15:32:15 nurupo joins (~nurupo.ga@user/nurupo)
15:32:15 stilgart joins (~Christoph@chezlefab.net)
15:32:15 dolio joins (~dolio@130.44.130.54)
15:32:15 danso joins (~danso@d67-193-121-2.home3.cgocable.net)
15:32:15 synthmeat joins (~synthmeat@user/synthmeat)
15:32:15 travv0 joins (sid293381@user/travv0)
15:32:15 Katarushisu joins (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net)
15:32:15 ridcully joins (~ridcully@p57b52a9a.dip0.t-ipconnect.de)
15:32:15 MasseR joins (~MasseR@51.15.143.128)
15:32:15 iteratee_ joins (~kyle@162.218.222.107)
15:32:15 jrm joins (~jrm@156.34.249.199)
15:32:15 ldlework joins (~hexeme@user/hexeme)
15:32:15 eco_ joins (~ubuntu@ec2-54-201-230-197.us-west-2.compute.amazonaws.com)
15:32:15 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
15:32:15 xdej joins (~xdej@quatramaran.salle-s.org)
15:32:15 w1gz joins (~do@159.89.11.133)
15:32:15 fjmorazan joins (~quassel@user/fjmorazan)
15:32:15 adamCS joins (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com)
15:32:15 In0perable joins (~PLAYER_1@fancydata.science)
15:32:15 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
15:32:15 berberman joins (~berberman@user/berberman)
15:32:15 dagit joins (~dagit@2001:558:6025:38:6476:a063:d05a:44da)
15:32:15 zero joins (~z@user/zero)
15:32:15 megaTherion joins (~therion@unix.io)
15:32:15 totte joins (~totte@h-82-196-112-155.A166.priv.bahnhof.se)
15:32:15 mstksg joins (~jle`@cpe-23-240-75-236.socal.res.rr.com)
15:32:15 raghavgururajan joins (ea769b8000@user/raghavgururajan)
15:32:15 Logio joins (em@kapsi.fi)
15:32:15 hexology joins (~hexology@user/hexology)
15:32:15 landonf joins (landonf@mac68k.info)
15:32:15 hugo joins (znc@verdigris.lysator.liu.se)
15:32:15 kristjansson joins (sid126207@id-126207.tinside.irccloud.com)
15:32:15 lally joins (sid388228@id-388228.uxbridge.irccloud.com)
15:32:15 Clint joins (~Clint@user/clint)
15:32:15 greyrat joins (~greyrat@ip202.ip-51-178-215.eu)
15:32:15 nisstyre joins (~wes@user/nisstyre)
15:32:15 opqdonut joins (opqdonut@pseudo.fixme.fi)
15:32:15 bsima1 joins (9d7e39c8ad@2604:bf00:561:2000::dd)
15:32:15 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
15:32:15 neverwas joins (jpneverwas@swissbox.unperson.link)
15:32:15 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
15:32:15 Techcable joins (~Techcable@168.235.93.147)
15:32:15 lagash joins (lagash@lagash.shelltalk.net)
15:32:15 obfusk joins (~quassel@a82-161-150-56.adsl.xs4all.nl)
15:32:15 johnw joins (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
15:32:15 Kaiepi joins (~Kaiepi@156.34.47.253)
15:32:15 mrmonday joins (~robert@what.i.hope.is.not.a.tabernaevagant.es)
15:32:15 aku joins (~aku@163.172.137.34)
15:32:15 TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker)
15:32:15 hrdl joins (~hrdl@mail.hrdl.eu)
15:32:15 euandreh joins (~euandreh@2804:14c:33:9fe5:58c5:6207:2988:1b06)
15:32:15 mrmr joins (~mrmr@user/mrmr)
15:32:15 terrorjack joins (~terrorjac@2a01:4f8:1c1e:509a::1)
15:32:15 perro_ joins (~perro@072-191-245-069.res.spectrum.com)
15:32:15 jinsun joins (~quassel@user/jinsun)
15:32:15 carbolymer joins (~carbolyme@dropacid.net)
15:32:15 theproffesor joins (~theproffe@user/theproffesor)
15:32:15 Inst joins (~delicacie@2601:6c4:4080:3f80:f131:ad94:e07f:dfdd)
15:32:15 zaquest joins (~notzaques@5.130.79.72)
15:32:15 vgtw joins (~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se)
15:32:15 zmt00 joins (~zmt00@user/zmt00)
15:32:15 awpr joins (uid446117@id-446117.lymington.irccloud.com)
15:32:15 img joins (~img@user/img)
15:32:15 tito joins (tito@tilde.team)
15:32:15 hueso joins (~root@user/hueso)
15:32:15 drewr joins (~drew@user/drewr)
15:32:15 tristanC joins (~tristanC@user/tristanc)
15:32:15 gentauro joins (~gentauro@user/gentauro)
15:32:15 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
15:32:15 ddb joins (~ddb@ipv6two.tilde.club)
15:32:15 mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
15:32:15 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
15:32:15 AlexNoo joins (~AlexNoo@94.233.240.16)
15:32:15 Alex_test joins (~al_test@94.233.240.16)
15:32:15 Erutuon joins (~Erutuon@user/erutuon)
15:32:15 remexre joins (~remexre@user/remexre)
15:32:15 td_ joins (~td@94.134.91.82)
15:32:15 jiribenes joins (~jiribenes@rosa.jiribenes.com)
15:32:15 yaroot joins (~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953)
15:32:15 d0ku joins (~d0ku@178.43.3.56.ipv4.supernova.orange.pl)
15:32:15 phma joins (phma@2001:5b0:215a:cac8:aefe:d82b:57fb:72c6)
15:32:15 coot joins (~coot@89-64-85-93.dynamic.chello.pl)
15:32:15 chele joins (~chele@user/chele)
15:32:15 retro_ joins (~retro@2e40edd9.skybroadband.com)
15:32:15 bliminse joins (~bliminse@host86-186-17-7.range86-186.btcentralplus.com)
15:32:15 biberu joins (~biberu@user/biberu)
15:32:15 emergence joins (~emergence@vm0.max-p.me)
15:32:15 sus joins (zero@user/zeromomentum)
15:32:15 Jing joins (~hedgehog@2604:a840:3::103c)
15:32:15 sim590 joins (~simon@modemcable090.207-203-24.mc.videotron.ca)
15:32:15 infinity0 joins (~infinity0@occupy.ecodis.net)
15:32:15 absence joins (torgeihe@hildring.pvv.ntnu.no)
15:32:15 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
15:32:15 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
15:32:15 cheater joins (~Username@user/cheater)
15:32:15 notzmv joins (~zmv@user/notzmv)
15:32:15 polyphem joins (~rod@2a02:810d:640:776c:e450:3ca3:b389:687a)
15:32:15 Vajb joins (~Vajb@2001:999:50:e6be:1e98:9376:d93e:4506)
15:32:15 sander joins (~sander@user/sander)
15:32:15 kuribas joins (~user@ptr-25vy0i91z2t2xltfc74.18120a2.ip6.access.telenet.be)
15:32:15 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
15:32:15 jumper149 joins (~jumper149@static.6.71.203.116.clients.your-server.de)
15:32:15 ouestbillie joins (~gallup@192-222-138-215.qc.cable.ebox.net)
15:32:15 abrantesasf joins (~abrantesa@187.36.170.211)
15:32:15 waleee joins (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4)
15:32:15 CiaoSen joins (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
15:32:15 mikoto-chan joins (~mikoto-ch@esm-84-240-99-143.netplaza.fi)
15:32:15 `2jt joins (~jtomas@153.red-83-53-252.dynamicip.rima-tde.net)
15:32:15 geekosaur joins (~geekosaur@xmonad/geekosaur)
15:32:15 xff0x joins (~xff0x@port-92-195-123-135.dynamic.as20676.net)
15:32:15 n3rdy1 joins (~n3rdy1@2600:1700:4570:3480::41)
15:32:15 xb0o2 joins (~xb0o2@user/xb0o2)
15:32:15 rond_42 joins (~rond_@2a01:115f:943:5e00:d97e:b793:ae8f:1ddd)
15:32:15 ProfSimm joins (~ProfSimm@87.227.196.109)
15:32:15 res0nat0r0 joins (~Fletch@dia.whatbox.ca)
15:32:15 SquidDev joins (~SquidDev@autoclave.squiddev.cc)
15:32:15 L29Ah joins (~L29Ah@wikipedia/L29Ah)
15:32:15 leah2 joins (~leah@vuxu.org)
15:32:15 tolt joins (~weechat-h@li219-154.members.linode.com)
15:32:15 sprout joins (~quassel@2a02:a467:ccd6:1:48c8:920f:83dd:ae34)
15:32:15 rembo10 joins (~rembo10@remulis.com)
15:32:15 meinside joins (uid24933@id-24933.helmsley.irccloud.com)
15:32:15 lechner joins (~lechner@debian/lechner)
15:32:15 kjak joins (~kjak@pool-108-45-56-21.washdc.fios.verizon.net)
15:32:15 Nahra joins (~user@static.161.95.99.88.clients.your-server.de)
15:32:15 ph88 joins (~ph88@2a02:8109:9e00:71d0::7e04)
15:32:15 InternetManaging joins (~imjmatrix@2001:470:69fc:105::1:2ea5)
15:32:15 benjamin[m]1234 joins (~benjaminm@2001:470:69fc:105::1:3f2f)
15:32:15 xbreu joins (~xbreu@2001:470:69fc:105::1:5061)
15:32:15 unyu joins (~pyon@user/pyon)
15:32:15 doyougnu joins (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net)
15:32:15 bsima joins (~bsima@2604:a880:400:d0::19f1:7001)
15:32:15 vysn joins (~vysn@user/vysn)
15:32:15 _xor joins (~xor@dsl-50-5-233-169.fuse.net)
15:32:15 pooryorick joins (~pooryoric@87-119-174-173.tll.elisa.ee)
15:32:15 kmein joins (~weechat@user/kmein)
15:32:15 TonyStone joins (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
15:32:15 qwedfg joins (~qwedfg@user/qwedfg)
15:32:15 neurocyte0 joins (~neurocyte@user/neurocyte)
15:32:15 tomku joins (~tomku@user/tomku)
15:32:15 mbuf joins (~Shakthi@122.174.247.3)
15:32:15 coolnickname joins (uid531864@user/coolnickname)
15:32:15 kaph joins (~kaph@net-2-38-107-19.cust.vodafonedsl.it)
15:32:15 lortabac joins (~lortabac@2a01:e0a:541:b8f0:c365:2459:70e0:4fac)
15:32:15 machinedgod joins (~machinedg@24.105.81.50)
15:32:15 xkuru joins (~xkuru@user/xkuru)
15:32:15 matijja joins (~matijja@193.77.181.201)
15:32:15 n8chan joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
15:32:15 Cale joins (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com)
15:32:15 drdo joins (~drdo@144.172.69.89)
15:32:15 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
15:32:15 shailangsa_ joins (~shailangs@host86-162-150-202.range86-162.btcentralplus.com)
15:32:15 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
15:32:15 duckonomy joins (~duckonomy@177.ip-144-217-84.net)
15:32:15 ubert joins (~Thunderbi@2a02:8109:9880:303c:2a00:eeaf:f8c:1b54)
15:32:15 jgeerds joins (~jgeerds@55d4ac73.access.ecotel.net)
15:32:15 burnsidesLlama joins (~burnsides@dhcp168-021.wadham.ox.ac.uk)
15:32:15 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
15:32:15 husixu joins (~husixu@137.132.119.2)
15:32:15 jlamothe joins (~jlamothe@198.251.61.229)
15:32:15 Sgeo joins (~Sgeo@user/sgeo)
15:32:15 benin joins (~benin@183.82.176.241)
15:32:15 ChanServ joins (ChanServ@services.libera.chat)
15:32:15 mercury.libera.chat sets mode +o ChanServ
15:32:17 SridharRatnakuma joins (~sridmatri@2001:470:69fc:105::1c2)
15:32:17 ormaaj joins (~ormaaj@user/ormaaj)
15:32:17 pfurla-matrix joins (~pedrofurl@2001:470:69fc:105::1:51d7)
15:32:17 Deide joins (~deide@user/deide)
15:32:17 amesgen[m] joins (~amesgenm]@2001:470:69fc:105::82b)
15:32:17 unclechu joins (~unclechu@2001:470:69fc:105::354)
15:32:17 Tisoxin joins (~ikosit@user/ikosit)
15:32:17 bitonic joins (~bitonic@2001:470:69fc:105::1812)
15:32:17 Nate[m]1 joins (~m52957mat@2001:470:69fc:105::1:591a)
15:32:17 cherryblossom[m] joins (~cherryblo@2001:470:69fc:105::b789)
15:32:17 james[m]123 joins (~jamesnina@2001:470:69fc:105::1:4203)
15:32:17 Michal[m] joins (~oomiguelm@2001:470:69fc:105::1:5ab0)
15:32:17 wz1000 joins (~zubin@static.11.113.47.78.clients.your-server.de)
15:32:17 PigDude joins (~PigDude@159.203.16.199)
15:32:17 Typedfern joins (~Typedfern@75.red-88-22-25.staticip.rima-tde.net)
15:32:17 niko joins (~niko@libera/staff/niko)
15:32:17 wolfshappen joins (~waff@irc.furworks.de)
15:32:17 ProofTechnique joins (sid79547@id-79547.ilkley.irccloud.com)
15:32:17 forell joins (~forell@user/forell)
15:32:17 cods joins (~fred@82-65-232-44.subs.proxad.net)
15:32:17 son0p joins (~ff@181.136.122.143)
15:32:17 rookie101 joins (~rookie@165.232.121.13)
15:32:17 finsternis joins (~X@23.226.237.192)
15:32:17 samebchase joins (~samebchas@51.15.68.182)
15:32:17 enyc joins (~enyc@user/enyc)
15:32:17 peutri joins (~peutri@ns317027.ip-94-23-46.eu)
15:32:17 dfordvm joins (~dfordivam@tk2-219-19469.vs.sakura.ne.jp)
15:32:17 bens joins (~bens@www.typius.com)
15:32:17 mjacob_ joins (~mjacob@adrastea.uberspace.de)
15:32:17 ephemient joins (uid407513@id-407513.lymington.irccloud.com)
15:32:17 auri joins (~quassel@fsf/member/auri)
15:32:17 chronon joins (~chronon@user/chronon)
15:32:17 Moyst_ joins (~moyst@user/moyst)
15:32:17 dsal joins (sid13060@id-13060.lymington.irccloud.com)
15:32:17 jmct_ joins (sid160793@id-160793.tinside.irccloud.com)
15:32:17 astra joins (sid289983@user/amish)
15:32:17 amir joins (sid22336@user/amir)
15:32:17 hamishmack_ joins (sid389057@id-389057.hampstead.irccloud.com)
15:32:17 parseval joins (sid239098@id-239098.helmsley.irccloud.com)
15:32:17 bsdbandit joins (~bwell@users.757.org)
15:32:17 mcfrdy joins (~mcfrdy@user/mcfrdy)
15:32:17 dexterfoo joins (dexter@2a01:7e00::f03c:91ff:fe86:59ec)
15:32:17 ringo__ joins (~ringo@157.230.117.128)
15:32:17 oxytocat joins (~alloca@user/suppi)
15:32:17 kawzeg joins (kawzeg@2a01:7e01::f03c:92ff:fee2:ec34)
15:32:17 hexagoxel joins (~hexagoxel@2a01:4f8:c0c:e::2)
15:32:17 fiddlerwoaroof joins (~fiddlerwo@user/fiddlerwoaroof)
15:32:17 nshepperd2 joins (~nshepperd@li364-218.members.linode.com)
15:32:17 deni joins (~deni@user/deni)
15:32:17 krjst joins (~krjst@2604:a880:800:c1::16b:8001)
15:32:17 jocke-l joins (jocke-l@a.x0.is)
15:32:17 thonkpod joins (~thonkpod@user/thonkpod)
15:32:18 × enyc quits (~enyc@user/enyc) (Max SendQ exceeded)
15:32:18 × wolfshappen quits (~waff@irc.furworks.de) (Max SendQ exceeded)
15:32:18 × ormaaj quits (~ormaaj@user/ormaaj) (Max SendQ exceeded)
15:32:18 nhatanh02 joins (~satori@123.24.172.30)
15:32:27 max22- joins (~maxime@2a01cb088335980086c6bc2422140675.ipv6.abo.wanadoo.fr)
15:32:27 the_last_immorta joins (~thelastim@2001:470:69fc:105::1:4d57)
15:32:27 octeep[m] joins (~octeepoct@2001:470:69fc:105::1:3dbf)
15:32:27 nomeata joins (~nomeata@2001:470:69fc:105::1:5ed4)
15:32:27 fsckskye[m] joins (~kmatrixth@2001:470:69fc:105::1:3b2f)
15:32:27 fcortesi joins (~fcortesi@2001:470:69fc:105::f3a9)
15:32:27 DemiMarieObenour joins (~alwayscur@2001:470:69fc:105::4886)
15:32:27 jneira[m] joins (~jneiramat@2001:470:69fc:105::d729)
15:32:27 marinelli[m] joins (~marinelli@2001:470:69fc:105::2d8)
15:32:27 maralorn joins (~maralorn@2001:470:69fc:105::251)
15:32:27 Topik[m] joins (~topikmatr@2001:470:69fc:105::a082)
15:32:27 Arathorn joins (~arathorn@2001:470:69fc:105::1f)
15:32:27 fgaz joins (~fgaz@2001:470:69fc:105::842)
15:32:27 sofviic[m] joins (~sofviicma@2001:470:69fc:105::1:51fd)
15:32:27 afotgkmnzj7asv3r joins (~afotgkmnz@2001:470:69fc:105::c24b)
15:32:27 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
15:32:27 srk joins (~sorki@user/srk)
15:32:27 haasn joins (~nand@haasn.dev)
15:32:27 bbhoss joins (sid18216@id-18216.tinside.irccloud.com)
15:32:27 bw joins (sid2730@user/betawaffle)
15:32:27 scav joins (sid309693@id-309693.helmsley.irccloud.com)
15:32:27 feliix42 joins (~felix@gibbs.uberspace.de)
15:32:27 cln joins (sid336875@id-336875.ilkley.irccloud.com)
15:32:27 bgamari_ joins (~bgamari@2001:470:e438::1)
15:32:27 ishutin joins (~ishutin@92-249-182-7.pool.digikabel.hu)
15:32:27 slowtyper joins (~slowtyper@user/slowtyper)
15:32:27 wrengr joins (~wrengr@150.12.83.34.bc.googleusercontent.com)
15:32:27 averell joins (~averell@user/averell)
15:32:27 mrus joins (~mrus@2001:19f0:5:1535:5400:3ff:fe7d:10ae)
15:32:27 dwt_ joins (~dwt_@c-98-198-103-176.hsd1.tx.comcast.net)
15:32:27 Ferdirand joins (~somebody@2001:4c78:2012:5000::2)
15:32:27 dfg joins (dfg@user/dfg)
15:32:27 Unhammer joins (~Unhammer@user/unhammer)
15:32:27 relrod joins (~relrod@redhat/ansible.staff.relrod)
15:32:27 platz_ joins (~platz@40.122.118.113)
15:32:27 mht-wtf joins (~mht@2a03:b0c0:3:e0::1e2:c001)
15:32:27 kawpuh joins (~kawpuh@66.42.81.80)
15:32:27 tdammers joins (~tdammers@77.109.72.177.res.static.edpnet.net)
15:32:27 glider joins (~glider@user/glider)
15:32:27 quintasan joins (~quassel@quintasan.pl)
15:32:27 orcus joins (~orcus@user/brprice)
15:32:27 tinwood joins (~tinwood@canonical/tinwood)
15:32:27 Profpatsch joins (~Profpatsc@static.88-198-193-255.clients.your-server.de)
15:32:27 Patternmaster joins (~georg@li1192-118.members.linode.com)
15:32:27 haskl joins (~haskl@user/haskl)
15:32:27 teddyc joins (theodorc@cassarossa.samfundet.no)
15:32:27 dyniec joins (~dyniec@mail.dybiec.info)
15:32:27 anderson joins (~ande@user/anderson)
15:32:27 hiredman joins (~hiredman@frontier1.downey.family)
15:32:27 piele joins (~piele@tbonesteak.creativeserver.net)
15:32:27 dminuoso joins (~dminuoso@user/dminuoso)
15:32:27 OscarH_ joins (~OscarH@90.201.86.195)
15:32:27 arkeet joins (~arkeet@moriya.ca)
15:32:27 × siraben quits (~siraben@user/siraben) (Max SendQ exceeded)
15:32:27 × jmcantrell quits (~jmcantrel@user/jmcantrell) (Max SendQ exceeded)
15:32:28 × surgeon[m] quits (~surge9nma@2001:470:69fc:105::f585) (Max SendQ exceeded)
15:32:33 × schuelermine[m] quits (~schuelerm@user/schuelermine) (Ping timeout: 240 seconds)
15:32:33 × aveltras[m] quits (~aveltrasm@2001:470:69fc:105::3ef9) (Ping timeout: 240 seconds)
15:32:37 × benjamin[m]1234 quits (~benjaminm@2001:470:69fc:105::1:3f2f) (Ping timeout: 240 seconds)
15:32:42 wyrd joins (~wyrd@gateway/tor-sasl/wyrd)
15:32:42 jpds joins (~jpds@gateway/tor-sasl/jpds)
15:32:42 gehmehgeh joins (~user@user/gehmehgeh)
15:32:42 alMalsamo joins (~alMalsamo@gateway/tor-sasl/almalsamo)
15:32:42 califax joins (~califax@user/califx)
15:32:42 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
15:32:42 stiell joins (~stiell@gateway/tor-sasl/stiell)
15:32:42 azimut joins (~azimut@gateway/tor-sasl/azimut)
15:32:42 chexum joins (~quassel@gateway/tor-sasl/chexum)
15:32:42 ChaiTRex joins (~ChaiTRex@user/chaitrex)
15:32:43 × Artem[m] quits (~artemtype@2001:470:69fc:105::75b) (Ping timeout: 250 seconds)
15:32:43 × zwro[m] quits (~zwromatri@2001:470:69fc:105::1d4) (Ping timeout: 250 seconds)
15:32:43 × vaibhavsagar[m] quits (~vaibhavsa@2001:470:69fc:105::ffe) (Ping timeout: 250 seconds)
15:32:43 × wysteriary[m] quits (~wysteriar@2001:470:69fc:105::a42e) (Ping timeout: 250 seconds)
15:32:47 dsrt^ joins (~dsrt@207.5.21.20)
15:32:49 eoiles[m] joins (~eoilesmat@2001:470:69fc:105::1:6164)
15:32:49 hughjfchen[m] joins (~hughjfche@2001:470:69fc:105::c29d)
15:32:49 soft joins (~soft@2001:470:69fc:105::c75)
15:32:49 bb010g joins (~bb010g@2001:470:69fc:105::9a5)
15:32:49 jchia[m] joins (~jchiamatr@2001:470:69fc:105::c50b)
15:32:49 jinsun_ joins (~jinsun@user/jinsun)
15:32:49 ManofLetters[m] joins (~manoflett@2001:470:69fc:105::3be)
15:32:49 alex[m] joins (~alexchete@2001:470:69fc:105::1:1001)
15:32:49 Magnus[m] joins (~magthetch@2001:470:69fc:105::d1a7)
15:32:49 ongy[m] joins (~ongymatri@2001:470:69fc:105::5018)
15:32:49 unrooted joins (~unrooted@2001:470:69fc:105::a4a)
15:32:49 hsiktas[m] joins (~hsiktasma@2001:470:69fc:105::30d4)
15:32:49 simmsb joins (~simmsb@2001:470:69fc:105::1:55c3)
15:32:49 Orbstheorem joins (~orbstheor@2001:470:69fc:105::a56)
15:32:49 jkachmar joins (~jkachmar@2001:470:69fc:105::c72d)
15:32:49 justIrresolute joins (~justache@user/justache)
15:32:49 esoca123 joins (uid534098@id-534098.tinside.irccloud.com)
15:32:49 Megant joins (megant@user/megant)
15:32:49 sweater joins (~sweater@206.81.18.26)
15:32:49 ft joins (~ft@shell.chaostreff-dortmund.de)
15:32:49 ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
15:32:49 a1paca joins (~a1paca@user/a1paca)
15:32:49 obviyus joins (sid415299@user/obviyus)
15:32:49 gonz_____ joins (sid304396@id-304396.lymington.irccloud.com)
15:32:49 mustafa joins (sid502723@rockylinux/releng/mustafa)
15:32:49 Square joins (~a@user/square)
15:32:49 fluxit joins (~fluxit@techsmix.net)
15:32:49 davean joins (~davean@davean.sciesnet.net)
15:32:49 tritlo joins (sid58727@user/tritlo)
15:32:49 NemesisD joins (sid24071@id-24071.lymington.irccloud.com)
15:32:49 abrar_ joins (~abrar@static-108-2-152-54.phlapa.fios.verizon.net)
15:32:49 pippijn joins (~pippijn@ra.xinutec.org)
15:32:49 shane joins (~shane@ana.rch.ist)
15:32:49 koala_man joins (~vidar@157.146.251.23.bc.googleusercontent.com)
15:32:49 edwardk joins (sid47016@haskell/developer/edwardk)
15:32:49 idnar joins (sid12240@debian/mithrandi)
15:32:49 lexi-lambda joins (sid92601@id-92601.hampstead.irccloud.com)
15:32:49 sa1_ joins (sid7690@id-7690.ilkley.irccloud.com)
15:32:49 typetetris joins (sid275937@id-275937.tinside.irccloud.com)
15:32:49 rubin55 joins (sid175221@id-175221.hampstead.irccloud.com)
15:32:49 jackdk joins (sid373013@cssa/jackdk)
15:32:49 gnyeki joins (~gnyeki@user/gnyeki)
15:32:49 dkeohane2 joins (~dkeohane@ec2-18-189-29-140.us-east-2.compute.amazonaws.com)
15:32:49 supersven joins (sid501114@id-501114.ilkley.irccloud.com)
15:32:49 christiaanb joins (sid84827@id-84827.lymington.irccloud.com)
15:32:49 beaky joins (~beaky@2a03:b0c0:0:1010::1e:a001)
15:32:49 spider__ joins (~spider@vps-951ce37a.vps.ovh.ca)
15:32:49 c_wraith joins (~c_wraith@adjoint.us)
15:32:49 drlkf joins (~drlkf@2001:41d0:a:62bb::1)
15:32:49 xerox joins (~edi@user/edi)
15:32:49 bwe joins (~bwe@2a01:4f8:1c1c:4878::2)
15:32:51 × hsiktas[m] quits (~hsiktasma@2001:470:69fc:105::30d4) (Max SendQ exceeded)
15:32:51 × jinsun_ quits (~jinsun@user/jinsun) (Max SendQ exceeded)
15:32:51 × justIrresolute quits (~justache@user/justache) (Max SendQ exceeded)
15:32:51 × soft quits (~soft@2001:470:69fc:105::c75) (Ping timeout: 245 seconds)
15:32:51 × bb010g quits (~bb010g@2001:470:69fc:105::9a5) (Ping timeout: 245 seconds)
15:32:51 × alex[m] quits (~alexchete@2001:470:69fc:105::1:1001) (Ping timeout: 245 seconds)
15:32:51 × unrooted quits (~unrooted@2001:470:69fc:105::a4a) (Ping timeout: 245 seconds)
15:32:57 × oak- quits (~oakuniver@2001:470:69fc:105::fcd) (Ping timeout: 250 seconds)
15:32:57 × fendor[m] quits (~fendormat@2001:470:69fc:105::fcbd) (Ping timeout: 250 seconds)
15:32:57 × alexfmpe[m] quits (~alexfmpem@2001:470:69fc:105::38ba) (Ping timeout: 250 seconds)
15:32:57 × carmysilna quits (~brightly-@2001:470:69fc:105::2190) (Ping timeout: 250 seconds)
15:32:57 × boxscape quits (~boxscape@user/boxscape) (Ping timeout: 250 seconds)
15:32:57 × rednaZ[m] quits (~r3dnazmat@2001:470:69fc:105::ba70) (Ping timeout: 250 seconds)
15:33:01 × xbreu quits (~xbreu@2001:470:69fc:105::1:5061) (Ping timeout: 240 seconds)
15:33:02 × Ollie[m] quits (~ollieocha@2001:470:69fc:105::41a5) (Ping timeout: 240 seconds)
15:33:02 × quantum quits (~quantum@user/quantum/x-8556232) (Ping timeout: 240 seconds)
15:33:02 × Las[m] quits (~lasmatrix@2001:470:69fc:105::74e) (Ping timeout: 240 seconds)
15:33:02 × prrxddq[m] quits (~prrxddqma@2001:470:69fc:105::1:4f72) (Ping timeout: 240 seconds)
15:33:05 × the_last_immorta quits (~thelastim@2001:470:69fc:105::1:4d57) (Ping timeout: 252 seconds)
15:33:05 × nomeata quits (~nomeata@2001:470:69fc:105::1:5ed4) (Ping timeout: 252 seconds)
15:33:05 × fcortesi quits (~fcortesi@2001:470:69fc:105::f3a9) (Ping timeout: 252 seconds)
15:33:05 × DemiMarieObenour quits (~alwayscur@2001:470:69fc:105::4886) (Ping timeout: 252 seconds)
15:33:05 codygman[m] joins (~codygman@2001:470:69fc:105::b4ba)
15:33:05 zfnmxt joins (~zfnmxtzfn@2001:470:69fc:105::2b32)
15:33:05 kalxd[m] joins (~kalxdmatr@2001:470:69fc:105::1:576e)
15:33:05 aidy joins (~aidy@2001:470:69fc:105::c7b4)
15:33:05 thomasjm[m] joins (~thomasjmm@2001:470:69fc:105::c6d9)
15:33:05 maerwald[m] joins (~maerwaldm@user/maerwald)
15:33:05 moats joins (~oats@user/oats)
15:33:05 juhp[m] joins (~juhpmatri@2001:470:69fc:105::6e9)
15:33:05 jophish joins (~jophish@2001:470:69fc:105::670)
15:33:05 ericson2314 joins (~ericson23@2001:470:69fc:105::70c)
15:33:05 puffnfresh[m] joins (~puffnfres@2001:470:69fc:105::1:22da)
15:33:05 kadoban joins (~kadoban@user/kadoban)
15:33:05 jesser[m] joins (~jessermat@2001:470:69fc:105::d5ae)
15:33:05 IgnatInsarov[m] joins (~kindaroma@2001:470:69fc:105::f5d9)
15:33:05 RosarioPulella[m joins (~rosariopu@2001:470:69fc:105::a57)
15:33:05 justosophy[m] joins (~justosoph@2001:470:69fc:105::572f)
15:33:05 xddq[m] joins (~xddqmatri@2001:470:69fc:105::bfd8)
15:33:05 int-e joins (~noone@int-e.eu)
15:33:05 Goodbye_Vincent joins (cyvahl@freakshells.net)
15:33:05 acidsys joins (~LSD@2.lsd.systems)
15:33:05 Taneb joins (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0)
15:33:05 pieguy12- joins (~pieguy128@bras-base-mtrlpq5031w-grc-48-67-70-102-17.dsl.bell.ca)
15:33:05 Unode joins (~Unode@194.94.44.220)
15:33:05 troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua)
15:33:05 jzsinatra joins (~jzsinatra@88-114-238-31.elisa-laajakaista.fi)
15:33:05 samhh joins (7569f027cf@2604:bf00:561:2000::e4)
15:33:05 thebnq joins (~bnq@herrokitty.com)
15:33:05 Noinia joins (~Frank@77-162-168-71.fixed.kpn.net)
15:33:05 gawen_ joins (~gawen@user/gawen)
15:33:05 erisco joins (~erisco@d24-57-249-233.home.cgocable.net)
15:33:05 amk joins (~amk@109.255.169.126)
15:33:05 mrkajetanp joins (~mrkajetan@88.98.245.28)
15:33:05 Putonlalla joins (~sapekiis@it-cyan.it.jyu.fi)
15:33:05 Ankhers joins (e99e97ef8e@2604:bf00:561:2000::2a2)
15:33:05 juri_ joins (~juri@178.63.35.222)
15:33:05 Flonk joins (~Flonk@vps-zap441517-1.zap-srv.com)
15:33:05 urdh joins (~urdh@user/urdh)
15:33:05 m4lvin joins (~m4lvin@w4eg.de)
15:33:05 jassob joins (~jassob@h-155-4-71-72.A785.priv.bahnhof.se)
15:33:05 Vq joins (~vq@90-227-195-41-no77.tbcn.telia.com)
15:33:05 acro joins (~acro@user/acro)
15:33:05 catern joins (~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407)
15:33:05 xacktm joins (xacktm@user/xacktm)
15:33:05 LambdaDuck joins (~anka@ksit.fixme.fi)
15:33:05 evanrelf joins (3addc196af@2604:bf00:561:2000::f0)
15:33:05 davl joins (~davl@207.154.228.18)
15:33:05 tomsmeding joins (~tomsmedin@tomsmeding.com)
15:33:05 m5zs7k joins (aquares@web10.mydevil.net)
15:33:05 xstill- joins (xstill@fimu/xstill)
15:33:05 lyxia joins (~lyxia@poisson.chat)
15:33:05 Athas joins (athas@sigkill.dk)
15:33:05 SIben joins (~SIben@ns3106586.ip-5-135-191.eu)
15:33:05 gabiruh joins (~gabiruh@vps19177.publiccloud.com.br)
15:33:05 ggVGc joins (~ggVGc@a.lowtech.earth)
15:33:05 ptrcmd joins (~ptrcmd@user/ptrcmd)
15:33:05 bonz060 joins (~quassel@2001:bc8:47a4:a23::1)
15:33:05 Xe joins (~cadey@tailscale/xe)
15:33:05 dpratt__ joins (sid193493@id-193493.helmsley.irccloud.com)
15:33:05 conjunctive joins (sid433686@id-433686.helmsley.irccloud.com)
15:33:05 Adeon joins (sid418992@id-418992.lymington.irccloud.com)
15:33:05 rune joins (sid21167@id-21167.ilkley.irccloud.com)
15:33:05 grfn joins (sid449115@id-449115.helmsley.irccloud.com)
15:33:05 smorgasbord joins (buggy@user/smorgasbord)
15:33:05 vito joins (sid1962@user/vito)
15:33:05 pierrot joins (~pi@user/pierrot)
15:33:05 Jon joins (jon@dow.land)
15:33:05 Hobbyboy joins (Hobbyboy@hobbyboy.co.uk)
15:33:05 × Arathorn quits (~arathorn@2001:470:69fc:105::1f) (Ping timeout: 252 seconds)
15:33:05 × Topik[m] quits (~topikmatr@2001:470:69fc:105::a082) (Ping timeout: 252 seconds)
15:33:07 × kadoban quits (~kadoban@user/kadoban) (Max SendQ exceeded)
15:33:07 × ericson2314 quits (~ericson23@2001:470:69fc:105::70c) (Ping timeout: 260 seconds)
15:33:07 × jophish quits (~jophish@2001:470:69fc:105::670) (Ping timeout: 260 seconds)
15:33:07 × RosarioPulella[m quits (~rosariopu@2001:470:69fc:105::a57) (Ping timeout: 260 seconds)
15:33:09 × yehoshuapw quits (~yehoshuap@2001:470:69fc:105::a5f) (Ping timeout: 250 seconds)
15:33:09 × SawyerBergeron[m quits (~sawyerber@2001:470:69fc:105::3036) (Ping timeout: 250 seconds)
15:33:10 × tripa[m] quits (~tripamatr@2001:470:69fc:105::1:4f7e) (Ping timeout: 250 seconds)
15:33:10 × grabb0id[m] quits (~alangmatr@2001:470:69fc:105::b489) (Ping timeout: 250 seconds)
15:33:10 enyc joins (~enyc@user/enyc)
15:33:15 × SridharRatnakuma quits (~sridmatri@2001:470:69fc:105::1c2) (Ping timeout: 268 seconds)
15:33:15 × Deide quits (~deide@user/deide) (Ping timeout: 268 seconds)
15:33:15 × amesgen[m] quits (~amesgenm]@2001:470:69fc:105::82b) (Ping timeout: 268 seconds)
15:33:15 × Tisoxin quits (~ikosit@user/ikosit) (Ping timeout: 268 seconds)
15:33:15 wolfshappen joins (~waff@irc.furworks.de)
15:33:15 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
15:33:15 mniip joins (mniip@libera/staff/mniip)
15:33:15 yahb joins (xsbot@user/mniip/bot/yahb)
15:33:15 shriekingnoise joins (~shrieking@186.137.144.80)
15:33:15 mmhat joins (~mmh@55d49507.access.ecotel.net)
15:33:15 __monty__ joins (~toonn@user/toonn)
15:33:15 mcglk joins (~mcglk@131.191.49.120)
15:33:15 monochrom joins (trebla@216.138.220.146)
15:33:15 joo-_ joins (~joo-_@fsf/member/joo--)
15:33:15 motherfsck joins (~motherfsc@user/motherfsck)
15:33:15 AlexZenon joins (~alzenon@94.233.240.16)
15:33:15 Midjak joins (~Midjak@may53-1-78-226-116-92.fbx.proxad.net)
15:33:15 juhp joins (~juhp@128.106.188.82)
15:33:15 m1dnight joins (~christoph@christophe.dev)
15:33:15 cosimone joins (~user@93-47-228-11.ip115.fastwebnet.it)
15:33:15 fryguybob joins (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com)
15:33:15 dextaa joins (~DV@user/dextaa)
15:33:15 xlei joins (~akans@pool-68-129-84-118.nycmny.fios.verizon.net)
15:33:15 eL_Bart0 joins (eL_Bart0@dietunichtguten.org)
15:33:15 jespada joins (~jespada@87.74.32.18)
15:33:15 xsperry joins (~xs@user/xsperry)
15:33:15 kritzefitz joins (~kritzefit@debian/kritzefitz)
15:33:15 bollu joins (~bollu@159.65.151.13)
15:33:15 canta joins (~canta@user/canta)
15:33:15 sabx joins (~sabbas@user/sabbas)
15:33:15 foul_owl joins (~kerry@94.140.8.107)
15:33:15 nhs joins (~nhs@136.49.226.20)
15:33:15 mmalter joins (~mmalter@88.126.10.237)
15:33:15 koolazer joins (~koo@user/koolazer)
15:33:15 jjhoo joins (~jahakala@user/jjhoo)
15:33:15 superbil joins (~superbil@1-34-176-171.hinet-ip.hinet.net)
15:33:15 mjrosenb joins (~mjrosenb@pool-108-54-97-96.nycmny.fios.verizon.net)
15:33:15 oo_migue1 joins (~pi@77.252.47.226)
15:33:15 df joins (~ben@justworks.xyz)
15:33:15 lambdabot joins (~lambdabot@haskell/bot/lambdabot)
15:33:15 exarkun joins (~exarkun@user/exarkun)
15:33:15 ralu joins (~ralu@static.211.245.203.116.clients.your-server.de)
15:33:15 tv joins (~tv@user/tv)
15:33:15 maerwald joins (~maerwald@user/maerwald)
15:33:15 Maxdamantus joins (~Maxdamant@user/maxdamantus)
15:33:15 JimL joins (~quassel@89-162-2-132.fiber.signal.no)
15:33:15 acowley joins (~acowley@c-68-83-22-43.hsd1.nj.comcast.net)
15:33:15 hgolden joins (~hgolden2@cpe-172-114-81-123.socal.res.rr.com)
15:33:15 jeffz` joins (~user@lambda.xen.prgmr.com)
15:33:15 remedan_ joins (~remedan@octo.cafe)
15:33:15 SoF joins (~skius@user/skius)
15:33:15 hltk joins (~hltk@hltk.fi)
15:33:15 myme joins (~myme@40.51-175-185.customer.lyse.net)
15:33:15 nek0 joins (~nek0@nek0.eu)
15:33:15 joeyh_ joins (~joeyh@kitenet.net)
15:33:15 lambdap joins (~lambdap@static.167.190.119.168.clients.your-server.de)
15:33:15 drewolson joins (~drewolson@user/drewolson)
15:33:15 caubert_ joins (~caubert@136.244.111.235)
15:33:15 Brandon_1X joins (~brandon@178-79-138-117.ip.linodeusercontent.com)
15:33:15 barrucadu joins (~barrucadu@carcosa.barrucadu.co.uk)
15:33:15 siers joins (~ij@user/ij)
15:33:15 heath joins (~heath@user/heath)
15:33:15 shanemikel joins (~shanemike@desk.roadwar.net)
15:33:15 Teacup joins (~teacup@user/teacup)
15:33:15 madnight_ joins (~madnight@static.59.103.201.195.clients.your-server.de)
15:33:15 mmaruseacph2 joins (~mihai@198.199.100.72)
15:33:15 bcoppens joins (~bartcopp@vpn2.bartcoppens.be)
15:33:15 spoonm joins (spoonm@inaba.spoonm.org)
15:33:15 Ram-Z joins (~Ram-Z@li1814-254.members.linode.com)
15:33:15 sajith joins (~sajith@user/sajith)
15:33:15 meejah joins (~meejah@rutas.meejah.ca)
15:33:16 × Nate[m]1 quits (~m52957mat@2001:470:69fc:105::1:591a) (Ping timeout: 268 seconds)
15:33:16 × wolfshappen quits (~waff@irc.furworks.de) (Max SendQ exceeded)
15:33:16 × SoF quits (~skius@user/skius) (Max SendQ exceeded)
15:33:16 × eoiles[m] quits (~eoilesmat@2001:470:69fc:105::1:6164) (Ping timeout: 245 seconds)
15:33:16 × hughjfchen[m] quits (~hughjfche@2001:470:69fc:105::c29d) (Ping timeout: 245 seconds)
15:33:16 × jchia[m] quits (~jchiamatr@2001:470:69fc:105::c50b) (Ping timeout: 245 seconds)
15:33:16 × ManofLetters[m] quits (~manoflett@2001:470:69fc:105::3be) (Ping timeout: 245 seconds)
15:33:16 × ongy[m] quits (~ongymatri@2001:470:69fc:105::5018) (Ping timeout: 245 seconds)
15:33:17 × bitonic quits (~bitonic@2001:470:69fc:105::1812) (Max SendQ exceeded)
15:33:22 wolfshappen joins (~waff@irc.furworks.de)
15:33:23 × reza[m] quits (~rezaphone@2001:470:69fc:105::3eda) (Ping timeout: 250 seconds)
15:33:23 × Heffalump[m] quits (~hsenagmat@2001:470:69fc:105::e11) (Ping timeout: 250 seconds)
15:33:23 × finalti[m] quits (~finaltima@2001:470:69fc:105::d909) (Ping timeout: 250 seconds)
15:33:23 × cdsmith quits (~cdsmithma@2001:470:69fc:105::284) (Ping timeout: 250 seconds)
15:33:25 × AlexZenon quits (~alzenon@94.233.240.16) (Ping timeout: 256 seconds)
15:33:25 × InternetManaging quits (~imjmatrix@2001:470:69fc:105::1:2ea5) (Ping timeout: 240 seconds)
15:33:25 × acowley quits (~acowley@c-68-83-22-43.hsd1.nj.comcast.net) (Ping timeout: 256 seconds)
15:33:32 × sm1 quits (~sm@plaintextaccounting/sm) (Ping timeout: 240 seconds)
15:33:32 × smichel17[m] quits (~smichel17@2001:470:69fc:105::2d32) (Ping timeout: 240 seconds)
15:33:32 × wildsebastian quits (~wildsebas@2001:470:69fc:105::1:14b1) (Ping timeout: 240 seconds)
15:33:34 × codygman[m] quits (~codygman@2001:470:69fc:105::b4ba) (Ping timeout: 260 seconds)
15:33:34 × zfnmxt quits (~zfnmxtzfn@2001:470:69fc:105::2b32) (Ping timeout: 260 seconds)
15:33:34 × kalxd[m] quits (~kalxdmatr@2001:470:69fc:105::1:576e) (Ping timeout: 260 seconds)
15:33:34 × aidy quits (~aidy@2001:470:69fc:105::c7b4) (Ping timeout: 260 seconds)
15:33:34 × thomasjm[m] quits (~thomasjmm@2001:470:69fc:105::c6d9) (Ping timeout: 260 seconds)
15:33:34 × maerwald[m] quits (~maerwaldm@user/maerwald) (Ping timeout: 260 seconds)
15:33:34 × moats quits (~oats@user/oats) (Ping timeout: 260 seconds)
15:33:34 × juhp[m] quits (~juhpmatri@2001:470:69fc:105::6e9) (Ping timeout: 260 seconds)
15:33:34 × jesser[m] quits (~jessermat@2001:470:69fc:105::d5ae) (Ping timeout: 260 seconds)
15:33:35 × xddq[m] quits (~xddqmatri@2001:470:69fc:105::bfd8) (Ping timeout: 260 seconds)
15:33:35 × Christoph[m] quits (~hpotsirhc@2001:470:69fc:105::2ff8) (Ping timeout: 250 seconds)
15:33:35 × peddie quits (~peddie@2001:470:69fc:105::25d) (Ping timeout: 250 seconds)
15:33:35 × denbrahe[m] quits (~denbrahem@2001:470:69fc:105::19c0) (Ping timeout: 250 seconds)
15:33:36 × craige[m] quits (~craigemcw@2001:470:69fc:105::35f1) (Ping timeout: 250 seconds)
15:33:38 × octeep[m] quits (~octeepoct@2001:470:69fc:105::1:3dbf) (Ping timeout: 252 seconds)
15:33:38 × fsckskye[m] quits (~kmatrixth@2001:470:69fc:105::1:3b2f) (Ping timeout: 252 seconds)
15:33:38 × marinelli[m] quits (~marinelli@2001:470:69fc:105::2d8) (Ping timeout: 252 seconds)
15:33:38 × jneira[m] quits (~jneiramat@2001:470:69fc:105::d729) (Ping timeout: 252 seconds)
15:33:38 × maralorn quits (~maralorn@2001:470:69fc:105::251) (Ping timeout: 252 seconds)
15:33:38 × fgaz quits (~fgaz@2001:470:69fc:105::842) (Ping timeout: 252 seconds)
15:33:38 × sofviic[m] quits (~sofviicma@2001:470:69fc:105::1:51fd) (Ping timeout: 252 seconds)
15:33:38 × afotgkmnzj7asv3r quits (~afotgkmnz@2001:470:69fc:105::c24b) (Ping timeout: 252 seconds)
15:33:39 justIrresolute5 joins (~justache@user/justache)
15:33:41 × Magnus[m] quits (~magthetch@2001:470:69fc:105::d1a7) (Ping timeout: 245 seconds)
15:33:41 × simmsb quits (~simmsb@2001:470:69fc:105::1:55c3) (Ping timeout: 245 seconds)
15:33:41 × Orbstheorem quits (~orbstheor@2001:470:69fc:105::a56) (Ping timeout: 245 seconds)
15:33:41 × jkachmar quits (~jkachmar@2001:470:69fc:105::c72d) (Ping timeout: 245 seconds)
15:33:45 <lechner> Hi, how can print a Vector (Text, Text) as lines with a space between the two columns, please? Thanks!
15:33:49 × inkbottle[m] quits (~inkbottle@2001:470:69fc:105::2ff5) (Ping timeout: 250 seconds)
15:33:49 × AlainJourez[m] quits (~sherekahn@2001:470:69fc:105::1:4a71) (Ping timeout: 250 seconds)
15:33:49 × TomasJakl[m] quits (~jaklttchn@2001:470:69fc:105::a42) (Ping timeout: 250 seconds)
15:33:52 × pfurla-matrix quits (~pedrofurl@2001:470:69fc:105::1:51d7) (Ping timeout: 268 seconds)
15:33:52 × unclechu quits (~unclechu@2001:470:69fc:105::354) (Ping timeout: 268 seconds)
15:33:52 × cherryblossom[m] quits (~cherryblo@2001:470:69fc:105::b789) (Ping timeout: 268 seconds)
15:33:52 × james[m]123 quits (~jamesnina@2001:470:69fc:105::1:4203) (Ping timeout: 268 seconds)
15:33:52 × Michal[m] quits (~oomiguelm@2001:470:69fc:105::1:5ab0) (Ping timeout: 268 seconds)
15:34:02 × puffnfresh[m] quits (~puffnfres@2001:470:69fc:105::1:22da) (Ping timeout: 260 seconds)
15:34:02 × IgnatInsarov[m] quits (~kindaroma@2001:470:69fc:105::f5d9) (Ping timeout: 260 seconds)
15:34:02 × justosophy[m] quits (~justosoph@2001:470:69fc:105::572f) (Ping timeout: 260 seconds)
15:34:09 acowley joins (~acowley@c-68-83-22-43.hsd1.nj.comcast.net)
15:34:16 litharge joins (litharge@libera/bot/litharge)
15:34:33 × siers quits (~ij@user/ij) (Ping timeout: 256 seconds)
15:34:38 jgeerds_ joins (~jgeerds@55d4ac73.access.ecotel.net)
15:35:03 SoF joins (~skius@user/skius)
15:35:21 × rubin55 quits (sid175221@id-175221.hampstead.irccloud.com) (Ping timeout: 245 seconds)
15:35:41 × remedan_ quits (~remedan@octo.cafe) (Ping timeout: 256 seconds)
15:35:41 rubin55 joins (sid175221@id-175221.hampstead.irccloud.com)
15:36:25 × hook54321 quits (sid149355@user/hook54321) (Ping timeout: 250 seconds)
15:36:27 eldritch_ joins (~eldritch@user/eldritch/x-9272577)
15:37:01 × jgeerds quits (~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 240 seconds)
15:37:05 siers joins (~ij@user/ij)
15:37:37 remedan joins (~remedan@octo.cafe)
15:37:51 AlexZenon joins (~alzenon@94.233.240.16)
15:37:57 × koolazer quits (~koo@user/koolazer) (Ping timeout: 256 seconds)
15:38:10 hook54321 joins (sid149355@user/hook54321)
15:39:21 × acidsys quits (~LSD@2.lsd.systems) (Excess Flood)
15:39:39 <g> There isn't a canned implementation of that. You'll have to write it
15:39:54 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
15:39:54 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
15:39:54 wroathe joins (~wroathe@user/wroathe)
15:40:18 acidsys joins (~LSD@2.lsd.systems)
15:40:26 <geekosaur> there are prettyprinter classes on hackage that might help
15:40:27 <jumper149> lechner: Something like: `putStr . unlines . toList . fmap (\ (x,y) -> x ++ " " ++ y)`
15:42:06 <merijn> or: forM_ myVec $ \(x, y) -> putStrLn (x ++ " " ++ y)
15:42:09 <lechner> jumper149: look great, thanks!
15:42:13 <merijn> Which seems much simpler :p
15:42:38 <lechner> merijn: yeah, maybe
15:42:41 <merijn> I guess forM_ is just for_ now
15:42:43 <merijn> :t forM_
15:42:44 <lambdabot> (Foldable t, Monad m) => t a -> (a -> m b) -> m ()
15:42:45 <merijn> :t for_
15:42:46 <lambdabot> (Foldable t, Applicative f) => t a -> (a -> f b) -> f ()
15:42:48 <merijn> yeah
15:43:19 <merijn> alternately "for_ (V.toList myVec) $ ..." if it's not a foldable vector :p
15:44:12 <jumper149> I would prefer: `traverse (\ (x,y) -> putStrLn $ x ++ " " ++ y)`
15:44:30 <jumper149> But it doesnt really matter
15:44:43 <merijn> jumper149: traverse_ then :p
15:44:53 <merijn> but for_ is just flipped traverse :p
15:45:03 <merijn> *traverse_
15:45:06 <merijn> :t traverse_
15:45:07 <jumper149> haha :D
15:45:07 <lambdabot> (Foldable t, Applicative f) => (a -> f b) -> t a -> f ()
15:45:14 <merijn> jumper149: No, like, literally
15:45:17 <merijn> :t for_
15:45:18 <lambdabot> (Foldable t, Applicative f) => t a -> (a -> f b) -> f ()
15:45:49 <jumper149> I know, I just laughed at you for doing the same mistake missing the '_'
15:45:55 <jumper149> :p
15:46:01 <merijn> I find for_ works nicely with lambdas
15:46:15 × litharge quits (litharge@libera/bot/litharge) (*.net *.split)
15:46:26 alx741 joins (~alx741@157.100.93.160)
15:46:46 <merijn> You can make it look like a regular for loop with lambda + do: https://github.com/merijn/Belewitte/blob/55722e6374a7820b0d5925bc98cbd1686d4265a7/benchmark-analysis/src/Migration.hs#L100-L118
15:47:14 <merijn> Then you don't have to invent a name. That style doesn't really work with traverse_
15:47:15 <jumper149> But with traverse you write something like: putStrLn `traverse` someLines
15:47:27 <jumper149> But honestly it really doesnt matter :D
15:48:14 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
15:49:12 <jumper149> On another note, my first solution doesn't perform multiple IO actions. That can be a performance improvement.
15:49:51 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
15:50:24 koolazer joins (~koo@user/koolazer)
15:52:41 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
15:52:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
15:53:42 ec joins (~ec@gateway/tor-sasl/ec)
15:53:44 × chele quits (~chele@user/chele) (Remote host closed the connection)
15:54:02 <lechner> thanks, eveyone! Haskell is such an elegant and concise language. after each line i feel like i made the world a better place---with your help
15:55:58 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
15:56:10 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
15:56:10 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
15:56:10 wroathe joins (~wroathe@user/wroathe)
15:56:26 gaff joins (~gaff@49.207.199.195)
15:56:38 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
15:57:00 <gaff> "learn you a haskell for good" book -- is it no longer online?
15:57:03 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
15:57:51 <geekosaur> site went offline last month, nobody knows why. still available via the wayback machine
15:57:52 <jumper149> gaff: I think I read something like that in a reddit post.
15:57:55 × dsrt^ quits (~dsrt@207.5.21.20) (Remote host closed the connection)
15:58:02 litharge joins (litharge@libera/bot/litharge)
15:58:28 <gaff> i see
15:59:02 <gaff> where is the "wayback machine"? is there a link or something?
15:59:12 <geekosaur> web.archive.org
15:59:23 <lechner> https://archive.org/search.php?query=learn%20you%20a%20haskell
15:59:35 <lechner> there you can also find the paper copy
15:59:45 <lechner> pdf
15:59:55 <geekosaur> https://web.archive.org/web/20211204094509/http://learnyouahaskell.com/
16:00:13 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
16:00:16 × wyrd quits (~wyrd@gateway/tor-sasl/wyrd) (Quit: leaving)
16:00:34 <lechner> we should all donate to brewster kahle
16:01:51 <gaff> lechner: thanks much
16:02:57 <lechner> gaff: i am a newbie here (but a library commissioner in real life). the honor belongs to evybody else!
16:03:12 <lechner> everybody here
16:04:10 <gaff> oh i see
16:04:21 <gaff> geekosaur: thanks much
16:04:33 <lechner> there you go!
16:04:35 <gaff> i wonder what happened to that site
16:04:43 <[itchyjunk]> hm, so 1: is a partial function too it seems right? what was it a sugar syntax for?
16:04:46 <geekosaur> best we can tell, the owner stopped paying for it
16:05:35 <geekosaur> someone tried dropping its old IP address into their hosts file and got a page saying the site was offline probably for nonpayment
16:06:06 <gaff> i see
16:06:06 <geekosaur> [itchyjunk], (1:) is partially applied, yes. (please remember that "partial function" means something else in Haskell)
16:06:18 <geekosaur> \x -> 1:x
16:06:23 <[itchyjunk]> Oh right, partially applied
16:06:41 × gaff quits (~gaff@49.207.199.195) ()
16:06:57 × remexre quits (~remexre@user/remexre) (Ping timeout: 240 seconds)
16:07:32 ericson2314 joins (~ericson23@2001:470:69fc:105::70c)
16:07:41 zfnmxt joins (~zfnmxtzfn@2001:470:69fc:105::2b32)
16:07:42 maerwald[m] joins (~maerwaldm@2001:470:69fc:105::1ee)
16:07:43 puffnfresh[m] joins (~puffnfres@2001:470:69fc:105::1:22da)
16:07:44 xddq[m] joins (~xddqmatri@2001:470:69fc:105::bfd8)
16:07:46 RosarioPulella[m joins (~rosariopu@2001:470:69fc:105::a57)
16:08:40 finalti[m] joins (~finaltima@2001:470:69fc:105::d909)
16:08:53 rednaZ[m] joins (~r3dnazmat@2001:470:69fc:105::ba70)
16:09:07 reza[m] joins (~rezaphone@2001:470:69fc:105::3eda)
16:09:07 Heffalump[m] joins (~hsenagmat@2001:470:69fc:105::e11)
16:09:08 TomasJakl[m] joins (~jaklttchn@2001:470:69fc:105::a42)
16:09:09 alexfmpe[m] joins (~alexfmpem@2001:470:69fc:105::38ba)
16:09:10 carmysilna joins (~brightly-@2001:470:69fc:105::2190)
16:09:10 inkbottle[m] joins (~inkbottle@2001:470:69fc:105::2ff5)
16:11:01 × vysn quits (~vysn@user/vysn) (Ping timeout: 240 seconds)
16:11:47 <[itchyjunk]> Is the solution really this simple? https://bpa.st/OHRQ
16:12:58 <geekosaur> looks like it does what the problem calls for, yes
16:13:58 alx741 joins (~alx741@157.100.93.160)
16:13:59 soft joins (~soft@2001:470:69fc:105::c75)
16:15:17 × d0ku quits (~d0ku@178.43.3.56.ipv4.supernova.orange.pl) (Ping timeout: 240 seconds)
16:16:29 simmsb joins (~simmsb@2001:470:69fc:105::1:55c3)
16:17:12 Ollie[m] joins (~ollieocha@2001:470:69fc:105::41a5)
16:17:40 shapr joins (~user@2601:7c0:c202:5190:cecd:8e39:7234:9a0d)
16:17:42 IgnatInsarov[m] joins (~kindaroma@2001:470:69fc:105::f5d9)
16:18:33 wysteriary[m] joins (~wysteriar@2001:470:69fc:105::a42e)
16:19:12 Arathorn joins (~arathorn@2001:470:69fc:105::1f)
16:19:29 benjamin[m]1234 joins (~benjaminm@2001:470:69fc:105::1:3f2f)
16:19:29 Artem[m] joins (~artemtype@2001:470:69fc:105::75b)
16:20:04 amesgen[m] joins (~amesgenm]@2001:470:69fc:105::82b)
16:20:24 alex[m] joins (~alexchete@2001:470:69fc:105::1:1001)
16:20:55 schuelermine[m] joins (~schuelerm@user/schuelermine)
16:20:56 prrxddq[m] joins (~prrxddqma@2001:470:69fc:105::1:4f72)
16:21:00 SridharRatnakuma joins (~sridmatri@2001:470:69fc:105::1c2)
16:21:06 zwro[m] joins (~zwromatri@2001:470:69fc:105::1d4)
16:21:12 DemiMarieObenour joins (~alwayscur@2001:470:69fc:105::4886)
16:21:13 vaibhavsagar[m] joins (~vaibhavsa@2001:470:69fc:105::ffe)
16:21:14 Deide joins (~deide@user/deide)
16:21:31 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
16:21:31 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
16:21:31 wroathe joins (~wroathe@user/wroathe)
16:21:36 fendor[m] joins (~fendormat@2001:470:69fc:105::fcbd)
16:21:36 unrooted joins (~unrooted@2001:470:69fc:105::a4a)
16:22:27 oak- joins (~oakuniver@2001:470:69fc:105::fcd)
16:22:44 wyrd joins (~wyrd@gateway/tor-sasl/wyrd)
16:22:45 Topik[m] joins (~topikmatr@2001:470:69fc:105::a082)
16:22:52 SawyerBergeron[m joins (~sawyerber@2001:470:69fc:105::3036)
16:23:25 × cheater quits (~Username@user/cheater) (Ping timeout: 256 seconds)
16:23:26 yehoshuapw joins (~yehoshuap@2001:470:69fc:105::a5f)
16:23:35 moats joins (~oats@user/oats)
16:24:04 ormaaj joins (~ormaaj@user/ormaaj)
16:24:04 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
16:25:17 tripa[m] joins (~tripamatr@2001:470:69fc:105::1:4f7e)
16:25:17 remexre joins (~remexre@user/remexre)
16:25:32 Las[m] joins (~lasmatrix@2001:470:69fc:105::74e)
16:25:38 juhp[m] joins (~juhpmatri@2001:470:69fc:105::6e9)
16:26:59 grabb0id[m] joins (~alangmatr@2001:470:69fc:105::b489)
16:27:01 cheater joins (~Username@user/cheater)
16:27:16 gallup joins (~gallup@192-222-138-215.qc.cable.ebox.net)
16:27:20 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:27:32 × ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec)
16:27:55 aidy joins (~aidy@2001:470:69fc:105::c7b4)
16:28:37 × husixu quits (~husixu@137.132.119.2) (Quit: Leaving)
16:28:43 fsckskye[m] joins (~kmatrixth@2001:470:69fc:105::1:3b2f)
16:29:06 × gallup quits (~gallup@192-222-138-215.qc.cable.ebox.net) (Client Quit)
16:29:16 peddie joins (~peddie@2001:470:69fc:105::25d)
16:29:18 denbrahe[m] joins (~denbrahem@2001:470:69fc:105::19c0)
16:29:20 unclechu joins (~unclechu@2001:470:69fc:105::354)
16:29:24 gallup joins (~gallup@192-222-138-215.qc.cable.ebox.net)
16:29:28 bitonic joins (~bitonic@2001:470:69fc:105::1812)
16:29:32 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
16:29:34 slowButPresent joins (~slowButPr@user/slowbutpresent)
16:29:37 × gallup quits (~gallup@192-222-138-215.qc.cable.ebox.net) (Client Quit)
16:30:02 × remexre quits (~remexre@user/remexre) (Ping timeout: 240 seconds)
16:30:03 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:c365:2459:70e0:4fac) (Quit: WeeChat 2.8)
16:30:09 cdsmith joins (~cdsmithma@2001:470:69fc:105::284)
16:30:12 remexre joins (~remexre@user/remexre)
16:30:21 Orbstheorem joins (~orbstheor@2001:470:69fc:105::a56)
16:30:23 siraben joins (~siraben@user/siraben)
16:30:27 wildsebastian joins (~wildsebas@2001:470:69fc:105::1:14b1)
16:30:27 sofviic[m] joins (~sofviicma@2001:470:69fc:105::1:51fd)
16:30:52 MatrixTravelerbo joins (~voyagert2@2001:470:69fc:105::22)
16:31:09 AlainJourez[m] joins (~sherekahn@2001:470:69fc:105::1:4a71)
16:31:38 Christoph[m] joins (~hpotsirhc@2001:470:69fc:105::2ff8)
16:31:39 jmcantrell joins (~jmcantrel@user/jmcantrell)
16:31:55 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
16:33:17 kadoban joins (~kadoban@user/kadoban)
16:33:19 sirlensalot joins (~sirlensal@ool-44c5f8c9.dyn.optonline.net)
16:33:24 craige[m] joins (~craigemcw@2001:470:69fc:105::35f1)
16:34:00 ec joins (~ec@gateway/tor-sasl/ec)
16:34:32 fgaz joins (~fgaz@2001:470:69fc:105::842)
16:34:33 surgeon[m] joins (~surge9nma@2001:470:69fc:105::f585)
16:34:49 octeep[m] joins (~octeepoct@2001:470:69fc:105::1:3dbf)
16:35:22 justosophy[m] joins (~justosoph@2001:470:69fc:105::572f)
16:37:47 thomasjm[m] joins (~thomasjmm@2001:470:69fc:105::c6d9)
16:37:52 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
16:37:52 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
16:37:52 wroathe joins (~wroathe@user/wroathe)
16:38:20 jkachmar joins (~jkachmar@2001:470:69fc:105::c72d)
16:39:33 ManofLetters[m] joins (~manoflett@2001:470:69fc:105::3be)
16:39:40 Tisoxin joins (~ikosit@user/ikosit)
16:40:04 deadmarshal joins (~deadmarsh@95.38.116.69)
16:41:00 <lechner> Hi, how can i simplify that, please? putStrLn (intercalate " " [Text.unpack name, show errors, show warnings, show info, show pedantic, show experimental, show overrides])
16:41:18 alx741 joins (~alx741@157.100.93.160)
16:41:31 <lechner> the others are numbers Int64
16:42:29 the_last_immorta joins (~thelastim@2001:470:69fc:105::1:4d57)
16:42:35 bb010g joins (~bb010g@2001:470:69fc:105::9a5)
16:42:41 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
16:42:56 <Cale> I guess you could use unwords rather than intercalate " ", they mean the same thing
16:43:02 nomeata joins (~nomeata@2001:470:69fc:105::1:5ed4)
16:43:07 fcortesi joins (~fcortesi@2001:470:69fc:105::f3a9)
16:44:04 quantum joins (~quantum@user/quantum/x-8556232)
16:44:23 <geekosaur> map show [errors, warnings, info, pedantic, experimental, overrides] ? (if they're all the same type. You said Int64?)
16:44:29 jinsun_ joins (~jinsun@user/jinsun)
16:44:37 <lechner> yes
16:44:41 boxscape joins (~boxscape@user/boxscape)
16:44:55 <lechner> i tried a mix of concat and map
16:44:59 <lechner> but got errors
16:45:05 Michal[m] joins (~oomiguelm@2001:470:69fc:105::1:5ab0)
16:45:22 <geekosaur> @where paste
16:45:22 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
16:45:58 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
16:46:51 james[m]123 joins (~jamesnina@2001:470:69fc:105::1:4203)
16:47:47 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
16:47:59 eoiles[m] joins (~eoilesmat@2001:470:69fc:105::1:6164)
16:48:52 marinelli[m] joins (~marinelli@2001:470:69fc:105::2d8)
16:49:37 maralorn joins (~maralorn@2001:470:69fc:105::251)
16:49:44 jchia[m] joins (~jchiamatr@2001:470:69fc:105::c50b)
16:49:59 kalxd[m] joins (~kalxdmatr@2001:470:69fc:105::1:576e)
16:50:00 InternetManaging joins (~imjmatrix@2001:470:69fc:105::1:2ea5)
16:50:12 ongy[m] joins (~ongymatri@2001:470:69fc:105::5018)
16:50:35 sm1 joins (~sm@plaintextaccounting/sm)
16:50:46 smichel17[m] joins (~smichel17@2001:470:69fc:105::2d32)
16:53:02 hsiktas[m] joins (~hsiktasma@2001:470:69fc:105::30d4)
16:54:14 <lechner> sorry to keey you waiting https://paste.tomsmeding.com/CKb0yrsa
16:54:20 Magnus[m] joins (~magthetch@2001:470:69fc:105::d1a7)
16:54:40 <lechner> i should have formatted
16:54:51 jneira[m] joins (~jneiramat@2001:470:69fc:105::d729)
16:55:59 <lechner> what's everyone's favorite formatter, please?
16:56:08 xerox looks at his spacebar
16:56:32 <geekosaur> sorry, I meant the "mix of concat and map" and the resulting errors
16:56:37 cherryblossom[m] joins (~cherryblo@2001:470:69fc:105::b789)
16:56:45 geekosaur formats by hand, doesn't like existing formatters
16:56:46 <monochrom> The tab key for me, but it's in emacs and it inserts spaces.
16:56:53 afotgkmnzj7asv3r joins (~afotgkmnz@2001:470:69fc:105::c24b)
16:57:29 pfurla-matrix joins (~pedrofurl@2001:470:69fc:105::1:51d7)
16:58:05 Nate[m]1 joins (~m52957mat@2001:470:69fc:105::1:591a)
16:58:26 <geekosaur> and I expect any formatter would break on that qq'd SQL statement
16:59:56 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
17:00:17 <monochrom> "computer" used to refer to people whose job is to compute. Now it refers to hardware that does the job.
17:00:34 × ubert quits (~Thunderbi@2a02:8109:9880:303c:2a00:eeaf:f8c:1b54) (Remote host closed the connection)
17:00:37 <monochrom> "typesetter" and "formatter" went down the same road.
17:00:58 <monochrom> Perhaps it's high time "programmer" also went that way.
17:01:15 <Rembane> I prefer to be an amateurgrammer.
17:01:34 <monochrom> "What's your favourite indenter?" "Oh, I just let my programmer do it."
17:04:02 alx741 joins (~alx741@157.100.93.160)
17:04:20 × Jing quits (~hedgehog@2604:a840:3::103c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:05:05 aveltras[m] joins (~aveltrasm@2001:470:69fc:105::3ef9)
17:05:42 × mbuf quits (~Shakthi@122.174.247.3) (Quit: Leaving)
17:08:18 <lechner> for sql, hasql-th is nice for beginners and easier than pg-simple. i'd ultimetaly like to upgrade to opaleye or perhaps even rel8, although maybe not for that query
17:08:40 hughjfchen[m] joins (~hughjfche@2001:470:69fc:105::c29d)
17:09:24 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
17:09:50 <EvanR> monochrom, how about "politician"
17:10:01 <EvanR> oops off topic
17:10:44 × cosimone quits (~user@93-47-228-11.ip115.fastwebnet.it) (Read error: Connection reset by peer)
17:11:16 econo joins (uid147250@user/econo)
17:12:48 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
17:13:50 <lechner> the first line doesn't compile, followed by the error https://paste.tomsmeding.com/TQtSLY34
17:14:22 <lechner> i loved editing that line, which read originally: the first line does not work...
17:15:24 <c_wraith> did you want a ++ in there or something?
17:15:26 × coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot)
17:15:28 <geekosaur> you are saying (concat x xs) when it's (concat xs)
17:15:42 <lechner> is see
17:15:51 <lechner> i see
17:15:55 <geekosaur> you might have wanted (:) in fact
17:15:57 <lechner> or maybe i dont
17:16:06 <lechner> yes!
17:18:42 <lechner> geekosaur: thanks so much! and sorry about being so poor a haskeller. i make up for it with my enthusiasm
17:22:50 jophish joins (~jophish@2001:470:69fc:105::670)
17:22:50 psydroid joins (~psydroid@user/psydroid)
17:22:55 ircs joins (~ircs@2-111-85-72-cable.dk.customer.tdc.net)
17:22:58 jesser[m] joins (~jessermat@2001:470:69fc:105::d5ae)
17:23:29 × rond_42 quits (~rond_@2a01:115f:943:5e00:d97e:b793:ae8f:1ddd) (Quit: Client closed)
17:24:25 × coolnickname quits (uid531864@user/coolnickname) (Quit: Connection closed for inactivity)
17:25:35 codygman[m] joins (~codygman@2001:470:69fc:105::b4ba)
17:25:55 xbreu joins (~xbreu@2001:470:69fc:105::1:5061)
17:25:57 <lechner> with manual indenting a favorite here, is there a manual of style?
17:26:53 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 256 seconds)
17:27:22 coolnickname joins (uid531864@user/coolnickname)
17:27:57 <lechner> also, is there a consensus as to when $ is acceptable?
17:29:39 <lechner> are -> and $ good positions for line breaks?
17:30:07 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
17:30:08 <[itchyjunk]> This is the only way I could think of doing this. It does seem like it works. :: https://bpa.st/BDVA
17:30:26 alx741 joins (~alx741@157.100.93.160)
17:30:29 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
17:30:58 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
17:31:18 <ProfSimm> Could we reduce Haskell to just s-expr
17:32:08 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
17:32:11 <c_wraith> [itchyjunk]: seems a bit odd to not just use the length function. But it's probably homewhere where you can't do that, in which case... that looks absolutely fine.
17:32:24 <geekosaur> s-expr is just a way to represent an AST. Haskell can be represented by an AST. therefore, yes
17:32:36 <[itchyjunk]> c_wraith, this is random problem set i googled for :x. i don't know a lot of inbuilt functions yet
17:32:51 <c_wraith> > length "the"
17:32:53 <lambdabot> 3
17:32:58 <geekosaur> whether it's useful is another question
17:32:58 <[itchyjunk]> oh..
17:33:00 <ProfSimm> geekosaur: it's a very restricted way of presenting an AST.
17:33:19 <[itchyjunk]> I wonder how length counts it
17:33:31 <[itchyjunk]> i was stucking thinking about a counter loop for a bit
17:33:43 <[itchyjunk]> but then i realized i could map each char to 1's and add those
17:33:56 <c_wraith> both ideas work fine.
17:34:01 <geekosaur> list/Foldable, recursion
17:34:01 <[itchyjunk]> hmm
17:35:58 <c_wraith> here's an interesting thing for you to think about: that last line could be lengths = map strLength
17:36:43 <[itchyjunk]> hmm without any parameter?
17:36:55 werneta joins (~werneta@137.79.226.240)
17:36:57 <c_wraith> without naming the parameter, anyway.
17:37:07 <c_wraith> the important idea is that functions are values
17:37:25 <geekosaur> if you have foo x = bar x, you can drop the x from both sides of the =
17:37:37 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
17:37:45 <[itchyjunk]> :O
17:37:54 <c_wraith> map strLength is a function of type [String] -> [Int]
17:37:55 <geekosaur> (only if it's exactly that form)
17:38:21 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
17:38:26 <[itchyjunk]> ahh
17:38:33 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
17:38:51 <[itchyjunk]> lengths just become a sugar notation for map strLength, a shorthand in that sense
17:38:54 <[itchyjunk]> makes sense!
17:38:57 × CiaoSen quits (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
17:39:18 <c_wraith> yep. being able to think about functions like that helps a lot for working in Haskell.
17:39:18 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
17:39:43 <c_wraith> You don't always have to write code that way, but you should be comfortable reading it
17:39:52 <[itchyjunk]> Right!
17:39:55 alx741 joins (~alx741@157.100.93.160)
17:44:34 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
17:46:49 × werneta quits (~werneta@137.79.226.240) (Quit: leaving)
17:47:02 werneta joins (~werneta@137.79.226.240)
17:59:48 <monochrom> lechner: I don't follow it strictly, but most of it is reasonable most of the time: https://github.com/tibbe/haskell-style-guide/blob/master/haskell-style.md
18:00:22 × ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec)
18:00:45 ec joins (~ec@gateway/tor-sasl/ec)
18:01:25 <lechner> monochrom: thanks!
18:02:31 alx741 joins (~alx741@157.100.93.160)
18:02:33 <lechner> Hi, i got an error building hlint from hackage with ghc 8.10.7 http://paste.debian.net/1226024/
18:03:14 <lechner> The failure occurred during the
18:03:15 <lechner> final install step
18:03:21 <lechner> is that a loca issue?
18:03:28 <lechner> local?
18:04:03 <monochrom> "Installing library in ..." doesn't sound like failure.
18:04:42 <monochrom> Oh, "copyFile: resource exhausted (No space left on device)"?
18:04:53 <lechner> whoops
18:06:06 coot joins (~coot@89-64-85-93.dynamic.chello.pl)
18:07:27 <lechner> sorry, a loca ghc build i had forgotten about took up 8G
18:07:37 <lechner> plus, i can't type
18:08:41 <lechner> on that note, is there a good strategy for cleaning up CABAL-DIR, other than 'rm -rf'?
18:09:45 × xb0o2 quits (~xb0o2@user/xb0o2) (Quit: Client closed)
18:09:51 <monochrom> Perhaps my https://github.com/treblacy/cabalgc helps.
18:10:02 xb0o2 joins (~xb0o2@user/xb0o2)
18:10:03 × Vajb quits (~Vajb@2001:999:50:e6be:1e98:9376:d93e:4506) (Read error: Connection reset by peer)
18:10:14 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
18:11:48 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
18:12:07 <lechner> monochrom: thanks! is there a reason it's not on Hackage?
18:13:25 <monochrom> I am a poor maintainer.
18:13:28 <APic> Ok
18:13:32 <APic> s/ //
18:15:22 <lechner> monochrom: i'd upload it to Debian but the program is so development-oriented, it may belong onto Hackage even if there is a danger it might remove itself
18:18:13 × burnsidesLlama quits (~burnsides@dhcp168-021.wadham.ox.ac.uk) (Remote host closed the connection)
18:19:25 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:19:27 <lechner> monochrom: thanks for the style link. that's where i came across the strictness thing i mentioned here in an aeson context a few months ago. is that consensus? https://github.com/tibbe/haskell-style-guide/blob/master/haskell-style.md#data-types
18:20:07 <monochrom> This one no. One of the few exceptions.
18:20:17 <lechner> ok, thanks!
18:22:21 <c_wraith> he was one of the pioneers in that cargo cult. :P
18:23:40 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
18:23:41 <monochrom> Data type strictness is a case of two echo chambers refusing to acknowledge that the other one exists.
18:24:08 <c_wraith> data type strictness is great - when it doesn't break code.
18:24:21 <c_wraith> He broke a library I was using once by making it unnecessarily strict.
18:24:24 <monochrom> One echo chamber always does number crunching and their data types are always records of numbers. Of course the number fields should be strict, even unboxed.
18:25:05 <monochrom> The other echo chamber always does huge but non-strict data structures. Of course the recursive fields should be non-strict.
18:25:35 <lechner> i think i am on the non-strict side, but not sure
18:25:45 <monochrom> Overall, of course the whole point of echo chamber confort zone is to deny that someone out there may be doing something else.
18:26:37 × werneta quits (~werneta@137.79.226.240) (Ping timeout: 240 seconds)
18:28:17 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:29:27 <c_wraith> I get a lot of value from even making numeric fields non-strict. It comes in really handy for a bunch of cases to be able to use mfix to evaluate things.
18:30:03 alx741 joins (~alx741@157.100.93.160)
18:30:23 rond_ joins (~rond_@2a01:115f:943:5e00:b66:5768:df7:4b57)
18:30:26 <lechner> yay! brittany left my hasql qq intact
18:30:44 <c_wraith> given that whitespace inside a qq is significant, it had better. :P
18:31:03 <c_wraith> well. may be significant, at least. depends on the particular qq
18:31:59 <lechner> someone speculated earlier that non-human formatters might change it
18:32:18 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
18:32:21 <geekosaur> that was me. some are known to at least break on quasiquoters
18:32:35 <geekosaur> (not necessarily reformat, just refuse to continue)
18:32:36 ProfSimm joins (~ProfSimm@87.227.196.109)
18:33:03 × jgeerds_ quits (~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 256 seconds)
18:33:39 pretty_dumm_guy is now known as pretty_dumm_guy_
18:33:40 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
18:34:02 <lechner> i don't blame them. qq used to scare me too, but i love them with hasql
18:34:08 pretty_dumm_guy_ is now known as pdg_afk
18:37:19 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
18:38:09 pdg_afk is now known as pretty_dumm_guy
18:41:11 CiaoSen joins (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
18:44:31 × caubert_ quits (~caubert@136.244.111.235) (Quit: WeeChat 3.3)
18:44:46 caubert joins (~caubert@136.244.111.235)
18:48:03 o-90 joins (~o-90@139.60.178.30)
18:48:45 <lechner> Hi, is brittany's style silly? https://yairchu.github.io/posts/silly-haskell-formatting
18:49:04 o-90 parts (~o-90@139.60.178.30) ()
18:50:03 × xlei quits (~akans@pool-68-129-84-118.nycmny.fios.verizon.net) (Ping timeout: 256 seconds)
18:50:43 gallup joins (~gallup@192-222-138-215.qc.cable.ebox.net)
18:50:58 gallup is now known as otherouestbillie
18:51:11 × otherouestbillie quits (~gallup@192-222-138-215.qc.cable.ebox.net) (Client Quit)
18:51:13 xlei joins (~akans@pool-68-129-84-118.nycmny.fios.verizon.net)
18:51:40 alx741 joins (~alx741@157.100.93.160)
18:51:49 <lyxia> do you think people would make it if they thought it were silly
18:52:09 eastbillie joins (~gallup@192-222-138-215.qc.cable.ebox.net)
18:52:47 <lechner> no. in fact i like it, but i am new
18:54:07 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
18:54:29 pottsy joins (~pottsy@129.227.183.244)
18:55:33 <lechner> facing broad disapproval, i am looking for the lesser evil among hindent, hfmt, ormolu and brittany (and perhaps others) as seen by the people
18:56:13 o-90 joins (~o-90@gateway/tor-sasl/o-90)
18:56:24 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
18:57:43 bsima likes ormolu
18:57:59 burnsidesLlama joins (~burnsides@dhcp168-021.wadham.ox.ac.uk)
19:00:57 × o-90 quits (~o-90@gateway/tor-sasl/o-90) (Quit: Leaving)
19:01:13 vicfred joins (~vicfred@user/vicfred)
19:01:17 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
19:03:16 <polyphem> lechner: here is a strawpoll https://strawpoll.de/b823715 , now everybody in here can vote
19:03:27 hammock joins (~Hammock@2600:1700:19a1:3330::588)
19:04:09 <geekosaur> oughtta put it on reddit and twitter too given that the article says they differed about formatting
19:04:17 × burnsidesLlama quits (~burnsides@dhcp168-021.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
19:04:19 vicfred_ joins (~vicfred@user/vicfred)
19:04:32 <lechner> polyphem: thanks! i was just about to post one from pollcode
19:05:00 <lechner> polyphem: stylish-haskell may be missing
19:05:22 <lechner> also, it is in german
19:05:24 × rond_ quits (~rond_@2a01:115f:943:5e00:b66:5768:df7:4b57) (Quit: Client closed)
19:05:42 <lechner> or maybe it can tell that i speak german
19:05:56 <geekosaur> it's in German here too
19:06:01 <geekosaur> well, half in german
19:06:13 <lechner> how about this one? https://vote.pollcode.com/95187937
19:06:19 <geekosaur> \I had to apply the translator to make sure I was pressing the right button, highlighting notwithstanding
19:06:57 × vicfred quits (~vicfred@user/vicfred) (Ping timeout: 240 seconds)
19:07:04 × hammock quits (~Hammock@2600:1700:19a1:3330::588) (Client Quit)
19:07:12 <polyphem> yeah, dont know how to edit possible answers now, after its live, and yeah it defaulted to german
19:07:41 <Clint> you also may end up accidentally conflating style with practical concerns like how badly it chokes on CPP directives and such
19:09:07 × incertia quits (~incertia@24.42.241.219) (Quit: ZNC 1.7.5 - https://znc.in)
19:10:05 <lechner> this one is much prettier https://www.polltab.com/4Q-JMh73xw
19:10:33 <geekosaur> so now we have to vote in 3 places? :þ
19:10:46 incertia joins (~incertia@24.42.241.219)
19:11:06 <polyphem> last one has captchas , duh
19:12:37 Akiva joins (~Akiva@user/Akiva)
19:12:48 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Excess Flood)
19:13:04 <polyphem> its ironic however, how haskellers voting one different source formatters need to explore the problem space also for the voting tools ....
19:13:27 <polyphem> s/one/on/
19:13:44 <Cale> My favourite source formatter is none
19:13:52 <geekosaur> which is most strongly typed? :þ
19:14:12 alx741 joins (~alx741@157.100.93.160)
19:14:50 <lechner> more seriously, i am not sure the last one offers interim results before the end of february!
19:15:34 <polyphem> lechner: says live votes , and flashes red dot
19:16:12 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
19:16:46 <Cale> I also greatly prefer having arrows at the start of the lines in type signatures. Putting them at the end is hard to read.
19:17:18 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 276 seconds)
19:18:04 <lechner> i just vote on the last one, as one of three
19:18:23 <yushyin> but ... but ormolu!
19:18:56 jpds joins (~jpds@gateway/tor-sasl/jpds)
19:18:56 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
19:18:59 <Cale> Also, all of the implementations of sortByM in this blog post are obnoxiously written. Use do-notation when appropriate.
19:21:13 × deadmarshal quits (~deadmarsh@95.38.116.69) (Ping timeout: 256 seconds)
19:21:44 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
19:21:44 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
19:21:44 wroathe joins (~wroathe@user/wroathe)
19:21:50 emf joins (~emf@2620:10d:c090:400::5:c06d)
19:22:23 jgeerds_ joins (~jgeerds@55d4ac73.access.ecotel.net)
19:22:55 × jgeerds_ quits (~jgeerds@55d4ac73.access.ecotel.net) (Remote host closed the connection)
19:27:42 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
19:27:57 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
19:30:07 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
19:31:49 × machinedgod quits (~machinedg@24.105.81.50) (Remote host closed the connection)
19:32:17 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds)
19:32:30 werneta joins (~werneta@137.79.233.19)
19:34:09 × ircs quits (~ircs@2-111-85-72-cable.dk.customer.tdc.net) (Excess Flood)
19:35:08 alx741 joins (~alx741@157.100.93.160)
19:36:49 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
19:36:50 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
19:36:50 wroathe joins (~wroathe@user/wroathe)
19:37:43 machinedgod joins (~machinedg@24.105.81.50)
19:38:27 Pickchea joins (~private@user/pickchea)
19:39:32 <lechner> Hi, someone once told me to put qualified imports below explicit ones (and use no others), What about this pattern? import qualified Data.Text as Text; import Data.Text (Text(..)) ? Thanks!
19:39:32 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
19:39:43 <Cale> Who cares
19:39:51 × werneta quits (~werneta@137.79.233.19) (Quit: leaving)
19:40:04 werneta joins (~werneta@137.79.233.19)
19:40:05 <Cale> It really doesn't matter whether qualified imports come first or what
19:40:46 <Cale> The order in general doesn't matter, but it's nice to sort them just for the sake of being able to navigate through them and tell whether you have something in particular imported
19:40:59 <lechner> okay, i just put them all together. brittany will sort them
19:41:45 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
19:42:56 Tuplanolla joins (~Tuplanoll@91-159-69-90.elisa-laajakaista.fi)
19:44:03 <geekosaur> I'd say what's more important is to do it consistently across a project
19:45:44 <Cale> I also don't think I care very much about consistency between modules, so long as in each file it's not a jumbled mess and it's not formatted in some obnoxious way that's hard to edit.
19:46:17 × nhatanh02 quits (~satori@123.24.172.30) (Ping timeout: 256 seconds)
19:46:41 cryptomonad joins (~cryptomon@194.191.225.149)
19:47:37 <tomsmeding> Cale: would you count this as obnoxious? https://paste.tomsmeding.com/bpwrBBcP
19:47:58 <Cale> haha, yes
19:48:04 <Cale> because of the spaces, lol
19:48:15 <tomsmeding> that's for making room for 'qualified'
19:48:20 <tomsmeding> this is hfmt's default behaviour
19:50:13 <tomsmeding> Cale: watch what happens when you make the module name longer https://paste.tomsmeding.com/q9EV7wTH
19:50:27 <Cale> glorious
19:50:55 <tomsmeding> luckily I'm not the only one disliking this style
19:51:24 <Cale> I have never seen an automatic Haskell source formatter that I liked
19:51:43 <Cale> They all ultimately do something super obnoxious somewhere
19:52:06 <EvanR> they should get it over with, double down, and just do obnoxious things everywhere
19:52:14 <EvanR> the something awful haskell formatter
19:52:17 × werneta quits (~werneta@137.79.233.19) (Ping timeout: 240 seconds)
19:52:28 <tomsmeding> like, if we all scream equally loudly, at least we're agreeing on that?
19:52:41 <geekosaur> some claim that's ormolu :þ
19:52:56 <geekosaur> de gustibus…
19:53:46 × coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot)
19:54:26 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
19:55:35 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
19:55:35 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
19:55:35 wroathe joins (~wroathe@user/wroathe)
19:56:08 coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827)
19:57:40 alx741 joins (~alx741@157.100.93.160)
20:00:16 <tomsmeding> if only some claim it, then apparently it isn't so :p
20:00:45 <geekosaur> someone must disagree since it's used
20:01:45 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
20:03:54 × vicfred_ quits (~vicfred@user/vicfred) (Quit: Leaving)
20:05:25 × juhp quits (~juhp@128.106.188.82) (Ping timeout: 256 seconds)
20:08:21 juhp joins (~juhp@128.106.188.82)
20:08:37 × tomku quits (~tomku@user/tomku) (Ping timeout: 240 seconds)
20:13:00 <monochrom> I use emacs haskell-mode's C-c C-, to sort and format imports. It does put extra spaces when other import lines have "qualified". I don't mind either way. Some thing is lined up and I'm happy.
20:13:32 vysn joins (~vysn@user/vysn)
20:13:34 <monochrom> In the long run, GHC has a new extension for "import X qualified" to help.
20:14:30 <geekosaur> if that's helping
20:14:39 <polyphem> i think 80% a good job formatting is worth somthing , especially if you consider consistent formating of all files in a project
20:15:03 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
20:17:48 rond_ joins (~rond_@2a01:115f:943:5e00:b66:5768:df7:4b57)
20:19:25 lavaman joins (~lavaman@98.38.249.169)
20:20:11 alx741 joins (~alx741@157.100.93.160)
20:23:24 <EvanR> qualified import X
20:23:37 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
20:23:40 <EvanR> very lined up
20:23:41 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
20:23:42 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
20:23:42 wroathe joins (~wroathe@user/wroathe)
20:23:57 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
20:23:58 tomku joins (~tomku@user/tomku)
20:25:15 × ProfSimm quits (~ProfSimm@87.227.196.109) (Ping timeout: 256 seconds)
20:26:31 <tomsmeding> the only elements of an import line that can be confused are the module name and the as-alias; hence as long as we require that the module name comes before the as-alias, any ordering is unambiguous
20:26:48 <tomsmeding> as (empty) qualified Data.Text Text import
20:27:24 <monochrom> import M which is the local alias for Data.Map
20:27:29 <monochrom> (Sorry for the COBOL haha)
20:27:36 ProfSimm joins (~ProfSimm@87.227.196.109)
20:28:13 tomsmeding was briefly confused what you were referring to when writing "COBOL", but then realised that's probably the actual syntax in that language
20:28:29 tomsmeding thinks of AppleScript
20:29:43 <monochrom> Oh, I just like to pick on COBOL's "it reads like English". Plus, IIRC, "multiple x by y into z" is actual COBOL (except I use lower case here to be less annoying).
20:30:29 × xff0x quits (~xff0x@port-92-195-123-135.dynamic.as20676.net) (Ping timeout: 256 seconds)
20:31:11 × Megant quits (megant@user/megant) (Ping timeout: 245 seconds)
20:32:45 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
20:33:04 Megant joins (megant@user/megant)
20:33:09 xff0x joins (~xff0x@2001:1a81:53e7:b00:f827:c356:f4f8:aa66)
20:36:01 × kuribas quits (~user@ptr-25vy0i91z2t2xltfc74.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
20:38:42 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
20:38:42 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
20:38:43 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
20:38:43 wroathe joins (~wroathe@user/wroathe)
20:41:15 deadmarshal joins (~deadmarsh@95.38.116.69)
20:41:30 <tomsmeding> I'm really not a fan of languages that try to be readable like english (applescript, as mentioned, is another offender) -- it invariably makes writing harder and forces weird formulations in places
20:41:48 alx741 joins (~alx741@157.100.93.160)
20:42:08 <tomsmeding> and I feel like it doesn't help; `z := x * y` might need explanation of the := symbol, but is afterwards more compact and more extensible, and hence more readable
20:42:39 <tomsmeding> I concede that := might be easier to explain than = in an imperative language to non-programmers
20:44:17 <geekosaur> algol68, where you get both and need to know when to use each?
20:44:30 <monochrom> haha
20:45:17 × deadmarshal quits (~deadmarsh@95.38.116.69) (Ping timeout: 240 seconds)
20:46:09 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
20:50:55 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.4)
20:52:01 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
20:53:09 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
20:57:02 × jumper149 quits (~jumper149@static.6.71.203.116.clients.your-server.de) (Quit: WeeChat 3.3)
20:58:37 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
21:01:15 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
21:01:15 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
21:01:15 wroathe joins (~wroathe@user/wroathe)
21:02:45 alx741 joins (~alx741@157.100.93.160)
21:03:45 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
21:04:11 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
21:05:37 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
21:05:59 × rond_ quits (~rond_@2a01:115f:943:5e00:b66:5768:df7:4b57) (Quit: Client closed)
21:06:49 pavonia joins (~user@user/siracusa)
21:08:13 × abrantesasf quits (~abrantesa@187.36.170.211) (Remote host closed the connection)
21:11:57 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
21:14:41 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 256 seconds)
21:15:24 × coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Quit: coot)
21:21:01 × phma quits (phma@2001:5b0:215a:cac8:aefe:d82b:57fb:72c6) (Read error: Connection reset by peer)
21:21:26 × cryptomonad quits (~cryptomon@194.191.225.149) (Remote host closed the connection)
21:23:53 phma joins (~phma@host-67-44-208-205.hnremote.net)
21:26:11 × vysn quits (~vysn@user/vysn) (Ping timeout: 252 seconds)
21:29:01 × neurocyte0 quits (~neurocyte@user/neurocyte) (Ping timeout: 240 seconds)
21:30:17 alx741 joins (~alx741@157.100.93.160)
21:30:41 neurocyte09 joins (~neurocyte@IP-045128182210.dynamic.medianet-world.de)
21:30:42 × neurocyte09 quits (~neurocyte@IP-045128182210.dynamic.medianet-world.de) (Changing host)
21:30:42 neurocyte09 joins (~neurocyte@user/neurocyte)
21:31:28 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
21:31:28 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
21:31:28 wroathe joins (~wroathe@user/wroathe)
21:32:34 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
21:32:37 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
21:33:11 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
21:33:36 geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
21:34:25 × coolnickname quits (uid531864@user/coolnickname) (Quit: Connection closed for inactivity)
21:34:26 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
21:36:17 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
21:39:18 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
21:42:21 qrpnxz parts (~qrpnxz@user/qrpnxz) ()
21:43:49 × doyougnu quits (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
21:44:01 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
21:45:54 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
21:51:13 alx741 joins (~alx741@157.100.93.160)
21:55:50 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
21:59:14 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Remote host closed the connection)
22:03:38 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
22:05:16 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
22:12:09 alx741 joins (~alx741@157.100.93.160)
22:12:34 zincy_ joins (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d)
22:12:48 × zincy_ quits (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Remote host closed the connection)
22:13:28 zincy_ joins (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d)
22:14:12 alexd joins (~nineonine@50.216.62.2)
22:15:37 × Inst quits (~delicacie@2601:6c4:4080:3f80:f131:ad94:e07f:dfdd) (Ping timeout: 240 seconds)
22:16:41 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
22:17:36 little_mac joins (~little_ma@2601:410:4300:3ce0:54a9:bec8:b650:a634)
22:17:48 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
22:21:06 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
22:21:06 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
22:21:06 wroathe joins (~wroathe@user/wroathe)
22:22:24 acidjnk joins (~acidjnk@p200300d0c7271e93a97d350f09b0dd65.dip0.t-ipconnect.de)
22:22:24 acidjnk_new joins (~acidjnk@p200300d0c7271e93a97d350f09b0dd65.dip0.t-ipconnect.de)
22:23:14 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:29:29 × `2jt quits (~jtomas@153.red-83-53-252.dynamicip.rima-tde.net) (Ping timeout: 256 seconds)
22:33:58 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
22:34:02 × justIrresolute5 quits (~justache@user/justache) (Quit: Ping timeout (120 seconds))
22:34:53 alx741 joins (~alx741@157.100.93.160)
22:34:57 Sgeo joins (~Sgeo@user/sgeo)
22:35:23 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
22:36:27 x_kuru joins (~xkuru@user/xkuru)
22:37:30 × Midjak quits (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: Leaving)
22:37:51 × alexd quits (~nineonine@50.216.62.2) (Ping timeout: 256 seconds)
22:38:35 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
22:38:40 × xb0o2 quits (~xb0o2@user/xb0o2) (Quit: Client closed)
22:39:20 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
22:39:25 × xkuru quits (~xkuru@user/xkuru) (Ping timeout: 240 seconds)
22:41:22 Midjak joins (~Midjak@may53-1-78-226-116-92.fbx.proxad.net)
22:42:49 × zincy_ quits (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Remote host closed the connection)
22:46:46 × forell quits (~forell@user/forell) (Ping timeout: 268 seconds)
22:47:33 forell joins (~forell@user/forell)
22:48:59 jgeerds joins (~jgeerds@55d4ac73.access.ecotel.net)
22:57:26 alx741 joins (~alx741@157.100.93.160)
23:02:07 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:02:33 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
23:02:34 × alx741 quits (~alx741@157.100.93.160) (Read error: Connection reset by peer)
23:05:16 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
23:06:09 mud joins (~mud@user/kadoban)
23:08:13 Inst joins (~delicacie@2601:6c4:4080:3f80:6819:92d4:93fc:ed3b)
23:09:22 jushur joins (~human@user/jushur)
23:09:30 <Axman6> ImportQualifiedPost is the default in DAML, and I honestly wish it was turned on by default in Haskell, particularly since it doesn't break anything. so much nicer than the mess that "import qualified" creates
23:11:12 <geekosaur> it's in GHC2021, so default as of ghc 9.2
23:11:21 <Axman6> awww yisss
23:12:31 × Tuplanolla quits (~Tuplanoll@91-159-69-90.elisa-laajakaista.fi) (Quit: Leaving.)
23:12:53 × shapr quits (~user@2601:7c0:c202:5190:cecd:8e39:7234:9a0d) (Ping timeout: 252 seconds)
23:14:01 <awpr> as someone who currently maintains only Hackage libraries and no leaf application code: I'm really excited to switch over to this in 2032
23:14:03 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
23:14:16 <jackdk> I don't understand why this fires you up so much, Axman6.
23:14:37 × Inst quits (~delicacie@2601:6c4:4080:3f80:6819:92d4:93fc:ed3b) (Ping timeout: 240 seconds)
23:15:38 <hpc> jackdk: wadler's law
23:15:45 <Axman6> vertical alignment of code is very important, it makes it much easier for me to read, and the only way to do that with imports at the moment is by doing ugly things like tomsmeding's post above (https://paste.tomsmeding.com/bpwrBBcP).
23:16:35 justIrresolute joins (~justache@user/justache)
23:16:47 <Axman6> it also greatly reduces commit noise, if you have code where you had no qualified imports and then add one you need to change every import line. having post qualified imports means only that line changes
23:16:57 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
23:17:08 <Axman6> (because writing import Foo all the time when you have no qualified modules is insanity)
23:18:00 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
23:18:14 <Axman6> bring dyslexic makes this even more of a problem, trying to find mistakes in unaligned code is much harder
23:25:20 <EvanR> well, comments and imports arguably take up a lot of space in haskell relative to code
23:25:25 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
23:25:25 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
23:25:25 wroathe joins (~wroathe@user/wroathe)
23:25:37 <EvanR> worth bikeshedding xD
23:25:40 <lechner> the code is so short
23:25:58 <jackdk> I... don't really look at imports all that much
23:26:16 <EvanR> me neither, I press page down at the start of each file
23:26:24 <Axman6> I do when HLS decides it's not going to find GHC and stop working :)
23:28:24 <lechner> Thanks to whomever posted this Ruby talk earlier! Very nice https://tomstu.art/refactoring-ruby-with-monads
23:29:49 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:29:59 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
23:30:44 <Axman6> that was me
23:31:49 × Midjak quits (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep)
23:31:59 <lechner> thank you!
23:35:34 <EvanR> funny, apparently an operator can be a field name
23:36:03 <geekosaur> why not? (if nothing else, fields can be functions)
23:36:42 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 268 seconds)
23:36:44 <EvanR> I will now abuse this
23:36:57 <geekosaur> although I guess that becomes syntactically a little weird, unless RecordDotSyntax does something vaguely useful with it
23:37:19 <Hecate> I'm only using optics nowadays
23:38:06 <awpr> before QualifiedDo, this could be put to good use with RebindableSyntax as: `let MonadOps{..} = indexedMonadOps in do ...`
23:38:19 <awpr> (with QualifiedDo that trick isn't needed)
23:48:18 kupi joins (uid212005@id-212005.hampstead.irccloud.com)
23:49:09 <lechner> Hi, what's a good strategy, please, to interrupt a long-running program after it completed an external fork (loop)? In Perl, I used a keystroke. In Haskell, processing input is presumably more complicated. https://salsa.debian.org/lintian/kickoff/-/blob/history/runner#L99
23:49:17 × CiaoSen quits (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
23:50:40 <lechner> or maybe it's a monad in reverse, as in 'return' when there is Something as opposed to Nothing
23:51:03 × max22- quits (~maxime@2a01cb088335980086c6bc2422140675.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
23:51:55 <geekosaur> a separate thread that listens for keys and throws to the main thread?
23:52:03 <Axman6> ^C
23:52:28 <lechner> just catch SIGINT?
23:52:35 <geekosaur> signal handling in ghc's runtime is sadly atrocious; don't be surprised if the result is a core dump
23:52:52 <geekosaur> but yes, ignoring that SIGINT is a way to do it
23:53:03 <lechner> it'll end the program alright!
23:55:17 <lechner> is this still true? https://stackoverflow.com/a/34867087
23:56:47 <geekosaur> don't thread and fork in the same program
23:56:53 <geekosaur> in any language
23:57:00 <lechner> you are right
23:57:16 <geekosaur> fork makes all threads go away, and god alone knows what locked resources will never be unlocked
23:58:39 <geekosaur> that said, the reason signals are relayed to the main thread is not that they're specifically handled in a separate thread, it's that posix makes zero guarantees which thread receives the signal
23:58:53 <lechner> yeah
23:59:16 <geekosaur> so it's irrelevant without -threaded
23:59:33 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)

All times are in UTC on 2022-01-05.