2021/11/20

2021-11-20 00:00:05 +0100 <hpc> try querying the type of partially applied addition
2021-11-20 00:00:09 +0100 <hpc> see what type it gives you
2021-11-20 00:00:29 +0100 <hpc> and then just keep adding arguments
2021-11-20 00:00:32 +0100yahb(xsbot@user/mniip/bot/yahb) (Ping timeout: 268 seconds)
2021-11-20 00:01:26 +0100 <[itchyjunk]> it tells me its add :: Num a => a -> a -> a
2021-11-20 00:01:29 +0100max22-(~maxime@2a01cb08833598007605f3bf70b72c1c.ipv6.abo.wanadoo.fr)
2021-11-20 00:01:39 +0100 <monochrom> Yes. (+) has that type too.
2021-11-20 00:01:54 +0100 <monochrom> But "2+2" is not parsed as "2 (+ 2)".
2021-11-20 00:02:00 +0100lavaman(~lavaman@98.38.249.169)
2021-11-20 00:02:07 +0100 <monochrom> It is parsed as what I said.
2021-11-20 00:02:46 +0100 <pavonia> :t 2 (+2) -- for extra confusion
2021-11-20 00:02:47 +0100 <lambdabot> (Num a, Num ((a -> a) -> t)) => t
2021-11-20 00:03:23 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Quit: ERC (IRC client for Emacs 27.1))
2021-11-20 00:03:23 +0100 <hpc> :t 2 (+) 2 -- and certainly not this :D
2021-11-20 00:03:24 +0100 <lambdabot> (Num a, Num t1, Num ((a -> a -> a) -> t1 -> t2)) => t2
2021-11-20 00:04:50 +0100chexum_(~quassel@gateway/tor-sasl/chexum)
2021-11-20 00:04:51 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 276 seconds)
2021-11-20 00:04:54 +0100 <[itchyjunk]> ((+) 2) 2 so first i want to think about ((+) 2) part. here the type is (num -> num) and then for the ((+) 2)2 it then becomes (num->num)->num ?
2021-11-20 00:05:11 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 264 seconds)
2021-11-20 00:06:08 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2021-11-20 00:06:13 +0100 <pavonia> No, just num
2021-11-20 00:06:25 +0100yahb(xsbot@user/mniip/bot/yahb)
2021-11-20 00:06:31 +0100 <pavonia> The more arguments you apply, the less arrows
2021-11-20 00:06:36 +0100BobFang1992(~textual@152.37.66.232)
2021-11-20 00:07:22 +0100 <hpc> you can put all of these into ghci and test your own hypothesis, btw
2021-11-20 00:07:26 +0100 <[itchyjunk]> oh right, the result of ((+) 2)2 is 4 which has a type num .. hmmm
2021-11-20 00:07:31 +0100mimmy(~mimmy@146.70.75.189) (Ping timeout: 256 seconds)
2021-11-20 00:09:52 +0100 <sm> so then KILL is.... Keep It Lazy, Lummox ?
2021-11-20 00:10:48 +0100 <sm> Keep It Lean, Loon ?
2021-11-20 00:11:01 +0100 <monochrom> keep it lazy and lean. Hence, "OOM KILL" >:)
2021-11-20 00:11:06 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-11-20 00:11:21 +0100wagle(~wagle@quassel.wagle.io) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
2021-11-20 00:11:38 +0100 <sm> makes sense
2021-11-20 00:11:48 +0100 <monochrom> the "lazy" part refers to overcommitment. As someone in #haskell-tw put it, "happy malloc" i.e. malloc always succeeds :)
2021-11-20 00:11:53 +0100wagle(~wagle@quassel.wagle.io)
2021-11-20 00:12:52 +0100BobFang1992bobfang1992_
2021-11-20 00:13:02 +0100 <hpc> nah, malloc can return 0 sometimes
2021-11-20 00:13:05 +0100 <hpc> just push to the stack instead
2021-11-20 00:13:09 +0100 <hpc> /that/ never fails
2021-11-20 00:14:04 +0100 <monochrom> "malloc can return 0 sometimes" is on the same calibre as "environment variables can be visible to other users sometimes".
2021-11-20 00:14:05 +0100 <awpr> some allocators guarantee malloc success or abort
2021-11-20 00:14:15 +0100favonia(~favonia@user/favonia)
2021-11-20 00:15:04 +0100 <monochrom> I mean, if you're on Solaris or something, and sufficiently old version or something, sure.
2021-11-20 00:15:13 +0100 <awpr> the idea being that you probably can't do anything meaningful about a malloc failure anyway in 99% of software, so why include an extra opportunity for UB at every malloc call?
2021-11-20 00:15:26 +0100 <hpc> i am basing this on malloc(3)
2021-11-20 00:15:52 +0100 <monochrom> Oh, the envvar thing is also on some man page.
2021-11-20 00:15:54 +0100 <awpr> yeah, the POSIX spec allows it to fail IIRC
2021-11-20 00:16:38 +0100 <monochrom> There is still a difference between "the kernel can be configured to do this" and "statistically, how frequently?"
2021-11-20 00:18:17 +0100 <hpc> if we're doing that, we can statistically remove almost every case of error handling
2021-11-20 00:18:26 +0100 <hpc> because somewhere it's in a reliable tight loop
2021-11-20 00:18:35 +0100 <monochrom> Besides, overcommitment and happy malloc is also mentioned on the same man page.
2021-11-20 00:19:59 +0100 <hpc> overcommit is configurable at runtime
2021-11-20 00:20:10 +0100 <hpc> this can probably go into -offtopic :P
2021-11-20 00:20:29 +0100 <awpr> I must have misremembered something or transferred this property from the C++ allocator function to malloc, since I can't find a reference for malloc specifically being abort-or-succeed anywhere
2021-11-20 00:21:13 +0100burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection)
2021-11-20 00:23:06 +0100Cajun(~Cajun@user/cajun)
2021-11-20 00:23:44 +0100pfurla(~pfurla@2804:14d:5c81:4104:7d84:ffec:9a44:a68d)
2021-11-20 00:24:16 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f4b8:2aef:8963:2af8)
2021-11-20 00:24:54 +0100 <[itchyjunk]> wait, i think i got it. ((+) 2) 2. the (+) 2 part take 2 and returns a function num -> num so it looks like num -> (num -> num) and ((+)2)2 look like something that take two arguments and returns a num so num->num->num ?
2021-11-20 00:25:06 +0100 <monochrom> Yes.
2021-11-20 00:25:11 +0100 <[itchyjunk]> phew
2021-11-20 00:25:29 +0100 <monochrom> A pretty mechanical rule.
2021-11-20 00:27:12 +0100 <unit73e> newbies get all confused when ghc is saying "expected A but got C -> B" and that just means you're missing an argument lol
2021-11-20 00:27:30 +0100 <awpr> there's a difference between the type of the "topmost function" being applied and the type of the whole expression. `2+2` is just `Int` (or any other numerical type), but within that expression, `(+)` is `Int -> Int -> Int`
2021-11-20 00:27:44 +0100 <[itchyjunk]> unit73e, noted
2021-11-20 00:28:15 +0100 <Boarders_> do any of you know the haddock syntax for linking to Data.List.foldl1'?
2021-11-20 00:28:54 +0100 <monochrom> unit73e, sometimes the error message does include "perhaps wrong number of arguments"
2021-11-20 00:29:14 +0100 <awpr> applying an additional argument means two things: one, the "topmost function" must accept one more argument, i.e. its type must have one more arrow; and two, the entire expression accepts one less argument than before, i.e. its type has one _less_ arrow
2021-11-20 00:29:55 +0100 <monochrom> But there is a fundamental tension between error messages second-guessing beginner intentions and error messages second-guessing experienced intentions.
2021-11-20 00:30:12 +0100 <monochrom> My unpopular stance is never second-guess.
2021-11-20 00:30:39 +0100 <awpr> so if you have something like `(+) 2 :: Int -> Int` and apply that to one more argument, the whole expression's type has one less argument: `((+) 2) 2 :: Int`
2021-11-20 00:30:41 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 00:30:46 +0100 <monochrom> Well, either that, or the compiler is so smart it should write the code and get rid of the erroneous human already.
2021-11-20 00:31:23 +0100 <hpc> replace all human error with machine error
2021-11-20 00:32:21 +0100 <awpr> but on the other hand, if you have `f 2`, then you know `f :: Int -> r` for some `r`; but if you apply one more argument `(f 2) 2`, then `f` must be `Int -> Int -> r2` for some other `r2`. (still ignoring that it could be other numeric types instead of `Int`)
2021-11-20 00:33:23 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 264 seconds)
2021-11-20 00:33:31 +0100Successus(~Successus@gateway/tor-sasl/successus)
2021-11-20 00:35:02 +0100acidjnk(~acidjnk@2001:16b8:671e:6000:64a5:6a76:f3c4:2f23) (Ping timeout: 240 seconds)
2021-11-20 00:35:20 +0100 <monochrom> I agree there is a confusion, but my attribution is the words "expected" and "inferred", encouraging beginners to second-guess how important it is to take those two words seriously. (Answer: Very unimportant.)
2021-11-20 00:35:57 +0100 <monochrom> In this regard I agree with Hugs in just presenting two conflicting types without name-calling them.
2021-11-20 00:36:49 +0100lbseale_(~ep1ctetus@user/ep1ctetus)
2021-11-20 00:36:53 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-11-20 00:37:02 +0100connrs(~connrs@user/connrs) (Quit: ZNC 1.8.2 - https://znc.in)
2021-11-20 00:37:19 +0100connrs(~connrs@user/connrs)
2021-11-20 00:37:21 +0100 <hpc> you have to think like the compiler with that sort of error message
2021-11-20 00:37:54 +0100max22-(~maxime@2a01cb08833598007605f3bf70b72c1c.ipv6.abo.wanadoo.fr) (Quit: Leaving)
2021-11-20 00:38:20 +0100 <monochrom> I bet that experienced Haskellers don't care about "expected vs inferred" either.
2021-11-20 00:38:47 +0100 <hpc> "expected" is "based on the information in the program so far, this is what type fits in this part of your code"
2021-11-20 00:39:02 +0100 <hpc> and "inferred" is "this is what was found in this part of your code instead"
2021-11-20 00:39:17 +0100 <[itchyjunk]> blah :: (a -> b) -> [a] -> [b]. blah takes 2 arguments, namely a function of type (a->b) and a list of type [a] and produces a list of type [b]. the function f :: a -> b takes an argument of type a and produces somethign of type b. so blah f :: [a] -> [b] , partial application of f on blah produces a new function blah f that takes an argument of type [a] (map will elements of type a) and returns something of type [b] (map with elements
2021-11-20 00:39:17 +0100 <[itchyjunk]> of type b) ?
2021-11-20 00:39:36 +0100 <monochrom> Yes.
2021-11-20 00:39:56 +0100 <[itchyjunk]> okay i think i actually understand this then.. ;_;
2021-11-20 00:40:11 +0100 <awpr> except with "list" instead of "map" in the last sentence
2021-11-20 00:40:22 +0100 <monochrom> Ah I didn't read carefully heh
2021-11-20 00:40:28 +0100 <[itchyjunk]> ah list! right list!
2021-11-20 00:40:35 +0100 <sm> I see "expected" and "actual" here, did this change with ghc 9 ?
2021-11-20 00:40:38 +0100lbseale(~ep1ctetus@user/ep1ctetus) (Ping timeout: 260 seconds)
2021-11-20 00:40:51 +0100 <awpr> I remember it being "expected" and "actual"
2021-11-20 00:41:06 +0100 <geekosaur> it's been "expected" and "actual" since ghc6.6 at least, I have no idea where "inferred" came from
2021-11-20 00:41:07 +0100 <monochrom> Anyway, see how if you just follow the rules mechanically, if you forget that "intuition" and "understanding" is a thing, everything works.
2021-11-20 00:41:10 +0100 <hpc> i remember it being "expected" and "the other thing" :P
2021-11-20 00:41:27 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f4b8:2aef:8963:2af8) (Remote host closed the connection)
2021-11-20 00:41:36 +0100 <monochrom> Ah there was a time it said "inferred".
2021-11-20 00:41:41 +0100 <awpr> I slightly thought "expected" meant "the type in negative position as part of a function type" and "actual" meant "the type in positive position in a function application"
2021-11-20 00:42:12 +0100 <geekosaur> hm, maybe that means it did change in 9.x
2021-11-20 00:42:12 +0100 <geekosaur> since I'm still on 8.10.7
2021-11-20 00:42:12 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-11-20 00:42:31 +0100 <monochrom> And I liked it that way because I just told myself "e for external, i for internal" as a simple and yet pretty effective model.
2021-11-20 00:42:32 +0100 <sm> I look at expected and actual quite a bit, it seems to give better info than the Couldn't match type... line above
2021-11-20 00:43:12 +0100 <sm> ie, Expected seems to show the specialised type, not a fully general one
2021-11-20 00:43:29 +0100 <monochrom> I saw "actual" with GHC 8.10.7 just an hour ago.
2021-11-20 00:43:47 +0100 <sm> eg:
2021-11-20 00:43:47 +0100 <sm> • Couldn't match type ‘Screen’ with ‘GenericList Name V.Vector e0’
2021-11-20 00:43:47 +0100 <sm> Expected: List Name e0
2021-11-20 00:43:47 +0100 <sm> Actual: Screen
2021-11-20 00:43:52 +0100geekosaur(~geekosaur@xmonad/geekosaur)
2021-11-20 00:44:54 +0100 <sm> the Couldn't match type line also is harder to read because the order is not clear. I'm not sure why we shouldn't just remove it
2021-11-20 00:45:41 +0100 <hpc> hmm, what about, say you wrote a type error in (f a b)
2021-11-20 00:45:54 +0100 <hpc> expected: in (f _ b), _ :: A
2021-11-20 00:45:59 +0100 <hpc> actual: a :: B
2021-11-20 00:46:27 +0100 <hpc> plus or minus formatting
2021-11-20 00:47:01 +0100Jing(~hedgehog@2604:a840:3::1094) (Remote host closed the connection)
2021-11-20 00:47:04 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2021-11-20 00:47:27 +0100 <monochrom> sm, having those 3 lines is only since 9.0 or 9.2, right? Because on 8.10 I get 2 lines:
2021-11-20 00:47:30 +0100 <monochrom> > not "abc"
2021-11-20 00:47:32 +0100 <lambdabot> error:
2021-11-20 00:47:32 +0100 <lambdabot> • Couldn't match expected type ‘Bool’ with actual type ‘[Char]’
2021-11-20 00:47:32 +0100 <lambdabot> • In the first argument of ‘not’, namely ‘"abc"’
2021-11-20 00:47:40 +0100 <monochrom> err even one line
2021-11-20 00:47:40 +0100Jing(~hedgehog@2604:a840:3::1094)
2021-11-20 00:47:48 +0100 <sm> I see, yes I expect it has been changing
2021-11-20 00:48:09 +0100 <sm> maybe 9.4 will have elm/rust-level readability
2021-11-20 00:48:29 +0100 <awpr> I've been doing most of my compiling on 8.10.7 still, and I thought expected/actual was familiar error message formatting for a long time
2021-11-20 00:48:36 +0100bontaq(~user@ool-45779fe5.dyn.optonline.net)
2021-11-20 00:49:02 +0100 <awpr> could it be that it's omitted if the expected/actual types are no larger than the specific unification failure?
2021-11-20 00:49:27 +0100 <awpr> > map not "abc"
2021-11-20 00:49:28 +0100 <lambdabot> error:
2021-11-20 00:49:29 +0100 <lambdabot> • Couldn't match type ‘Char’ with ‘Bool’
2021-11-20 00:49:29 +0100 <lambdabot> Expected type: [Bool]
2021-11-20 00:49:57 +0100 <awpr> looks like it tried to print it there, at least
2021-11-20 00:50:06 +0100lbseale_(~ep1ctetus@user/ep1ctetus) (Quit: Leaving)
2021-11-20 00:50:56 +0100 <monochrom> Ah in that case 8.10.7 also gives 3 separate lines.
2021-11-20 00:51:09 +0100 <awpr> oh, yeah, it looks like it merged them into one -- above, "Couldn't match _expected_ type ... with _actual_ type ..."
2021-11-20 00:51:29 +0100 <geekosaur> my guess is it merges them when they'd say the same thing?
2021-11-20 00:51:38 +0100 <monochrom> Yeah.
2021-11-20 00:52:30 +0100 <monochrom> OK, not 'a' is a simple enough example that 9.2 also gives just one line, "Couldn't match expected type ‘Bool’ with actual type ‘Char’"
2021-11-20 00:53:23 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2021-11-20 00:56:15 +0100Guest98(~Guest98@2601:547:902:5e80:3c6c:c3e3:11e0:2f8)
2021-11-20 00:56:49 +0100tom__(~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684)
2021-11-20 00:57:31 +0100Successus(~Successus@gateway/tor-sasl/successus) ()
2021-11-20 00:57:49 +0100Feuermagier_(~Feuermagi@2a02:2488:4211:3400:b6fd:ec18:acf6:f1a8)
2021-11-20 00:57:53 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 268 seconds)
2021-11-20 00:58:47 +0100ouroboros_(~ouroboros@2804:14c:65e4:93f6::1001)
2021-11-20 00:58:52 +0100tom_(~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) (Remote host closed the connection)
2021-11-20 00:59:34 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2021-11-20 00:59:35 +0100ouro_boros(~ouroboros@2804:14c:65e4:93f6::1001) (Remote host closed the connection)
2021-11-20 00:59:35 +0100m4lvin(~m4lvin@w4eg.de) (Quit: No Ping reply in 180 seconds.)
2021-11-20 00:59:38 +0100averell(~averell@user/averell) (Quit: .)
2021-11-20 00:59:40 +0100m4lvin_(~m4lvin@w4eg.de)
2021-11-20 00:59:54 +0100averell(~averell@user/averell)
2021-11-20 01:02:32 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-11-20 01:04:45 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2021-11-20 01:09:30 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 01:10:01 +0100mikoto-chan(~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Quit: mikoto-chan)
2021-11-20 01:10:15 +0100mikoto-chan(~mikoto-ch@esm-84-240-99-143.netplaza.fi)
2021-11-20 01:17:16 +0100evocatus(~evocatus@213.193.2.105) (Quit: Leaving)
2021-11-20 01:25:23 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-20 01:31:35 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds)
2021-11-20 01:32:18 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-11-20 01:37:57 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f4b8:2aef:8963:2af8)
2021-11-20 01:39:31 +0100bobfang1992_(~textual@152.37.66.232) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-11-20 01:40:22 +0100sydddddd(~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) (Ping timeout: 260 seconds)
2021-11-20 01:52:58 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 260 seconds)
2021-11-20 01:52:59 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net)
2021-11-20 01:54:51 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 01:55:34 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-11-20 01:55:34 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-11-20 01:55:35 +0100wroathe(~wroathe@user/wroathe)
2021-11-20 01:57:27 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-11-20 01:58:37 +0100emf_(~emf@2620:10d:c090:400::5:5ceb) (Quit: emf_)
2021-11-20 01:58:59 +0100emf(~emf@2620:10d:c090:400::5:5ceb)
2021-11-20 01:59:43 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds)
2021-11-20 01:59:47 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-11-20 02:00:27 +0100Guest98(~Guest98@2601:547:902:5e80:3c6c:c3e3:11e0:2f8) (Quit: Client closed)
2021-11-20 02:06:58 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds)
2021-11-20 02:07:35 +0100emf(~emf@2620:10d:c090:400::5:5ceb) (Ping timeout: 264 seconds)
2021-11-20 02:10:48 +0100Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
2021-11-20 02:13:44 +0100favonia(~favonia@user/favonia) (Ping timeout: 268 seconds)
2021-11-20 02:16:32 +0100Guest|35(~Guest|35@S010684948ccddec3.vf.shawcable.net)
2021-11-20 02:18:02 +0100 <Guest|35> Can I install ghc on a macintosh with an m1 chip running monterey?
2021-11-20 02:19:05 +0100 <geekosaur> 8.10.7 recommended and you'll need to point it at /opt/llvm
2021-11-20 02:19:26 +0100 <geekosaur> 9.2.1 has a native codegen but some severe bugs were found post-release
2021-11-20 02:20:02 +0100 <geekosaur> ghcup should work fine to install either
2021-11-20 02:20:10 +0100 <glguy> Last time I tried I had some trouble where C libraries (openssl in my case) I wanted to use were using one architecture and GHC was compiling for the other
2021-11-20 02:20:15 +0100favonia(~favonia@user/favonia)
2021-11-20 02:21:41 +0100 <geekosaur> I *think* most of that has been resolved, there were some aberrant uses of `arch` that inappropriately forced x86_64 builds
2021-11-20 02:22:07 +0100 <geekosaur> also I think you need to find a native stack binary if you use that, or stack will try to build everything x86_64
2021-11-20 02:23:23 +0100 <glguy> OK,I'll have to give it a shot
2021-11-20 02:23:26 +0100 <glguy> another*
2021-11-20 02:23:49 +0100 <Guest|35> I don't mind whether it runs natively or not.. I have problems missing LLVM. I had further problems when i tried to install LLVM with home-brew.
2021-11-20 02:23:53 +0100 <geekosaur> possibly get stack from https://gitlab.haskell.org/maerwald/stack/-/jobs/849239/artifacts/browse/.local/bin/ ?
2021-11-20 02:24:36 +0100 <geekosaur> last I heard, a full working llvm is in /opt
2021-11-20 02:24:50 +0100 <geekosaur> you just have to convince ghc to look there
2021-11-20 02:27:01 +0100 <glguy> To get GHC to use my LLVM from homebrew I had to edit the lcc and opt keys in the ghc settings file
2021-11-20 02:29:09 +0100favonia(~favonia@user/favonia) (Ping timeout: 268 seconds)
2021-11-20 02:29:13 +0100 <sm> interesting
2021-11-20 02:29:58 +0100 <dsal> Guest|35: I'm running it fine out of nix
2021-11-20 02:30:24 +0100pfurla(~pfurla@2804:14d:5c81:4104:7d84:ffec:9a44:a68d) (Quit: gone to sleep. ZZZzzz…)
2021-11-20 02:34:35 +0100chomwitt(~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374) (Ping timeout: 264 seconds)
2021-11-20 02:36:29 +0100xyzaMan(~TheMan@85.203.34.97)
2021-11-20 02:38:30 +0100Guest|35(~Guest|35@S010684948ccddec3.vf.shawcable.net) (Quit: Ping timeout (120 seconds))
2021-11-20 02:51:23 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 264 seconds)
2021-11-20 02:53:18 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 02:53:54 +0100deadmarshal(~deadmarsh@95.38.119.181)
2021-11-20 02:55:21 +0100renzhi(~xp@2607:fa49:6500:b100::6e7f)
2021-11-20 02:58:39 +0100deadmarshal(~deadmarsh@95.38.119.181) (Ping timeout: 256 seconds)
2021-11-20 02:59:30 +0100xyzaMan(~TheMan@85.203.34.97) (Quit: WeeChat 3.3)
2021-11-20 03:02:07 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-11-20 03:02:29 +0100Vajb(~Vajb@nalkaylds2h97nzof-2.v6.elisa-mobile.fi)
2021-11-20 03:06:29 +0100alzgh(~alzgh@user/alzgh) (Remote host closed the connection)
2021-11-20 03:22:12 +0100Vajb(~Vajb@nalkaylds2h97nzof-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
2021-11-20 03:22:26 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-11-20 03:24:39 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2021-11-20 03:28:38 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-11-20 03:29:18 +0100econo(uid147250@user/econo)
2021-11-20 03:29:34 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 260 seconds)
2021-11-20 03:29:40 +0100Vajb(~Vajb@85-76-10-195-nat.elisa-mobile.fi)
2021-11-20 03:30:59 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
2021-11-20 03:39:41 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-11-20 03:39:41 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-11-20 03:39:41 +0100wroathe(~wroathe@user/wroathe)
2021-11-20 03:40:01 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2021-11-20 03:42:29 +0100alx741(~alx741@186.178.109.242) (Quit: alx741)
2021-11-20 03:43:48 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-11-20 03:45:37 +0100xff0x(~xff0x@2001:1a81:53ef:fb00:8923:f787:bbfb:445e) (Ping timeout: 268 seconds)
2021-11-20 03:47:06 +0100xff0x(~xff0x@2001:1a81:5231:4c00:b29b:34ce:44e1:612b)
2021-11-20 03:54:42 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net)
2021-11-20 03:56:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-20 03:59:26 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
2021-11-20 04:12:08 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 04:20:11 +0100slice(~slice@user/slice)
2021-11-20 04:22:38 +0100wroathe(~wroathe@user/wroathe) (Quit: Lost terminal)
2021-11-20 04:29:48 +0100waleee(~waleee@h-82-196-111-63.NA.cust.bahnhof.se) (Quit: WeeChat 3.3)
2021-11-20 04:30:42 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-11-20 04:34:40 +0100Axman6(~Axman6@user/axman6) (Ping timeout: 260 seconds)
2021-11-20 04:35:36 +0100favonia(~favonia@user/favonia)
2021-11-20 04:36:48 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 268 seconds)
2021-11-20 04:39:24 +0100xkuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2021-11-20 04:41:08 +0100zebrag(~chris@user/zebrag)
2021-11-20 04:50:42 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 04:52:50 +0100td_(~td@muedsl-82-207-238-169.citykom.de) (Ping timeout: 268 seconds)
2021-11-20 04:54:31 +0100td_(~td@muedsl-82-207-238-028.citykom.de)
2021-11-20 05:00:48 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net)
2021-11-20 05:02:47 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 264 seconds)
2021-11-20 05:05:35 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-11-20 05:08:05 +0100takenobu(uid459077@hampstead.irccloud.com)
2021-11-20 05:09:49 +0100unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Remote host closed the connection)
2021-11-20 05:11:07 +0100lavaman(~lavaman@98.38.249.169)
2021-11-20 05:11:11 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 264 seconds)
2021-11-20 05:23:11 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 264 seconds)
2021-11-20 05:25:06 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 05:26:27 +0100favonia(~favonia@user/favonia) (Quit: Leaving)
2021-11-20 05:29:57 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds)
2021-11-20 05:30:49 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 05:35:37 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds)
2021-11-20 05:38:01 +0100aegon(~mike@174.127.249.180) (Remote host closed the connection)
2021-11-20 05:47:33 +0100pfurla(~pfurla@2804:14d:5c81:4104:7d84:ffec:9a44:a68d)
2021-11-20 05:49:18 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2021-11-20 05:49:28 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 05:59:32 +0100renzhi(~xp@2607:fa49:6500:b100::6e7f) (Ping timeout: 240 seconds)
2021-11-20 06:08:51 +0100zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-11-20 06:18:36 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net)
2021-11-20 06:20:01 +0100monochrom(~trebla@216.138.220.146) (Quit: NO CARRIER)
2021-11-20 06:21:43 +0100whatsupdoc(uid509081@hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-20 06:22:31 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2021-11-20 06:23:29 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2021-11-20 06:23:47 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds)
2021-11-20 06:26:53 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-20 06:29:07 +0100bgamari(~bgamari@64.223.235.131) (Remote host closed the connection)
2021-11-20 06:29:26 +0100bgamari(~bgamari@64.223.235.131)
2021-11-20 06:32:11 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
2021-11-20 06:32:20 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net)
2021-11-20 06:36:28 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 06:36:45 +0100justsomeguy(~justsomeg@user/justsomeguy)
2021-11-20 06:41:21 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds)
2021-11-20 06:42:40 +0100flukiluke(~m-7humut@plum.alephc.xyz) (Remote host closed the connection)
2021-11-20 06:44:46 +0100justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3)
2021-11-20 06:45:20 +0100pfurla(~pfurla@2804:14d:5c81:4104:7d84:ffec:9a44:a68d) (Quit: gone to sleep. ZZZzzz…)
2021-11-20 06:52:56 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 06:55:24 +0100mbuf(~Shakthi@171.61.241.64)
2021-11-20 06:58:01 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 268 seconds)
2021-11-20 07:01:35 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-11-20 07:02:31 +0100BobFang1992(~textual@2a01:4b00:87fe:be00:5534:65fd:7:6614)
2021-11-20 07:03:58 +0100CannabisIndica(~herb@user/mesaboogie)
2021-11-20 07:05:01 +0100dyeplexer(~dyeplexer@user/dyeplexer)
2021-11-20 07:05:33 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-11-20 07:08:44 +0100MidAutumnMoon(~MidAutumn@user/midautumnmoon)
2021-11-20 07:10:49 +0100MidAutumnMoon6(~MidAutumn@user/midautumnmoon) (Ping timeout: 256 seconds)
2021-11-20 07:10:55 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 07:15:26 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 260 seconds)
2021-11-20 07:16:50 +0100takenobu(uid459077@hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-20 07:27:23 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 07:27:59 +0100flukiluke(~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962)
2021-11-20 07:28:01 +0100monochrom(trebla@216.138.220.146)
2021-11-20 07:31:47 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds)
2021-11-20 07:32:42 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
2021-11-20 07:33:56 +0100slice(~slice@user/slice) (Quit: zzz)
2021-11-20 07:33:59 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 264 seconds)
2021-11-20 07:34:03 +0100mvk(~mvk@2607:fea8:5cc1:fa00::4702) (Quit: Going elsewhere)
2021-11-20 07:34:44 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-11-20 07:40:54 +0100mimmy(~mimmy@146.70.75.149)
2021-11-20 07:44:53 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 07:49:21 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds)
2021-11-20 07:52:59 +0100slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-11-20 07:53:53 +0100ishutin(~ishutin@84-236-40-131.pool.digikabel.hu) (Ping timeout: 256 seconds)
2021-11-20 07:55:17 +0100ishutin(~ishutin@89-186-118-211.pool.digikabel.hu)
2021-11-20 07:57:50 +0100monochrom(trebla@216.138.220.146) (Ping timeout: 268 seconds)
2021-11-20 08:00:00 +0100monochrom(trebla@216.138.220.146)
2021-11-20 08:06:11 +0100deadmarshal(~deadmarsh@95.38.119.181)
2021-11-20 08:09:51 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-11-20 08:09:51 +0100Vajb(~Vajb@85-76-10-195-nat.elisa-mobile.fi) (Read error: Connection reset by peer)
2021-11-20 08:10:46 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-11-20 08:11:32 +0100mei(~mei@user/mei)
2021-11-20 08:17:15 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 08:18:23 +0100deadmarshal(~deadmarsh@95.38.119.181) (Ping timeout: 264 seconds)
2021-11-20 08:21:53 +0100mimmy(~mimmy@146.70.75.149) (Ping timeout: 268 seconds)
2021-11-20 08:22:10 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 260 seconds)
2021-11-20 08:25:46 +0100gehmehgeh(~user@user/gehmehgeh)
2021-11-20 08:26:55 +0100acidjnk(~acidjnk@2001:16b8:67ca:f700:e19c:d1d8:58a0:5a93)
2021-11-20 08:28:03 +0100zer0bitz(~zer0bitz@dsl-hkibng31-54fabc-15.dhcp.inet.fi) (Ping timeout: 268 seconds)
2021-11-20 08:31:26 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-11-20 08:33:52 +0100Lycurgus(~juan@98.4.112.204)
2021-11-20 08:46:59 +0100Codaraxis__(~Codaraxis@user/codaraxis)
2021-11-20 08:47:18 +0100mimmy(~mimmy@146.70.75.149)
2021-11-20 08:48:18 +0100vysn(~vysn@user/vysn)
2021-11-20 08:49:39 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 08:51:07 +0100Codaraxis_(~Codaraxis@user/codaraxis) (Ping timeout: 256 seconds)
2021-11-20 08:54:59 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 264 seconds)
2021-11-20 08:56:55 +0100deadmarshal(~deadmarsh@95.38.119.180)
2021-11-20 08:57:24 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-20 08:58:16 +0100mimmy(~mimmy@146.70.75.149) (Ping timeout: 268 seconds)
2021-11-20 09:03:31 +0100 <jle`> is there a ghc-pkg list that i can use within a cabal project?
2021-11-20 09:04:36 +0100 <jle`> ah i guess i can cabal freeze
2021-11-20 09:07:32 +0100BobFang1992(~textual@2a01:4b00:87fe:be00:5534:65fd:7:6614) (Quit: Textual IRC Client: www.textualapp.com)
2021-11-20 09:08:24 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 09:08:58 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-11-20 09:10:23 +0100mimmy(~mimmy@146.70.75.149)
2021-11-20 09:15:22 +0100mimmy(~mimmy@146.70.75.149) (Ping timeout: 260 seconds)
2021-11-20 09:15:51 +0100jrm(~jrm@156.34.187.65) (Quit: ciao)
2021-11-20 09:16:09 +0100jrm(~jrm@156.34.187.65)
2021-11-20 09:20:35 +0100max22-(~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
2021-11-20 09:23:50 +0100jmorris(uid433911@hampstead.irccloud.com)
2021-11-20 09:31:23 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net)
2021-11-20 09:31:47 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-11-20 09:32:32 +0100acidjnk(~acidjnk@2001:16b8:67ca:f700:e19c:d1d8:58a0:5a93) (Ping timeout: 240 seconds)
2021-11-20 09:33:38 +0100 <Tisoxin> Is there a project to implement anonymous sum types in Haskell (roc calls them „tags“: https://youtu.be/6qzWm_eoUXM?t=1008)?
2021-11-20 09:34:23 +0100 <Tisoxin> I have already found compound-types, but that's not quite what i want
2021-11-20 09:35:56 +0100 <Tisoxin> because I want to name constructors for better readibility
2021-11-20 09:36:11 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 265 seconds)
2021-11-20 09:36:29 +0100chomwitt(~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374)
2021-11-20 09:41:58 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 260 seconds)
2021-11-20 09:48:20 +0100mimmy(~mimmy@146.70.75.149)
2021-11-20 09:51:35 +0100AndrejKarpathy(~AndrejKar@182.64.9.106)
2021-11-20 09:51:43 +0100 <AndrejKarpathy> Hi.
2021-11-20 09:52:11 +0100 <jle`> AndrejKarpathy: hi :)
2021-11-20 09:52:48 +0100 <arahael> I'm about to install haskell and cabal for a musl system (Alpine), any caveats I should be aware of? Shoudl I use the distro packages or ?
2021-11-20 09:53:18 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 09:53:21 +0100 <jle`> AndrejKarpathy: your cars are very impressive, you must be very proud
2021-11-20 09:53:46 +0100mimmy(~mimmy@146.70.75.149) (Ping timeout: 268 seconds)
2021-11-20 09:54:38 +0100 <Lycurgus> arahael, this musl https://en.wikipedia.org/wiki/Musl ?
2021-11-20 09:54:59 +0100 <arahael> Lycurgus: Yes.
2021-11-20 09:55:11 +0100 <Lycurgus> in general using distro pkgs with hs is a bad idea
2021-11-20 09:55:15 +0100 <AndrejKarpathy> I had a question regarding the effects of Haskell code on the computational complexity of algorithms. Is there any significant change in it?  I'm working on a small Haskell project that undertakes the handling of certain test cases on Codeforces. Thanks in advance.
2021-11-20 09:55:22 +0100 <arahael> Lycurgus: Which is why I'm asking here. :)
2021-11-20 09:55:28 +0100 <Lycurgus> probably manifestly so for alpine
2021-11-20 09:55:34 +0100 <AndrejKarpathy> @Jle Thank you. I like the civic too
2021-11-20 09:55:34 +0100 <lambdabot> Maybe you meant: pl let
2021-11-20 09:55:58 +0100 <arahael> Lycurgus: Yeah?
2021-11-20 09:56:38 +0100 <Lycurgus> yes by virtue of the principle of less use/exposure
2021-11-20 09:56:55 +0100 <Lycurgus> -/eyes
2021-11-20 09:56:56 +0100 <jle`> AndrejKarpathy: the "same" algorithms have the same complexities. but certain algorithsm can be easier or harder to write in haskell than in other languages, and superficial syntax similiaries can be misleading
2021-11-20 09:57:38 +0100 <arahael> Lycurgus: I'll try ghcup.
2021-11-20 09:58:05 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 268 seconds)
2021-11-20 09:58:34 +0100 <Lycurgus> AndrejKarpathy, yeah at the source level easier but as far as the actual thing more work than with a simple algol like lang
2021-11-20 09:59:08 +0100 <Lycurgus> there are tools but with c you don't need em
2021-11-20 09:59:21 +0100 <AndrejKarpathy> Alright. Perfect answers, thank you jle`and Lycurgus
2021-11-20 09:59:48 +0100 <arahael> Lycurgus: Yeah, ghcup doesn't work.
2021-11-20 10:00:16 +0100 <arahael> Lycurgus: sh: /root/.ghcup/bin/ghcup: not found
2021-11-20 10:00:29 +0100 <arahael> Lycurgus: "_eghcup upgrade" failed!
2021-11-20 10:01:50 +0100 <Lycurgus> arahael, ack
2021-11-20 10:01:51 +0100 <arahael> Lycurgus: Looks like it's there but missing a whole bunch of libraries.
2021-11-20 10:02:09 +0100 <arahael> Eg, libtinfo.so.6 is missing.
2021-11-20 10:02:24 +0100chenjf(~chenjf@104.208.72.114)
2021-11-20 10:03:15 +0100chenjf(~chenjf@104.208.72.114) (Client Quit)
2021-11-20 10:03:17 +0100 <AndrejKarpathy> What is the Haskell community's collective outlook on Haskell being used as an official programming language in the competitive programming world? If possible, please mention the advantages and disadvantages of standardizing Haskell in accordance with competitive programming?
2021-11-20 10:04:18 +0100dschrempf(~dominik@62.240.134.78)
2021-11-20 10:04:27 +0100arahaelhates competitive programming - it's basically ego-stroking.
2021-11-20 10:05:37 +0100chenjf(~chenjf@104.208.72.114)
2021-11-20 10:07:15 +0100bontaq(~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection)
2021-11-20 10:07:38 +0100Lycurgus(~juan@98.4.112.204) (Quit: Exeunt)
2021-11-20 10:08:13 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f4b8:2aef:8963:2af8) (Remote host closed the connection)
2021-11-20 10:08:33 +0100acidjnk(~acidjnk@2001:16b8:67ca:f700:e19c:d1d8:58a0:5a93)
2021-11-20 10:10:20 +0100 <arahael> Though, I plan to do advent of code, I suppose that's competitive programming - but I tend to do that non-competitively.
2021-11-20 10:14:17 +0100 <Hecate> AndrejKarpathy: there is no collective outlook because there is no single Haskell community
2021-11-20 10:14:41 +0100 <Hecate> for example I'm certain the Russians will wholeheartedly agree that you should do Haskell for Competitive Programming
2021-11-20 10:15:16 +0100 <arahael> Haskell's popular in Russia?
2021-11-20 10:15:52 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 10:16:40 +0100chenjf(~chenjf@104.208.72.114) (Remote host closed the connection)
2021-11-20 10:16:57 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer)
2021-11-20 10:17:09 +0100 <AndrejKarpathy> All right. :]
2021-11-20 10:17:32 +0100geekosaur(~geekosaur@xmonad/geekosaur)
2021-11-20 10:18:23 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-11-20 10:19:03 +0100AndrejKarpathy(~AndrejKar@182.64.9.106) (Quit: Client closed)
2021-11-20 10:19:20 +0100 <Hecate> arahael: is Haskell even popular? ;)
2021-11-20 10:19:20 +0100Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
2021-11-20 10:19:38 +0100 <Hecate> but there is a Russian Haskellers community that exists and it's tightly-knit
2021-11-20 10:19:46 +0100 <arahael> Hecate: If that's a matter of opinion, then I'd say it is. ;)
2021-11-20 10:20:33 +0100 <Hecate> nah it's a matter of observing the real world
2021-11-20 10:21:23 +0100 <arahael> Hecate: God gives us but one Real World Token.
2021-11-20 10:21:47 +0100dschrempf(~dominik@62.240.134.78) (Ping timeout: 256 seconds)
2021-11-20 10:22:09 +0100zer0bitz(~zer0bitz@dsl-hkibng31-54fabc-15.dhcp.inet.fi)
2021-11-20 10:30:12 +0100mbuf(~Shakthi@171.61.241.64) (Quit: Leaving)
2021-11-20 10:31:02 +0100mimmy(~mimmy@146.70.75.149)
2021-11-20 10:32:08 +0100zer0bitz(~zer0bitz@dsl-hkibng31-54fabc-15.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-11-20 10:33:56 +0100zer0bitz(~zer0bitz@dsl-hkibng31-54fabc-15.dhcp.inet.fi)
2021-11-20 10:34:44 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net)
2021-11-20 10:37:05 +0100mimmy(~mimmy@146.70.75.149) (Ping timeout: 256 seconds)
2021-11-20 10:37:25 +0100sagax(~sagax_nb@user/sagax) (Ping timeout: 250 seconds)
2021-11-20 10:38:07 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:b4a8:9431:5c1:c0e0)
2021-11-20 10:39:07 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-11-20 10:43:44 +0100deadmarshal(~deadmarsh@95.38.119.180) (Ping timeout: 268 seconds)
2021-11-20 10:45:22 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 260 seconds)
2021-11-20 10:47:07 +0100dschrempf(~dominik@62.240.134.78)
2021-11-20 10:49:18 +0100deadmarshal(~deadmarsh@95.38.119.180)
2021-11-20 10:49:38 +0100slice(~slice@user/slice)
2021-11-20 10:51:54 +0100dschrempf(~dominik@62.240.134.78) (Ping timeout: 260 seconds)
2021-11-20 10:58:53 +0100mc47(~mc47@xmonad/TheMC47)
2021-11-20 11:00:59 +0100deadmarshal(~deadmarsh@95.38.119.180) (Ping timeout: 264 seconds)
2021-11-20 11:05:27 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net)
2021-11-20 11:10:07 +0100Midjak(~Midjak@82-65-111-221.subs.proxad.net)
2021-11-20 11:10:14 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2021-11-20 11:13:56 +0100deadmarshal(~deadmarsh@95.38.119.180)
2021-11-20 11:15:17 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 11:15:35 +0100euouae-(~euouae@user/euouae)
2021-11-20 11:15:45 +0100 <euouae-> Hello what are some good benchmarking packages for speed and memory?
2021-11-20 11:16:25 +0100 <Hecate> euouae-: https://hackage.haskell.org/package/tasty-bench
2021-11-20 11:16:27 +0100 <euouae-> I'm reading https://chrisdone.com/posts/fast-haskell-c-parsing-xml/ which mentions the 'weigh' package for memory tracking
2021-11-20 11:17:32 +0100 <euouae-> Hecate, thank you
2021-11-20 11:20:06 +0100ubert(~Thunderbi@p200300ecdf0ba279e6b318fffe838f33.dip0.t-ipconnect.de)
2021-11-20 11:20:51 +0100 <euouae-> Hecate, how can I use tasty-bench with stack instead of cabal?
2021-11-20 11:21:44 +0100 <euouae-> Hecate nevermind me, I misread the instructions. It's like every other package.
2021-11-20 11:22:18 +0100Midjak(~Midjak@82-65-111-221.subs.proxad.net) (Ping timeout: 260 seconds)
2021-11-20 11:23:27 +0100ubert(~Thunderbi@p200300ecdf0ba279e6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-11-20 11:24:45 +0100desantra(~skykanin@user/skykanin)
2021-11-20 11:25:55 +0100sydddddd(~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net)
2021-11-20 11:27:59 +0100chomwitt(~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374) (Ping timeout: 264 seconds)
2021-11-20 11:28:52 +0100 <euouae-> Actually, I don't understand how to write benchmarks with stack, `stack bench --help` doesn't have information on the package.yaml syntax and I can't find it in the docs either.
2021-11-20 11:30:32 +0100Midjak(~Midjak@82-65-111-221.subs.proxad.net)
2021-11-20 11:30:49 +0100 <euouae-> I guess I'll look up a popular package and see how they do it
2021-11-20 11:32:41 +0100 <Hecate> euouae-: stack bench is just a shortcut to run the benchmarks stanza of your Cabal file, not write them
2021-11-20 11:33:04 +0100 <euouae-> Hmmm so maybe I should `stack --help` and go from there
2021-11-20 11:34:29 +0100hololeap(~hololeap@user/hololeap) (Remote host closed the connection)
2021-11-20 11:34:46 +0100 <euouae-> for example `hspec` seems to use stack but it doesn't have any benchmarks
2021-11-20 11:34:56 +0100chomwitt(~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374)
2021-11-20 11:35:02 +0100 <Hecate> euouae-: `stack` is just a CLI tool to run builds, tests and benchmarks
2021-11-20 11:35:21 +0100 <Hecate> learn how to make benchmarks, `stack` is just how you call them, and is interchangeable with `cabal`
2021-11-20 11:35:56 +0100 <euouae-> But stack is using the files `package.yaml` and `stack.yaml` which cabal doesn't know about, and package.yaml is where you specify the unit tests
2021-11-20 11:35:58 +0100hololeap(~hololeap@user/hololeap)
2021-11-20 11:36:07 +0100 <Hecate> no
2021-11-20 11:36:11 +0100 <Hecate> stack uses the cabal file
2021-11-20 11:36:29 +0100 <Hecate> package.yaml is turned into *.cabal through the use of a tool called hpack, which stack uses
2021-11-20 11:36:33 +0100 <euouae-> It generates a cabal file
2021-11-20 11:36:49 +0100 <Hecate> stack.yaml is only here for dependency resolution, not calling tests and benchmarks
2021-11-20 11:37:09 +0100 <Hecate> you should maybe read the Stack manual if you want to use it
2021-11-20 11:37:16 +0100 <euouae-> OK so if I learn about cabal and how hpack works, I'll figure it out
2021-11-20 11:37:27 +0100 <euouae-> right
2021-11-20 11:37:31 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:b4a8:9431:5c1:c0e0) (Remote host closed the connection)
2021-11-20 11:40:05 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net)
2021-11-20 11:45:05 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-11-20 11:47:14 +0100xff0x(~xff0x@2001:1a81:5231:4c00:b29b:34ce:44e1:612b) (Ping timeout: 268 seconds)
2021-11-20 11:47:32 +0100xff0x(~xff0x@2001:1a81:5231:4c00:af6c:e4ce:ed0b:b587)
2021-11-20 11:48:29 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds)
2021-11-20 11:50:49 +0100lambdap(~lambdap@static.167.190.119.168.clients.your-server.de) (Quit: lambdap)
2021-11-20 11:51:10 +0100lambdap(~lambdap@static.167.190.119.168.clients.your-server.de)
2021-11-20 11:51:56 +0100 <maerwald> arahael: ghcup should work on alpine
2021-11-20 11:52:27 +0100 <maerwald> because ghcup binaries are built on alpine...
2021-11-20 11:53:02 +0100 <arahael> maerwald: Ah, good to know, that probably means there's just a dependency or two it's missed.
2021-11-20 11:53:39 +0100 <maerwald> well, I don't know the error
2021-11-20 11:54:32 +0100 <arahael> maerwald: It's a minimal system, ghcup is literally the first thing that's added.
2021-11-20 11:54:49 +0100 <maerwald> you need curl at least
2021-11-20 11:56:12 +0100 <arahael> Yeah, I tried, found curl wasn't installed, instaleld that, and then now stuck, but I ahven't been trying hard as I'm a bit lazy today.
2021-11-20 11:56:18 +0100 <arahael> It's missing the following libraries:
2021-11-20 11:56:20 +0100 <maerwald> works here https://imgur.com/He0FQpE.png
2021-11-20 11:56:32 +0100 <arahael> libtinfo.so.6, libnuma.so.1
2021-11-20 11:56:48 +0100slice(~slice@user/slice) (Quit: zzz)
2021-11-20 11:57:23 +0100 <arahael> I'm on alpine 3.14, though actually I should update just in case.
2021-11-20 11:57:36 +0100 <maerwald> I still don't understand what exactly failed, you're only giving half the information
2021-11-20 11:59:16 +0100 <arahael> There's two libraries that are missing on my system that's required by ghcup, and a bunch of symbols which, I assume, are provided by those libraries.
2021-11-20 11:59:31 +0100 <maerwald> ghcup binary is static, it needs nothing
2021-11-20 11:59:40 +0100 <arahael> Uh? That's weird, then.
2021-11-20 12:00:03 +0100 <arahael> It's definintely dynamic here.
2021-11-20 12:00:20 +0100 <maerwald> / # ldd ~/.ghcup/bin/ghcup
2021-11-20 12:00:22 +0100 <maerwald> /lib/ld-musl-i386.so.1: /root/.ghcup/bin/ghcup: Not a valid dynamic program
2021-11-20 12:00:34 +0100 <arahael> Yeah, that's what I'm running, and it's definitely dynamic.
2021-11-20 12:00:47 +0100alx741(~alx741@186.178.109.242)
2021-11-20 12:01:05 +0100 <maerwald> what's the checksum of the binary
2021-11-20 12:01:09 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 12:01:29 +0100 <arahael> The sha256sum is...
2021-11-20 12:02:13 +0100 <arahael> 5a3075337...2974c4a2. First and last 8 characters or so of the hash.
2021-11-20 12:02:27 +0100 <arahael> More than that and the chance I make a typo becomes pretty high. :)
2021-11-20 12:02:31 +0100 <maerwald> what's the architecture?
2021-11-20 12:02:36 +0100 <arahael> aarm64
2021-11-20 12:02:47 +0100 <arahael> aarch64*. ARM 64, anyway.
2021-11-20 12:02:48 +0100 <maerwald> well, yeah... there are no static binaries for that arch
2021-11-20 12:03:03 +0100 <arahael> That explains the mystery!
2021-11-20 12:03:19 +0100 <maerwald> because there's no GHC aarch64 musl bindist
2021-11-20 12:04:04 +0100 <maerwald> and alpine repos don't have one either
2021-11-20 12:04:10 +0100 <maerwald> no one ever bootstrapped one
2021-11-20 12:04:37 +0100hololeap(~hololeap@user/hololeap) (Remote host closed the connection)
2021-11-20 12:04:38 +0100 <euouae-> Why is - -with-rtsopts="-A32m -T" giving me an error about -T" being an unknown option?
2021-11-20 12:04:39 +0100 <arahael> Hmm. And I'm guessing that means I can't build static haskell applicatiosn on this either (unless I were to bootstrap one, and that's probably a bit over my head at the moment)
2021-11-20 12:05:03 +0100 <euouae-> in package.yaml
2021-11-20 12:05:57 +0100hololeap(~hololeap@user/hololeap)
2021-11-20 12:06:03 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds)
2021-11-20 12:06:37 +0100 <arahael> Looks like this is https://github.com/haskell/cabal/issues/6715
2021-11-20 12:06:55 +0100 <arahael> (Closed, but only because they want it solved by #6616)
2021-11-20 12:07:01 +0100CiaoSen(~Jura@p200300c95716ce002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2021-11-20 12:07:57 +0100 <maerwald> arahael: that's about normal linux arm
2021-11-20 12:08:01 +0100 <maerwald> and that's already solved
2021-11-20 12:08:35 +0100 <arahael> Ah, so it's the musl one that's peculiar, then.
2021-11-20 12:08:44 +0100 <maerwald> musl is always peculiar
2021-11-20 12:09:10 +0100 <arahael> Heh.
2021-11-20 12:09:22 +0100 <arahael> Well, it sounds like I can make do with a dynamically linked one, at least.
2021-11-20 12:09:27 +0100neurocyte0132889(~neurocyte@94.46.77.154)
2021-11-20 12:09:27 +0100neurocyte0132889(~neurocyte@94.46.77.154) (Changing host)
2021-11-20 12:09:27 +0100neurocyte0132889(~neurocyte@user/neurocyte)
2021-11-20 12:09:32 +0100 <arahael> Just gotta find these libs - which isn't going to be today. (It's getting late)
2021-11-20 12:09:49 +0100 <arahael> Would've been nice if it was static, but it's not a big deal.
2021-11-20 12:11:03 +0100mimmy(~mimmy@146.70.75.148)
2021-11-20 12:13:13 +0100 <arahael> maerwald: I see your name pops up in a few of those tickets :) I'm happy to raise a bug report if you want, but not today - perhaps tomorrow? However, I'm really quite OK with finding these libs and bootstrapping it that way. I can probably just get all the required libs by installing the alpine ghc anyway.
2021-11-20 12:14:51 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-20 12:14:51 +0100tv(~tv@user/tv) (Read error: Connection reset by peer)
2021-11-20 12:15:58 +0100mimmy(~mimmy@146.70.75.148) (Ping timeout: 260 seconds)
2021-11-20 12:16:24 +0100 <maerwald> there is no alpine ghc on aarch64
2021-11-20 12:18:08 +0100 <arahael> Ah, ha!
2021-11-20 12:18:31 +0100 <arahael> Looks like that might be a bit tricky, then! Well, will check it out tomorrow.
2021-11-20 12:18:32 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 12:18:36 +0100 <arahael> G'night. :)
2021-11-20 12:19:38 +0100 <arahael> (And thanks)
2021-11-20 12:22:32 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-11-20 12:27:06 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.3)
2021-11-20 12:29:13 +0100DNH(~DNH@2a02:8108:1100:16d8:d0f4:92d3:1aef:5b27)
2021-11-20 12:31:19 +0100zincy_(~zincy@2a00:23c8:970c:4801:78f3:43f3:fd48:5ac3)
2021-11-20 12:32:01 +0100euouae-(~euouae@user/euouae) (Quit: )
2021-11-20 12:32:47 +0100tv(~tv@user/tv)
2021-11-20 12:35:12 +0100Successus(~Successus@gateway/tor-sasl/successus)
2021-11-20 12:36:16 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3)
2021-11-20 12:38:00 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-11-20 12:38:47 +0100sydddddd(~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) (Ping timeout: 264 seconds)
2021-11-20 12:42:19 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2021-11-20 12:42:20 +0100zincy_(~zincy@2a00:23c8:970c:4801:78f3:43f3:fd48:5ac3) (Remote host closed the connection)
2021-11-20 12:49:35 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-11-20 12:50:05 +0100sydddddd(~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net)
2021-11-20 12:50:54 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 260 seconds)
2021-11-20 12:53:55 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-11-20 12:57:51 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net)
2021-11-20 13:02:34 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 265 seconds)
2021-11-20 13:06:18 +0100sydddddd(~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) (Quit: Lost terminal)
2021-11-20 13:07:12 +0100Nrmncr(~Neuromanc@user/neuromancer)
2021-11-20 13:11:06 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 265 seconds)
2021-11-20 13:12:58 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-11-20 13:13:35 +0100jmorris(uid433911@hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-20 13:18:12 +0100mimmy(~mimmy@146.70.75.148)
2021-11-20 13:21:20 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 13:22:33 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
2021-11-20 13:24:03 +0100mimmy(~mimmy@146.70.75.148) (Ping timeout: 268 seconds)
2021-11-20 13:24:56 +0100Techcable(~Techcable@168.235.93.147) (Quit: ZNC - https://znc.in)
2021-11-20 13:26:13 +0100Techcable(~Techcable@168.235.93.147)
2021-11-20 13:27:55 +0100Guest17(~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2021-11-20 13:27:59 +0100xff0x(~xff0x@2001:1a81:5231:4c00:af6c:e4ce:ed0b:b587) (Ping timeout: 264 seconds)
2021-11-20 13:31:27 +0100monochrom(trebla@216.138.220.146) (Ping timeout: 268 seconds)
2021-11-20 13:34:41 +0100monochrom(~trebla@216.138.220.146)
2021-11-20 13:38:44 +0100Everything(~Everythin@37.115.210.35)
2021-11-20 13:38:58 +0100CiaoSen(~Jura@p200300c95716ce002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-11-20 13:40:08 +0100xff0x(~xff0x@2001:1a81:5231:4c00:af6c:e4ce:ed0b:b587)
2021-11-20 13:44:48 +0100FragByte(~christian@user/fragbyte) (Quit: Quit)
2021-11-20 13:46:28 +0100amk(~amk@109.255.169.126) (Remote host closed the connection)
2021-11-20 13:46:38 +0100FragByte(~christian@user/fragbyte)
2021-11-20 13:46:39 +0100amk(~amk@109.255.169.126)
2021-11-20 13:48:10 +0100fabfianda(~fabfianda@net-93-148-114-144.cust.dsl.teletu.it)
2021-11-20 13:48:15 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-11-20 13:51:11 +0100deadmarshal(~deadmarsh@95.38.119.180) (Ping timeout: 268 seconds)
2021-11-20 13:52:30 +0100fabfianda(~fabfianda@net-93-148-114-144.cust.dsl.teletu.it) (Ping timeout: 260 seconds)
2021-11-20 13:53:34 +0100fabfianda(~fabfianda@mob-5-90-247-119.net.vodafone.it)
2021-11-20 13:56:11 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 264 seconds)
2021-11-20 13:57:35 +0100deadmarshal(~deadmarsh@95.38.119.180)
2021-11-20 13:57:40 +0100max22-(~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 265 seconds)
2021-11-20 14:07:44 +0100pfurla(~pfurla@2804:14d:5c81:4104:d41b:9326:c4d8:9f2a)
2021-11-20 14:08:19 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 14:12:19 +0100sagax(~sagax_nb@user/sagax)
2021-11-20 14:18:55 +0100__monty__(~toonn@user/toonn)
2021-11-20 14:19:00 +0100bitdex_(~bitdex@gateway/tor-sasl/bitdex)
2021-11-20 14:19:36 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
2021-11-20 14:23:22 +0100deadmarshal(~deadmarsh@95.38.119.180) (Ping timeout: 260 seconds)
2021-11-20 14:25:02 +0100xff0x(~xff0x@2001:1a81:5231:4c00:af6c:e4ce:ed0b:b587) (Remote host closed the connection)
2021-11-20 14:25:20 +0100xff0x(~xff0x@2001:1a81:5231:4c00:cc14:8453:5a9c:d44b)
2021-11-20 14:25:33 +0100deadmarshal(~deadmarsh@95.38.119.180)
2021-11-20 14:27:02 +0100acidjnk(~acidjnk@2001:16b8:67ca:f700:e19c:d1d8:58a0:5a93) (Ping timeout: 240 seconds)
2021-11-20 14:31:11 +0100pfurla(~pfurla@2804:14d:5c81:4104:d41b:9326:c4d8:9f2a) (Quit: gone to sleep. ZZZzzz…)
2021-11-20 14:34:48 +0100fabfianda(~fabfianda@mob-5-90-247-119.net.vodafone.it) (Read error: Connection reset by peer)
2021-11-20 14:34:57 +0100fabfianda(~fabfianda@net-93-148-114-144.cust.vodafonedsl.it)
2021-11-20 14:42:48 +0100jkaye(~jkaye@216.53.205.34)
2021-11-20 14:43:01 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds)
2021-11-20 14:45:15 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-20 14:46:37 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2021-11-20 14:48:22 +0100mei(~mei@user/mei) (Quit: mei)
2021-11-20 14:49:46 +0100deadmarshal(~deadmarsh@95.38.119.180) (Ping timeout: 268 seconds)
2021-11-20 14:49:52 +0100mei(~mei@user/mei)
2021-11-20 14:54:20 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 14:56:04 +0100mimmy(~mimmy@146.70.75.149)
2021-11-20 14:57:23 +0100acidjnk(~acidjnk@2001:16b8:67ca:f700:e19c:d1d8:58a0:5a93)
2021-11-20 14:59:01 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 268 seconds)
2021-11-20 14:59:59 +0100euouae(~euouae@user/euouae)
2021-11-20 15:00:32 +0100 <euouae> Hello how can I memoize the function (a -> a) -> a -> [a] given by [x, f x, f $ f x, f $ f $ f x, ...]
2021-11-20 15:00:37 +0100Xnuk(~xnuk@vultr.xnu.kr)
2021-11-20 15:00:43 +0100deadmarshal(~deadmarsh@95.38.119.180)
2021-11-20 15:00:59 +0100mimmy(~mimmy@146.70.75.149) (Ping timeout: 264 seconds)
2021-11-20 15:01:37 +0100dschrempf(~dominik@62.240.134.78)
2021-11-20 15:01:38 +0100 <hololeap> euouae: you could use the monad-memo package
2021-11-20 15:02:07 +0100 <euouae> hm, that looks nicer than the memoize package, which has very little docs
2021-11-20 15:02:25 +0100dschrempf(~dominik@62.240.134.78) (Client Quit)
2021-11-20 15:02:29 +0100 <hololeap> I've used it before. you can also roll your own pretty easily
2021-11-20 15:04:00 +0100 <hololeap> but you will necessarily end up with something that looks like: (a -> m a) -> a -> m [a]
2021-11-20 15:05:12 +0100gg(~gg@2a01:e0a:819:1510:8568:3ca4:33bc:8c5b) (Ping timeout: 268 seconds)
2021-11-20 15:08:32 +0100viole(~viole@user/viole) (Ping timeout: 240 seconds)
2021-11-20 15:09:29 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2021-11-20 15:09:58 +0100 <euouae> thanks
2021-11-20 15:10:22 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 15:12:51 +0100 <euouae> If I have a vector of N elements and I'd like to iterate over all k-tuples with elements fron that vector, how can I do it without building a vector of N^k elements?
2021-11-20 15:13:08 +0100 <euouae> One way is by using indices, maybe that's it?
2021-11-20 15:14:03 +0100Xnuk(~xnuk@vultr.xnu.kr) (Remote host closed the connection)
2021-11-20 15:14:51 +0100 <hpc> you just make the list of tuples and loop over it
2021-11-20 15:15:11 +0100 <euouae> I'm assuming N,k large
2021-11-20 15:15:14 +0100 <hpc> the whole list won't be in memory at once unless you need all of it at the same time, or hold onto a reference to it
2021-11-20 15:15:25 +0100 <hpc> a list is just a loop waiting to happen :D
2021-11-20 15:15:44 +0100 <euouae> I don't understand, can it really be true?
2021-11-20 15:15:59 +0100 <hpc> > [1..] -- unless you think lambdabot has infinite memory, it must be true :D
2021-11-20 15:16:01 +0100 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,...
2021-11-20 15:16:13 +0100 <hpc> laziness in action
2021-11-20 15:16:25 +0100 <euouae> You're saying I can have e.g. let xs = map f [1..n], and then you can loop over k-tuples and what is the space/time analysis
2021-11-20 15:17:33 +0100kuribas(~user@ptr-25vy0i85dt12hx5mopu.18120a2.ip6.access.telenet.be)
2021-11-20 15:17:54 +0100 <euouae> I'm not convinced :P
2021-11-20 15:17:58 +0100 <hpc> as long as you write it so there's no lingering references to parts of the list you have already looped over, it will be f*n
2021-11-20 15:18:19 +0100 <euouae> but the list is looped over k elements
2021-11-20 15:18:35 +0100 <euouae> e.g. [g a b c d ... z | a <- xs, b <- xs, ... z <- xs]
2021-11-20 15:19:03 +0100 <euouae> so up until the very last few iterations, all elements are needed, right?
2021-11-20 15:19:03 +0100 <hpc> oh, i was misreading what xs was there
2021-11-20 15:19:22 +0100 <hpc> all elements of xs, sure
2021-11-20 15:19:22 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-11-20 15:19:33 +0100notzmv(~zmv@user/notzmv)
2021-11-20 15:19:42 +0100 <hpc> but that fits in memory anyway, since that's a precondition to your question
2021-11-20 15:20:16 +0100 <euouae> right. oh yeah. but [ g ...] is an N^k list.
2021-11-20 15:20:20 +0100 <hpc> [g a b ...] will not all be in memory at once unless you hold onto a reference to it
2021-11-20 15:20:31 +0100 <euouae> Oh, I see!
2021-11-20 15:20:48 +0100 <euouae> Very nice, thanks
2021-11-20 15:21:05 +0100Lycurgus(~juan@98.4.112.204)
2021-11-20 15:22:40 +0100 <kuribas> I wish more libraries would use abstractions such as monad, aplicative, (pro)functor, etc...
2021-11-20 15:23:26 +0100renzhi(~xp@2607:fa49:6500:b100::6e7f)
2021-11-20 15:23:42 +0100 <kuribas> Looking at graphql libraries, the choice is either: a dynamically typed library following the javascript model, a fancy type level library (alla servant), and even more crazy, a library that uses your database schema as the API.
2021-11-20 15:24:23 +0100cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2021-11-20 15:24:38 +0100 <Lycurgus> speaking of which, does impredication in 9 break much stuff or it can easily be turned off to be 8 like?
2021-11-20 15:24:52 +0100 <geekosaur> it defaults off
2021-11-20 15:24:59 +0100 <Lycurgus> ah
2021-11-20 15:25:06 +0100 <kuribas> What does impredication allow?
2021-11-20 15:25:13 +0100 <geekosaur> it's just a fixed ImpredicativeTypes, which was always a hack before that
2021-11-20 15:26:04 +0100 <kuribas> Does it mean you can return polymorphic functions from a function?
2021-11-20 15:27:16 +0100geekosauris actually not sure, this goes beyond his small understanding of type theory
2021-11-20 15:27:40 +0100 <geekosaur> I think it allows inference of forall-ed types
2021-11-20 15:27:41 +0100 <Franciman> kuribas: it allows
2021-11-20 15:27:44 +0100 <Franciman> \x. x x
2021-11-20 15:27:46 +0100 <Franciman> to be well typed
2021-11-20 15:27:59 +0100 <Franciman> but you can never use it :P except for applying it to id
2021-11-20 15:28:25 +0100 <geekosaur> to an extent at least, since ghc's type inference doesn't really support rank-2 polymorphism and rank >2 is undecidable
2021-11-20 15:28:37 +0100 <Franciman> yes you can return \forall x. x -> y
2021-11-20 15:29:04 +0100 <kuribas> I don't care about infering rank-2 or type extensions.
2021-11-20 15:29:34 +0100acidjnk(~acidjnk@2001:16b8:67ca:f700:e19c:d1d8:58a0:5a93) (Ping timeout: 260 seconds)
2021-11-20 15:29:43 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-11-20 15:35:39 +0100 <hololeap> I care about your bear
2021-11-20 15:35:59 +0100mimmy(~mimmy@146.70.75.150)
2021-11-20 15:36:02 +0100 <kuribas> hololeap: I don't have a bear...
2021-11-20 15:36:05 +0100 <kuribas> I have cat though
2021-11-20 15:36:17 +0100 <hololeap> close enough
2021-11-20 15:36:38 +0100jkaye(~jkaye@216.53.205.34) (Ping timeout: 260 seconds)
2021-11-20 15:39:23 +0100Guest17(~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed)
2021-11-20 15:39:34 +0100kupi(uid212005@hampstead.irccloud.com)
2021-11-20 15:39:57 +0100 <euouae> Suppose I want the functionality `lookup x xs` to be fast, as well as `add x xs` and `remove x xs`. What data structure should I be using? Hash table?
2021-11-20 15:40:19 +0100 <euouae> the adds won't be many, but there will be a lot of lookups
2021-11-20 15:40:46 +0100 <euouae> and there will be a lot of "modify" so to speak, I basically store (x,y) values where x is used for lookup and y is updated
2021-11-20 15:41:46 +0100 <euouae> IntMap would do, x is an int
2021-11-20 15:41:47 +0100fabfianda(~fabfianda@net-93-148-114-144.cust.vodafonedsl.it) (Ping timeout: 264 seconds)
2021-11-20 15:41:53 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-11-20 15:42:03 +0100slice(~slice@user/slice)
2021-11-20 15:42:12 +0100 <geekosaur> if x is an Int you probably want IntMap, yeh
2021-11-20 15:42:14 +0100fabfianda(~fabfianda@mob-5-90-247-119.net.vodafone.it)
2021-11-20 15:43:10 +0100dsrt^(~dsrt@68.101.63.101) (Ping timeout: 260 seconds)
2021-11-20 15:43:31 +0100slice(~slice@user/slice) (Client Quit)
2021-11-20 15:43:39 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds)
2021-11-20 15:43:51 +0100gustik(~gustik@2a01:c844:240a:de20:3606:7339:bc88:b5f5)
2021-11-20 15:45:53 +0100 <hololeap> vector might make sense too
2021-11-20 15:46:29 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2021-11-20 15:46:31 +0100cheater(~Username@user/cheater)
2021-11-20 15:46:56 +0100 <euouae> I'm going to write something cool and share soon
2021-11-20 15:48:11 +0100mimmy(~mimmy@146.70.75.150) (Ping timeout: 256 seconds)
2021-11-20 15:50:32 +0100pwug(~pwug@user/pwug) (Remote host closed the connection)
2021-11-20 15:51:27 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-11-20 15:52:24 +0100mimmy(~mimmy@146.70.75.148)
2021-11-20 15:52:38 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 15:54:10 +0100 <zincy> Does anyone want to look over my code and help me connect two Mealy machines? https://gist.github.com/therewillbecode/22ad270985e3970f4d08444afdad704f
2021-11-20 15:54:24 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
2021-11-20 15:55:51 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1)
2021-11-20 15:56:05 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-11-20 15:56:58 +0100max22-(~maxime@2a01cb08833598001ac225a432e05a7f.ipv6.abo.wanadoo.fr)
2021-11-20 15:57:10 +0100mimmy(~mimmy@146.70.75.148) (Ping timeout: 260 seconds)
2021-11-20 15:57:23 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 264 seconds)
2021-11-20 15:58:07 +0100Feuermagier(~Feuermagi@user/feuermagier)
2021-11-20 15:59:32 +0100xkuru(~xkuru@user/xkuru)
2021-11-20 15:59:54 +0100Feuermagier_(~Feuermagi@2a02:2488:4211:3400:b6fd:ec18:acf6:f1a8) (Ping timeout: 260 seconds)
2021-11-20 16:00:40 +0100xkuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2021-11-20 16:05:16 +0100jakalx(~jakalx@base.jakalx.net)
2021-11-20 16:05:47 +0100 <euouae> Here it is, https://paste.tomsmeding.com/rQEcSSn0
2021-11-20 16:07:02 +0100 <euouae> maybe I should call it minimalRepresentatives
2021-11-20 16:08:50 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 16:12:06 +0100xkuru(~xkuru@user/xkuru)
2021-11-20 16:16:23 +0100mimmy(~mimmy@146.70.75.150)
2021-11-20 16:17:36 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-11-20 16:17:49 +0100jakalx(~jakalx@base.jakalx.net) ()
2021-11-20 16:19:09 +0100 <int-e> > M.assocs . M.fromListWith min . map ((`mod` 2) &&& id) $ [100,200,301,401]
2021-11-20 16:19:11 +0100 <lambdabot> [(0,100),(1,301)]
2021-11-20 16:20:48 +0100 <int-e> euouae: `fromListWith` + `map` can express your `aux`
2021-11-20 16:21:48 +0100 <euouae> int-e nice! let me think about it
2021-11-20 16:22:48 +0100jakalx(~jakalx@base.jakalx.net)
2021-11-20 16:23:40 +0100gg(~gg@88.160.100.84)
2021-11-20 16:23:53 +0100Lycurgus(~juan@98.4.112.204) (Quit: Exeunt)
2021-11-20 16:23:59 +0100serg(~a@p200300ef97155109502293e1a26d2ca1.dip0.t-ipconnect.de)
2021-11-20 16:26:34 +0100 <hololeap> euouae: one simple change would be to replace your case block with: let y = f x in aux f xs $ IntMap.insertWith min y x m
2021-11-20 16:27:26 +0100chomwitt(~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374) (Ping timeout: 260 seconds)
2021-11-20 16:28:17 +0100 <serg> Hi. I have data Expr a = ... I want a Show instance for a = Int. I write instance Show (Expr Int) where but I get a error: Int is not a type variable. True. Can I have a Show instance for Expr Int?
2021-11-20 16:29:27 +0100 <hololeap> serg: wouldn't you want Show a => Show (Expr a) ?
2021-11-20 16:29:41 +0100 <hololeap> why limit it to Int?
2021-11-20 16:30:04 +0100 <janus> % data Expr a
2021-11-20 16:30:04 +0100 <yahb> janus: type role Expr phantom; type Expr :: forall {k}. k -> *; data Expr a
2021-11-20 16:30:20 +0100 <janus> % :set -XFlexibleInstances
2021-11-20 16:30:20 +0100 <yahb> janus:
2021-11-20 16:30:30 +0100 <euouae> How can I refer to the constructor of some field in case of ambiguous name?
2021-11-20 16:30:36 +0100 <janus> % instance Show (Expr a) where
2021-11-20 16:30:37 +0100 <yahb> janus: ; <interactive>:61:10: warning: [-Wmissing-methods]; * No explicit implementation for; either `showsPrec' or `show'; * In the instance declaration for `Show (Expr a)'
2021-11-20 16:30:41 +0100 <euouae> e.g. I have both `area` as a constructor and as a function
2021-11-20 16:31:00 +0100 <euouae> ah -- nevermind me
2021-11-20 16:31:03 +0100 <hololeap> euouae: simply put, you can't
2021-11-20 16:31:15 +0100 <serg> This means I have to write show for every a not only Int?
2021-11-20 16:31:25 +0100 <janus> % instance Show (Expr Int) where
2021-11-20 16:31:25 +0100 <yahb> janus: ; <interactive>:62:10: error:; * Overlapping instances for Show (Expr Int) arising from a use of `GHC.Show.$dmshowsPrec'; Matching instances:; instance Show (Expr Int) -- Defined at <interactive>:62:10; instance [safe] forall k (a :: k). Show (Expr a) -- Defined at <interactive>:61:10; * In the expression: GHC.Show.$dmshowsPrec @(Expr Int); In an equation for `showsPre
2021-11-20 16:31:26 +0100 <hololeap> serg: no, just derive it
2021-11-20 16:31:57 +0100 <hololeap> data Expr a = ... deriving (Show, ...)
2021-11-20 16:32:00 +0100 <int-e> % :q
2021-11-20 16:32:00 +0100 <yahb> int-e:
2021-11-20 16:32:36 +0100 <serg> I know. I wanted to exercise. So meaning of Show a => is every a in Expr a has Show instance too?
2021-11-20 16:32:49 +0100 <hololeap> right
2021-11-20 16:32:58 +0100chexum_(~quassel@gateway/tor-sasl/chexum) (Quit: -)
2021-11-20 16:33:08 +0100 <serg> And FlexibleInstances of janus?
2021-11-20 16:33:12 +0100 <geekosaur> "if there is a Show instance for a, then the Show instance for (Expr a) is …"
2021-11-20 16:33:17 +0100burnsidesLlama(~burnsides@dhcp168-012.wadham.ox.ac.uk)
2021-11-20 16:33:24 +0100 <int-e> % data FooBar a = Foo a | Bar
2021-11-20 16:33:25 +0100 <yahb> int-e:
2021-11-20 16:34:50 +0100 <hololeap> at some point when writing show or showsPrec for `Expr a`, you will inevitably be calling show or showsPrec for `a`
2021-11-20 16:35:14 +0100 <int-e> % instance Show a => Show (FooBar a) where show (Foo a) = "a Foo holding a " ++ show a; show Bar = "a Bar holding nothing"
2021-11-20 16:35:14 +0100 <yahb> int-e:
2021-11-20 16:35:16 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2021-11-20 16:35:18 +0100 <hololeap> thus `a` needs to have a Show instance
2021-11-20 16:35:21 +0100 <int-e> % Foo Nothing
2021-11-20 16:35:22 +0100 <yahb> int-e: a Foo holding a Nothing
2021-11-20 16:36:00 +0100 <int-e> % Foo (Foo Bar)
2021-11-20 16:36:00 +0100 <yahb> int-e: a Foo holding a a Foo holding a a Bar holding nothing
2021-11-20 16:36:15 +0100 <int-e> Hah.
2021-11-20 16:36:32 +0100dsrt^(~dsrt@68.101.63.101)
2021-11-20 16:36:35 +0100 <janus> what is the motivation for having data constructors here?
2021-11-20 16:36:57 +0100acidjnk_new(~acidjnk@2001:16b8:67ca:f700:55fd:e2e5:a98b:cf1a)
2021-11-20 16:37:10 +0100 <int-e> me? just having some fun
2021-11-20 16:37:57 +0100 <janus> right right, just wanted to make sure i wasn't missing anything. seemed to me like the question was not concerned with data
2021-11-20 16:38:01 +0100 <serg> I think I understand. show inside show for Expr is a different show.
2021-11-20 16:38:15 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net)
2021-11-20 16:38:45 +0100 <serg> but original solution works with flexibleinstances
2021-11-20 16:39:24 +0100 <janus> but i think the question is if that is really want you want. but since this is an exercise i guess the requirements cannot be pinned down
2021-11-20 16:39:46 +0100 <serg> is flexibleinstances bad?
2021-11-20 16:39:55 +0100chomwitt(~chomwitt@ppp-94-67-202-36.home.otenet.gr)
2021-11-20 16:40:40 +0100 <geekosaur> not in and of itself. but using it for this is something of a smell
2021-11-20 16:40:44 +0100 <int-e> Nah, FlexibleInstances is benign. UndecidableInstances is benign if your code compiles. Anything overlapping is a road to hell, where incoherent instances live.
2021-11-20 16:41:25 +0100 <janus> benign also according to diehl http://dev.stephendiehl.com/hask/#classes
2021-11-20 16:41:39 +0100 <int-e> Yeah I wonder why FlexibleInstances would be required for something simple like this.
2021-11-20 16:41:46 +0100rusty(~rustyboy@82.77.237.221)
2021-11-20 16:41:54 +0100 <geekosaur> just because haskell98/2010 doesn't spec it
2021-11-20 16:42:14 +0100 <serg> Is meaning of flexibleinstances only Show instance for Expr a for some a?
2021-11-20 16:42:21 +0100 <geekosaur> "must be of the form T a b c where a, b, c are type variables"
2021-11-20 16:43:01 +0100 <int-e> if you have instance (Show a) => Show (Expr a) where ... then that doesn't require FlexibleInstances
2021-11-20 16:43:09 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-11-20 16:43:12 +0100 <int-e> though enabling FlexibleInstances won't hurt of course
2021-11-20 16:43:38 +0100 <serg> this works: instance Show a => Show (Expr a) where show (Lit a) = show a ...
2021-11-20 16:44:12 +0100 <serg> I think I understand. Thank you.
2021-11-20 16:44:41 +0100whatsupdoc(uid509081@hampstead.irccloud.com)
2021-11-20 16:46:21 +0100serg(~a@p200300ef97155109502293e1a26d2ca1.dip0.t-ipconnect.de) (Quit: WeeChat 3.0.1)
2021-11-20 16:48:01 +0100 <janus> where can a read more about how templateHaskell causes more module invalidation than w/o TH?
2021-11-20 16:48:11 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 268 seconds)
2021-11-20 16:50:47 +0100deadmarshal(~deadmarsh@95.38.119.180) (Ping timeout: 264 seconds)
2021-11-20 16:51:08 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 16:52:50 +0100 <euouae> A file contains this data, "Just [(0,Triangle {a = Point {x = 0, y = 0}, b = Point {x = 0, y = 0}, c = Point {x = 0, y = 0}})]\n" how can I read it back into a variable?
2021-11-20 16:53:06 +0100 <euouae> I've tried `read <$> f :: IO (Maybe (Int, [Triangle]))` but it's not working out
2021-11-20 16:53:17 +0100 <euouae> Also tried with `return`, but that didn't work out either
2021-11-20 16:55:32 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 240 seconds)
2021-11-20 16:56:16 +0100 <janus> % newtype A = A Int deriving (Show, Read)
2021-11-20 16:56:16 +0100 <yahb> janus:
2021-11-20 16:56:19 +0100 <janus> % read (show (A 1))
2021-11-20 16:56:19 +0100 <yahb> janus: *** Exception: Prelude.read: no parse
2021-11-20 16:57:41 +0100 <int-e> % read (show (A 1)) :: A
2021-11-20 16:57:41 +0100 <yahb> int-e: A 1
2021-11-20 16:58:07 +0100 <janus> ooh it is type defaulting :O omg
2021-11-20 16:58:10 +0100 <int-e> (it's ghci with extended defaulting rules... defaults to ())
2021-11-20 16:58:34 +0100 <int-e> % read "A 1" :: ()
2021-11-20 16:58:34 +0100 <yahb> int-e: *** Exception: Prelude.read: no parse
2021-11-20 16:58:35 +0100 <euouae> I recall doing something like `((,) <*> f <$> g) x y` to get (f x, g y)...
2021-11-20 16:58:39 +0100 <euouae> But I can't get it to work, is that wrong?
2021-11-20 16:59:10 +0100 <int-e> ((,) <*> f <$> g) x is (f x, g x)
2021-11-20 16:59:18 +0100 <janus> euouae: are you using the same deriving strategy for Read and Show?
2021-11-20 16:59:24 +0100 <euouae> janus yeah
2021-11-20 16:59:28 +0100 <zincy> With the Machines library how do you express a bidirectional relationship between machines. For example machine A writes output which updates machine B but depending on the state of machine B, machine A might need to be updated.
2021-11-20 16:59:40 +0100 <int-e> :t curry (?f *** ?g)
2021-11-20 16:59:41 +0100 <lambdabot> (?f::a -> c, ?g::b -> c') => a -> b -> (c, c')
2021-11-20 16:59:42 +0100 <euouae> int-e oh nice
2021-11-20 17:00:05 +0100 <euouae> That's /actually/ what I need
2021-11-20 17:00:23 +0100machinedgod(~machinedg@24.105.81.50)
2021-11-20 17:00:26 +0100 <int-e> :t f &&& g
2021-11-20 17:00:27 +0100 <lambdabot> (Arrow a, FromExpr (a b c), FromExpr (a b c')) => a b (c, c')
2021-11-20 17:00:39 +0100 <int-e> :t id . (f &&& g)
2021-11-20 17:00:40 +0100 <lambdabot> (Show a, FromExpr c, FromExpr c') => a -> (c, c')
2021-11-20 17:00:56 +0100 <int-e> oh, duh
2021-11-20 17:01:00 +0100 <int-e> :t id . (?f &&& ?g)
2021-11-20 17:01:01 +0100 <lambdabot> (?f::a -> c, ?g::a -> c') => a -> (c, c')
2021-11-20 17:02:15 +0100 <euouae> `fromListwith min $ map ((,) <*> f <$> id) xs` is what you propose int-e I believe
2021-11-20 17:02:32 +0100mimmy(~mimmy@146.70.75.150) (Ping timeout: 240 seconds)
2021-11-20 17:02:40 +0100 <int-e> euouae: yeah I used &&& earlier
2021-11-20 17:04:43 +0100mimmy(~mimmy@2607:fea8:6e0:7f90:3961:f854:3883:a1b9)
2021-11-20 17:05:47 +0100neurocyte0132889(~neurocyte@user/neurocyte) (Ping timeout: 264 seconds)
2021-11-20 17:05:51 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 17:08:02 +0100 <euouae> I'm getting it wrong because things like `((,) <*> (1+) <$> Just) 1` fail
2021-11-20 17:08:07 +0100 <euouae> I'm not sure why, ugh :D
2021-11-20 17:08:17 +0100DNH(~DNH@2a02:8108:1100:16d8:d0f4:92d3:1aef:5b27) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-11-20 17:08:47 +0100 <int-e> euouae: oh you've mixed up <$> and <*>
2021-11-20 17:09:06 +0100 <euouae> I'm going with &&&, seems nice
2021-11-20 17:09:06 +0100 <int-e> (and I copied it without noticing)
2021-11-20 17:09:47 +0100 <int-e> > ((,) <$> (1+) <*> Just) 1
2021-11-20 17:09:49 +0100 <lambdabot> (2,Just 1)
2021-11-20 17:10:03 +0100 <int-e> > ((1+) &&& Just) 1
2021-11-20 17:10:05 +0100 <lambdabot> (2,Just 1)
2021-11-20 17:10:35 +0100 <int-e> and before you ask, &&& comes from Control.Arrow
2021-11-20 17:10:45 +0100 <euouae> Indeed -- no worries, I hoogled that
2021-11-20 17:11:01 +0100 <janus> applicative style is better just because it avoids control.arrow ;)
2021-11-20 17:11:36 +0100acidjnk_new(~acidjnk@2001:16b8:67ca:f700:55fd:e2e5:a98b:cf1a) (Ping timeout: 268 seconds)
2021-11-20 17:11:46 +0100 <janus> and you have less churn when you need a third member.
2021-11-20 17:12:33 +0100 <janus> even less churn if you decide to have a dedicated data type instead of tuples
2021-11-20 17:12:38 +0100 <int-e> in that spirit you should minimize dependencies and write a lambda \x -> (f x, x)
2021-11-20 17:12:49 +0100 <Rembane_> Applicative style isn't as cool though :D
2021-11-20 17:13:35 +0100 <janus> int-e: unavoidable dependencies don't need to be avoided ;)
2021-11-20 17:13:54 +0100 <janus> applicative is in prelude, no?
2021-11-20 17:16:01 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-20 17:17:32 +0100jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2021-11-20 17:17:47 +0100mimmy(~mimmy@2607:fea8:6e0:7f90:3961:f854:3883:a1b9) (Ping timeout: 268 seconds)
2021-11-20 17:17:51 +0100 <int-e> Not in Haskell2010 :P
2021-11-20 17:18:01 +0100 <euouae> I think that might be a good idea too, to write it that way
2021-11-20 17:18:52 +0100DNH(~DNH@2a02:8108:1100:16d8:d0f4:92d3:1aef:5b27)
2021-11-20 17:19:13 +0100mimmy(~mimmy@2607:fea8:6e0:7f90:80ec:4373:ceb7:3da9)
2021-11-20 17:19:24 +0100 <janus> Rembane_: here's a cool applicative pattern in purescript: instance DecodeJson Person where decodeJson json = o <- decodeJson; Person <$> { name: _, age: _ } <$> (o .: "name") <*> (o .: "age")
2021-11-20 17:19:45 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Remote host closed the connection)
2021-11-20 17:20:30 +0100 <janus> (advantage is multiple errors if an element has a problem) (possible because the _ are arguments to an implicit anonymous function)
2021-11-20 17:21:14 +0100 <Rembane_> janus: That's pretty. Should there be two <$> in that line?
2021-11-20 17:22:02 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-11-20 17:22:47 +0100 <janus> Rembane_: yeah, depends whether you want to wrap your records with a newtype constructor or not. we do that here. but if you don't , just remove "Person <$>". purescript's records are not necessarily wrapped in a data constructor with a similar name to the type, as is common in haskell
2021-11-20 17:22:49 +0100jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 256 seconds)
2021-11-20 17:23:02 +0100DNH(~DNH@2a02:8108:1100:16d8:d0f4:92d3:1aef:5b27) (Ping timeout: 240 seconds)
2021-11-20 17:23:26 +0100 <Rembane_> janus: Got it. Cool!
2021-11-20 17:25:47 +0100vysn(~vysn@user/vysn) (Ping timeout: 268 seconds)
2021-11-20 17:25:49 +0100 <hololeap> zincy: those mealy machines seem confusing
2021-11-20 17:25:59 +0100 <zincy> hololeap: How come?
2021-11-20 17:26:23 +0100 <hololeap> I guess I just don't have an intuition for them
2021-11-20 17:27:35 +0100 <zincy> Its just a turn based game that has a mealy for whether each player has acted and a mealy for game stages
2021-11-20 17:28:01 +0100 <zincy> Players cannot act if they are in an inactive state etc ...
2021-11-20 17:29:10 +0100deadmarshal(~deadmarsh@95.38.119.180)
2021-11-20 17:29:37 +0100 <hololeap> unfoldMealy :: (s -> a -> (b, s)) -> s -> Mealy a b
2021-11-20 17:30:10 +0100 <hololeap> this is a much more understandable representation to me, which makes me wonder if the whole Mealy abstraction is worth it or if it's just extra mental overhead
2021-11-20 17:30:57 +0100 <hololeap> but I guess that could be said about any abstraction I don't have an intuition for :p
2021-11-20 17:31:09 +0100 <hololeap> then again, you seem to be having problems with it as well, zincy
2021-11-20 17:31:49 +0100 <zincy> yes I am hehe
2021-11-20 17:37:55 +0100oxide(~lambda@user/oxide)
2021-11-20 17:39:03 +0100ubert(~Thunderbi@p200300ecdf0ba279387348ed975200f7.dip0.t-ipconnect.de)
2021-11-20 17:40:22 +0100 <hololeap> A Profunctor p is a Cosieve on f if it is a subprofunctor of Costar f.
2021-11-20 17:40:49 +0100 <hololeap> where does ekmett get these terms from?
2021-11-20 17:42:44 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:b4a8:9431:5c1:c0e0)
2021-11-20 17:43:04 +0100 <hololeap> Sketches of an Elephant – A Topos Theory Compendium
2021-11-20 17:43:09 +0100 <hololeap> is that the original source?
2021-11-20 17:45:10 +0100 <hololeap> I'm tired of going into a drooling stupor when I read the docs for profunctors
2021-11-20 17:48:59 +0100 <zincy> I am finding this library quite tricky to understand
2021-11-20 17:50:19 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-11-20 17:51:08 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-11-20 17:59:05 +0100kupi(uid212005@hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-20 18:00:59 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 264 seconds)
2021-11-20 18:01:31 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 18:06:23 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 264 seconds)
2021-11-20 18:07:38 +0100slowButPresent(~slowButPr@user/slowbutpresent)
2021-11-20 18:08:41 +0100serg(~a@p200300ef97155109502293e1a26d2ca1.dip0.t-ipconnect.de)
2021-11-20 18:09:48 +0100tired(~tired@user/tired) (Quit: /)
2021-11-20 18:11:21 +0100tired(~tired@user/tired)
2021-11-20 18:11:24 +0100ProfSimm(~ProfSimm@87.227.196.109)
2021-11-20 18:11:51 +0100machinedgod(~machinedg@24.105.81.50) (Quit: Lost terminal)
2021-11-20 18:11:56 +0100 <ProfSimm> I have something odd to ask, but I wanna her your opinion. In Haskell, two identical types by different names are different, right. Nominal
2021-11-20 18:11:57 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-11-20 18:12:14 +0100machinedgod(~machinedg@24.105.81.50)
2021-11-20 18:12:18 +0100Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-131-158.cust.tzulo.com)
2021-11-20 18:14:24 +0100timCF_(~timCF@m91-129-99-212.cust.tele2.ee)
2021-11-20 18:14:32 +0100renzhi(~xp@2607:fa49:6500:b100::6e7f) (Ping timeout: 240 seconds)
2021-11-20 18:14:55 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 18:15:38 +0100ees(~user@pool-108-18-30-46.washdc.fios.verizon.net)
2021-11-20 18:16:34 +0100justsomeguy(~justsomeg@user/justsomeguy)
2021-11-20 18:16:41 +0100ubert(~Thunderbi@p200300ecdf0ba279387348ed975200f7.dip0.t-ipconnect.de) (Quit: ubert)
2021-11-20 18:17:19 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-11-20 18:18:26 +0100 <timCF_> Hello! Let's say I do have a `newtype PosRat = PosRat (Ratio Natural)` with smart constructors and stuff to create new values of this type with potential failure for example in case where value is == 0. Is there the way to have literals of my new type which I can write in a code just as values (without applying smart constructors)? Basically I want to apply smart constructor in compile-time. But without
2021-11-20 18:18:32 +0100 <timCF_> TH. Just similar the way Natural type literals are handled.
2021-11-20 18:18:55 +0100mimmy(~mimmy@2607:fea8:6e0:7f90:80ec:4373:ceb7:3da9) (Ping timeout: 250 seconds)
2021-11-20 18:19:15 +0100 <ProfSimm> Haskell is nominal, right. Two identical types with different name would be different types
2021-11-20 18:19:54 +0100 <monochrom> Yes.
2021-11-20 18:21:39 +0100 <ProfSimm> Let's imagine a system where two differently named types are compared structurally, at depth, and Haskell speculatively branches by executing the code twice by substituting one of the other. And at some threshold, if they cause the same outcomes, they become one type.
2021-11-20 18:22:09 +0100 <ProfSimm> Is there a name for this idea
2021-11-20 18:22:30 +0100ThatLinuxGuy(~sand49@2001:8003:8431:d200:220b:84b2:a334:cbad)
2021-11-20 18:23:27 +0100ThatLinuxGuy(~sand49@2001:8003:8431:d200:220b:84b2:a334:cbad) (Client Quit)
2021-11-20 18:24:50 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2021-11-20 18:24:50 +0100 <geekosaur> timCF_, not without patching the compiler to recognize the new literals
2021-11-20 18:24:59 +0100xff0x(~xff0x@2001:1a81:5231:4c00:cc14:8453:5a9c:d44b) (Ping timeout: 268 seconds)
2021-11-20 18:25:16 +0100 <timCF_> geekosaur: so TH is the simplest way to go I guess?
2021-11-20 18:25:17 +0100 <geekosaur> heck, it doesn't even recognize Ratio Integer literals, % is a smart constructor
2021-11-20 18:25:31 +0100xff0x(~xff0x@2001:1a81:5231:4c00:adf9:5009:dcd2:4bf0)
2021-11-20 18:25:44 +0100 <geekosaur> or quasiquoters, which amount to the same thing
2021-11-20 18:26:00 +0100benin(~benin@183.82.178.244)
2021-11-20 18:26:03 +0100 <timCF_> geekosaur: but it does recognize Natural, and will not compile negative literals
2021-11-20 18:26:15 +0100 <geekosaur> right
2021-11-20 18:28:56 +0100justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3)
2021-11-20 18:29:11 +0100mimmy(~mimmy@cpef81d0f857c83-cmf81d0f857c80.cpe.net.cable.rogers.com)
2021-11-20 18:29:18 +0100zero(~z@user/zero)
2021-11-20 18:29:20 +0100 <dsal> ProfSimm: We do have a concept of a type role which allows us to treat (or prevents us from treating) a structure of one type as a structure of another type with the same representation, but the deep comparison thing is orthogonal, I think.
2021-11-20 18:29:33 +0100 <dsal> (super likely I don't understand what you're getting at, but this at least sounds similar)
2021-11-20 18:30:14 +0100 <ProfSimm> dsal, the structural comparison would be some initial sanity check. But I think two types stand the test of being compatible if they actually produce the same outcomes
2021-11-20 18:30:53 +0100 <zero> if we can have a total linear function that only uses total linear functionss, we could pattern match against them, couldn't we?
2021-11-20 18:30:54 +0100 <ProfSimm> dsal well I'm using a type a bit differently here. Not as in "same contract, different result, different implementation"
2021-11-20 18:31:08 +0100 <ProfSimm> But as in "same contract and result, different implementation"
2021-11-20 18:31:32 +0100 <ProfSimm> zero, do you know how epicycles work (related concept fourier transform)
2021-11-20 18:31:49 +0100 <zero> ProfSimm: i know nothing about it
2021-11-20 18:31:49 +0100juhp(~juhp@128.106.188.82) (Read error: Connection reset by peer)
2021-11-20 18:32:09 +0100 <zero> not by name at least
2021-11-20 18:32:22 +0100 <ProfSimm> zero, basically you can take a signal and decompose it to frequencies, each a sine wave with different amplitude
2021-11-20 18:32:31 +0100 <zero> ah yes
2021-11-20 18:32:35 +0100unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
2021-11-20 18:32:46 +0100 <dsal> ProfSimm: Yeah, I don't think that concept exists directly. I'm thinking about coerce, which looks like this: https://hackage.haskell.org/package/base-4.16.0.0/docs/Data-Coerce.html -- type role allows us to say that given a `Map k v` the `v` can be coerced without changing meaning, but the `k` cannot.
2021-11-20 18:32:52 +0100 <ProfSimm> zero, do the same in 2D you get circles. You can use this analysis to draw homer simply by connecting rotating circle of various size and speed
2021-11-20 18:33:17 +0100 <shapr> o hi ProfSimm, how's code?
2021-11-20 18:33:20 +0100 <ProfSimm> zero: https://www.youtube.com/watch?v=QVuU2YCwHjw
2021-11-20 18:33:34 +0100 <zero> ProfSimm: yes, i get that. how does it relate to my questin?
2021-11-20 18:33:41 +0100 <ProfSimm> shapr, I'm in a very odd place dude. I'm gonna need a quantum computer to implement some features :-)
2021-11-20 18:34:10 +0100 <ProfSimm> zero, well the thing I wanna achieve is not match linear functions, but match result
2021-11-20 18:34:32 +0100 <ProfSimm> And actually "close enough" is an allowance, for some specific amount of close enough
2021-11-20 18:35:10 +0100 <ProfSimm> Wait, let me redefine this
2021-11-20 18:35:35 +0100 <ProfSimm> Imagine if Haskell trained a neural network on a type, and when they get close enough, it replaces the type with the neural network
2021-11-20 18:36:02 +0100 <zero> ProfSimm: ah, i was confused. i entered the channel just now to ask my question, have no idea of what you were talking about ;)
2021-11-20 18:37:39 +0100 <ProfSimm> Oh OK
2021-11-20 18:38:58 +0100 <dsal> ProfSimm: It's not clear to me what it means to change a type along the way. It sounds like you're describing a sum type at some point with some kind of ability to coerce that I don't think you're going to get for free.
2021-11-20 18:40:25 +0100 <geekosaur> zero, I think you would need more than linearity to pattern match a function
2021-11-20 18:41:03 +0100 <geekosaur> try figuring out what this would look like
2021-11-20 18:43:44 +0100pfurla(~pfurla@2804:14d:5c81:4104:d41b:9326:c4d8:9f2a)
2021-11-20 18:45:59 +0100ouroboros_(~ouroboros@2804:14c:65e4:93f6::1001) (Quit: Konversation terminated!)
2021-11-20 18:51:02 +0100deadmarshal(~deadmarsh@95.38.119.180) (Ping timeout: 240 seconds)
2021-11-20 18:53:43 +0100econo(uid147250@user/econo)
2021-11-20 18:54:11 +0100 <hololeap> @hackage validated-literals -- timCF_
2021-11-20 18:54:11 +0100 <lambdabot> https://hackage.haskell.org/package/validated-literals -- timCF_
2021-11-20 18:54:22 +0100 <hololeap> this uses TH, but it might be useful for you
2021-11-20 18:57:19 +0100 <awpr> oh I missed that question -- check out https://hackage.haskell.org/package/dependent-literals-plugin
2021-11-20 18:59:26 +0100 <awpr> it's a bit heavyweight just to rule out zero without calling a smart constructor, but I guess it could be worth it if you have code with tons of PosRat literals that would be overwhelmed with noise otherwise
2021-11-20 19:00:01 +0100 <timCF_> thanks!
2021-11-20 19:01:25 +0100fabfianda(~fabfianda@mob-5-90-247-119.net.vodafone.it) (Ping timeout: 256 seconds)
2021-11-20 19:01:25 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:b4a8:9431:5c1:c0e0) (Remote host closed the connection)
2021-11-20 19:01:58 +0100fabfianda(~fabfianda@net-2-32-17-50.cust.vodafonedsl.it)
2021-11-20 19:06:53 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:b4a8:9431:5c1:c0e0)
2021-11-20 19:12:36 +0100lavaman(~lavaman@98.38.249.169)
2021-11-20 19:12:51 +0100tired(~tired@user/tired) (Quit: /)
2021-11-20 19:13:22 +0100renzhi(~xp@2607:fa49:6500:b100::6e7f)
2021-11-20 19:13:22 +0100fabfianda(~fabfianda@net-2-32-17-50.cust.vodafonedsl.it) (Quit: Quit)
2021-11-20 19:14:23 +0100tired(~tired@user/tired)
2021-11-20 19:15:35 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds)
2021-11-20 19:17:24 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
2021-11-20 19:22:44 +0100pfurla(~pfurla@2804:14d:5c81:4104:d41b:9326:c4d8:9f2a) (Quit: gone to sleep. ZZZzzz…)
2021-11-20 19:24:08 +0100deadmarshal(~deadmarsh@95.38.119.180)
2021-11-20 19:25:51 +0100euouae(~euouae@user/euouae) (Quit: )
2021-11-20 19:26:36 +0100pfurla(~pfurla@2804:14d:5c81:4104:d41b:9326:c4d8:9f2a)
2021-11-20 19:27:51 +0100dyeplexer(~dyeplexer@user/dyeplexer) (Remote host closed the connection)
2021-11-20 19:29:45 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 19:35:51 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2021-11-20 19:36:05 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2021-11-20 19:36:26 +0100rusty(~rustyboy@82.77.237.221) (Ping timeout: 260 seconds)
2021-11-20 19:43:13 +0100Everything(~Everythin@37.115.210.35) (Quit: leaving)
2021-11-20 19:44:31 +0100lavaman(~lavaman@98.38.249.169)
2021-11-20 19:45:47 +0100mimmy(~mimmy@cpef81d0f857c83-cmf81d0f857c80.cpe.net.cable.rogers.com) (Ping timeout: 268 seconds)
2021-11-20 19:45:54 +0100aliosablack(~chomwitt@2a02:587:dc2d:ec00:12c3:7bff:fe6d:d374)
2021-11-20 19:46:23 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-20 19:47:22 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net)
2021-11-20 19:48:51 +0100chomwitt(~chomwitt@ppp-94-67-202-36.home.otenet.gr) (Ping timeout: 268 seconds)
2021-11-20 19:49:02 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
2021-11-20 19:51:51 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-11-20 19:53:42 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 276 seconds)
2021-11-20 19:55:02 +0100aliosablack(~chomwitt@2a02:587:dc2d:ec00:12c3:7bff:fe6d:d374) (Ping timeout: 268 seconds)
2021-11-20 19:55:42 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-11-20 19:56:32 +0100myme(~myme@40.51-175-185.customer.lyse.net) (Ping timeout: 240 seconds)
2021-11-20 19:57:19 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Remote host closed the connection)
2021-11-20 19:57:21 +0100deadmarshal(~deadmarsh@95.38.119.180) (Quit: ZNC 1.8.2 - https://znc.in)
2021-11-20 19:57:48 +0100deadmarshal(~deadmarsh@95.38.119.180)
2021-11-20 19:58:51 +0100myme(~myme@40.51-175-185.customer.lyse.net)
2021-11-20 20:01:12 +0100max22-(~maxime@2a01cb08833598001ac225a432e05a7f.ipv6.abo.wanadoo.fr) (Ping timeout: 268 seconds)
2021-11-20 20:06:39 +0100pfurla(~pfurla@2804:14d:5c81:4104:d41b:9326:c4d8:9f2a) (Quit: gone to sleep. ZZZzzz…)
2021-11-20 20:06:50 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-11-20 20:09:45 +0100mimmy(~mimmy@2607:fea8:6e0:7f90:2048:33e6:3182:81c2)
2021-11-20 20:10:35 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 264 seconds)
2021-11-20 20:12:07 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 20:12:19 +0100Guest17(~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2021-11-20 20:12:40 +0100machinedgod(~machinedg@24.105.81.50) (Remote host closed the connection)
2021-11-20 20:14:32 +0100mimmy(~mimmy@2607:fea8:6e0:7f90:2048:33e6:3182:81c2) (Ping timeout: 240 seconds)
2021-11-20 20:17:11 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 264 seconds)
2021-11-20 20:20:32 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-11-20 20:23:03 +0100 <sm> g'day all
2021-11-20 20:24:11 +0100coolnickname(~omg@user/coolnickname)
2021-11-20 20:24:18 +0100 <sm> so.. for haskell code, 2-space indent, or 4 ?
2021-11-20 20:24:58 +0100 <geekosaur> I use 2 fwiw
2021-11-20 20:25:06 +0100 <sm> I use 2, but I'm getting the feeling 4 might be smoother with haskell syntax
2021-11-20 20:25:15 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 20:25:42 +0100pwug(~pwug@user/pwug)
2021-11-20 20:25:47 +0100 <sm> let a=1
2021-11-20 20:25:48 +0100 <sm> b=2
2021-11-20 20:25:48 +0100 <sm> ... eg
2021-11-20 20:25:53 +0100deadmarshal(~deadmarsh@95.38.119.180) (Ping timeout: 250 seconds)
2021-11-20 20:26:07 +0100 <EvanR> hah
2021-11-20 20:26:48 +0100 <awpr> I've seen some people just put the first let-binding on a new line. but I tend to just make an exception and align let-bindings at 4 spaces, and use 2 for normal indentation
2021-11-20 20:26:53 +0100 <geekosaur> I wouldn't use 2 there but that's because of block indentation; I'd use 2 if I hit enter after the let
2021-11-20 20:28:27 +0100 <EvanR> if I need recursive definitions I try hard to use where not let
2021-11-20 20:29:10 +0100 <EvanR> if I need a sequence of lets I do https://paste.tomsmeding.com/xHhQbPoZ
2021-11-20 20:29:14 +0100 <EvanR> which is rare
2021-11-20 20:30:17 +0100 <EvanR> basically, over 1 level of indentation and I feel like I did something wrong
2021-11-20 20:30:37 +0100 <EvanR> (which sm's let has)
2021-11-20 20:32:05 +0100smwas trying out floskell, which uses 4 by default
2021-11-20 20:32:41 +0100 <monochrom> I use a 2-4 combo. "f x = y" "<2 spaces>where" "<4 spaces>y = x+x"
2021-11-20 20:33:21 +0100 <Hecate> hohai
2021-11-20 20:33:27 +0100 <Hecate> I've done a thing: https://twitter.com/TechnoEmpress/status/1462135732680769539
2021-11-20 20:33:27 +0100 <maerwald> I use whatever I feel like at the moment
2021-11-20 20:33:36 +0100 <monochrom> I learned it from tibbe's style guide. I think it's an ingenious design accomodating "where" which you don't find in other languages.
2021-11-20 20:33:52 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Quit: Leaving.)
2021-11-20 20:34:12 +0100 <monochrom> https://github.com/tibbe/haskell-style-guide/blob/master/haskell-style.md
2021-11-20 20:34:21 +0100 <sm> thanks
2021-11-20 20:34:30 +0100 <maerwald> burn all style guides
2021-11-20 20:34:33 +0100max22-(~maxime@2a01cb0883359800a2387d5f4d01fe15.ipv6.abo.wanadoo.fr)
2021-11-20 20:34:48 +0100 <sm> ah yes, half-indent for `where`
2021-11-20 20:35:07 +0100 <monochrom> In other languages (e.g., C, shell script), I use 2 spaces.
2021-11-20 20:35:16 +0100machinedgod(~machinedg@24.105.81.50)
2021-11-20 20:35:18 +0100 <sm> that's another reason I think 4 might be smoother. Half of a 2-indent is not much
2021-11-20 20:35:39 +0100 <maerwald> I've worked on a 4spaces indent codebase, I remember some corner cases there too
2021-11-20 20:35:53 +0100 <sm> though, I tend to give `where` a full indent, and just indent the definitions more
2021-11-20 20:36:06 +0100abrantesasf(~abrantesa@187.36.170.211) (Remote host closed the connection)
2021-11-20 20:36:11 +0100 <maerwald> ah yeah... there's a corner case with `do` and indenting
2021-11-20 20:36:33 +0100 <geekosaur> yeh, my usual style means it's indented by 3 because of block indenting
2021-11-20 20:36:43 +0100 <geekosaur> unless I start it with a newline, then it's 2
2021-11-20 20:36:47 +0100 <sm> (why should where bindings be indented less than let bindings, after all)
2021-11-20 20:37:35 +0100 <monochrom> I'm very happy that in "let x=1", the "let " length is 4, so when on the next line I have "<4 spaces>y=2" it lines up.
2021-11-20 20:38:30 +0100 <maerwald> here strict 4 indenting makes compilation fail: https://paste.tomsmeding.com/rLQWB31q
2021-11-20 20:38:49 +0100 <sm> I guess I'll start by just adopting the 4-space indent for let.. that's pretty low impact
2021-11-20 20:39:14 +0100 <sm> low benefit too I guess, code formatters will be confused
2021-11-20 20:39:30 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 260 seconds)
2021-11-20 20:40:15 +0100 <EvanR> I put the main where at the end of the line before the indented chunk, and people seem to hate it
2021-11-20 20:40:23 +0100 <EvanR> dunno why
2021-11-20 20:41:21 +0100Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-131-158.cust.tzulo.com) (Quit: Leaving)
2021-11-20 20:41:23 +0100 <maerwald> in all the time I had to engage in styling discussions in industry... I could have written a Haskell compiler
2021-11-20 20:42:53 +0100mimmy(~mimmy@2607:fea8:6e0:7f90:2048:33e6:3182:81c2)
2021-11-20 20:42:57 +0100 <monochrom> I don't hate it, but I don't do it because " where" is like 9% of your "70-column line" quota.
2021-11-20 20:43:36 +0100 <monochrom> Although, I have long relaxed to 80 columns.
2021-11-20 20:44:15 +0100 <geekosaur> I'm up to 96
2021-11-20 20:44:26 +0100 <monochrom> It's the 21st century. We use 16:9 screens, not 9:16 screens. Even 100 columns is reasonable.
2021-11-20 20:44:38 +0100 <maerwald> savage... what if someone reads your code on a small ssh terminal in a bunker after doomsday?
2021-11-20 20:44:41 +0100 <geekosaur> 70/72 died with card readers, 80 died with physical terminals :)
2021-11-20 20:45:04 +0100 <monochrom> dragging column limits screaming kicking into the century of the 16:9 screen.
2021-11-20 20:45:06 +0100 <Rembane_> OTOH, human eyes seem to have a max width that's reasonable to read
2021-11-20 20:45:45 +0100 <maerwald> Rembane_: there's neuroscience research that moving your eyes laterally increases happiness (I'm not kidding) :p
2021-11-20 20:45:58 +0100 <sm> for code, I think logical grouping by line is more important than line width
2021-11-20 20:46:13 +0100 <sm> we are usually skimming code, not reading every word
2021-11-20 20:46:36 +0100 <sm> it's fine if the last bit is cut off at times
2021-11-20 20:46:51 +0100 <Rembane_> maerwald: Nice! Now we need some creative surgery so we can rotate the eyes inside the skull :D
2021-11-20 20:46:53 +0100acidjnk_new(~acidjnk@2001:16b8:67ca:f700:252c:a817:9d7d:a6ca)
2021-11-20 20:46:59 +0100 <Rembane_> maerwald: Eyes go: "WEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE!!!"
2021-11-20 20:47:11 +0100 <monochrom> Oh well, I guess 30 years later people read code on TikTok, they will be back at 40 columns again (remember those? >:) )
2021-11-20 20:47:22 +0100 <EvanR> if you aren't coding in style, what's the point
2021-11-20 20:47:28 +0100 <EvanR> :sunglasses:
2021-11-20 20:47:29 +0100 <maerwald> https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6596227/
2021-11-20 20:47:51 +0100 <sm> but for text, speaking of short lines readability.. I really like the newspaper-style layout of https://scroll.pub
2021-11-20 20:47:59 +0100mimmy(~mimmy@2607:fea8:6e0:7f90:2048:33e6:3182:81c2) (Ping timeout: 250 seconds)
2021-11-20 20:48:02 +0100 <geekosaur> after the great emp pulse we won't be reading code at all :þ
2021-11-20 20:48:25 +0100 <sm> geekosaur: :-/
2021-11-20 20:48:28 +0100 <monochrom> Actually I hate those double-column layouts.
2021-11-20 20:48:56 +0100 <monochrom> Well OK, I'm fine with in on physical paper. But on a 16:9 screen?!
2021-11-20 20:49:42 +0100 <geekosaur> I use a 2-column layout. two separate editor windows, usually on different files
2021-11-20 20:49:43 +0100 <maerwald> Rembane_: people usually get really confused if you bring scientific research into the style discussion... I mean if you're nitpicking on irrelevant stuff, do it all the way!
2021-11-20 20:50:12 +0100 <Rembane_> maerwald: Sure thing! Eventually we need to go to the sources.
2021-11-20 20:50:27 +0100 <monochrom> OK, I'm fine with it on a 16:9 screen if each column fits within the verticle screen length.
2021-11-20 20:50:36 +0100 <monochrom> Clearly, academic paper
2021-11-20 20:51:00 +0100 <monochrom> Clearly, neither academic paper PDFs nor scroll.pub satisfies that.
2021-11-20 20:51:29 +0100 <sm> monochrom: scroll.pub doesn't do that (it fits the width, and extends downward). But that (fitting the height, and extending sideways) would also be nice to try.
2021-11-20 20:52:05 +0100 <maerwald> Rembane_: also, really good argument for spaces: https://stackoverflow.blog/2017/06/15/developers-use-spaces-make-money-use-tabs/
2021-11-20 20:52:06 +0100 <sm> even as it is now, I found it pretty refreshing and efficient for reading a faq
2021-11-20 20:52:20 +0100 <Rembane_> maerwald: I dig that!
2021-11-20 20:52:51 +0100 <maerwald> and apparently, haskell is wrong with using camelCase: https://ieeexplore.ieee.org/document/5521745
2021-11-20 20:53:00 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 20:53:18 +0100 <monochrom> Therefore, when a sentence is split between 2 columns, it is also separated by like a metre.
2021-11-20 20:53:39 +0100 <monochrom> a metre of scrolling
2021-11-20 20:53:51 +0100 <sm> it gets worse the more content you put on one page, yes
2021-11-20 20:53:53 +0100 <monochrom> How would any human consider it ergonomic, I don't know.
2021-11-20 20:54:30 +0100 <sm> but newspapers work like that too, and we manage
2021-11-20 20:54:58 +0100 <monochrom> scroll.pub itself shows an ample example of doing it wrong.
2021-11-20 20:55:14 +0100 <monochrom> newspapers are on physical paper, as said. you just fly your eyes.
2021-11-20 20:55:45 +0100 <geekosaur> newspapers also have "above/below the fold"
2021-11-20 20:55:53 +0100 <monochrom> Where as on scroll.pub, consider the section "How do I check browser performance?"
2021-11-20 20:56:05 +0100 <monochrom> You have an opening sentence.
2021-11-20 20:56:21 +0100 <monochrom> And then, what, the sample code requires scrolling all the way back to the top.
2021-11-20 20:56:36 +0100 <monochrom> Remember cathoy ray tubes?
2021-11-20 20:57:14 +0100 <monochrom> Remember its electron beam goes horizontally normally, but it has to quickly fly back to the left for the next line.
2021-11-20 20:57:34 +0100 <monochrom> I feel like 2-column layout fanatics want me to do the same manually vertically.
2021-11-20 20:57:52 +0100 <monochrom> I feel like they are maschosists.
2021-11-20 20:58:03 +0100 <monochrom> "Hahaha let's torture the readers thus!"
2021-11-20 20:58:09 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds)
2021-11-20 20:58:36 +0100 <hololeap> I indent using random fibonacci numbers
2021-11-20 20:58:38 +0100 <monochrom> If you have 5 lines of code to post.
2021-11-20 20:58:46 +0100 <awpr> once per page, though. if I see lines the full width of my monitor, I have no chance of moving my eyes correctly back to the start of the next line
2021-11-20 20:59:03 +0100 <awpr> with a newspaper column width line, it's almost 100% reliably accurate
2021-11-20 20:59:20 +0100 <monochrom> They're like "let's put 3 of those lines at the far bottom, let's put the other 2 lines at the far top, so that people cannot use copy-paste".
2021-11-20 20:59:25 +0100 <hololeap> just for that e e cummings vibe
2021-11-20 20:59:59 +0100 <maerwald> but the realy question is: do you align vertically?!
2021-11-20 21:01:55 +0100 <monochrom> It breaks all kinds of proximity, locality principles.
2021-11-20 21:02:20 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-11-20 21:02:24 +0100 <EvanR> quantum style
2021-11-20 21:02:50 +0100 <EvanR> my C code is entangled
2021-11-20 21:03:14 +0100 <maerwald> I have seen suggestions like this: https://paste.tomsmeding.com/TV7JCPRb
2021-11-20 21:03:30 +0100 <maerwald> so you can see relations of identifiers
2021-11-20 21:03:33 +0100 <EvanR> :horror:
2021-11-20 21:04:20 +0100 <maerwald> I mean... in maths you sometimes do that
2021-11-20 21:06:03 +0100 <monochrom> You know, it works when your function can be linearly typed. Clearly, in retrospect.
2021-11-20 21:06:32 +0100 <monochrom> If your x needs to be mentioned at 100 places, good luck with that.
2021-11-20 21:06:48 +0100juhp(~juhp@128.106.188.82)
2021-11-20 21:08:42 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Remote host closed the connection)
2021-11-20 21:09:38 +0100ees(~user@pool-108-18-30-46.washdc.fios.verizon.net) (Ping timeout: 268 seconds)
2021-11-20 21:09:50 +0100ees(~user@pool-108-18-30-46.washdc.fios.verizon.net)
2021-11-20 21:10:16 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-11-20 21:11:02 +0100finsternis(~X@23.226.237.192) (Ping timeout: 240 seconds)
2021-11-20 21:11:47 +0100finsternis(~X@23.226.237.192)
2021-11-20 21:19:57 +0100mimmy(~mimmy@2607:fea8:6e0:7f90:2048:33e6:3182:81c2)
2021-11-20 21:20:53 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 265 seconds)
2021-11-20 21:24:45 +0100mimmy(~mimmy@2607:fea8:6e0:7f90:2048:33e6:3182:81c2) (Ping timeout: 265 seconds)
2021-11-20 21:25:09 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2021-11-20 21:29:40 +0100Sgeo(~Sgeo@user/sgeo)
2021-11-20 21:30:54 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-11-20 21:31:07 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-11-20 21:36:32 +0100forell(~forell@user/forell) (Quit: ZNC - https://znc.in)
2021-11-20 21:37:49 +0100forell(~forell@user/forell)
2021-11-20 21:39:18 +0100mikoto-chan(~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Quit: mikoto-chan)
2021-11-20 21:42:59 +0100mimmy(~mimmy@2607:fea8:6e0:7f90:11f0:11ab:7004:939b)
2021-11-20 21:46:14 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net)
2021-11-20 21:50:32 +0100yauhsien(~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2021-11-20 21:56:40 +0100deadmarshal(~deadmarsh@95.38.119.180)
2021-11-20 21:56:54 +0100jinsun__(~quassel@user/jinsun)
2021-11-20 21:58:20 +0100oxide(~lambda@user/oxide) (Quit: oxide)
2021-11-20 21:58:32 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2021-11-20 21:59:02 +0100ProfSimm(~ProfSimm@87.227.196.109) (Ping timeout: 240 seconds)
2021-11-20 22:00:23 +0100jinsun(~quassel@user/jinsun) (Ping timeout: 264 seconds)
2021-11-20 22:01:03 +0100deadmarshal(~deadmarsh@95.38.119.180) (Ping timeout: 256 seconds)
2021-11-20 22:01:29 +0100serg(~a@p200300ef97155109502293e1a26d2ca1.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
2021-11-20 22:06:44 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-11-20 22:08:32 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:b4a8:9431:5c1:c0e0) (Remote host closed the connection)
2021-11-20 22:08:48 +0100dhil(~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net)
2021-11-20 22:08:50 +0100mimmy(~mimmy@2607:fea8:6e0:7f90:11f0:11ab:7004:939b) (Ping timeout: 268 seconds)
2021-11-20 22:09:04 +0100jbox(~jbox@user/jbox)
2021-11-20 22:10:20 +0100timCF_(~timCF@m91-129-99-212.cust.tele2.ee) (Quit: leaving)
2021-11-20 22:12:59 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-11-20 22:13:46 +0100alzgh(~alzgh@user/alzgh)
2021-11-20 22:14:21 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Remote host closed the connection)
2021-11-20 22:17:04 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-20 22:20:08 +0100pavonia(~user@user/siracusa)
2021-11-20 22:30:38 +0100lavaman(~lavaman@98.38.249.169)
2021-11-20 22:32:54 +0100mei(~mei@user/mei) (Ping timeout: 260 seconds)
2021-11-20 22:35:57 +0100burnsidesLlama(~burnsides@dhcp168-012.wadham.ox.ac.uk) (Remote host closed the connection)
2021-11-20 22:38:39 +0100hiruji(~hiruji@user/hiruji) (Read error: Connection reset by peer)
2021-11-20 22:43:12 +0100kuribas(~user@ptr-25vy0i85dt12hx5mopu.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-11-20 22:43:31 +0100ubert(~Thunderbi@p548c9fcb.dip0.t-ipconnect.de)
2021-11-20 22:49:19 +0100sagax(~sagax_nb@user/sagax) (Ping timeout: 250 seconds)
2021-11-20 22:51:03 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-11-20 22:52:01 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-11-20 22:53:17 +0100ees(~user@pool-108-18-30-46.washdc.fios.verizon.net) (ERC 5.4 (IRC client for GNU Emacs 28.0.60))
2021-11-20 22:53:42 +0100ees(~user@pool-108-18-30-46.washdc.fios.verizon.net)
2021-11-20 22:54:45 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net) (Read error: Connection reset by peer)
2021-11-20 22:55:03 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-11-20 22:55:43 +0100rusty(~rustyboy@82.77.237.221)
2021-11-20 22:58:00 +0100Guest17(~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed)
2021-11-20 23:02:51 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 276 seconds)
2021-11-20 23:08:55 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:b4a8:9431:5c1:c0e0)
2021-11-20 23:09:55 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-11-20 23:11:47 +0100rusty(~rustyboy@82.77.237.221) (Quit: Leaving)
2021-11-20 23:13:20 +0100burnsidesLlama(~burnsides@dhcp168-012.wadham.ox.ac.uk)
2021-11-20 23:13:35 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:b4a8:9431:5c1:c0e0) (Ping timeout: 264 seconds)
2021-11-20 23:14:51 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-11-20 23:15:15 +0100hiruji(~hiruji@user/hiruji)
2021-11-20 23:15:15 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-11-20 23:15:28 +0100hiruji(~hiruji@user/hiruji) (Remote host closed the connection)
2021-11-20 23:15:46 +0100hiruji(~hiruji@user/hiruji)
2021-11-20 23:16:14 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 260 seconds)
2021-11-20 23:17:58 +0100waleee(~waleee@h-82-196-111-63.NA.cust.bahnhof.se)
2021-11-20 23:18:49 +0100burnsidesLlama(~burnsides@dhcp168-012.wadham.ox.ac.uk) (Ping timeout: 265 seconds)
2021-11-20 23:20:23 +0100hiruji(~hiruji@user/hiruji) (Ping timeout: 256 seconds)
2021-11-20 23:20:38 +0100hiruji(~hiruji@user/hiruji)
2021-11-20 23:22:35 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 264 seconds)
2021-11-20 23:22:43 +0100jinsun__jinsun
2021-11-20 23:24:03 +0100zer0bitz(~zer0bitz@dsl-hkibng31-54fabc-15.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-11-20 23:26:54 +0100mikoto-chan(~mikoto-ch@esm-84-240-99-143.netplaza.fi)
2021-11-20 23:29:42 +0100burnsidesLlama(~burnsides@dhcp168-012.wadham.ox.ac.uk)
2021-11-20 23:34:33 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
2021-11-20 23:35:05 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-11-20 23:35:44 +0100mimmy(~mimmy@2607:fea8:6e0:7f90:d960:c213:7b57:d73e)
2021-11-20 23:35:48 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:b4a8:9431:5c1:c0e0)
2021-11-20 23:37:46 +0100notzmv(~zmv@user/notzmv)
2021-11-20 23:40:58 +0100mimmy(~mimmy@2607:fea8:6e0:7f90:d960:c213:7b57:d73e) (Ping timeout: 260 seconds)
2021-11-20 23:44:18 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2021-11-20 23:45:52 +0100gg(~gg@88.160.100.84) (Read error: Connection reset by peer)
2021-11-20 23:49:07 +0100acidjnk_new(~acidjnk@2001:16b8:67ca:f700:252c:a817:9d7d:a6ca) (Ping timeout: 250 seconds)
2021-11-20 23:49:56 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-11-20 23:50:22 +0100yauhsien(~yauhsien@118-167-40-224.dynamic-ip.hinet.net)
2021-11-20 23:51:24 +0100dhil(~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net) (Remote host closed the connection)
2021-11-20 23:55:26 +0100yauhsien(~yauhsien@118-167-40-224.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
2021-11-20 23:58:35 +0100gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)