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> | |
| 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.