2024/02/21

2024-02-21 00:01:05 +0100 <fen_> you get how this handling localness of instance gives rise to these considerations of strictness that motivate strengthening ? to !?
2024-02-21 00:01:10 +0100 <fen_> and then you get the proposal
2024-02-21 00:01:23 +0100 <fen_> and why i want to see these local scopes in action in an example
2024-02-21 00:01:33 +0100 <fen_> does anyone actually want to help me write it?
2024-02-21 00:02:56 +0100 <fen_> like, possibly, depending on if constraint continuations are the best way to do this, there could be a syntax for it also?
2024-02-21 00:03:10 +0100 <fen_> i cant really understand it enough at that point
2024-02-21 00:03:31 +0100 <fen_> im not used to constraint continuations, and cant even work with them enough to write the example
2024-02-21 00:03:41 +0100 <fen_> i guess thats really what im needing help with
2024-02-21 00:04:00 +0100 <fen_> other people here are much more experienced using continuations
2024-02-21 00:04:45 +0100 <fen_> the stumbling block im having is that constraint continuations are the only way i know how to do this handling of local scope, and i dont know how to use them properly to write it
2024-02-21 00:05:13 +0100 <fen_> maybe if someone that could understand what the constraint continuation was doing there, could propose an alternative that i could actually work with#
2024-02-21 00:06:10 +0100 <mauke> I'm not convinced this actually means anything
2024-02-21 00:06:19 +0100 <fen_> f g x = let !y = g x in let ?z = y in ... return the continuation...
2024-02-21 00:06:37 +0100 <fen_> mauke: im not convinced your not generating averse commentary
2024-02-21 00:06:45 +0100 <mauke> correct
2024-02-21 00:06:59 +0100 <fen_> confirmed
2024-02-21 00:07:06 +0100 <mauke> the alternative is silence
2024-02-21 00:07:23 +0100 <fen_> how do you work with continuations normally, like how do you return one?
2024-02-21 00:07:40 +0100 <mauke> what do you mean by continuations?
2024-02-21 00:07:51 +0100 <fen_> (a->b)->b
2024-02-21 00:07:56 +0100 <fen_> is a continuation which encodes a
2024-02-21 00:08:30 +0100 <fen_> ou need an a to make a b so you must somehow have an a if you can make a b from a function making a from b
2024-02-21 00:08:36 +0100 <fen_> b from a*
2024-02-21 00:08:44 +0100 <mauke> that's the type of a function, which is a value, which is returned like any other value. ?
2024-02-21 00:08:58 +0100 <fen_> i mean, how do you make that?
2024-02-21 00:09:19 +0100 <mauke> are you asking how to write functions in haskell?
2024-02-21 00:09:20 +0100 <fen_> f g x = let !y = g x in let ?z = y in \fz -> fz z
2024-02-21 00:09:42 +0100 <fen_> % :t \g x = let !y = g x in let ?z = y in \fz -> fz z
2024-02-21 00:09:42 +0100 <yahb2> <interactive>:1:6: error: parse error on input ‘=’
2024-02-21 00:09:51 +0100 <mauke> ->
2024-02-21 00:09:52 +0100 <fen_> % :t \g x -> let !y = g x in let ?z = y in \fz -> fz z
2024-02-21 00:09:52 +0100 <yahb2> <interactive>:1:29: error: parse error on input ‘?’
2024-02-21 00:10:06 +0100 <fen_> % :t \g x -> let !y = g x in let !z = y in \fz -> fz z
2024-02-21 00:10:06 +0100 <yahb2> \g x -> let !y = g x in let !z = y in \fz -> fz z ; :: forall {p} {t1} {t2}. (p -> t1) -> p -> (t1 -> t2) -> t2
2024-02-21 00:10:26 +0100sudden(~cat@user/sudden) (Ping timeout: 268 seconds)
2024-02-21 00:10:41 +0100 <fen_> ((t1 -> t2) -> t2) is the returned constraint continuation
2024-02-21 00:10:50 +0100 <fen_> how do you get it to turn on implicit params?
2024-02-21 00:11:22 +0100 <fen_> % -XImplicitParams
2024-02-21 00:11:22 +0100 <yahb2> <interactive>:223:2: error: ; • Data constructor not in scope: XImplicitParams ; • Perhaps you meant one of these: ; ‘ImplicitParams’ (imported from Language.Haskell.TH), ; ...
2024-02-21 00:11:40 +0100 <mauke> % :set -XImplicitParams
2024-02-21 00:11:40 +0100 <yahb2> <no output>
2024-02-21 00:11:47 +0100 <fen_> % :t \g x = let !y = g x in let ?z = y in \fz -> fz z
2024-02-21 00:11:47 +0100 <yahb2> <interactive>:1:6: error: parse error on input ‘=’
2024-02-21 00:11:52 +0100 <fen_> % :t \g x -> let !y = g x in let ?z = y in \fz -> fz z
2024-02-21 00:11:53 +0100 <yahb2> <interactive>:1:49: error: Variable not in scope: z
2024-02-21 00:12:12 +0100 <fen_> argh!
2024-02-21 00:12:22 +0100 <mauke> % :t \g x -> let !y = g x in let ?z = y in \fz -> fz ?z
2024-02-21 00:12:22 +0100 <yahb2> \g x -> let !y = g x in let ?z = y in \fz -> fz ?z ; :: forall {p} {t1} {t2}. (p -> t1) -> p -> (t1 -> t2) -> t2
2024-02-21 00:12:44 +0100 <fen_> you cant even capture the let bound variable as a returned output
2024-02-21 00:12:51 +0100 <fen_> since it cant appear at term level after reflection
2024-02-21 00:13:26 +0100 <fen_> % :t \g x -> let !y = g x in let ?z = y in \(fz :: ?z -> a) -> fz
2024-02-21 00:13:26 +0100 <yahb2> <interactive>:1:50: error: parse error on input ‘->’
2024-02-21 00:13:46 +0100 <fen_> % :t \g x -> let !y = g x in let ?z = y in \(fz :: ?z => a) -> fz
2024-02-21 00:13:46 +0100 <yahb2> <interactive>:1:50: error: parse error on input ‘=>’
2024-02-21 00:13:47 +0100yoo(~yo0O0o@104.28.194.105) (Ping timeout: 264 seconds)
2024-02-21 00:13:55 +0100 <fen_> fucks sake
2024-02-21 00:14:09 +0100 <fen_> that would have been it
2024-02-21 00:15:57 +0100 <mauke> % :t \g x -> \fz -> fz ?z
2024-02-21 00:15:57 +0100 <yahb2> \g x -> \fz -> fz ?z ; :: forall {t1} {p1} {p2} {t2}. ; (?z::t1) => ; p1 -> p2 -> (t1 -> t2) -> t2
2024-02-21 00:16:34 +0100 <fen_> % :t ((\g x -> let !y = g x in let ?z = y in fz -> fz) :: (a->b) -> a -> ((?z::b=>c)->c))
2024-02-21 00:16:34 +0100 <yahb2> <interactive>:1:76: error: parse error on input ‘=>’
2024-02-21 00:16:55 +0100 <fen_> hmm, that might just be yahb
2024-02-21 00:17:35 +0100 <geekosaur> if yahb doesn't like it then ghci doesn't like it
2024-02-21 00:17:55 +0100Sgeo(~Sgeo@user/sgeo)
2024-02-21 00:22:00 +0100yoo(~yo0O0o@104.28.194.105)
2024-02-21 00:22:05 +0100 <geekosaur> pretty sure you need a "forall" (or the implicit "forall" at the start of a type) to introduce a constraint
2024-02-21 00:22:31 +0100 <fen_> f g x = (let !y = g x in let ?z = y in \fz -> fz) :: (a->b) -> a ->((?z::b=>c)->c)
2024-02-21 00:22:36 +0100 <fen_> does not work
2024-02-21 00:22:57 +0100 <mauke> if you intend ?z to stay open in the result, why are you binding it?
2024-02-21 00:23:11 +0100 <fen_> the place its used
2024-02-21 00:23:16 +0100 <fen_> its not with it defined
2024-02-21 00:23:22 +0100 <mauke> huh?
2024-02-21 00:23:25 +0100 <fen_> its usable if it can be provided
2024-02-21 00:23:44 +0100 <fen_> the user writing a function awaits its arguments creation and does say nothing about its existence
2024-02-21 00:24:18 +0100 <fen_> z does get used in the eval of fz btw
2024-02-21 00:24:28 +0100 <fen_> thats why im trying to add this type sig
2024-02-21 00:24:42 +0100 <fen_> it doesnt like constraints at lambdas apparently
2024-02-21 00:24:53 +0100 <fen_> which is just great since these continuations everywhere with constraints
2024-02-21 00:25:38 +0100sudden(~cat@user/sudden)
2024-02-21 00:25:49 +0100 <mauke> none of that makes any sense to me
2024-02-21 00:26:09 +0100 <mauke> % :t ?x
2024-02-21 00:26:09 +0100 <yahb2> ?x :: forall {t}. (?x::t) => t
2024-02-21 00:26:13 +0100mud(~mud@user/kadoban)
2024-02-21 00:26:20 +0100 <mauke> here ?x is open, so it appears as a constraint in the type signature
2024-02-21 00:26:29 +0100 <mauke> % :t let ?x = 42 in ?x
2024-02-21 00:26:29 +0100 <yahb2> let ?x = 42 in ?x :: forall {p}. Num p => p
2024-02-21 00:26:42 +0100 <fen_> right, the place we use the variable has it open, like a function argument, thats what i was saying
2024-02-21 00:26:52 +0100 <mauke> here ?x is bound internally, so it doesn't show up in the type
2024-02-21 00:27:08 +0100 <fen_> we want to return a place where the bound implicit param can be used
2024-02-21 00:27:24 +0100 <fen_> (?z::b=>c)->c
2024-02-21 00:27:26 +0100 <mauke> in your code you bind ?z, but you also want it to appear in the type somehow?
2024-02-21 00:27:34 +0100 <fen_> it has to
2024-02-21 00:27:40 +0100 <fen_> its not an argument to fz
2024-02-21 00:27:44 +0100 <fen_> its an implicit param
2024-02-21 00:27:48 +0100 <mauke> ?
2024-02-21 00:27:53 +0100 <fen_> the type of fz has to read;
2024-02-21 00:28:07 +0100yoo(~yo0O0o@104.28.194.105) (Ping timeout: 256 seconds)
2024-02-21 00:28:08 +0100 <fen_> fz :: (?z::b=>c)->c
2024-02-21 00:28:17 +0100 <mauke> that's not a type
2024-02-21 00:28:30 +0100 <fen_> sure it is
2024-02-21 00:28:42 +0100 <mauke> % :t undefined :: (?z::b=>c)->c
2024-02-21 00:28:42 +0100 <yahb2> <interactive>:1:20: error: parse error on input ‘=>’
2024-02-21 00:28:54 +0100 <fen_> yeah i know yahb doesnt like it
2024-02-21 00:29:01 +0100 <mauke> because it's a syntax error
2024-02-21 00:29:08 +0100 <fen_> we wouldnt have gotten very far with constraint continuations if you couldnt write that
2024-02-21 00:29:19 +0100 <mauke> what, syntax errors?
2024-02-21 00:29:40 +0100 <fen_> honestly it worked we did huge amounts... theres pastes that went down with the old pastebin
2024-02-21 00:30:03 +0100 <mauke> % :t undefined :: (?z :: b) => (b -> c) -> c
2024-02-21 00:30:03 +0100 <yahb2> undefined :: (?z :: b) => (b -> c) -> c ; :: forall b c. (?z::b) => (b -> c) -> c
2024-02-21 00:30:27 +0100 <mauke> % :t ($ ?z)
2024-02-21 00:30:27 +0100 <yahb2> ($ ?z) :: forall {a} {b}. (?z::a) => (a -> b) -> b
2024-02-21 00:30:40 +0100 <fen_> this is no good
2024-02-21 00:30:46 +0100 <fen_> a is not a term level argument
2024-02-21 00:31:20 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
2024-02-21 00:31:42 +0100 <fen_> % :t undefined :: (forall a b. Bool a => b)
2024-02-21 00:31:42 +0100 <yahb2> <interactive>:1:27: error: ; • Expected kind ‘k0 -> Constraint’, but ‘Bool’ has kind ‘*’ ; • In an expression type signature: (forall a b. Bool a => b) ; In the expression: undefined ...
2024-02-21 00:31:52 +0100 <fen_> % :t undefined :: (forall a b. Either a => b)
2024-02-21 00:31:52 +0100 <yahb2> <interactive>:1:27: error: ; • Expecting one more argument to ‘Either a’ ; Expected a constraint, but ‘Either a’ has kind ‘* -> *’ ; • In an expression type signature: (forall a b. Ei...
2024-02-21 00:32:06 +0100 <fen_> % :t undefined :: (forall a b. Ord a => b)
2024-02-21 00:32:06 +0100 <yahb2> <interactive>:1:14: error: ; • Could not deduce (Ord a0) ; arising from a type ambiguity check for ; an expression type signature ; from the context: Ord a ; bound...
2024-02-21 00:32:13 +0100liskin(~liskin@xmonad/liskin) (Ping timeout: 264 seconds)
2024-02-21 00:32:40 +0100 <fen_> % :t undefined :: forall a. Ord a => (forall b. Ord a => b)
2024-02-21 00:32:40 +0100 <yahb2> <interactive>:1:14: error: ; • Could not deduce (Ord a0) ; arising from a type ambiguity check for ; an expression type signature ; from the context: Ord a ; bound...
2024-02-21 00:32:52 +0100 <fen_> what a load of shit
2024-02-21 00:34:00 +0100 <fen_> can we use dictionaries?
2024-02-21 00:34:34 +0100 <fen_> https://kseo.github.io/posts/2017-02-06-reified-dictionaries.html
2024-02-21 00:36:49 +0100 <fen_> % data D a b where D :: ?z::a => b -> D a b
2024-02-21 00:36:49 +0100 <yahb2> <interactive>:265:29: error: parse error on input ‘=>’
2024-02-21 00:37:05 +0100 <fen_> % data D a b where D :: (?z::a) => b -> D a b
2024-02-21 00:37:05 +0100 <yahb2> <no output>
2024-02-21 00:38:17 +0100 <fen_> % :t \g x -> let !y = g x in let ?z = y in \(fz :: (?z::b) => a) -> fz
2024-02-21 00:38:17 +0100 <yahb2> <interactive>:1:39: error: ; • Couldn't match expected type ‘p1’ ; with actual type ‘((?z::t) => a) -> a’ ; Cannot equate type variable ‘p1’ ; with a type involvin...
2024-02-21 00:39:35 +0100 <fen_> % :t ((\g x -> let !y = g x in let ?z = y in fz -> fz) :: (a->b) -> a -> (((?z::b)=>c)->c))
2024-02-21 00:39:35 +0100 <yahb2> <interactive>:1:3: error: ; View pattern in expression context: ; \ g x -> let !y = ... in let ?z = y in fz -> fz
2024-02-21 00:40:06 +0100 <fen_> i dont know what its complaining about now
2024-02-21 00:40:34 +0100liskin(~liskin@xmonad/liskin)
2024-02-21 00:40:54 +0100 <fen_> % :t ((\g x -> let !y = g x in let ?z = y in D)
2024-02-21 00:40:54 +0100 <yahb2> <interactive>:1:43: error: ; parse error (possibly incorrect indentation or mismatched brackets)
2024-02-21 00:41:02 +0100 <fen_> % :t (\g x -> let !y = g x in let ?z = y in D)
2024-02-21 00:41:02 +0100 <yahb2> (\g x -> let !y = g x in let ?z = y in D) ; :: forall {p} {a} {b}. (p -> a) -> p -> b -> D a b
2024-02-21 00:41:25 +0100 <fen_> huh, it loses track of the implict parameter constrint because of the dictionary
2024-02-21 00:41:30 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Read error: Connection reset by peer)
2024-02-21 00:42:03 +0100 <fen_> but presumably that dictionary now contains the correctly strictly bound reflected data
2024-02-21 00:42:17 +0100 <fen_> so it looks like this double let binding appears in smart constructors for now
2024-02-21 00:42:29 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2024-02-21 00:42:31 +0100 <fen_> of weird implicit dictionary datatype entries
2024-02-21 00:42:36 +0100 <fen_> whew, this was a slog
2024-02-21 00:42:42 +0100 <fen_> thanks for everyones patience
2024-02-21 00:43:08 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-02-21 00:43:27 +0100 <fen_> annoyingly though, this means there are many pottential different versions
2024-02-21 00:43:38 +0100 <fen_> the scope itself would restrict that to one
2024-02-21 00:44:11 +0100 <fen_> like, constructors are the worst place to put them!
2024-02-21 00:44:21 +0100 <fen_> if you want everything constructed to use the same data
2024-02-21 00:44:53 +0100 <fen_> so suggest making the constructor take a strict implicit dictionary
2024-02-21 00:45:10 +0100 <fen_> that way this can be passed around to all the constructors
2024-02-21 00:45:22 +0100 <fen_> unsuring the universal computed data is already evaluated
2024-02-21 00:47:00 +0100 <fen_> ie rather than making the copnstructor implicity constrained
2024-02-21 00:47:24 +0100 <fen_> you just have a datatype entry which is a strictly constructed implicit dictionary
2024-02-21 00:47:29 +0100 <fen_> im proud of that
2024-02-21 00:48:05 +0100 <fen_> thanks for the help yo, there is no way i could have imagined that on my own
2024-02-21 00:48:18 +0100 <fen_> i swear. sorry i consist of a deluge
2024-02-21 00:48:50 +0100 <fen_> anyway, bring on the !? extension
2024-02-21 00:50:28 +0100yoo(~yo0O0o@104.28.194.104)
2024-02-21 00:53:07 +0100mmhat(~mmh@p200300f1c70b44daee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.2.1)
2024-02-21 01:01:49 +0100nuh^(~cd@c-98-242-74-66.hsd1.ga.comcast.net)
2024-02-21 01:05:59 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 264 seconds)
2024-02-21 01:06:19 +0100Vq(~vq@81-231-76-8-no600.tbcn.telia.com) (Ping timeout: 246 seconds)
2024-02-21 01:06:45 +0100segfaultfizzbuzz(~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds)
2024-02-21 01:08:14 +0100 <fen_> i have serious ethical concerns about a light touch approach and do feel its important to be able to say that
2024-02-21 01:08:21 +0100Vq(~vq@81-231-76-8-no600.tbcn.telia.com)
2024-02-21 01:10:01 +0100 <fen_> also, no implicit params at classes does not preclude dictionary use, which allows even that instances can be strict
2024-02-21 01:10:33 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-02-21 01:10:37 +0100yoo(~yo0O0o@104.28.194.104) (Ping timeout: 264 seconds)
2024-02-21 01:11:43 +0100 <fen_> i cant imagine that its a case where its appearence in an instance would somehow lead to reevlauation by somehow sidestepping the strict reflection, by multiple construction of the reflecting object by function dereferencing
2024-02-21 01:12:29 +0100rvalue(~rvalue@user/rvalue)
2024-02-21 01:12:30 +0100 <fen_> comparing if the strict implicit dictionary appears in a datatype or in a class
2024-02-21 01:12:58 +0100Vq(~vq@81-231-76-8-no600.tbcn.telia.com) (Ping timeout: 246 seconds)
2024-02-21 01:13:24 +0100 <fen_> i hope it works btw, because the actual naming in the dictionary of the value is hidden in the outer datatype
2024-02-21 01:14:08 +0100Vq(~vq@81-231-76-8-no600.tbcn.telia.com)
2024-02-21 01:14:30 +0100 <fen_> otherwise it does seem useful to use the class mechanism to access a declaration of global availability
2024-02-21 01:15:37 +0100 <fen_> though it confronts the fact that the instance usage could lead to recomputation
2024-02-21 01:17:18 +0100 <fen_> i think i fail to be able to make strong theoretic guarantees with these dictionaries
2024-02-21 01:17:53 +0100 <fen_> and not to implement uniqueness scoping as desired
2024-02-21 01:19:01 +0100 <fen_> i cant map strictness at creation through to uniquness at all...
2024-02-21 01:20:44 +0100 <fen_> even if it tries to hijack the global uniqueness of an instance, if this contains a dictionary that can be multiply constructed but still strict, which does nothing to prevent the multiple construction
2024-02-21 01:20:58 +0100 <fen_> you want  the strict reflection to be the only reflection
2024-02-21 01:21:12 +0100segfaultfizzbuzz(~segfaultf@23-93-189-95.fiber.dynamic.sonic.net)
2024-02-21 01:22:38 +0100 <fen_> do you think if an instance referenced something that is a strictly reflected dictionary eg defined at top level, that this would be enough to make it unique and global and strict
2024-02-21 01:22:45 +0100 <fen_> ?
2024-02-21 01:23:55 +0100 <fen_> seems like the top level nature of the functions that must be available during the definition at the instance, constrains the dictionary reference also to be top level
2024-02-21 01:24:08 +0100 <fen_> im not sure if the question remains as to its pottential reevaluation
2024-02-21 01:25:29 +0100 <fen_> or if because it occurs within an instance that we can be sure it only gets constructed the correct way through the strict constructor only once
2024-02-21 01:26:17 +0100 <fen_> i think there is no way of saying that it couldnt call it seveeral times, eg if it had a rangling second argument
2024-02-21 01:26:27 +0100 <fen_> ranging*
2024-02-21 01:27:20 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2024-02-21 01:27:21 +0100 <fen_> datatypes were no good because there can be many of them constructed, even if they reference a dictionary which in some other way could be made unique
2024-02-21 01:28:18 +0100 <fen_> but classes seem no better, because the instances themselves seem to offer no guarantee against repeated construction of the supposedly unique strict reflection
2024-02-21 01:29:23 +0100 <fen_> basically both classes and datatypes can range in several arguments and trigger reevaluation of the unique dictionary
2024-02-21 01:30:22 +0100 <monochrom> OK I think we're done here. You have been offered a lot of options for moving your monologue to better places, and yet you still exhibit your entitlement attitude and re-instate it every time.
2024-02-21 01:30:30 +0100ChanServ+o monochrom
2024-02-21 01:30:32 +0100monochrom+b *!*@84.68.80.95
2024-02-21 01:30:32 +0100fen_monochrom (fen_)
2024-02-21 01:31:19 +0100 <monochrom> (It helps that I'm on the second glass of wine.)
2024-02-21 01:32:48 +0100monochrom-o monochrom
2024-02-21 01:33:07 +0100 <yushyin> +1 wine
2024-02-21 01:38:26 +0100jargon(~jargon@157.sub-174-205-162.myvzw.com)
2024-02-21 01:57:23 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2024-02-21 01:58:26 +0100euleritian(~euleritia@dynamic-176-006-190-101.176.6.pool.telefonica.de)
2024-02-21 02:03:35 +0100pointlessslippe1(~pointless@212.82.82.3) (Ping timeout: 264 seconds)
2024-02-21 02:10:22 +0100 <probie> I'm still not actually sure what the problem fen_ was trying to solve was
2024-02-21 02:10:42 +0100tabemann(~tabemann@2600:1700:7990:24e0:67b0:8842:12fe:e228) (Remote host closed the connection)
2024-02-21 02:11:01 +0100tabemann(~tabemann@2600:1700:7990:24e0:a91b:78d:f890:8e7c)
2024-02-21 02:11:20 +0100pointlessslippe1(~pointless@212.82.82.3)
2024-02-21 02:12:56 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2024-02-21 02:16:55 +0100segfaultfizzbuzz(~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 256 seconds)
2024-02-21 02:18:02 +0100yoo(~yo0O0o@104.28.194.104)
2024-02-21 02:19:32 +0100segfaultfizzbuzz(~segfaultf@23-93-189-95.fiber.dynamic.sonic.net)
2024-02-21 02:20:27 +0100mud(~mud@user/kadoban) (Quit: quit)
2024-02-21 02:28:07 +0100kaskal-(~kaskal@2001:4bb8:2d2:2a03:3b9f:beb4:402d:c396)
2024-02-21 02:28:15 +0100kaskal(~kaskal@2001:4bb8:2c3:39c1:ff3f:d58:4fd9:e10c) (Ping timeout: 268 seconds)
2024-02-21 02:32:35 +0100 <Axman6> tomsmeding: is paste down at the moment? I can't load it
2024-02-21 02:32:46 +0100 <geekosaur> I think they're in bed by now
2024-02-21 02:33:06 +0100 <geekosaur> (shows away in my user list)
2024-02-21 02:33:40 +0100 <c_wraith> it does seem to not be responding, so.. yeah, find a different pastebin for the moment
2024-02-21 02:35:19 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-02-21 02:35:39 +0100 <Axman6> resorted to sending files in chat, probably for the best iwth $work stuff =)
2024-02-21 02:38:01 +0100dolio(~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in)
2024-02-21 02:39:43 +0100pukeGuest9273
2024-02-21 02:39:43 +0100pyooque(~puke@user/puke)
2024-02-21 02:39:43 +0100Guest9273(~puke@user/puke) (Killed (copper.libera.chat (Nickname regained by services)))
2024-02-21 02:39:43 +0100pyooquepuke
2024-02-21 02:40:01 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 264 seconds)
2024-02-21 02:40:28 +0100yoo(~yo0O0o@104.28.194.104) (Ping timeout: 246 seconds)
2024-02-21 02:41:02 +0100puke(~puke@user/puke) (Max SendQ exceeded)
2024-02-21 02:41:06 +0100Square(~Square@user/square)
2024-02-21 02:41:30 +0100puke(~puke@user/puke)
2024-02-21 02:48:15 +0100dolio(~dolio@130.44.134.54)
2024-02-21 02:52:03 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
2024-02-21 02:52:26 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2024-02-21 02:53:27 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-02-21 02:59:58 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com)
2024-02-21 03:02:37 +0100pointlessslippe1(~pointless@212.82.82.3) (Ping timeout: 260 seconds)
2024-02-21 03:04:28 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-02-21 03:05:19 +0100 <EvanR> speaking of neural networks maybe fen was an AI trained on haskell stuff
2024-02-21 03:05:38 +0100 <geekosaur> fen predates LLMs
2024-02-21 03:05:54 +0100 <geekosaur> they got banned on freenode for this kind of behavior
2024-02-21 03:06:22 +0100otto_s(~user@p4ff27fbc.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2024-02-21 03:07:25 +0100xff0x(~xff0x@ai082039.d.east.v6connect.net) (Ping timeout: 268 seconds)
2024-02-21 03:08:04 +0100yoo(~yo0O0o@104.28.226.105)
2024-02-21 03:08:15 +0100otto_s(~user@p5b04434a.dip0.t-ipconnect.de)
2024-02-21 03:28:41 +0100yoo(~yo0O0o@104.28.226.105) (Ping timeout: 268 seconds)
2024-02-21 03:29:08 +0100yoo(~yo0O0o@104.28.226.104)
2024-02-21 03:30:44 +0100 <haskellbridge> <i​rregularsphere> fen's kind of like me to be honest, sometimes i monologue like that
2024-02-21 03:31:32 +0100 <haskellbridge> <i​rregularsphere> unfortunately irc can't delete messages so i can't keep my record clean here
2024-02-21 03:32:31 +0100 <geekosaur> 'sokay, I just almost did the same thing in -offtopic 🙂
2024-02-21 03:33:32 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2024-02-21 03:34:09 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-02-21 03:51:05 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2024-02-21 03:55:31 +0100krei-se(~krei-se@p508747fd.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2024-02-21 03:55:31 +0100synchromesh(~synchrome@2407:7000:aa2d:4e00:9cf7:efcb:5efd:a99) (Read error: Connection reset by peer)
2024-02-21 03:56:29 +0100synchromesh(~synchrome@2407:7000:aa2d:4e00:9cf7:efcb:5efd:a99)
2024-02-21 03:56:43 +0100krei-se(~krei-se@p5085d2ec.dip0.t-ipconnect.de)
2024-02-21 04:04:27 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-02-21 04:08:21 +0100masterbuilder(~quassel@user/masterbuilder) (Ping timeout: 272 seconds)
2024-02-21 04:08:30 +0100masterbuilder(~quassel@user/masterbuilder)
2024-02-21 04:12:22 +0100bilegeek(~bilegeek@2600:1008:b08d:b388:d7ce:bf13:369f:42d9)
2024-02-21 04:20:51 +0100sroso(~sroso@user/SrOso)
2024-02-21 04:22:11 +0100td_(~td@i5387090B.versanet.de) (Ping timeout: 264 seconds)
2024-02-21 04:23:39 +0100td_(~td@i53870902.versanet.de)
2024-02-21 04:27:54 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 255 seconds)
2024-02-21 04:39:43 +0100yoo(~yo0O0o@104.28.226.104) (Ping timeout: 256 seconds)
2024-02-21 04:40:20 +0100yoo(~yo0O0o@104.28.226.108)
2024-02-21 04:40:44 +0100mulk(~mulk@pd95147b3.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2024-02-21 04:44:15 +0100hays(rootvegeta@fsf/member/hays)
2024-02-21 04:44:48 +0100yooo(~yo0O0o@104.28.226.104)
2024-02-21 04:45:02 +0100igemnace(~ian@user/igemnace)
2024-02-21 04:45:57 +0100yoo(~yo0O0o@104.28.226.108) (Ping timeout: 256 seconds)
2024-02-21 04:46:16 +0100mulk(~mulk@p5b2dc008.dip0.t-ipconnect.de)
2024-02-21 04:56:29 +0100segfaultfizzbuzz(~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Quit: segfaultfizzbuzz)
2024-02-21 04:58:11 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 264 seconds)
2024-02-21 04:58:45 +0100yooo(~yo0O0o@104.28.226.104) (Changing host)
2024-02-21 04:58:45 +0100yooo(~yo0O0o@user/mobivme)
2024-02-21 05:12:44 +0100euleritian(~euleritia@dynamic-176-006-190-101.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-21 05:13:02 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-21 05:25:32 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2024-02-21 05:37:05 +0100aforemny_(~aforemny@2001:9e8:6cec:d900:9d72:673f:b1f3:dc04) (Ping timeout: 260 seconds)
2024-02-21 05:37:17 +0100aforemny(~aforemny@2001:9e8:6cd1:9700:269c:3e5b:c88d:39e2)
2024-02-21 05:37:24 +0100nuh^(~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Remote host closed the connection)
2024-02-21 05:45:53 +0100thegeekinside(~thegeekin@189.217.83.221) (Read error: Connection reset by peer)
2024-02-21 05:46:11 +0100ski(~ski@ext-1-033.eduroam.chalmers.se) (Ping timeout: 252 seconds)
2024-02-21 05:46:46 +0100yooo(~yo0O0o@user/mobivme) (Remote host closed the connection)
2024-02-21 05:47:44 +0100jargon(~jargon@157.sub-174-205-162.myvzw.com) (Remote host closed the connection)
2024-02-21 05:50:03 +0100jargon(~jargon@157.sub-174-205-162.myvzw.com)
2024-02-21 05:57:15 +0100Luj(~Luj@2a01:e0a:5f9:9681:f767:82a3:7de:1864) (Quit: Ping timeout (120 seconds))
2024-02-21 05:57:34 +0100Luj(~Luj@2a01:e0a:5f9:9681:535f:4048:fd0:e283)
2024-02-21 05:57:35 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-02-21 05:57:43 +0100euleritian(~euleritia@dynamic-176-006-190-101.176.6.pool.telefonica.de)
2024-02-21 05:58:05 +0100euleritian(~euleritia@dynamic-176-006-190-101.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-21 05:58:23 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-21 06:26:00 +0100ell(~ellie@user/ellie) (Quit: Leaving)
2024-02-21 06:26:36 +0100julie_pilgrim(~julie_pil@user/julie-pilgrim/x-1240752)
2024-02-21 06:32:37 +0100ski(~ski@ext-1-033.eduroam.chalmers.se)
2024-02-21 06:32:49 +0100_3xistence(~existence@176.254.244.83) (Ping timeout: 264 seconds)
2024-02-21 06:32:52 +0100rosco(~rosco@175.136.156.77)
2024-02-21 06:34:50 +0100raym(~ray@user/raym)
2024-02-21 06:34:58 +0100jjhoo(jahakala@user/jjhoo)
2024-02-21 06:36:04 +0100rosco(~rosco@175.136.156.77) (Read error: Connection reset by peer)
2024-02-21 06:36:28 +0100oneeyedalien(~oneeyedal@user/oneeyedalien)
2024-02-21 06:36:31 +0100julie_pilgrim(~julie_pil@user/julie-pilgrim/x-1240752) (Remote host closed the connection)
2024-02-21 06:37:32 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2024-02-21 06:39:58 +0100pavonia(~user@user/siracusa)
2024-02-21 06:56:55 +0100bilegeek(~bilegeek@2600:1008:b08d:b388:d7ce:bf13:369f:42d9) (Quit: Leaving)
2024-02-21 07:02:23 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-02-21 07:04:39 +0100exolight(~exolight@176.254.244.83)
2024-02-21 07:05:58 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2024-02-21 07:08:04 +0100michalz(~michalz@185.246.207.197)
2024-02-21 07:08:16 +0100michalz(~michalz@185.246.207.197) (Client Quit)
2024-02-21 07:11:06 +0100michalz(~michalz@185.246.207.215)
2024-02-21 07:11:26 +0100elbear(~lucian@188.24.178.66)
2024-02-21 07:17:42 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2024-02-21 07:23:27 +0100danza(~francesco@151.43.184.190)
2024-02-21 07:25:39 +0100bliminse(~bliminse@user/bliminse) (Quit: leaving)
2024-02-21 07:30:38 +0100thegeekinside(~thegeekin@189.217.83.221)
2024-02-21 07:32:39 +0100acidjnk(~acidjnk@p200300d6e737e789f1d9672538a89ef2.dip0.t-ipconnect.de)
2024-02-21 07:34:48 +0100bliminse(~bliminse@user/bliminse)
2024-02-21 07:36:54 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
2024-02-21 07:46:15 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2024-02-21 07:50:56 +0100raym(~ray@user/raym) (Quit: brb)
2024-02-21 07:55:55 +0100thegeekinside(~thegeekin@189.217.83.221) (Read error: Connection reset by peer)
2024-02-21 07:56:27 +0100jtza8(~user@user/jtza8)
2024-02-21 07:58:39 +0100csn(~csn@115.96.217.73)
2024-02-21 07:59:08 +0100 <csn> hi how do it include hakyll library on path.. i am running windows 11
2024-02-21 08:16:59 +0100Lycurgus(~georg@user/Lycurgus)
2024-02-21 08:18:03 +0100elbear(~lucian@188.24.178.66) (Quit: leaving)
2024-02-21 08:28:02 +0100Square3(~Square4@user/square)
2024-02-21 08:30:33 +0100Square(~Square@user/square) (Ping timeout: 272 seconds)
2024-02-21 08:31:45 +0100 <haskellbridge> <s​m> are you using stack ?
2024-02-21 08:32:24 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
2024-02-21 08:33:25 +0100euleritian(~euleritia@dynamic-176-006-179-235.176.6.pool.telefonica.de)
2024-02-21 08:34:52 +0100euleritian(~euleritia@dynamic-176-006-179-235.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-21 08:35:09 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-21 08:38:18 +0100 <haskellbridge> <s​m> I really, really wish I had not used spaces in account names
2024-02-21 08:38:25 +0100 <haskellbridge> <s​m> oops
2024-02-21 08:45:18 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-02-21 08:47:01 +0100danza(~francesco@151.43.184.190) (Quit: Leaving)
2024-02-21 08:53:53 +0100 <EvanR> human civilization quantum leap 1, invent zero
2024-02-21 08:54:02 +0100 <EvanR> quantum leap 2, remove space
2024-02-21 08:54:08 +0100 <EvanR> and smart quotes
2024-02-21 08:54:45 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
2024-02-21 08:55:24 +0100euleritian(~euleritia@dynamic-176-006-179-235.176.6.pool.telefonica.de)
2024-02-21 08:59:06 +0100oneeyedalien_(~oneeyedal@user/oneeyedalien)
2024-02-21 08:59:34 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-02-21 09:00:05 +0100CiaoSen(~Jura@2a05:5800:2c5:c300:e6b9:7aff:fe80:3d03)
2024-02-21 09:01:47 +0100oneeyedalien(~oneeyedal@user/oneeyedalien) (Ping timeout: 264 seconds)
2024-02-21 09:03:56 +0100sroso(~sroso@user/SrOso) (Read error: Connection reset by peer)
2024-02-21 09:08:08 +0100sroso(~sroso@user/SrOso)
2024-02-21 09:08:35 +0100sroso(~sroso@user/SrOso) (Max SendQ exceeded)
2024-02-21 09:14:25 +0100sroso(~sroso@user/SrOso)
2024-02-21 09:14:42 +0100 <[exa]> is it somehow possible to have more than 1 "section" in the toplevel haddock module documentation? I'm trying to paste it together somehow from the examples, but failing so far
2024-02-21 09:14:52 +0100sroso(~sroso@user/SrOso) (Max SendQ exceeded)
2024-02-21 09:14:56 +0100 <[exa]> (also I recall I saw it SOMEWHERE so I could copy, but no idea where it was)
2024-02-21 09:17:56 +0100 <dminuoso> [exa]: What does "section" mean to you, exactly?
2024-02-21 09:18:57 +0100fendor(~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c)
2024-02-21 09:20:40 +0100sroso(~sroso@user/SrOso)
2024-02-21 09:21:01 +0100 <dminuoso> [exa]: What you can do is use nested section headings to accomplish that effect.
2024-02-21 09:21:07 +0100sroso(~sroso@user/SrOso) (Max SendQ exceeded)
2024-02-21 09:21:13 +0100 <dminuoso> Look at https://github.com/well-typed/optics/blob/master/optics/src/Optics.hs https://hackage.haskell.org/package/optics-0.4.2.1/docs/Optics.html
2024-02-21 09:23:16 +0100 <dminuoso> Ah I guess you can also just use several sections like that, just put them into the export list at the beginning
2024-02-21 09:23:48 +0100pointlessslippe1(~pointless@212.82.82.3)
2024-02-21 09:26:55 +0100sroso(~sroso@user/SrOso)
2024-02-21 09:27:02 +0100yoo(~yo0O0o@130.105.162.42)
2024-02-21 09:27:35 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-02-21 09:28:56 +0100 <[exa]> oh yes that's it, thanks! I was trying to smash everything into one big docstring, obviously I need the $redirects
2024-02-21 09:29:42 +0100 <dmj`> c_wraith: ping
2024-02-21 09:34:00 +0100oneeyedalien_(~oneeyedal@user/oneeyedalien) (Quit: Leaving)
2024-02-21 09:34:58 +0100csn_(~csn@115.96.217.73)
2024-02-21 09:36:28 +0100kuribas(~user@2a02:1808:8a:e91f:e184:8a20:1122:74ac)
2024-02-21 09:37:52 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-21 09:38:24 +0100csn(~csn@115.96.217.73) (Ping timeout: 255 seconds)
2024-02-21 09:40:17 +0100 <dmj`> c_wraith: I think the static monomorphization approach removes the dictionary elaboration altogether
2024-02-21 09:40:31 +0100dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 260 seconds)
2024-02-21 09:42:07 +0100euleritian(~euleritia@dynamic-176-006-179-235.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-21 09:42:32 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-21 09:47:02 +0100yoo(~yo0O0o@130.105.162.42) (Changing host)
2024-02-21 09:47:02 +0100yoo(~yo0O0o@user/mobivme)
2024-02-21 09:52:45 +0100danse-nr3(~danse@151.43.184.190)
2024-02-21 09:53:49 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-02-21 09:56:42 +0100kuribas(~user@2a02:1808:8a:e91f:e184:8a20:1122:74ac) (Remote host closed the connection)
2024-02-21 09:58:43 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2024-02-21 09:58:44 +0100chele(~chele@user/chele)
2024-02-21 09:59:01 +0100euleritian(~euleritia@dynamic-176-006-179-235.176.6.pool.telefonica.de)
2024-02-21 10:01:15 +0100csn__(~csn@115.96.217.73)
2024-02-21 10:02:25 +0100sroso(~sroso@user/SrOso) (Read error: Connection reset by peer)
2024-02-21 10:04:17 +0100csn_(~csn@115.96.217.73) (Ping timeout: 268 seconds)
2024-02-21 10:06:42 +0100sroso(~sroso@user/SrOso)
2024-02-21 10:07:48 +0100tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz)
2024-02-21 10:09:11 +0100synchromesh(~synchrome@2407:7000:aa2d:4e00:9cf7:efcb:5efd:a99) (Read error: Connection reset by peer)
2024-02-21 10:09:38 +0100ft(~ft@p508db2e6.dip0.t-ipconnect.de) (Quit: leaving)
2024-02-21 10:10:03 +0100danse-nr3(~danse@151.43.184.190) (Read error: Connection reset by peer)
2024-02-21 10:10:14 +0100synchromesh(~synchrome@2407:7000:aa2d:4e00:9cf7:efcb:5efd:a99)
2024-02-21 10:12:40 +0100danse-nr3(~danse@151.43.209.48)
2024-02-21 10:12:51 +0100csn_(~csn@115.96.217.73)
2024-02-21 10:16:18 +0100csn__(~csn@115.96.217.73) (Ping timeout: 268 seconds)
2024-02-21 10:24:05 +0100econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-02-21 10:26:33 +0100yoo(~yo0O0o@user/mobivme) (Ping timeout: 255 seconds)
2024-02-21 10:27:17 +0100mmhat(~mmh@p200300f1c70b44daee086bfffe095315.dip0.t-ipconnect.de)
2024-02-21 10:34:42 +0100kuribas(~user@2a02:1808:8a:e91f:a062:7ecd:d33:3185)
2024-02-21 10:35:45 +0100euleritian(~euleritia@dynamic-176-006-179-235.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-21 10:36:03 +0100euleritian(~euleritia@77.22.252.56)
2024-02-21 10:38:31 +0100csn__(~csn@115.96.217.73)
2024-02-21 10:41:59 +0100csn_(~csn@115.96.217.73) (Ping timeout: 264 seconds)
2024-02-21 10:46:58 +0100dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2024-02-21 10:49:24 +0100 <carbolymer> is there any doc for -Wno-x-partial flag?
2024-02-21 10:50:55 +0100 <carbolymer> ah it's just warning about partial functions in ghc 9.8
2024-02-21 10:50:59 +0100ell(~ellie@user/ellie)
2024-02-21 10:56:02 +0100yoo(~yo0O0o@130.105.162.42)
2024-02-21 11:02:00 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-02-21 11:06:48 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 256 seconds)
2024-02-21 11:15:50 +0100gehmehgeh(~user@user/gehmehgeh)
2024-02-21 11:16:23 +0100csn_(~csn@115.96.217.73)
2024-02-21 11:16:53 +0100img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2024-02-21 11:17:00 +0100gehmehgehgmg
2024-02-21 11:18:53 +0100csn__(~csn@115.96.217.73) (Ping timeout: 240 seconds)
2024-02-21 11:19:38 +0100oo_miguel(~Thunderbi@78-11-181-16.static.ip.netia.com.pl)
2024-02-21 11:20:36 +0100img(~img@user/img)
2024-02-21 11:21:37 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 246 seconds)
2024-02-21 11:22:11 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2024-02-21 11:27:44 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com)
2024-02-21 11:28:20 +0100csn__(~csn@115.96.217.73)
2024-02-21 11:28:41 +0100benkard(~mulk@pd9514f6d.dip0.t-ipconnect.de)
2024-02-21 11:29:13 +0100mulk(~mulk@p5b2dc008.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2024-02-21 11:29:13 +0100benkardmulk
2024-02-21 11:31:04 +0100csn_(~csn@115.96.217.73) (Ping timeout: 246 seconds)
2024-02-21 11:32:15 +0100ski(~ski@ext-1-033.eduroam.chalmers.se) (Ping timeout: 255 seconds)
2024-02-21 11:33:08 +0100ski(~ski@ext-1-033.eduroam.chalmers.se)
2024-02-21 11:45:45 +0100yoo(~yo0O0o@130.105.162.42) (Ping timeout: 255 seconds)
2024-02-21 11:49:47 +0100rosco(~rosco@175.136.156.77)
2024-02-21 11:50:22 +0100sroso(~sroso@user/SrOso) (Quit: Leaving :))
2024-02-21 11:50:49 +0100xff0x(~xff0x@ai082039.d.east.v6connect.net)
2024-02-21 11:54:08 +0100csn_(~csn@115.96.217.73)
2024-02-21 11:56:37 +0100csn__(~csn@115.96.217.73) (Ping timeout: 256 seconds)
2024-02-21 11:59:58 +0100a51(a51@gateway/vpn/protonvpn/a51)
2024-02-21 12:03:32 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:7702:da98:c9d3:8474)
2024-02-21 12:06:46 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-02-21 12:09:25 +0100Eoco_(~ian@128.101.131.218) (Ping timeout: 264 seconds)
2024-02-21 12:16:26 +0100Eoco(~ian@128.101.131.218)
2024-02-21 12:21:18 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 255 seconds)
2024-02-21 12:27:30 +0100rosco(~rosco@175.136.156.77) (Quit: Lost terminal)
2024-02-21 12:30:58 +0100troydm(~troydm@user/troydm)
2024-02-21 12:41:41 +0100zetef(~quassel@2a02:2f00:5208:300:c040:6289:5a5f:2d91)
2024-02-21 12:49:14 +0100danse-nr3(~danse@151.43.209.48) (Ping timeout: 268 seconds)
2024-02-21 12:50:20 +0100rosco(~rosco@175.136.156.77)
2024-02-21 12:52:55 +0100jargon(~jargon@157.sub-174-205-162.myvzw.com) (Remote host closed the connection)
2024-02-21 12:58:48 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-02-21 13:11:40 +0100CiaoSen(~Jura@2a05:5800:2c5:c300:e6b9:7aff:fe80:3d03) (Ping timeout: 260 seconds)
2024-02-21 13:12:47 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: Textual IRC Client: www.textualapp.com)
2024-02-21 13:15:16 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2024-02-21 13:18:39 +0100zetef(~quassel@2a02:2f00:5208:300:c040:6289:5a5f:2d91) (Read error: Connection reset by peer)
2024-02-21 13:23:38 +0100ph88^(~ph88@2a02:8109:9e26:c800:5d6d:c5dc:fbc4:3d94)
2024-02-21 13:48:47 +0100ph88(~ph88@91.64.63.48) (Ping timeout: 260 seconds)
2024-02-21 13:52:57 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2024-02-21 13:55:32 +0100ph88(~ph88@2a02:8109:9e26:c800:8ede:73b0:bb5c:daa3)
2024-02-21 13:58:50 +0100danse-nr3(~danse@151.43.238.22)
2024-02-21 14:12:11 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-21 14:15:34 +0100CiaoSen(~Jura@2a05:5800:2c5:c300:e6b9:7aff:fe80:3d03)
2024-02-21 14:16:02 +0100euleritian(~euleritia@77.22.252.56) (Ping timeout: 252 seconds)
2024-02-21 14:18:44 +0100euleritian(~euleritia@dynamic-176-006-177-235.176.6.pool.telefonica.de)
2024-02-21 14:18:44 +0100synchromesh(~synchrome@2407:7000:aa2d:4e00:9cf7:efcb:5efd:a99) (Read error: Connection reset by peer)
2024-02-21 14:19:58 +0100synchromesh(~synchrome@2407:7000:aa2d:4e00:9cf7:efcb:5efd:a99)
2024-02-21 14:25:01 +0100TheCoffeMaker_(~TheCoffeM@186.137.141.113)
2024-02-21 14:25:11 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 264 seconds)
2024-02-21 14:26:55 +0100ph88^(~ph88@2a02:8109:9e26:c800:5d6d:c5dc:fbc4:3d94) (Ping timeout: 256 seconds)
2024-02-21 14:29:57 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-02-21 14:30:32 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 260 seconds)
2024-02-21 14:31:56 +0100TheCoffeMaker_(~TheCoffeM@186.137.141.113) (Ping timeout: 260 seconds)
2024-02-21 14:32:48 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-02-21 14:35:53 +0100dumptruckman(~dumptruck@23-239-13-136.ip.linodeusercontent.com) (Quit: ZNC - https://znc.in)
2024-02-21 14:38:26 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-21 14:43:06 +0100csn_(~csn@115.96.217.73) (Read error: Connection reset by peer)
2024-02-21 14:44:31 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2024-02-21 14:44:37 +0100Achylles(~Achylles_@45.182.57.81)
2024-02-21 14:46:18 +0100dumptruckman(~dumptruck@69-164-220-160.ip.linodeusercontent.com)
2024-02-21 14:57:13 +0100euleritian(~euleritia@dynamic-176-006-177-235.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-21 15:00:02 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-21 15:03:05 +0100fendor(~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Quit: Leaving)
2024-02-21 15:04:38 +0100rosco(~rosco@175.136.156.77) (Quit: Lost terminal)
2024-02-21 15:11:08 +0100jinsun_(~jinsun@user/jinsun)
2024-02-21 15:11:08 +0100jinsunGuest4095
2024-02-21 15:11:09 +0100Guest4095(~jinsun@user/jinsun) (Killed (iridium.libera.chat (Nickname regained by services)))
2024-02-21 15:11:09 +0100jinsun_jinsun
2024-02-21 15:13:14 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
2024-02-21 15:13:39 +0100end(~end@user/end/x-0094621) (Ping timeout: 255 seconds)
2024-02-21 15:13:40 +0100Nikopol(nikopol@user/astrorigin) (Quit: Bye!)
2024-02-21 15:13:50 +0100Nikopol(nikopol@user/astrorigin)
2024-02-21 15:14:52 +0100mmhat(~mmh@p200300f1c70b44daee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2024-02-21 15:15:14 +0100mmhat(~mmh@p200300f1c70b449aee086bfffe095315.dip0.t-ipconnect.de)
2024-02-21 15:17:30 +0100euleritian(~euleritia@dynamic-176-006-177-235.176.6.pool.telefonica.de)
2024-02-21 15:18:37 +0100end(~end@user/end/x-0094621)
2024-02-21 15:19:11 +0100yoo(~yo0O0o@130.105.162.42)
2024-02-21 15:22:55 +0100thegeekinside(~thegeekin@189.217.83.221)
2024-02-21 15:31:55 +0100jtza8(~user@user/jtza8) (Ping timeout: 260 seconds)
2024-02-21 15:32:53 +0100kuribas`(~user@2a02:1808:4:5142:d283:8f22:e8ed:88fa)
2024-02-21 15:34:49 +0100kuribas(~user@2a02:1808:8a:e91f:a062:7ecd:d33:3185) (Ping timeout: 255 seconds)
2024-02-21 15:38:48 +0100danse-nr3(~danse@151.43.238.22) (Ping timeout: 256 seconds)
2024-02-21 15:38:59 +0100yoo(~yo0O0o@130.105.162.42) (Ping timeout: 264 seconds)
2024-02-21 15:40:55 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2024-02-21 15:51:12 +0100yoo(~yo0O0o@130.105.162.42)
2024-02-21 15:54:19 +0100euleritian(~euleritia@dynamic-176-006-177-235.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-21 15:54:37 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-21 16:05:36 +0100k3ut0i(~keutoi@223.230.94.191)
2024-02-21 16:09:22 +0100 <k3ut0i> I'm using IntMap to count frequency of elements in a list. foldl (\m x -> insertWith (const (1+)) x 1 m) empty
2024-02-21 16:09:30 +0100 <k3ut0i> Is there any way to speed this up?
2024-02-21 16:09:58 +0100yoo(~yo0O0o@130.105.162.42) (Ping timeout: 256 seconds)
2024-02-21 16:11:04 +0100 <dminuoso> k3ut0i: You likely want foldl' at minimum.
2024-02-21 16:11:54 +0100 <dminuoso> To cause maximum confusion, we gave you `foldl` but forgot to tell you should probably not use it (most of the time).
2024-02-21 16:12:43 +0100 <kuribas`> k3ut0i: by not using IntMap?
2024-02-21 16:13:36 +0100 <kuribas`> maybe "map length . group . sort"
2024-02-21 16:13:48 +0100 <dminuoso> kuribas`: Another thing you could do is have an `IntMap (STRef Int)` and just mutate references instead.
2024-02-21 16:13:52 +0100 <dminuoso> Sorry, I meant k3ut0i.
2024-02-21 16:13:58 +0100 <kuribas`> > map length . group . sort [5, 2, 6, 4]
2024-02-21 16:13:59 +0100 <lambdabot> error:
2024-02-21 16:13:59 +0100 <lambdabot> • Couldn't match expected type ‘a -> [a1]’ with actual type ‘[a0]’
2024-02-21 16:13:59 +0100 <lambdabot> • Possible cause: ‘sort’ is applied to too many arguments
2024-02-21 16:14:18 +0100 <kuribas`> > map length $ group $ sort [5, 2, 6, 4, 5, 4, 4]
2024-02-21 16:14:20 +0100 <lambdabot> [1,3,2,1]
2024-02-21 16:15:14 +0100 <int-e> k3ut0i: if you use foldl' and Data.IntMap.Strict that should avoid any buildup of thunks.
2024-02-21 16:15:16 +0100 <kuribas`> > map (\l -> (head l, length l)) $ group $ sort [5, 2, 6, 4, 5, 4, 4]
2024-02-21 16:15:18 +0100 <lambdabot> [(2,1),(4,3),(5,2),(6,1)]
2024-02-21 16:15:34 +0100 <dminuoso> But yeah, foldl is one of the biggest warts we have.
2024-02-21 16:15:36 +0100cheater_(~Username@user/cheater)
2024-02-21 16:17:01 +0100cheater(~Username@user/cheater) (Ping timeout: 246 seconds)
2024-02-21 16:17:01 +0100cheater_cheater
2024-02-21 16:17:03 +0100cheater(~Username@user/cheater) (Read error: Connection reset by peer)
2024-02-21 16:17:48 +0100cheater_(~Username@user/cheater)
2024-02-21 16:17:48 +0100cheater_cheater
2024-02-21 16:18:20 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 260 seconds)
2024-02-21 16:18:25 +0100Tisoxin(~Ikosit@user/ikosit) (Quit: The Lounge - https://thelounge.chat)
2024-02-21 16:18:58 +0100 <int-e> I'd habitually go with M.fromListWith (+) [(x,1) | x <- xs] but foldl' version could be better. Hard to see because it's a matter of compiler optimization (fusion kicking in).
2024-02-21 16:18:59 +0100Tisoxin(~Ikosit@user/ikosit)
2024-02-21 16:19:35 +0100mjs2600_(~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net)
2024-02-21 16:20:12 +0100mjs2600(~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net) (Ping timeout: 260 seconds)
2024-02-21 16:21:36 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-02-21 16:22:12 +0100 <k3ut0i> foldl' and IntMap.Strict still not fast enough, will IntMap (STRef Int) be faster?
2024-02-21 16:23:03 +0100 <dminuoso> k3ut0i: Note that it would also be IntMap.Strit for STRef
2024-02-21 16:23:17 +0100 <dminuoso> k3ut0i: What order of magnitude is that map going to be?
2024-02-21 16:23:51 +0100 <k3ut0i> 200_000 elements, each < 10^9
2024-02-21 16:23:51 +0100 <kuribas`> dminuoso: "for list".
2024-02-21 16:24:07 +0100 <kuribas`> because foldl could be sensible for other structures.
2024-02-21 16:24:11 +0100 <kuribas`> Like a SnocList.
2024-02-21 16:24:54 +0100 <dminuoso> kuribas`: Hold on, what do you mean by "each < 10^9"?
2024-02-21 16:25:01 +0100 <dminuoso> Sorry k3ut0i again.
2024-02-21 16:25:06 +0100 <kuribas`> k3ut0i: How fast is it? Do you compile or just ghci?
2024-02-21 16:25:06 +0100 <dminuoso> Tab completion went wrong.
2024-02-21 16:25:10 +0100 <kuribas`> no worries
2024-02-21 16:25:25 +0100xtabentun(uid491929@id-491929.tinside.irccloud.com)
2024-02-21 16:25:47 +0100 <kuribas`> Also, due to lazyness, you may be also timing the generation of the numbers, not the actual counting.
2024-02-21 16:25:49 +0100 <int-e> I don't think IntMap (STRef Int) will be faster unless you have *many* duplicates.
2024-02-21 16:25:49 +0100 <dminuoso> k3ut0i: I would expect STRef to perform somewhat better because you will have less allocations in a tight loop going on.
2024-02-21 16:27:05 +0100 <k3ut0i> compiling... I'm doing a competition. It's timing out only when most of the numbers are different. So default insertions rather than updates.
2024-02-21 16:27:18 +0100 <dminuoso> k3ut0i: One optimization step that comes to mind is doing a sort of pre-sort step.
2024-02-21 16:27:25 +0100 <dminuoso> Not necessarily full sort.
2024-02-21 16:27:58 +0100 <dminuoso> k3ut0i: See https://hackage.haskell.org/package/containers-0.7/docs/Data-IntMap-Strict.html#v:insertWith performance notes
2024-02-21 16:28:06 +0100 <int-e> If you involve ST, mutable data structures become a serious option... https://hackage.haskell.org/package/hashtables has a few ST based ones (what package do people use for hashtables?)
2024-02-21 16:28:40 +0100 <dminuoso> unordered-containers is popular
2024-02-21 16:28:50 +0100 <int-e> If you do a full pre-sort then I'd expect group . sort to be better.
2024-02-21 16:29:15 +0100 <int-e> but unordered-containers is persistent
2024-02-21 16:29:35 +0100erisco_(~erisco@d24-141-66-165.home.cgocable.net)
2024-02-21 16:29:41 +0100erisco(~erisco@d24-141-66-165.home.cgocable.net) (Ping timeout: 252 seconds)
2024-02-21 16:29:45 +0100erisco_erisco
2024-02-21 16:29:45 +0100 <dminuoso> Im starting to think that an IntMap is not going to give you good performance characteristics, because you are re-doing work on each insert.
2024-02-21 16:32:51 +0100 <int-e> I'd seriously consider stuffing the numbers into an unboxed vector, sorting that, and then collect the groups (which may or may not exist in the vector package)
2024-02-21 16:33:35 +0100 <dminuoso> Mmm yeah, thats not a bad idea. The biggest price point for this kind of algorithm in regular idiomatic haskell is going to be memory indirections
2024-02-21 16:33:49 +0100 <dminuoso> With an unboxed vector you can leverage locality of cache some
2024-02-21 16:38:15 +0100Square3(~Square4@user/square) (Ping timeout: 255 seconds)
2024-02-21 16:39:11 +0100 <dminuoso> Honestly the more you approach this, the less haskelly this becomes.
2024-02-21 16:39:26 +0100 <k3ut0i> dminuoso: by "each < 10^9" I meant each integer is bound by 10^9. If it was around 10^5, I would've used a mutable array.
2024-02-21 16:39:36 +0100 <dminuoso> Once you're doing an unboxed vector, you might as well use a mutable inplace sort
2024-02-21 16:39:57 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2024-02-21 16:40:25 +0100 <dminuoso> And this eventually becomes a race for locality of reference and tight loops, your code will start looking more and more like C/Rust/whatever.
2024-02-21 16:41:49 +0100euleritian(~euleritia@dynamic-176-006-177-235.176.6.pool.telefonica.de)
2024-02-21 16:45:27 +0100euleritian(~euleritia@dynamic-176-006-177-235.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-21 16:46:42 +0100 <dminuoso> k3ut0i: So for maximum speed you could implement https://ieeexplore.ieee.org/document/8213187 using https://hackage.haskell.org/package/ghc-prim-0.11.0/docs/GHC-Prim.html#g:42
2024-02-21 16:47:17 +0100 <dminuoso> Then just do that SIMD powered quicksort on a ByteArray#, and then write a tight loop counting consecutive elements on that.
2024-02-21 16:47:25 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-21 16:47:43 +0100 <dminuoso> (Needs LLVM available, of course)
2024-02-21 16:56:23 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2024-02-21 16:56:52 +0100 <kuribas`> k3ut0i: most of the leetcode style problems only require you to have the right complexity.
2024-02-21 16:57:19 +0100 <kuribas`> k3ut0i: Maybe this problem could be done in O(n)?
2024-02-21 16:58:12 +0100 <kuribas`> For example with dynamic programming?
2024-02-21 16:58:15 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 260 seconds)
2024-02-21 16:59:55 +0100notzmv(~daniel@user/notzmv) (Ping timeout: 256 seconds)
2024-02-21 17:00:58 +0100euleritian(~euleritia@dynamic-176-006-177-235.176.6.pool.telefonica.de)
2024-02-21 17:01:32 +0100 <k3ut0i> If h is the intmap, the answer is exactly: h 1 * h 2 + sum (map (\x -> x * (x - 1)/2) (elems h))
2024-02-21 17:02:54 +0100 <kuribas`> So you only need to know the two most frequent elements?
2024-02-21 17:02:58 +0100 <k3ut0i> So only if we can create h in O(n)
2024-02-21 17:03:12 +0100 <kuribas`> That can be done in O(n)
2024-02-21 17:03:59 +0100 <kuribas`> ah no, you need all frequencies...
2024-02-21 17:04:02 +0100 <int-e> that is... number of equal pairs when treating 1 and 2 as equal?
2024-02-21 17:04:36 +0100 <int-e> (I'm trying to understand the h 1 * h 2 part)
2024-02-21 17:04:45 +0100 <k3ut0i> (h 1) is the frequency of 1
2024-02-21 17:05:25 +0100 <k3ut0i> for all frequencies f, sum f*(f-1)/2. then sum (frequency of 1)*(frequency of 2)
2024-02-21 17:07:03 +0100 <int-e> so you also count pairs of 1s and 2s in either order, so effectively you're treating 1 and 2 as equal.
2024-02-21 17:08:07 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-02-21 17:10:22 +0100danse-nr3(~danse@151.47.247.148)
2024-02-21 17:11:40 +0100 <kuribas`> Anyway, an unboxed vector would be an order of magnitude faster than an IntMap.
2024-02-21 17:14:09 +0100 <k3ut0i> I cant use additional packages :(
2024-02-21 17:14:25 +0100Ram-Z(~Ram-Z@li1814-254.members.linode.com) (Ping timeout: 246 seconds)
2024-02-21 17:14:32 +0100 <kuribas`> vector is not included?
2024-02-21 17:14:58 +0100Ram-Z(~Ram-Z@li1814-254.members.linode.com)
2024-02-21 17:15:17 +0100phaazonhadronized
2024-02-21 17:15:18 +0100 <k3ut0i> I don't think so. haskell has been pretty good for CP, but I always get stuck when it comes to hashing things.
2024-02-21 17:15:26 +0100 <EvanR> copy and paste all the code from vector into your code xD
2024-02-21 17:15:32 +0100 <EvanR> look ma, no additional packages
2024-02-21 17:16:16 +0100 <kuribas`> I mean, Vector is pretty standard haskell. Python comes with everything and the kitchen sink included, it's silly to not allow Vector.
2024-02-21 17:16:43 +0100 <EvanR> is this challenge like, do numeric python without numpy
2024-02-21 17:16:50 +0100 <int-e> kuribas`: how else do you make Haskell look bad ;-)
2024-02-21 17:18:28 +0100 <int-e> k3ut0i: out of curiosity, what ghc version are they using?
2024-02-21 17:18:36 +0100 <int-e> . o O ( 6.8.3 )
2024-02-21 17:18:52 +0100 <k3ut0i> 8.10.1
2024-02-21 17:19:30 +0100 <int-e> yeah, not super ancient but old enough to suggest that they don't care
2024-02-21 17:19:30 +0100a51(a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1)
2024-02-21 17:20:29 +0100 <EvanR> if you have a sparse array of size 10^9 you could implement it using an anonymous mmap and rely on the OS to not actually allocated the vast gaps between entries
2024-02-21 17:20:39 +0100 <EvanR> maybe
2024-02-21 17:21:36 +0100 <int-e> I was wondering how the sparse array trick would perform here. But you'd have *two* arrays of size 10^9.
2024-02-21 17:21:38 +0100 <k3ut0i> yeah, the number of entries is 2*10^5.
2024-02-21 17:22:19 +0100 <int-e> So any hope of locality would be lost.
2024-02-21 17:23:43 +0100gaze__(sid387101@helmsley.irccloud.com) (Ping timeout: 256 seconds)
2024-02-21 17:24:57 +0100 <kuribas`> 200000 is not that much
2024-02-21 17:26:17 +0100 <kuribas`> "maximum $ sort $ take 200000 $ cycle [3, 9, 3, 5, 1]" takes a fraction of a second, in GHCI, not even compiled.
2024-02-21 17:27:12 +0100gaze__(sid387101@id-387101.helmsley.irccloud.com)
2024-02-21 17:27:15 +0100 <kuribas`> The whole thing should run in a few milliseconds.
2024-02-21 17:29:57 +0100euleritian(~euleritia@dynamic-176-006-177-235.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-21 17:30:14 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-21 17:34:15 +0100tzh(~tzh@c-73-164-206-160.hsd1.or.comcast.net)
2024-02-21 17:35:48 +0100hololeap(~quassel@user/hololeap) (Ping timeout: 260 seconds)
2024-02-21 17:36:23 +0100euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-02-21 17:36:29 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1)
2024-02-21 17:42:56 +0100 <k3ut0i> both IntMap and group . sort are working for smaller numbers. Keeping the number of elements at 200_000, when elements are at 10^3 and even 10^5 range, the time is < 1s. But at 10^9 range, I'm getting around 1.4secs. So I just need to shave off a little.
2024-02-21 17:48:40 +0100ph88^(~ph88@2a02:8109:9e26:c800:ebb2:8a16:2d0a:f29)
2024-02-21 17:49:36 +0100 <ph88^> i have a stack.yaml pointing to LTS 14.27 when i type stack path i see it pointing to the ghcup 9.6.4 compiler. How can i get it to switch to the right compiler version ?
2024-02-21 17:50:05 +0100 <haskellbridge> <m​aerwald> do you have system-ghc enabled?
2024-02-21 17:50:13 +0100igemnace(~ian@user/igemnace) (Quit: WeeChat 4.2.1)
2024-02-21 17:50:49 +0100 <ph88^> not sure, it's my first time using ghcup
2024-02-21 17:51:26 +0100euphores(~SASL_euph@user/euphores)
2024-02-21 17:52:30 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 255 seconds)
2024-02-21 17:55:22 +0100Achylles(~Achylles_@45.182.57.81) (Remote host closed the connection)
2024-02-21 17:55:26 +0100 <ph88^> @maerwald i set system-ghc false and install-ghc also false as per https://www.haskell.org/ghcup/guide/#stack-integration
2024-02-21 17:55:26 +0100 <lambdabot> Unknown command, try @list
2024-02-21 17:55:30 +0100 <ph88^> maerwald i set system-ghc false and install-ghc also false as per https://www.haskell.org/ghcup/guide/#stack-integration
2024-02-21 17:57:54 +0100CiaoSen(~Jura@2a05:5800:2c5:c300:e6b9:7aff:fe80:3d03) (Ping timeout: 255 seconds)
2024-02-21 18:01:16 +0100a51(a51@gateway/vpn/protonvpn/a51)
2024-02-21 18:04:15 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:7702:da98:c9d3:8474) (Remote host closed the connection)
2024-02-21 18:05:35 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2024-02-21 18:07:20 +0100raym(~ray@user/raym)
2024-02-21 18:08:05 +0100 <ph88^> when i use the --compiler flag it works, but with stack.yaml it doesn't pick up the right compiler version :(
2024-02-21 18:10:16 +0100 <ph88^> also using the wrong package set 22.11 instead of specified 14.27 ... seems that stack and stack.yaml is completely broken
2024-02-21 18:12:18 +0100econo_(uid147250@id-147250.tinside.irccloud.com)
2024-02-21 18:13:32 +0100a51(a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1)
2024-02-21 18:17:07 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 260 seconds)
2024-02-21 18:17:42 +0100a51(a51@gateway/vpn/protonvpn/a51)
2024-02-21 18:17:59 +0100dom0(~u0_a202@47.60.32.187)
2024-02-21 18:18:27 +0100michalz(~michalz@185.246.207.215) (Quit: ZNC 1.8.2 - https://znc.in)
2024-02-21 18:22:31 +0100billchenchina(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe)
2024-02-21 18:22:40 +0100dom0(~u0_a202@47.60.32.187) (Quit: WeeChat 4.2.1)
2024-02-21 18:26:12 +0100erisco(~erisco@d24-141-66-165.home.cgocable.net) (Ping timeout: 260 seconds)
2024-02-21 18:26:35 +0100erisco(~erisco@d24-141-66-165.home.cgocable.net)
2024-02-21 18:29:42 +0100kuribas`(~user@2a02:1808:4:5142:d283:8f22:e8ed:88fa) (Remote host closed the connection)
2024-02-21 18:31:01 +0100erisco(~erisco@d24-141-66-165.home.cgocable.net) (Ping timeout: 256 seconds)
2024-02-21 18:31:20 +0100chele(~chele@user/chele) (Remote host closed the connection)
2024-02-21 18:36:15 +0100erisco(~erisco@d24-141-66-165.home.cgocable.net)
2024-02-21 18:42:16 +0100 <haskellbridge> <s​m> @where paste the full `stack path` output if you like ?
2024-02-21 18:43:55 +0100a51(a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1)
2024-02-21 18:44:28 +0100 <sm> @where paste
2024-02-21 18:44:29 +0100 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
2024-02-21 18:59:34 +0100mud(~mud@user/kadoban)
2024-02-21 19:03:46 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-02-21 19:04:58 +0100billchenchina(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Quit: Leaving)
2024-02-21 19:05:23 +0100vissa(~vissa@37.214.75.124)
2024-02-21 19:05:27 +0100Square(~Square@user/square)
2024-02-21 19:07:34 +0100 <vissa> yo
2024-02-21 19:07:38 +0100 <ph88^> @sm, https://github.com/commercialhaskell/stack/issues/6490
2024-02-21 19:07:38 +0100 <lambdabot> Source not found. Whoa.
2024-02-21 19:07:40 +0100 <ph88^> sm, https://github.com/commercialhaskell/stack/issues/6490
2024-02-21 19:07:44 +0100 <ph88^> yo vissa
2024-02-21 19:07:56 +0100 <vissa> so um
2024-02-21 19:07:58 +0100 <vissa> [Running] runghc "d:\Projects\Coding\Haskell\HelloWorld\hello.hs"
2024-02-21 19:07:58 +0100 <vissa> Hello, Worldskell
2024-02-21 19:07:59 +0100 <vissa> [Done] exited with code=0 in 5.942 seconds
2024-02-21 19:08:19 +0100 <vissa> 6 seconds to interpret? did i install something wrong? lol
2024-02-21 19:08:42 +0100 <ph88^> it's compiled right, try with ghci to interpret
2024-02-21 19:08:56 +0100 <ph88^> also check compiler flags use -O0 for fasted compilation
2024-02-21 19:09:04 +0100 <ph88^> fastest *
2024-02-21 19:09:05 +0100euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-02-21 19:09:11 +0100cheater_(~Username@user/cheater)
2024-02-21 19:09:34 +0100danse-nr3(~danse@151.47.247.148) (Ping timeout: 246 seconds)
2024-02-21 19:09:45 +0100michalz(~michalz@185.246.207.221)
2024-02-21 19:09:45 +0100 <geekosaur> runghc is interpreted
2024-02-21 19:10:10 +0100 <haskellbridge> <J​ade> doesn't runghc just invoke ghci under the hood
2024-02-21 19:10:11 +0100 <geekosaur> and the intepreter is not at all optimized in any sense
2024-02-21 19:10:18 +0100 <geekosaur> essentially yes
2024-02-21 19:10:20 +0100notzmv(~daniel@user/notzmv)
2024-02-21 19:10:47 +0100euphores(~SASL_euph@user/euphores)
2024-02-21 19:13:25 +0100cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2024-02-21 19:13:27 +0100cheater_cheater
2024-02-21 19:14:51 +0100 <vissa> ah i see
2024-02-21 19:15:11 +0100 <vissa> ghci> :script hello.hs
2024-02-21 19:15:12 +0100 <vissa> ghci> main
2024-02-21 19:15:12 +0100 <vissa> Hello, Worldskell
2024-02-21 19:15:13 +0100 <vissa> ^ this was almost instantaneous
2024-02-21 19:15:19 +0100michalz(~michalz@185.246.207.221) (Quit: ZNC 1.8.2 - https://znc.in)
2024-02-21 19:15:43 +0100 <mauke> also, windows is just slow at spawning programs
2024-02-21 19:15:45 +0100Square(~Square@user/square) (Ping timeout: 255 seconds)
2024-02-21 19:16:02 +0100 <vissa> gotchu
2024-02-21 19:20:26 +0100vissa(~vissa@37.214.75.124) (Quit: Connection closed)
2024-02-21 19:26:17 +0100euphores(~SASL_euph@user/euphores) (Read error: Connection reset by peer)
2024-02-21 19:31:11 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 264 seconds)
2024-02-21 19:31:15 +0100 <sm> ph88^ it seems odd alright. Perhaps add some debug logging to ~/.stack/hooks/ghc-install.sh ?
2024-02-21 19:31:36 +0100 <ph88^> sm, what kind of debug logging ?
2024-02-21 19:32:01 +0100 <sm> printing some of those vars to see what it's doing
2024-02-21 19:32:37 +0100 <sm> or set -eux, maybe
2024-02-21 19:34:56 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2024-02-21 19:35:07 +0100hololeap(~quassel@user/hololeap)
2024-02-21 19:35:35 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-02-21 19:35:45 +0100euphores(~SASL_euph@user/euphores)
2024-02-21 19:36:17 +0100 <sm> aside: did you ever successfully build this with ghc 8.6.5 ? eg with cabal ?
2024-02-21 19:36:34 +0100 <ph88^> sm, ghc_path: parameter not set
2024-02-21 19:36:48 +0100 <ph88^> sm no this is the first time i will try to build it
2024-02-21 19:37:16 +0100 <sm> for the second issue, some bug witih 8.6.5 is very possible
2024-02-21 19:37:27 +0100alexherbo2(~alexherbo@2a02-8440-3340-eded-49c3-0dbb-2c98-8f25.rev.sfr.net)
2024-02-21 19:37:28 +0100 <sm> you could try with cabal to see
2024-02-21 19:37:40 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2024-02-21 19:37:47 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
2024-02-21 19:38:08 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-02-21 19:38:39 +0100 <ph88^> sm that about ghc_path i put the echo in the wrong place so ignore that ^^
2024-02-21 19:38:58 +0100rvalue(~rvalue@user/rvalue)
2024-02-21 19:40:42 +0100 <ph88^> sm, with cabal it works it seems (although different source for tree-sitter package)
2024-02-21 19:40:57 +0100dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 255 seconds)
2024-02-21 19:42:47 +0100dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2024-02-21 19:44:44 +0100 <sm> what's $HOOK_GHC_VERSION in ghc-install.sh ?
2024-02-21 19:45:12 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-21 19:50:25 +0100cheater_(~Username@user/cheater)
2024-02-21 19:52:15 +0100 <ph88^> sm, 8.6.5
2024-02-21 19:52:34 +0100 <sm> and this output ?: ghcup whereis --directory ghc 8.6.5 || ghcup run --ghc 8.6.5 --install
2024-02-21 19:52:58 +0100 <ph88^> ghcup whereis --directory ghc 8.6.5 /home/flip111/.ghcup/ghc/8.6.5/bin
2024-02-21 19:54:27 +0100cheater(~Username@user/cheater) (Ping timeout: 255 seconds)
2024-02-21 19:54:31 +0100cheater_cheater
2024-02-21 19:54:53 +0100 <sm> a mystery! maybe strace can show what other config/cache files it's looking at
2024-02-21 19:57:20 +0100 <sm> or an older/newer stack version behaves differently
2024-02-21 19:57:56 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-02-21 20:02:36 +0100euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-02-21 20:05:00 +0100 <ph88^> sm i changed the formatting of the cabal file, recompiled and it went to the right compiler, then i put the cabal file back how it was and still the problem of wrong compiler version was resolved
2024-02-21 20:06:06 +0100 <sm> huh.. do you have a package.yaml file ?
2024-02-21 20:08:21 +0100julie_pilgrim(~julie_pil@user/julie-pilgrim/x-1240752)
2024-02-21 20:08:28 +0100 <ph88^> no only cabal file
2024-02-21 20:09:10 +0100 <sm> weird.. well glad you got it worked around
2024-02-21 20:10:09 +0100misterfish(~misterfis@84.53.85.146)
2024-02-21 20:18:05 +0100 <ph88^> it's still borked in another directory. I will compile stack itself with a few debug statements
2024-02-21 20:20:16 +0100 <sm> The gods approve! You feel stronger!
2024-02-21 20:20:47 +0100 <sm> latest stack version I guess
2024-02-21 20:22:36 +0100euphores(~SASL_euph@user/euphores)
2024-02-21 20:24:56 +0100cheater_(~Username@user/cheater)
2024-02-21 20:25:25 +0100alexherbo2(~alexherbo@2a02-8440-3340-eded-49c3-0dbb-2c98-8f25.rev.sfr.net) (Remote host closed the connection)
2024-02-21 20:26:55 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-21 20:29:16 +0100cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2024-02-21 20:29:22 +0100cheater_cheater
2024-02-21 20:31:37 +0100misterfish(~misterfis@84.53.85.146) (Ping timeout: 264 seconds)
2024-02-21 20:33:13 +0100cheater_(~Username@user/cheater)
2024-02-21 20:35:49 +0100cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2024-02-21 20:35:59 +0100cheater_cheater
2024-02-21 20:36:06 +0100TimWolla(~timwolla@2a01:4f8:150:6153:beef::6667) (Quit: Bye)
2024-02-21 20:40:47 +0100dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 256 seconds)
2024-02-21 20:41:32 +0100TimWolla(~timwolla@2a01:4f8:150:6153:beef::6667)
2024-02-21 20:45:41 +0100zer0bitz(~zer0bitz@user/zer0bitz) (Ping timeout: 240 seconds)
2024-02-21 20:47:38 +0100apricot(uid581388@id-581388.ilkley.irccloud.com)
2024-02-21 20:48:47 +0100 <apricot> hello
2024-02-21 20:48:54 +0100 <geekosaur> hi
2024-02-21 20:49:22 +0100 <apricot> how is it going geekosaur?
2024-02-21 20:49:24 +0100todi(~todi@p4fd1a2f5.dip0.t-ipconnect.de) (Remote host closed the connection)
2024-02-21 20:50:17 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2024-02-21 20:50:17 +0100 <apricot> i came here to ask how you guys would solve this problem #1 of project euler: "Find the sum of all the multiples of 3 or 5 below 1000
2024-02-21 20:50:35 +0100 <apricot> this is what i did but i am interested to see other approaches https://paste.rs/VhADH
2024-02-21 20:51:36 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-02-21 20:52:24 +0100 <mauke> p x = x `rem` 3 == 0 || x `rem` 5 == 0
2024-02-21 20:53:29 +0100hgolden(~hgolden@2603-8000-9d00-3ed1-2678-8497-aa5c-7fa9.res6.spectrum.com) (Remote host closed the connection)
2024-02-21 20:53:32 +0100julie_pilgrim(~julie_pil@user/julie-pilgrim/x-1240752) (Remote host closed the connection)
2024-02-21 20:53:47 +0100 <monochrom> That's (sum of multiples of 3 below 1000) + (sum of multiples of 5 below 1000) - (sum of multiples of 15 below 1000)
2024-02-21 20:54:11 +0100julie_pilgrim(~julie_pil@user/julie-pilgrim/x-1240752)
2024-02-21 20:54:21 +0100julie_pilgrim(~julie_pil@user/julie-pilgrim/x-1240752) (Remote host closed the connection)
2024-02-21 20:54:43 +0100 <mauke> ah, the slow approach
2024-02-21 20:54:50 +0100 <monochrom> Multiples of 3 below 1000 are 0, 3, 9, ..., 999. I.e., 3*0, 3*1, ... ,3*333.
2024-02-21 20:55:08 +0100 <monochrom> You know how to do "sum of 1 to 333". Just multiply that by 3.
2024-02-21 20:55:15 +0100 <monochrom> Similarly of "5" and "15".
2024-02-21 20:55:22 +0100 <mauke> > 3 * sum [1 .. 333]
2024-02-21 20:55:24 +0100 <lambdabot> 166833
2024-02-21 20:55:46 +0100 <int-e> > let f d = (999 - 999 `mod` d)*(1 + 999 `div` d) in (f 3 + f 5 - f 15) `div` 2
2024-02-21 20:55:47 +0100 <lambdabot> 233168
2024-02-21 20:55:53 +0100hgolden(~hgolden@2603-8000-9d00-3ed1-2678-8497-aa5c-7fa9.res6.spectrum.com)
2024-02-21 20:56:35 +0100 <monochrom> ans = 3 * s 333 + 5 * s 199 - 15 * s 66 where s n = div (n*(n+1)) 2
2024-02-21 20:56:47 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-02-21 20:57:31 +0100 <monochrom> This takes only O(1) time.
2024-02-21 20:57:53 +0100 <int-e> meaningless big O notation, yay
2024-02-21 20:57:58 +0100 <c_wraith> it only takes O(1) time anyway, since the bounds are fixed...
2024-02-21 20:58:05 +0100 <c_wraith> there is no n to scale with!
2024-02-21 20:58:13 +0100 <monochrom> Well yeah we need to up the game.
2024-02-21 20:58:16 +0100 <mauke> the constants are better in apricot's solution
2024-02-21 20:58:24 +0100 <mauke> because you don't have to use algebra first
2024-02-21 20:58:28 +0100 <monochrom> Find the sum of all even primes below 10^100.
2024-02-21 20:58:32 +0100a51(a51@gateway/vpn/protonvpn/a51)
2024-02-21 20:58:48 +0100 <c_wraith> then your solution isn't O(1) either, because multiplication isn't
2024-02-21 20:58:53 +0100 <int-e> monochrom: 0 :-P
2024-02-21 20:58:57 +0100 <mauke> 2
2024-02-21 20:59:04 +0100 <int-e> -2 + 2 = 0
2024-02-21 20:59:16 +0100 <mauke> negaprimes? that's not legal
2024-02-21 20:59:17 +0100 <monochrom> :( :)
2024-02-21 20:59:36 +0100 <apricot> haha
2024-02-21 20:59:40 +0100 <mauke> otherwise you can't uniquely factor anymore
2024-02-21 20:59:52 +0100 <int-e> mauke: you still can, up to units
2024-02-21 21:00:05 +0100 <int-e> which is how you do it in rings (cf. unique factoring domains)
2024-02-21 21:00:12 +0100 <monochrom> Ring theory settles for what int-e said about units.
2024-02-21 21:00:21 +0100 <mauke> > sum [n | n <- [1 .. 10^100], n == 2]
2024-02-21 21:00:28 +0100 <lambdabot> mueval-core: Time limit exceeded
2024-02-21 21:01:11 +0100 <monochrom> I just want to demonstrate concretely that Project Euler is where you hone number theory not programming.
2024-02-21 21:02:06 +0100 <mauke> speak for yourself
2024-02-21 21:02:17 +0100 <mauke> project euler is where I practice brute force solutions
2024-02-21 21:02:28 +0100 <apricot> ah cool to know
2024-02-21 21:02:34 +0100 <apricot> i just found out about it and about haskell too
2024-02-21 21:02:57 +0100 <monochrom> In later questions, most brute force solutions will time out.
2024-02-21 21:03:02 +0100 <int-e> mauke: but a lot of the problems require theory and brute force to be solved in reasonable time without massive parallelization
2024-02-21 21:03:23 +0100 <int-e> this won't be evident in the first 100 or so
2024-02-21 21:03:27 +0100 <mauke> >:)
2024-02-21 21:03:54 +0100 <monochrom> I would prefer it if they started with s/1000/10^1000/ for example.
2024-02-21 21:03:57 +0100 <mauke> it's a good opportunity to learn about persistent state and resumable computations
2024-02-21 21:04:01 +0100k3ut0i(~keutoi@223.230.94.191) (Ping timeout: 256 seconds)
2024-02-21 21:04:08 +0100 <monochrom> ugh haha
2024-02-21 21:04:19 +0100 <int-e> ...right
2024-02-21 21:04:22 +0100 <apricot> well i think for me one is enough for today ;) goodnight guys
2024-02-21 21:05:51 +0100 <int-e> mauke: maybe you could apply that expertise to find an MD5 collision that breaks Data.Typeable (the standard techniques don't apply because it's hashing highly constrained data, UTF-32 strings with identifier legal characters), so it would have to be a generic attack with ~2^64 hashes.
2024-02-21 21:06:02 +0100 <monochrom> I seriously think on April 1st we should hack the PE website and post my even prime problem and watch the script kiddies of the world burn.
2024-02-21 21:06:45 +0100 <int-e> monochrom: we already have bitcoin for that though
2024-02-21 21:06:49 +0100 <mauke> 10^1000 is what I call Big Data
2024-02-21 21:06:50 +0100 <monochrom> Because they would seriously try to find all primes below 10^100 and they would actually hope that "gcc -O10" would have a chance.
2024-02-21 21:06:57 +0100 <int-e> monochrom: and LLMs
2024-02-21 21:07:02 +0100 <monochrom> haha OK
2024-02-21 21:08:36 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2024-02-21 21:09:26 +0100misterfish(~misterfis@84.53.85.146)
2024-02-21 21:10:04 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds)
2024-02-21 21:15:21 +0100cheater_(~Username@user/cheater)
2024-02-21 21:16:37 +0100cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2024-02-21 21:16:46 +0100cheater_cheater
2024-02-21 21:24:10 +0100dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2024-02-21 21:27:09 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2024-02-21 21:30:11 +0100mud(~mud@user/kadoban) (Ping timeout: 272 seconds)
2024-02-21 21:30:33 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-02-21 21:31:18 +0100euleritian(~euleritia@77.22.252.56)
2024-02-21 21:37:37 +0100misterfish(~misterfis@84.53.85.146) (Ping timeout: 264 seconds)
2024-02-21 21:40:57 +0100ft(~ft@p508db2e6.dip0.t-ipconnect.de)
2024-02-21 21:41:11 +0100Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Remote host closed the connection)
2024-02-21 21:45:32 +0100mmhat(~mmh@p200300f1c70b449aee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.2.1)
2024-02-21 21:46:10 +0100Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
2024-02-21 21:58:44 +0100zer0bitz(~zer0bitz@user/zer0bitz)
2024-02-21 22:03:57 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2024-02-21 22:07:47 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2024-02-21 22:10:54 +0100cheater(~Username@user/cheater) (Read error: Connection reset by peer)
2024-02-21 22:11:26 +0100cheater(~Username@user/cheater)
2024-02-21 22:14:32 +0100xtabentun(uid491929@id-491929.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-02-21 22:18:26 +0100cheater_(~Username@user/cheater)
2024-02-21 22:22:37 +0100cheater(~Username@user/cheater) (Ping timeout: 264 seconds)
2024-02-21 22:22:42 +0100cheater_cheater
2024-02-21 22:31:11 +0100euleritian(~euleritia@77.22.252.56) (Read error: Connection reset by peer)
2024-02-21 22:31:52 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-21 22:38:08 +0100synchromesh(~synchrome@2407:7000:aa2d:4e00:9cf7:efcb:5efd:a99) (Read error: Connection reset by peer)
2024-02-21 22:39:01 +0100synchromesh(~synchrome@2407:7000:aa2d:4e00:9cf7:efcb:5efd:a99)
2024-02-21 22:40:27 +0100lambdabot(~lambdabot@haskell/bot/lambdabot) (Remote host closed the connection)
2024-02-21 22:40:54 +0100lambdabot(~lambdabot@silicon.int-e.eu)
2024-02-21 22:40:54 +0100lambdabot(~lambdabot@silicon.int-e.eu) (Changing host)
2024-02-21 22:40:54 +0100lambdabot(~lambdabot@haskell/bot/lambdabot)
2024-02-21 22:40:54 +0100ChanServ+v lambdabot
2024-02-21 22:42:37 +0100int-e(~noone@int-e.eu) (Remote host closed the connection)
2024-02-21 22:43:26 +0100int-e(~noone@int-e.eu)
2024-02-21 22:44:20 +0100turlando(~turlando@user/turlando) (Remote host closed the connection)
2024-02-21 22:45:36 +0100turlando(~turlando@user/turlando)
2024-02-21 22:48:56 +0100michalz(~michalz@185.246.207.222)
2024-02-21 22:49:36 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-02-21 22:52:49 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
2024-02-21 22:53:04 +0100jmorris(uid604645@id-604645.hampstead.irccloud.com)
2024-02-21 23:00:13 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 246 seconds)
2024-02-21 23:06:50 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-02-21 23:07:33 +0100michalz(~michalz@185.246.207.222) (Quit: ZNC 1.8.2 - https://znc.in)
2024-02-21 23:10:32 +0100hgolden(~hgolden@2603-8000-9d00-3ed1-2678-8497-aa5c-7fa9.res6.spectrum.com) (Remote host closed the connection)
2024-02-21 23:13:02 +0100hgolden(~hgolden@2603-8000-9d00-3ed1-2678-8497-aa5c-7fa9.res6.spectrum.com)
2024-02-21 23:14:27 +0100cheater_(~Username@user/cheater)
2024-02-21 23:16:33 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2024-02-21 23:16:40 +0100apricot(uid581388@id-581388.ilkley.irccloud.com) (Quit: Connection closed for inactivity)
2024-02-21 23:18:51 +0100cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2024-02-21 23:18:54 +0100cheater_cheater
2024-02-21 23:27:15 +0100sroso(~sroso@user/SrOso)
2024-02-21 23:33:24 +0100Sgeo(~Sgeo@user/sgeo)
2024-02-21 23:39:20 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-02-21 23:42:02 +0100cheater_(~Username@user/cheater)
2024-02-21 23:46:12 +0100cheater(~Username@user/cheater) (Ping timeout: 255 seconds)
2024-02-21 23:46:12 +0100acidjnk(~acidjnk@p200300d6e737e789f1d9672538a89ef2.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2024-02-21 23:46:18 +0100cheater_cheater
2024-02-21 23:47:29 +0100natechan(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
2024-02-21 23:59:49 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)