2024/01/25

2024-01-25 00:01:40 +0100 <haskellbridge> 15<J​ade> I'm wondering if you could build a proper `Enum [a]` instance using an `(Enum a, Bounded a)` constraint.
2024-01-25 00:02:09 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2024-01-25 00:03:00 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-01-25 00:03:57 +0100 <ncf> might need Eq for fromEnum
2024-01-25 00:04:45 +0100 <haskellbridge> 15<J​ade> right
2024-01-25 00:04:49 +0100 <ncf> i guess Enum implies Eq... why is it not a superclass
2024-01-25 00:04:52 +0100dorin(~dorin@user/dorin)
2024-01-25 00:05:55 +0100 <geekosaur> because it can often be done by patterrn matching which doesn't need Eq?
2024-01-25 00:07:05 +0100 <ncf> ?
2024-01-25 00:14:22 +0100 <EvanR> what if i ask is countably denumerable implying decidably equal
2024-01-25 00:16:32 +0100shapr(~user@c-24-218-186-89.hsd1.ma.comcast.net)
2024-01-25 00:17:40 +0100 <ncf> should be
2024-01-25 00:26:49 +0100pointlessslippe1(~pointless@212.82.82.3) (Ping timeout: 264 seconds)
2024-01-25 00:36:03 +0100mikoto-chan(~mikoto-ch@85-76-72-21-nat.elisa-mobile.fi) (Ping timeout: 256 seconds)
2024-01-25 00:48:03 +0100Sgeo(~Sgeo@user/sgeo)
2024-01-25 00:48:21 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-25 00:50:13 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 264 seconds)
2024-01-25 01:00:17 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2024-01-25 01:02:19 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
2024-01-25 01:17:06 +0100alexherbo2(~alexherbo@195.14.23.93.rev.sfr.net) (Ping timeout: 250 seconds)
2024-01-25 01:18:55 +0100mmhat(~mmh@p200300f1c73bf455ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.2.1)
2024-01-25 01:21:23 +0100pointlessslippe1(~pointless@212.82.82.3)
2024-01-25 01:25:07 +0100dorin(~dorin@user/dorin) (Quit: Client closed)
2024-01-25 01:27:54 +0100Square2(~Square4@user/square)
2024-01-25 01:29:49 +0100Square(~Square@user/square) (Ping timeout: 264 seconds)
2024-01-25 01:33:52 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds)
2024-01-25 01:34:26 +0100euleritian(~euleritia@dynamic-176-006-178-120.176.6.pool.telefonica.de)
2024-01-25 01:37:01 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 264 seconds)
2024-01-25 01:38:44 +0100TonyStone(~TonyStone@074-076-057-186.res.spectrum.com) (Quit: Leaving)
2024-01-25 01:42:37 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2024-01-25 01:47:45 +0100rvalue(~rvalue@user/rvalue)
2024-01-25 01:48:58 +0100Tuplanolla(~Tuplanoll@91-159-68-95.elisa-laajakaista.fi) (Quit: Leaving.)
2024-01-25 01:56:46 +0100myxos(~myxos@065-028-251-121.inf.spectrum.com) (Quit: myxos)
2024-01-25 02:05:08 +0100myxos(~myxos@065-028-251-121.inf.spectrum.com)
2024-01-25 02:10:51 +0100ddellacosta(~ddellacos@ool-44c73d16.dyn.optonline.net)
2024-01-25 02:12:59 +0100ddellacosta(~ddellacos@ool-44c73d16.dyn.optonline.net) (Client Quit)
2024-01-25 02:13:08 +0100ddellacosta(~ddellacos@ool-44c73d16.dyn.optonline.net)
2024-01-25 02:14:07 +0100anpad(~pandeyan@user/anpad)
2024-01-25 02:14:49 +0100pandeyan(~pandeyan@192-184-249-55.fiber.dynamic.sonic.net) (Ping timeout: 264 seconds)
2024-01-25 02:15:37 +0100mima(~mmh@aftr-62-216-211-11.dynamic.mnet-online.de) (Ping timeout: 260 seconds)
2024-01-25 02:16:25 +0100 <Axman6> Today in Axman's adventures in programming Python: Doing it all in C and doing FP in the C preprocessor so he doesn't have to write Python
2024-01-25 02:18:59 +0100 <yushyin> interesting
2024-01-25 02:20:24 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-25 02:27:34 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-25 02:34:01 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds)
2024-01-25 02:34:03 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2024-01-25 02:34:11 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2024-01-25 02:35:24 +0100Lord_of_Life_Lord_of_Life
2024-01-25 02:40:01 +0100xff0x(~xff0x@ai085147.d.east.v6connect.net) (Ping timeout: 264 seconds)
2024-01-25 02:40:42 +0100Lycurgus(~georg@user/Lycurgus)
2024-01-25 02:49:07 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com)
2024-01-25 02:50:57 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com)
2024-01-25 03:06:53 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-01-25 03:18:48 +0100TonyStone(~TonyStone@074-076-057-186.res.spectrum.com)
2024-01-25 03:19:53 +0100[_](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2024-01-25 03:21:35 +0100pointlessslippe1(~pointless@212.82.82.3) (Ping timeout: 264 seconds)
2024-01-25 03:27:53 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2024-01-25 03:31:14 +0100pointlessslippe1(~pointless@212.82.82.3)
2024-01-25 03:43:34 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-25 03:45:08 +0100krei-se(~krei-se@p508747fd.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2024-01-25 03:45:56 +0100Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2024-01-25 03:53:05 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-25 03:56:17 +0100causal(~eric@50.35.85.7)
2024-01-25 03:57:47 +0100mxs(~mxs@user/mxs) (Remote host closed the connection)
2024-01-25 04:06:20 +0100 <jackdk> Axman6: compile to wasm, wrap wasm in python module
2024-01-25 04:07:44 +0100 <jackdk> IIRC you sent me the video link
2024-01-25 04:08:26 +0100 <Axman6> well since this will run on a very specific piece of hardware, there's no needc to make it cross platform in any way
2024-01-25 04:20:22 +0100mobivme(~mobivme@112.201.111.217) (Ping timeout: 256 seconds)
2024-01-25 04:21:55 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:d9f4:da25:bff2:5432) (Remote host closed the connection)
2024-01-25 04:22:16 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:d9f4:da25:bff2:5432)
2024-01-25 04:33:25 +0100pastly(~pastly@gateway/tor-sasl/pastly) (Remote host closed the connection)
2024-01-25 04:36:56 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2024-01-25 04:38:31 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-01-25 04:40:52 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Leaving...)
2024-01-25 04:40:53 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-25 04:41:21 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2024-01-25 04:41:31 +0100pointlessslippe1(~pointless@212.82.82.3) (Ping timeout: 260 seconds)
2024-01-25 04:41:48 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-01-25 04:45:40 +0100tri_(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-25 04:48:07 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 246 seconds)
2024-01-25 04:48:07 +0100euleritian(~euleritia@dynamic-176-006-178-120.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-25 04:48:37 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-25 04:48:37 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2024-01-25 04:48:51 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-01-25 04:51:35 +0100td_(~td@i5387090C.versanet.de) (Ping timeout: 264 seconds)
2024-01-25 04:53:24 +0100td_(~td@i53870927.versanet.de)
2024-01-25 04:53:35 +0100 <tri_> hi, im reading about foldable, and I cannot grasp the intuition for the Foldable Maybe yet
2024-01-25 04:54:01 +0100 <tri_> can anyone tell me an easy reason why i would want to fold a maybe?
2024-01-25 04:54:43 +0100 <tri_> I do understand, and can physically imagine folding a list, like fold an origami of multiple value into 1 final value for, say, a sum, an average, a min, a max
2024-01-25 04:54:58 +0100 <tri_> but i haven't developed an intuition for folding a maybe yet
2024-01-25 04:56:59 +0100 <jackdk> tri_: I find it helps to consider `Maybe` as a list of zero or one elements
2024-01-25 04:57:56 +0100 <tri_> oh that helps a quite a bit! I need to think a bit more to get used to it
2024-01-25 04:59:06 +0100 <tri_> so the whole point of Foldable is to 1) get rid of the structure, e.g. List or Maybe, to expose a summarised value 2) apply a monoidal operation to get to that summarised value
2024-01-25 04:59:25 +0100 <tri_> it's like gutting out the inner value
2024-01-25 04:59:33 +0100mxs(~mxs@user/mxs)
2024-01-25 05:01:06 +0100_xor(~xor@ip-208-102-243-175.dynamic.fuse.net) (Quit: brb/bbiab)
2024-01-25 05:03:13 +0100 <jackdk> Axman6 has a take that `toList :: Foldable a => t a -> [a]` is the fundamental operation but I don't know if he's got links about it
2024-01-25 05:05:45 +0100 <tri_> that's an interesting function, but what's your point when you bring it up?
2024-01-25 05:05:52 +0100 <tri_> i dont get it
2024-01-25 05:09:26 +0100 <tri_> that's a question, sorry if that sounds like im mocking you
2024-01-25 05:17:24 +0100 <jackdk> tri_: Nah, no offence taken. I bring it up in case it helps you see the "essence" of `Foldable`, where in the `Maybe` instance, `toList = maybeToList`
2024-01-25 05:20:14 +0100 <tri_> i actually have a better understanding now, Im treating Either, Maybe, Tuple as a list of 1 item. And folding will destroy the structure to apply the monoidal opeartion to the item inside
2024-01-25 05:20:19 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 246 seconds)
2024-01-25 05:20:43 +0100 <tri_> thank you
2024-01-25 05:23:33 +0100 <tri_> for these "one-item" list, fold is kinda useless, as it only destroys the structure, exposing the inner value
2024-01-25 05:24:17 +0100 <tri_> where as foldr and foldl and foldMap will be more useful, because i can specify a function to apply to the inner item, after destroying the structure
2024-01-25 05:31:24 +0100Lycurgus(~georg@user/Lycurgus)
2024-01-25 05:36:34 +0100aforemny(~aforemny@2001:9e8:6cf6:d000:dd64:8ab1:7668:b8d6)
2024-01-25 05:36:45 +0100aforemny_(~aforemny@2001:9e8:6cd9:9100:ac0d:f435:5523:64b3) (Ping timeout: 260 seconds)
2024-01-25 05:44:23 +0100 <EvanR> :t fold
2024-01-25 05:44:24 +0100 <lambdabot> (Foldable t, Monoid m) => t m -> m
2024-01-25 05:44:50 +0100 <EvanR> > fold (Just "ok")
2024-01-25 05:44:51 +0100 <lambdabot> "ok"
2024-01-25 05:44:54 +0100 <EvanR> > fold Nothing
2024-01-25 05:44:55 +0100 <lambdabot> ()
2024-01-25 05:45:07 +0100 <EvanR> > fold Nothing :: Maybe String
2024-01-25 05:45:09 +0100 <lambdabot> Nothing
2024-01-25 05:45:11 +0100 <probie> jackdk: I'd almost agree with Axman6 I think I've mentioned before that I think `Foldable` should be called `ListLike`. However, I'd still call `foldr` the fundamental operation
2024-01-25 05:45:17 +0100 <probie> > fold (Nothing :: Maybe String)
2024-01-25 05:45:19 +0100 <lambdabot> ""
2024-01-25 05:45:56 +0100 <EvanR> sanity restored
2024-01-25 05:47:32 +0100 <EvanR> if you think of data values as being a possibly infinite-in-some-direction tree, then the various foldl, foldr, and monoid based order independent folds may work when toList may not
2024-01-25 05:47:55 +0100 <probie> Why wouldn't `toList` work on an infinite structure?
2024-01-25 05:47:57 +0100 <EvanR> because list is a special case of those trees
2024-01-25 05:48:54 +0100pointlessslippe1(~pointless@212.82.82.3)
2024-01-25 05:49:11 +0100 <EvanR> toList can work on an infinite structure but not in the right order for those folds to work right, in general
2024-01-25 05:50:48 +0100 <probie> Isn't `toList` either going to be `foldr (:) []` or something specialised for the data structure (in which case I'd be surprised if it wasn't at least as productive as `foldr`)
2024-01-25 05:51:03 +0100 <EvanR> if the idea is that "you can make do with only toList if you wanted to fold"
2024-01-25 05:52:17 +0100 <EvanR> if toList is the fundamental operation, you can't define it as foldr (:) [], then foldr is fundamental (and won't work on left-infinite tree, for the same reason foldl won't work on right infinite tree)
2024-01-25 05:54:28 +0100 <probie> I think I'm missing something here. Given an arbitrary tree that has values at nodes, I can _always_ write a productive `toList` function without knowing what parts of it may or may not be infinite
2024-01-25 05:54:47 +0100 <EvanR> and then implement the rest of Foldable with it?
2024-01-25 05:54:54 +0100 <EvanR> with the list
2024-01-25 05:56:05 +0100 <hololeap> (foldMap . toList) checks out
2024-01-25 05:56:49 +0100 <EvanR> it seems redundant to require foldMap and toList be fundamental
2024-01-25 05:56:51 +0100 <hololeap> well... more or less anyway
2024-01-25 05:57:17 +0100 <EvanR> you could implement toList (if you don't care about order) with foldMap
2024-01-25 05:57:31 +0100 <[Leary]> probie: You /can/ in principle, but that's a different instance than the one you usually want, which ascribes a different order to the elements and produces different folded summaries (monoids not being commutative in general).
2024-01-25 05:58:34 +0100 <hololeap> foldr and foldMap are the fundamental Foldable methods. toList can be defined by foldr or foldMap
2024-01-25 05:59:11 +0100 <EvanR> I argue that foldr, foldl, and fold are on equal footing and can't always be defined in terms of each other
2024-01-25 05:59:33 +0100 <EvanR> foldr is pretty fundamental for list only
2024-01-25 05:59:55 +0100 <EvanR> having a class for this is good because there are other data structures
2024-01-25 06:00:13 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-25 06:00:40 +0100 <probie> _but_ `toList` can be used to define `foldr`. If `foldr` was definable, surely you can manually write whatever `foldr (:) []` would have been as your `toList` definition, at which point you can recover `foldr` with `foldr f z t = List.foldr f z (toList t)`
2024-01-25 06:00:56 +0100 <hololeap> I would like to see a data structure where it has a Foldable and doesn't have a valid toList
2024-01-25 06:01:23 +0100 <EvanR> you can by fiat say that whatever foldr using toList does is correct. How about foldl
2024-01-25 06:01:51 +0100 <EvanR> no one was arguing that you can't define toList somehow
2024-01-25 06:03:07 +0100 <hololeap> foldl implies a non-infinite type. if you test foldl on an infinite stream you just ... wait
2024-01-25 06:03:24 +0100 <monochrom> data SnocList a = Nil | Snoc (SnocList a) a. SnocList is like [] but friendly to being infinite on the left. If you can an infinite SnocList, toList will have some trouble.
2024-01-25 06:03:37 +0100 <EvanR> no, it just sounds like you're affirming the idea that Foldable to really a ToList class
2024-01-25 06:03:48 +0100 <probie> monochrom: will it? just have `foldr` go from right to left
2024-01-25 06:03:57 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2024-01-25 06:04:09 +0100 <hololeap> EvanR: I just haven't seen a counter-example
2024-01-25 06:04:25 +0100 <EvanR> I can only continue to point out that it's called Foldable, and folding over different structures is not always compatible with list
2024-01-25 06:04:49 +0100 <probie> It's not a useful interface if you can a priori know which is going to be the productive function. If the "direction" matters, then surely at this point you know the concrete type
2024-01-25 06:05:06 +0100 <probie> s/can/can't/
2024-01-25 06:05:06 +0100 <EvanR> you can argue that foldl and foldr are pointless parts of the interface I guess
2024-01-25 06:05:31 +0100 <EvanR> and pretend this is a ToList class
2024-01-25 06:05:58 +0100 <monochrom> What is even the answer to `head (toList (an infinite SnocList))` ?
2024-01-25 06:06:16 +0100 <hololeap> bottom?
2024-01-25 06:06:23 +0100 <EvanR> right
2024-01-25 06:06:31 +0100 <EvanR> but you can foldl the infinite snoc list
2024-01-25 06:06:51 +0100 <hololeap> do you mean foldl'
2024-01-25 06:06:54 +0100 <EvanR> no
2024-01-25 06:07:03 +0100 <EvanR> you're still stuck on regular list being god
2024-01-25 06:07:12 +0100 <monochrom> Whereas if you accept fold or foldMap as fundamental, then every instance can tailor-make fold/foldMap's bias to suit the instance.
2024-01-25 06:07:14 +0100 <EvanR> generally your data looks like a tree
2024-01-25 06:07:31 +0100 <EvanR> Foldable is alluding to tree reductions, not list reductions
2024-01-25 06:07:56 +0100 <[Leary]> A Foldable instance encodes an order structure that can involve arbitrary nested successive left and right infinite sequences. List just isn't anywhere near rich enough.
2024-01-25 06:08:22 +0100 <hololeap> how is that different? a tree with no secondary nodes is a list
2024-01-25 06:08:34 +0100 <probie> EvanR: Is it? Then why does it have `foldr` and `foldl`. Those are unambiguously list reductions
2024-01-25 06:08:42 +0100 <hololeap> you can always collapse a tree to a list
2024-01-25 06:08:48 +0100 <EvanR> "a tree is a list" is getting absurd
2024-01-25 06:09:01 +0100 <EvanR> probie, no
2024-01-25 06:09:08 +0100 <hololeap> it's not isomorphic
2024-01-25 06:09:20 +0100 <hololeap> but you can always turn a tree into a list
2024-01-25 06:09:25 +0100trev(~trev@user/trev)
2024-01-25 06:10:14 +0100 <probie> EvanR: What would you call `forall b . (a -> b -> b) -> b -> b`?
2024-01-25 06:10:45 +0100 <hololeap> :t Cont
2024-01-25 06:10:46 +0100 <lambdabot> error:
2024-01-25 06:10:46 +0100 <lambdabot> • Data constructor not in scope: Cont
2024-01-25 06:10:46 +0100 <lambdabot> • Perhaps you meant one of these:
2024-01-25 06:10:48 +0100 <EvanR> look up left reductions, right reductions, other reductions, and monoid-based reductions of a tree
2024-01-25 06:11:09 +0100 <EvanR> I submit that foldl and foldr allude to that
2024-01-25 06:11:29 +0100 <monochrom> `forall b . (a -> b -> b) -> b -> b` is ConsList a.
2024-01-25 06:12:19 +0100 <probie> `fold` or `foldMap` might do a nice tree reduction, but `foldr` and `foldl` necessarily linearize your structure
2024-01-25 06:12:37 +0100mxs(~mxs@user/mxs) (Quit: The Lounge - https://thelounge.chat)
2024-01-25 06:12:45 +0100 <EvanR> I think by linearize, you mean order
2024-01-25 06:13:07 +0100 <hololeap> foldl and foldr also give a direction
2024-01-25 06:13:09 +0100 <probie> Turn into a line, that you must walk down
2024-01-25 06:14:04 +0100 <EvanR> there are many ways to make a list of nodes of a tree, and then there are many ways to reduce a list, even an infinite one
2024-01-25 06:14:18 +0100 <monochrom> I need to have a stronger opinion and conviction and stubbornnes than all of you.
2024-01-25 06:14:22 +0100 <EvanR> because of that you might not even care about the intermediate list
2024-01-25 06:14:31 +0100 <monochrom> foldMap is map-reduce, that is why it is more fundamental.
2024-01-25 06:15:10 +0100 <monochrom> You simply don't hear Google map-reduce people say "this is toList technology!".
2024-01-25 06:15:57 +0100 <monochrom> In fact toList is how you ruin map-reduce performance.
2024-01-25 06:15:58 +0100 <EvanR> that the reduce has to happen in serial might be another red herring
2024-01-25 06:16:16 +0100 <EvanR> specifically if it's a monoid reduction
2024-01-25 06:16:24 +0100 <probie> monochrom: to be honest, my stake in this is that I want to reclaim the name `Foldable` for catamorphisms
2024-01-25 06:16:53 +0100 <monochrom> You can use Catamorphism right now right here.
2024-01-25 06:17:11 +0100 <EvanR> also ToList to be a class containing only toList
2024-01-25 06:17:18 +0100 <EvanR> if that's all you need
2024-01-25 06:17:28 +0100 <hololeap> EvanR: what is something that has a terminating foldl but has a non-terminating foldr?
2024-01-25 06:17:28 +0100 <monochrom> And it is much less ambiguous and vague than those "Foldable" "Mappable" "Bindable" shite.
2024-01-25 06:17:42 +0100 <EvanR> hololeap, a trivial example was given above by monochrom
2024-01-25 06:18:35 +0100 <EvanR> how you argue your way out of that I can't predict, but I know it's coming xD
2024-01-25 06:19:13 +0100 <hololeap> I'm just going to say that data types aren't usually constructed like that
2024-01-25 06:19:27 +0100 <monochrom> Hutton has a paper on exactly a type class for F-algebras and catamorphisms. The type class is called Algebra.
2024-01-25 06:19:37 +0100 <probie> The Foldable class represents data structures that can be reduced to a summary value one element at a time. Strict left-associative folds are a good fit for space-efficient reduction, while lazy right-associative folds are a good fit for corecursive iteration, or for folds that short-circuit after processing an initial subsequence of the structure's elements.
2024-01-25 06:19:50 +0100 <probie> (that the docs for `Foldable`)
2024-01-25 06:20:34 +0100 <monochrom> It is not good doc and no one bothers to fix it.
2024-01-25 06:20:39 +0100 <EvanR> for a while I think people were confused on why Foldable should even exist, because there was a feeling that it was "just a glorified toList" and no one could even identify laws
2024-01-25 06:21:01 +0100 <monochrom> Its comment on strict left has ConsList in mind. Obviously.
2024-01-25 06:21:02 +0100 <EvanR> but that was a while back
2024-01-25 06:21:04 +0100 <probie> I can actually get a decent fold over a tree with `foldMap Sum`, but it doesn't seem to be the intent
2024-01-25 06:21:17 +0100 <EvanR> addition is commutative
2024-01-25 06:21:23 +0100 <EvanR> so that's not surprising
2024-01-25 06:21:28 +0100 <monochrom> Talk to me again after you optimize summing a finger tree.
2024-01-25 06:21:55 +0100 <monochrom> In fact, talk to me again after you optimize summing a finger tree on parallel hardware.
2024-01-25 06:25:03 +0100 <hololeap> monochrom: which direction?
2024-01-25 06:25:19 +0100 <hololeap> lol
2024-01-25 06:25:38 +0100 <monochrom> If you have a nonlinear data structure, you can cite Monoid associativity and choose a strategy for fold/foldMap that best fits the data structure and/or most actual use cases. foldl vs foldr is a false dichotomoy. There is always a third, better choice.
2024-01-25 06:26:32 +0100Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2024-01-25 06:26:41 +0100 <monochrom> I don't understand how it even needs explanation. It's self-evident.
2024-01-25 06:27:34 +0100 <EvanR> if your tree leans heavily to the left, and you want to strictly reduce, there's even foldr' in this class admitting that this might be a situation
2024-01-25 06:27:53 +0100 <EvanR> strictly right reduce
2024-01-25 06:28:16 +0100 <EvanR> an operation which makes no sense for list
2024-01-25 06:28:24 +0100 <probie> Finally, in some less common structures (e.g. snoc lists) right to left iterations are cheaper than left to right. Such structures are poor candidates for a Foldable instance, and are perhaps best handled via their type-specific interfaces.
2024-01-25 06:28:26 +0100 <probie> If nevertheless a Foldable instance is provided, the material in the sections that follow applies to these also, by replacing each method with one with the opposite associativity (when available) and switching the order of arguments in the fold's operator.
2024-01-25 06:28:52 +0100 <hololeap> monochrom: Monoids are not commutative, so the direction is relevant
2024-01-25 06:29:16 +0100 <EvanR> parallel sum is supported because of the associativity
2024-01-25 06:29:22 +0100 <monochrom> I'll take that as a joke and not give a serious rebuttal.
2024-01-25 06:29:32 +0100 <EvanR> so it doesn't even need to be a commutative operation here
2024-01-25 06:30:07 +0100 <monochrom> But perhaps consider how "order" may refer to one of two orthogonal things and therefore "order is important" is ambiguous.
2024-01-25 06:30:36 +0100 <probie> ugh; why couldn't the docs just tell people to make `foldr` go right to left over snoc lists
2024-01-25 06:30:50 +0100 <monochrom> This is why I don't even use that word. I say "associative" if I mean it. I say "commutative" if I mean it. I don't know which one "order" refers to.
2024-01-25 06:30:55 +0100 <EvanR> not every Foldable is a one dimensional thing
2024-01-25 06:31:22 +0100 <EvanR> I tried to be diplomatic by saying "in general it's a tree"
2024-01-25 06:31:33 +0100 <EvanR> but that might not even be the most general
2024-01-25 06:31:53 +0100 <hololeap> (-) is a monoid, but it's not commutative
2024-01-25 06:32:18 +0100 <monochrom> > (4-5)-6 == 4-(5-6)
2024-01-25 06:32:20 +0100 <lambdabot> False
2024-01-25 06:32:23 +0100 <EvanR> yeah no
2024-01-25 06:32:28 +0100 <monochrom> Are you on drugs?!
2024-01-25 06:32:41 +0100 <hololeap> yes, but I think I meant associative
2024-01-25 06:33:02 +0100 <monochrom> Like I had wine during dinner but I haven't lost my knowledge of associativity.
2024-01-25 06:33:03 +0100 <probie> A monoid is associative
2024-01-25 06:33:07 +0100myme1(~myme@2a01:799:d5e:2e00:abf6:2f60:4488:2041) (Ping timeout: 246 seconds)
2024-01-25 06:33:17 +0100 <EvanR> dissociative monoid syndrome
2024-01-25 06:33:57 +0100 <monochrom> Associativity is exact what I tested. (x `op` y) `op` z = x `op` (y `op` z)
2024-01-25 06:34:03 +0100 <hololeap> wtf am I looking at then
2024-01-25 06:34:18 +0100 <hololeap> commutative /kŏm′yə-tā″tĭv, kə-myoo͞′tə-tĭv/
2024-01-25 06:34:18 +0100 <hololeap> adjective
2024-01-25 06:34:18 +0100 <hololeap> Relating to, involving, or characterized by substitution, interchange, or exchange. Independent of order. Used of a logical or mathematical operation that combines objects or sets of objects two at a time. If a × b = b × a, the operation indicated by × is commutative.
2024-01-25 06:34:24 +0100myme(~myme@2a01:799:d5e:2e00:5a9e:1be4:ba7e:eb44)
2024-01-25 06:34:40 +0100 <monochrom> That one is commutativity.
2024-01-25 06:35:31 +0100 <hololeap> <hololeap> (-) is a monoid, but it's not commutative
2024-01-25 06:35:32 +0100 <monochrom> [A] is a monoid because (xs++ys)++zs = xs++(ys++zs). Also, no one claims or needs commutativity for the [A] monoid.
2024-01-25 06:35:43 +0100 <EvanR> a x b = b x a, "order doesn't matter". a x (b x c) = (a x b) x c, "order doesn't matter". Cool this phrase sucks
2024-01-25 06:35:54 +0100 <monochrom> Yeah that's what I said.
2024-01-25 06:35:57 +0100 <probie> `-` is both associative and commutative in `Z mod 1` :p
2024-01-25 06:36:12 +0100 <monochrom> I guess also mod 2.
2024-01-25 06:36:13 +0100 <probie> s/mod 1/mod 2/
2024-01-25 06:36:32 +0100 <monochrom> Well mod 1 also works >:)
2024-01-25 06:36:58 +0100 <probie> Every binary operation is associative and commutative in `Z mod 1`
2024-01-25 06:37:39 +0100 <monochrom> You know the joke about a PhD thesis about a new kind of rings that got busted? :)
2024-01-25 06:38:15 +0100 <monochrom> A math PhD student thought up a new kind of rings, i.e., adding some new axioms to the ring axioms.
2024-01-25 06:38:29 +0100 <monochrom> He proved that this kind of rings all have super-nice properties.
2024-01-25 06:38:40 +0100 <probie> and it turned out it only had one element?
2024-01-25 06:38:58 +0100 <monochrom> At the oral exam, an examiner asks, "can you give an example of this kind of rings?". He said no, he hadn't tried.
2024-01-25 06:39:25 +0100 <monochrom> Yeah, the examiner than went to the blackboard and proved that they can only be {0}.
2024-01-25 06:39:35 +0100 <jackdk> I've heard a variant of this story where the only example of the "new structure with nice properties" was the unit circle
2024-01-25 06:40:23 +0100 <EvanR> that's supposed to be a joke? Sounds like a totally valid paper xd
2024-01-25 06:40:47 +0100 <EvanR> if the punchline were included at the end
2024-01-25 06:41:03 +0100 <monochrom> Naw, in a PhD program, the supervisor would have caught this much earlier on and not let it get to the point of the oral exam.
2024-01-25 06:41:21 +0100 <monochrom> Then again maybe you can point out that some supervisors are dysfunctional...
2024-01-25 06:41:23 +0100 <EvanR> on what grounds xD
2024-01-25 06:42:09 +0100 <monochrom> Well it's the job of the supervisor to ask "do you have an example?" and it's a pretty simple job.
2024-01-25 06:42:36 +0100 <EvanR> I mean if the answer is sure, the singleton ring
2024-01-25 06:42:58 +0100 <monochrom> Well a supervisor also has harder jobs, but sanity checks like "do you have an example?" is easy and automatic.
2024-01-25 06:43:01 +0100 <EvanR> ok, so we have gone on in here at length about types which are both Functor and Contravariant
2024-01-25 06:43:44 +0100 <EvanR> but admittedly at some point someone says "they're not very interesting"
2024-01-25 06:44:25 +0100 <EvanR> or Comonoids are not very interesting. I guess none of this rises to the level of phd paper xD
2024-01-25 06:44:37 +0100 <monochrom> :)
2024-01-25 06:50:57 +0100 <monochrom> BTW, that is why () is a Monoid instance. >:)
2024-01-25 06:56:28 +0100benjaminl(~benjaminl@user/benjaminl) (Remote host closed the connection)
2024-01-25 06:57:48 +0100benjaminl(~benjaminl@user/benjaminl)
2024-01-25 06:59:57 +0100 <EvanR> because in haskell people learned to put the gut reasoning "no one is ever going to need this instance" through a NOT gate
2024-01-25 07:00:57 +0100 <c_wraith> Eh. there are still plenty of people upset by ((,) a) having a Foldable instance
2024-01-25 07:01:29 +0100 <EvanR> that's the NOT gate in action!
2024-01-25 07:01:42 +0100 <c_wraith> > length (3,4) -- this upsets so many people
2024-01-25 07:01:44 +0100 <lambdabot> 1
2024-01-25 07:02:16 +0100 <tri_> c_wraith: why length (3,4,5) not working?
2024-01-25 07:02:22 +0100 <tri_> > length (3,4,5)
2024-01-25 07:02:24 +0100 <lambdabot> error:
2024-01-25 07:02:24 +0100 <lambdabot> • No instance for (Foldable ((,,) Integer Integer))
2024-01-25 07:02:24 +0100 <lambdabot> arising from a use of ‘length’
2024-01-25 07:02:33 +0100 <EvanR> treating tuples as a list upsets me
2024-01-25 07:02:36 +0100 <c_wraith> apparently *that* instance doesn't exist!
2024-01-25 07:02:47 +0100 <EvanR> as is done in the typed-elixir paper
2024-01-25 07:02:51 +0100 <monochrom> We need to fix that!
2024-01-25 07:02:58 +0100 <c_wraith> ... If we're going to make tuples foldable, make them foldable up to 63!
2024-01-25 07:03:08 +0100 <EvanR> > length (3,(4,5))
2024-01-25 07:03:09 +0100 <lambdabot> 1
2024-01-25 07:03:41 +0100 <tri_> c_wraith: oh i see! I forgot that we can't have infinite items in a tuple, only 7 or 8. And each is a separate type
2024-01-25 07:04:29 +0100 <EvanR> not without infinite types
2024-01-25 07:04:32 +0100 <c_wraith> I believe GHC supports up to 63 elements in a tuple. But most classes that have tuple instances don't go all the way up that high
2024-01-25 07:07:13 +0100 <c_wraith> heck. There don't even appear to be Show instances above 15 elements
2024-01-25 07:07:42 +0100 <monochrom> Control.Applicative stops at liftA3.
2024-01-25 07:09:25 +0100Square2(~Square4@user/square) (Ping timeout: 264 seconds)
2024-01-25 07:09:42 +0100aforemny_(~aforemny@2001:9e8:6cf9:7200:33bd:fab4:6c7b:ec3c)
2024-01-25 07:09:44 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-01-25 07:10:44 +0100zetef(~quassel@95.77.17.251)
2024-01-25 07:11:13 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-25 07:11:13 +0100aforemny(~aforemny@2001:9e8:6cf6:d000:dd64:8ab1:7668:b8d6) (Ping timeout: 264 seconds)
2024-01-25 07:17:29 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2024-01-25 07:17:42 +0100zetef(~quassel@95.77.17.251) (Remote host closed the connection)
2024-01-25 07:18:00 +0100aforemny(~aforemny@2001:9e8:6cf9:7c00:859e:282d:f5c:ea1a)
2024-01-25 07:18:22 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds)
2024-01-25 07:18:42 +0100euleritian(~euleritia@dynamic-176-001-246-220.176.1.pool.telefonica.de)
2024-01-25 07:19:01 +0100aforemny_(~aforemny@2001:9e8:6cf9:7200:33bd:fab4:6c7b:ec3c) (Ping timeout: 264 seconds)
2024-01-25 07:27:19 +0100aforemny(~aforemny@2001:9e8:6cf9:7c00:859e:282d:f5c:ea1a) (Ping timeout: 256 seconds)
2024-01-25 07:30:35 +0100hackyhacker(~user@212.71.9.113)
2024-01-25 07:30:41 +0100aforemny(~aforemny@2001:9e8:6cf9:8500:981b:1c32:9029:341)
2024-01-25 07:35:05 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2024-01-25 07:35:17 +0100aforemny(~aforemny@2001:9e8:6cf9:8500:981b:1c32:9029:341) (Ping timeout: 260 seconds)
2024-01-25 07:35:33 +0100 <hackyhacker> Hello is anyone here going to Fosdem next week? It's an open source conference in Brussels Belgium. Last year they had a Haskell dev room.
2024-01-25 07:38:59 +0100tri_(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-01-25 07:41:55 +0100michalz(~michalz@185.246.207.222)
2024-01-25 07:45:08 +0100aforemny(~aforemny@2001:9e8:6cf9:9a00:4bfc:c9f0:6a8:dc47)
2024-01-25 07:45:35 +0100igemnace(~ian@user/igemnace)
2024-01-25 07:49:08 +0100yeahitsme(~bob@user/yeahitsme)
2024-01-25 07:49:19 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds)
2024-01-25 07:51:32 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-01-25 07:54:43 +0100michalz(~michalz@185.246.207.222) (Quit: ZNC 1.8.2 - https://znc.in)
2024-01-25 07:57:40 +0100michalz(~michalz@185.246.207.197)
2024-01-25 07:59:11 +0100qqq(~qqq@92.43.167.61)
2024-01-25 08:01:07 +0100mikoto-chan(~mikoto-ch@ip-83-134-169-166.dsl.scarlet.be)
2024-01-25 08:04:54 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-01-25 08:08:39 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2024-01-25 08:09:12 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-01-25 08:15:20 +0100Kuttenbrunzer(~Kuttenbru@2a02:8108:8b80:1d48::cc15)
2024-01-25 08:19:10 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds)
2024-01-25 08:20:10 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Remote host closed the connection)
2024-01-25 08:20:37 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-01-25 08:22:37 +0100shriekingnoise(~shrieking@186.137.175.87) (Ping timeout: 268 seconds)
2024-01-25 08:24:56 +0100 <haskellbridge> 15<J​ade> Using tuples bigger than `Tuple4` is an antpattern anyways ^^
2024-01-25 08:25:13 +0100 <haskellbridge> 15<J​ade> s/ant/anti
2024-01-25 08:26:05 +0100 <dminuoso_> Not quite sure why it would be an antipattern.
2024-01-25 08:26:41 +0100 <dminuoso_> Conjuring up a data type for a one time usage might be overkill, and sometimes its more convenient to pass something as a single argument.
2024-01-25 08:28:04 +0100 <dminuoso_> Id say they are a code smell, but not an outright antipattern.
2024-01-25 08:30:03 +0100krei-se(~krei-se@p508747fd.dip0.t-ipconnect.de)
2024-01-25 08:30:05 +0100Kuttenbrunzer(~Kuttenbru@2a02:8108:8b80:1d48::cc15) (Quit: Where is it)
2024-01-25 08:44:05 +0100 <haskellbridge> 15<J​ade> okay, yeah, that's fair
2024-01-25 08:49:21 +0100CiaoSen(~Jura@2a05:5800:289:df00:ca4b:d6ff:fec1:99da)
2024-01-25 08:50:33 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-01-25 08:50:55 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-25 08:54:53 +0100euleritian(~euleritia@dynamic-176-001-246-220.176.1.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-25 08:55:11 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-25 08:55:28 +0100fendor(~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c)
2024-01-25 09:00:01 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com) (Quit: The Lounge - https://thelounge.chat)
2024-01-25 09:01:17 +0100kimiamania464(~65804703@user/kimiamania) (Quit: PegeLinux)
2024-01-25 09:01:59 +0100kimiamania4648(~65804703@user/kimiamania)
2024-01-25 09:02:31 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com)
2024-01-25 09:03:06 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com) (Client Quit)
2024-01-25 09:07:01 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
2024-01-25 09:07:27 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com)
2024-01-25 09:07:32 +0100benjaminl(~benjaminl@user/benjaminl) (Remote host closed the connection)
2024-01-25 09:08:07 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com) (Client Quit)
2024-01-25 09:08:12 +0100euleritian(~euleritia@dynamic-176-001-246-220.176.1.pool.telefonica.de)
2024-01-25 09:08:20 +0100benjaminl(~benjaminl@user/benjaminl)
2024-01-25 09:09:25 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com)
2024-01-25 09:10:02 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com) (Client Quit)
2024-01-25 09:12:33 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com)
2024-01-25 09:13:06 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com) (Client Quit)
2024-01-25 09:13:49 +0100qqq(~qqq@92.43.167.61) (Remote host closed the connection)
2024-01-25 09:15:37 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com)
2024-01-25 09:16:01 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com) (Client Quit)
2024-01-25 09:17:32 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com)
2024-01-25 09:18:07 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com) (Client Quit)
2024-01-25 09:19:34 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com)
2024-01-25 09:20:06 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com) (Client Quit)
2024-01-25 09:21:32 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com)
2024-01-25 09:22:06 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com) (Client Quit)
2024-01-25 09:22:33 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com)
2024-01-25 09:23:02 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com) (Client Quit)
2024-01-25 09:23:32 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com)
2024-01-25 09:24:07 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com) (Client Quit)
2024-01-25 09:27:33 +0100mobivme(~mobivme@112.201.111.217)
2024-01-25 09:28:17 +0100mima(~mmh@aftr-62-216-211-75.dynamic.mnet-online.de)
2024-01-25 09:29:23 +0100ph88(~ph88@ip5b403f30.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
2024-01-25 09:34:55 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2024-01-25 09:45:50 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-01-25 09:46:26 +0100tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz)
2024-01-25 09:47:04 +0100mmhat(~mmh@p200300f1c73bf455ee086bfffe095315.dip0.t-ipconnect.de)
2024-01-25 09:47:40 +0100mmhat(~mmh@p200300f1c73bf455ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit)
2024-01-25 09:57:29 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com)
2024-01-25 10:01:20 +0100Ashkan(~Ashkan@147.161.173.72)
2024-01-25 10:06:22 +0100danse-nr3(~danse@151.47.4.131)
2024-01-25 10:12:13 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-25 10:12:58 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:d9f4:da25:bff2:5432) (Remote host closed the connection)
2024-01-25 10:13:26 +0100__monty__(~toonn@user/toonn)
2024-01-25 10:14:04 +0100euleritian(~euleritia@dynamic-176-001-246-220.176.1.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-25 10:14:23 +0100euleritian(~euleritia@77.22.252.56)
2024-01-25 10:17:21 +0100econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-01-25 10:19:42 +0100nschoe(nschoe@gateway/vpn/protonvpn/nschoe)
2024-01-25 10:24:54 +0100euleritian(~euleritia@77.22.252.56) (Read error: Connection reset by peer)
2024-01-25 10:26:02 +0100euleritian(~euleritia@77.22.252.56)
2024-01-25 10:45:08 +0100mikoto-chan(~mikoto-ch@ip-83-134-169-166.dsl.scarlet.be) (Ping timeout: 256 seconds)
2024-01-25 10:45:33 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-01-25 10:46:45 +0100rosco(~rosco@175.136.156.77)
2024-01-25 10:47:28 +0100ft(~ft@p508dbda4.dip0.t-ipconnect.de) (Quit: leaving)
2024-01-25 10:47:32 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:d9f4:da25:bff2:5432)
2024-01-25 10:50:02 +0100CrunchyFlakes(~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-01-25 10:50:34 +0100CrunchyFlakes(~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
2024-01-25 10:55:24 +0100 <jackdk> even Elm gives you six-wide tuples
2024-01-25 10:57:20 +0100 <sshine> god gave us five fingers, six-tuples are an abomination!
2024-01-25 10:57:32 +0100 <jackdk> nah it's fine, you start counting from zero, right?
2024-01-25 10:57:44 +0100 <sshine> I always forget my 0th finger.
2024-01-25 10:59:11 +0100 <sshine> it's in the cloud, so that's why.
2024-01-25 10:59:41 +0100 <int-e> count between the fingers... and before and after
2024-01-25 11:03:26 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2024-01-25 11:04:02 +0100euleritian(~euleritia@77.22.252.56) (Ping timeout: 252 seconds)
2024-01-25 11:04:59 +0100euleritian(~euleritia@dynamic-176-001-246-220.176.1.pool.telefonica.de)
2024-01-25 11:10:38 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 256 seconds)
2024-01-25 11:11:26 +0100euleritian(~euleritia@dynamic-176-001-246-220.176.1.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-25 11:11:44 +0100euleritian(~euleritia@77.22.252.56)
2024-01-25 11:12:30 +0100mesaoptimizer(~mesaoptim@user/PapuaHardyNet)
2024-01-25 11:17:00 +0100cfricke(~cfricke@user/cfricke)
2024-01-25 11:17:00 +0100johnw_(~johnw@69.62.242.138)
2024-01-25 11:19:05 +0100johnw(~johnw@69.62.242.138) (Ping timeout: 256 seconds)
2024-01-25 11:22:13 +0100 <__monty__> You can't count to 12 on the fingers of a single hand?
2024-01-25 11:24:09 +0100 <c_wraith> I can, but it has some problems with quick recognition and tracking.
2024-01-25 11:24:48 +0100 <darkling> monochrom: That PhD joke sounds a bit like my thesis viva. I'd put in a conjecture, but hadn't been able to prove it by the time I submitted.
2024-01-25 11:25:27 +0100 <darkling> Fast forward six months to the viva, and the internal examiner said "Aah, yes, section 5.3. I've got a counter-example." He pulled out a piece of paper.
2024-01-25 11:25:40 +0100 <darkling> I said, "So have I", and pulled out my piece of paper. :)
2024-01-25 11:25:57 +0100 <darkling> His was smaller, dammit.
2024-01-25 11:25:58 +0100 <__monty__> c_wraith: Just live and breathe the duodecimal system : )
2024-01-25 11:26:14 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 260 seconds)
2024-01-25 11:27:11 +0100 <__monty__> darkling: Morale of the story, don't get into counter-example measuring contests.
2024-01-25 11:28:04 +0100zetef(~quassel@95.77.17.251)
2024-01-25 11:28:05 +0100 <darkling> I was just pleased that I'd found one the week before.
2024-01-25 11:29:12 +0100 <c_wraith> heck, if I'm willing to deal with awkward tracking and recognition, I can count to 1023 with both hands.
2024-01-25 11:32:17 +0100 <__monty__> Please tell me how. (Maybe in -offtopic.)
2024-01-25 11:32:41 +0100 <c_wraith> oh, it's just binary. 10 fingers, 2^10-1
2024-01-25 11:35:26 +0100 <danse-nr3> haha that's fun to practice
2024-01-25 11:35:34 +0100 <darkling> Some numbers are harder to represent than others, because some fingers want to bend together.
2024-01-25 11:36:09 +0100 <danse-nr3> well you practice binary counting then you can become a piano player
2024-01-25 11:36:46 +0100 <int-e> or make the step to ternary
2024-01-25 11:37:53 +0100yae(~yae@102.190.180.98)
2024-01-25 11:39:05 +0100pavonia(~user@user/siracusa)
2024-01-25 11:39:32 +0100 <ncf> yes, odd time signatures are important
2024-01-25 11:41:13 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 264 seconds)
2024-01-25 11:44:02 +0100dsrt^(~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Ping timeout: 260 seconds)
2024-01-25 11:46:10 +0100danse-nr3(~danse@151.47.4.131) (Read error: Connection reset by peer)
2024-01-25 11:46:18 +0100danse-nr3(~danse@rm-19-47-252.service.infuturo.it)
2024-01-25 11:48:52 +0100mreh(~mreh@2a00:23c7:2803:ef01:4860:7737:fc69:542b)
2024-01-25 11:49:20 +0100noumenon(~noumenon@113.51-175-156.customer.lyse.net)
2024-01-25 11:50:49 +0100Ashkan(~Ashkan@147.161.173.72) (Quit: Client closed)
2024-01-25 11:50:59 +0100Silver_X(~Silver_X@182.178.242.82)
2024-01-25 11:54:35 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-25 11:56:36 +0100 <danse-nr3> do time signatures have to do with fingers bending together? I thought having independent fingers would be needed for general playing
2024-01-25 11:57:37 +0100 <probie> but are fingers `Foldable`?
2024-01-25 11:57:51 +0100xff0x(~xff0x@ai085147.d.east.v6connect.net)
2024-01-25 11:58:06 +0100 <danse-nr3> just injectively
2024-01-25 12:01:13 +0100zetef(~quassel@95.77.17.251) (Remote host closed the connection)
2024-01-25 12:06:30 +0100agander_m(sid407952@id-407952.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-01-25 12:07:37 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-01-25 12:08:23 +0100Silver_X(~Silver_X@182.178.242.82) (Quit: Leaving)
2024-01-25 12:09:51 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:e51c:5224:763d:eb0f)
2024-01-25 12:11:28 +0100Maxdamantushas used binary counting as his primary way of finger counting for years.
2024-01-25 12:11:32 +0100 <Maxdamantus> https://drive.google.com/file/d/15eyfRPhuUU-z3cPU64IK-ybP54SZrgxa/view
2024-01-25 12:13:01 +0100 <danse-nr3> haha, thumb being the smaller slot seems important...
2024-01-25 12:14:49 +0100CiaoSen(~Jura@2a05:5800:289:df00:ca4b:d6ff:fec1:99da) (Ping timeout: 264 seconds)
2024-01-25 12:15:26 +0100zetef(~quassel@95.77.17.251)
2024-01-25 12:16:24 +0100 <Maxdamantus> I started doing it in school (about 16 years ago), don't think I tried doing it the other way. The thumb movements in that video get a bit imprecise at around 23, but I suspect it would be harder using the pinky as 1.
2024-01-25 12:16:53 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 256 seconds)
2024-01-25 12:18:45 +0100 <mreh> is anyone familiar with Reflex outside of reflex-dom?
2024-01-25 12:22:48 +0100 <danse-nr3> nope. I can only help by mentioning that for non-web applications there is also monomer, as when i tried to use reflex i did not find it super convenient
2024-01-25 12:22:53 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 240 seconds)
2024-01-25 12:24:27 +0100nschoe(nschoe@gateway/vpn/protonvpn/nschoe) (Ping timeout: 260 seconds)
2024-01-25 12:28:55 +0100qqq(~qqq@92.43.167.61)
2024-01-25 12:36:04 +0100nschoe(nschoe@gateway/vpn/protonvpn/nschoe)
2024-01-25 12:36:47 +0100 <jackdk> mreh: I've played with it a bit: https://git.sr.ht/~jack/reflex-libtelnet
2024-01-25 12:38:57 +0100CiaoSen(~Jura@2a05:5800:289:df00:ca4b:d6ff:fec1:99da)
2024-01-25 12:39:01 +0100 <mreh> Cool. Looks like you've managed to avoid using the impure combinators.
2024-01-25 12:39:21 +0100 <danse-nr3> hmm reflex is a reactive framework, not an app framework. Sorry i recalled the level of abstraction wrong
2024-01-25 12:40:12 +0100 <mreh> reflex-dom introduces dyn and widgetHold for when you have types like Dynamic (m a) or Event (m a)
2024-01-25 12:40:42 +0100 <mreh> I can't find any way of working with similar types outside of the dom though
2024-01-25 12:42:17 +0100 <danse-nr3> maybe their logic is not too complex and can be rewritten for your case?
2024-01-25 12:43:02 +0100 <danse-nr3> that is sometimes the cause for some abstractions not being available
2024-01-25 12:43:38 +0100 <mreh> I'm trying to avoid reinventing the wheel, but I think it's just something I'm missing.
2024-01-25 12:44:19 +0100zetef(~quassel@95.77.17.251) (Remote host closed the connection)
2024-01-25 12:44:33 +0100 <mreh> There's this module: https://hackage.haskell.org/package/reflex-0.9.3.0/docs/Reflex-Host-Headless.html
2024-01-25 12:44:34 +0100 <mreh> - which implies you can use those combinators (through the Adjustable type class)
2024-01-25 12:45:10 +0100 <jackdk> What do you mean "the impure combinators"?
2024-01-25 12:46:31 +0100 <mreh> jackdk: the functions in `Reflex.Network`
2024-01-25 12:46:43 +0100 <mreh> https://hackage.haskell.org/package/reflex-0.9.3.0/docs/Reflex-Network.html
2024-01-25 12:52:09 +0100danse-nr3(~danse@rm-19-47-252.service.infuturo.it) (Ping timeout: 260 seconds)
2024-01-25 12:52:33 +0100 <jackdk> mreh: I use `list`, which needs `Adjustable`: https://git.sr.ht/~jack/reflex-libtelnet/tree/master/item/reflex-libtelnet-example/src/Main.hs#L77
2024-01-25 12:53:51 +0100 <mreh> ah, so you do
2024-01-25 12:54:51 +0100 <jackdk> I also traced the typeclass instances in #reflex-frp in case that helps
2024-01-25 12:55:28 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-01-25 13:03:14 +0100 <mreh> thanks
2024-01-25 13:07:19 +0100 <jackdk> mreh: what are you trying to do? My gut feeling is that you probably don't want to call into Reflex.Spider directly and instead use Reflex.Host.Headless, which should set everything up correctly (including Adjustable)
2024-01-25 13:08:22 +0100 <mreh> I was using some example code how to setup your own event loop using runSpiderHost etc
2024-01-25 13:10:21 +0100 <jackdk> Ah. Old code? runHeadlessApp has been around for a while, and qfpl's reflex-host-basic before that. But these days I'd just runHeadlessApp
2024-01-25 13:10:46 +0100 <lyxia> how to convert between bytestring and bytearray?
2024-01-25 13:15:37 +0100Zmzi(~rscastilh@user/Zmzi)
2024-01-25 13:16:09 +0100 <mreh> jackdk: Okay. Looks like it'll work for me. Thanks
2024-01-25 13:16:18 +0100Zmzi(~rscastilh@user/Zmzi) (Remote host closed the connection)
2024-01-25 13:16:32 +0100 <mreh> lyxia: I think ByteArray is a typeclass that ByteString already implements
2024-01-25 13:17:37 +0100 <lyxia> mreh: no it's not https://hackage.haskell.org/package/base-4.19.0.0/docs/Data-Array-Byte.html
2024-01-25 13:19:14 +0100 <lyxia> You were thinking of the third party library memory
2024-01-25 13:19:44 +0100 <xerox> lyxia: https://www.stackage.org/haddock/lts-22.7/cborg-0.2.10.0/src/Codec.CBOR.ByteArray.html#fromByteStr…
2024-01-25 13:23:30 +0100 <lyxia> thanks xerox. so the solution is to go through ShortByteString, which is a wrapper around ByteArray
2024-01-25 13:25:38 +0100 <xerox> at least it is one way, I guess it does make sense, since you do need to compact it into something before it can be just 1 bytearray in general
2024-01-25 13:56:02 +0100AlexZenon(~alzenon@94.233.241.143) (Ping timeout: 260 seconds)
2024-01-25 13:57:04 +0100danse-nr3(~danse@151.47.78.152)
2024-01-25 13:58:42 +0100euleritian(~euleritia@77.22.252.56) (Read error: Connection reset by peer)
2024-01-25 13:58:54 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-25 14:00:33 +0100AlexZenon(~alzenon@94.233.241.143)
2024-01-25 14:01:27 +0100Feuermagier(~Feuermagi@user/feuermagier)
2024-01-25 14:03:50 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2024-01-25 14:05:25 +0100AlexZenon(~alzenon@94.233.241.143) (Ping timeout: 260 seconds)
2024-01-25 14:12:25 +0100AlexZenon(~alzenon@94.233.241.143)
2024-01-25 14:13:30 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2024-01-25 14:22:04 +0100picnoir(~picnoir@about/aquilenet/vodoo/NinjaTrappeur) (Quit: WeeChat 4.1.2)
2024-01-25 14:29:14 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2024-01-25 14:30:46 +0100Guest68(~Guest68@104.193.8.144)
2024-01-25 14:35:16 +0100picnoir(~picnoir@about/aquilenet/vodoo/NinjaTrappeur)
2024-01-25 14:36:10 +0100 <cheater> anyone know what an autogen Paths_* module is, in a cabal file?
2024-01-25 14:37:29 +0100 <ncf> https://cabal.readthedocs.io/en/stable/cabal-package.html#accessing-data-files-from-package-code
2024-01-25 14:37:32 +0100 <cheater> right
2024-01-25 14:37:34 +0100 <cheater> https://downloads.haskell.org/~ghc/7.0.3/docs/html/Cabal/authors.html#paths-module
2024-01-25 14:37:36 +0100Guest68chenggong7788
2024-01-25 14:37:42 +0100 <cheater> that's what i stumbled upon
2024-01-25 14:37:45 +0100 <cheater> but yours is better!
2024-01-25 14:43:49 +0100mxs(~mxs@user/mxs)
2024-01-25 14:47:28 +0100chenggong7788nil78
2024-01-25 14:51:00 +0100shriekingnoise(~shrieking@186.137.175.87)
2024-01-25 14:51:37 +0100ddellacosta(~ddellacos@ool-44c73d16.dyn.optonline.net) (Ping timeout: 260 seconds)
2024-01-25 15:00:09 +0100nil78(~Guest68@104.193.8.144) (Quit: Client closed)
2024-01-25 15:12:42 +0100phma(~phma@2001:5b0:211c:bbb8:1d29:ba48:4236:ecbf) (Read error: Connection reset by peer)
2024-01-25 15:13:06 +0100phma(~phma@host-67-44-208-13.hnremote.net)
2024-01-25 15:16:47 +0100yae(~yae@102.190.180.98) (Ping timeout: 264 seconds)
2024-01-25 15:22:29 +0100potato44(uid421314@id-421314.lymington.irccloud.com)
2024-01-25 15:25:47 +0100igemnace(~ian@user/igemnace) (Read error: Connection reset by peer)
2024-01-25 15:27:48 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2024-01-25 15:30:16 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2024-01-25 15:41:45 +0100stefan-__(~m-yh2rcc@42dots.de) (Remote host closed the connection)
2024-01-25 15:43:07 +0100stefan-__(~m-yh2rcc@42dots.de)
2024-01-25 15:43:56 +0100igemnace(~ian@user/igemnace)
2024-01-25 15:50:37 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:e51c:5224:763d:eb0f) (Remote host closed the connection)
2024-01-25 15:50:51 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:e51c:5224:763d:eb0f)
2024-01-25 15:54:14 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-25 15:54:38 +0100td_(~td@i53870927.versanet.de) (Quit: waking up from the american dream ...)
2024-01-25 15:56:55 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds)
2024-01-25 15:57:19 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds)
2024-01-25 15:57:56 +0100cfricke(~cfricke@user/cfricke) (Quit: WeeChat 4.1.2)
2024-01-25 15:58:32 +0100td_(~td@i53870927.versanet.de)
2024-01-25 16:06:29 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-25 16:06:44 +0100_xor(~xor@ip-208-102-243-175.dynamic.fuse.net)
2024-01-25 16:08:25 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-01-25 16:18:44 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1)
2024-01-25 16:20:05 +0100Sgeo(~Sgeo@user/sgeo)
2024-01-25 16:21:02 +0100mreh(~mreh@2a00:23c7:2803:ef01:4860:7737:fc69:542b) (Ping timeout: 250 seconds)
2024-01-25 16:23:35 +0100nschoe(nschoe@gateway/vpn/protonvpn/nschoe) (Ping timeout: 252 seconds)
2024-01-25 16:24:47 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2024-01-25 16:25:19 +0100euleritian(~euleritia@dynamic-176-006-180-040.176.6.pool.telefonica.de)
2024-01-25 16:25:22 +0100CiaoSen(~Jura@2a05:5800:289:df00:ca4b:d6ff:fec1:99da) (Ping timeout: 260 seconds)
2024-01-25 16:31:19 +0100zetef(~quassel@95.77.17.251)
2024-01-25 16:37:02 +0100qqq(~qqq@92.43.167.61) (Remote host closed the connection)
2024-01-25 16:37:11 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 268 seconds)
2024-01-25 16:39:18 +0100Square(~Square@user/square)
2024-01-25 16:42:42 +0100dsrt^(~cd@c-98-242-74-66.hsd1.ga.comcast.net)
2024-01-25 16:52:00 +0100nschoe(nschoe@gateway/vpn/protonvpn/nschoe)
2024-01-25 16:55:22 +0100mei(~mei@user/mei)
2024-01-25 16:58:36 +0100siw5ohs0(~aiw5ohs0@user/aiw5ohs0)
2024-01-25 16:58:46 +0100siw5ohs0(~aiw5ohs0@user/aiw5ohs0) ()
2024-01-25 17:13:52 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-25 17:14:33 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com)
2024-01-25 17:22:37 +0100euleritian(~euleritia@dynamic-176-006-180-040.176.6.pool.telefonica.de) (Ping timeout: 264 seconds)
2024-01-25 17:22:47 +0100euleritian(~euleritia@dynamic-176-006-189-183.176.6.pool.telefonica.de)
2024-01-25 17:26:22 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2024-01-25 17:27:11 +0100euleritian(~euleritia@dynamic-176-006-189-183.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-25 17:28:04 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-25 17:35:39 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-25 17:43:31 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:d9f4:da25:bff2:5432) (Remote host closed the connection)
2024-01-25 17:43:52 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c1cf:e14:7781:abcb)
2024-01-25 17:49:57 +0100igemnace(~ian@user/igemnace) (Quit: WeeChat 4.2.1)
2024-01-25 17:52:08 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2024-01-25 17:52:21 +0100zetef(~quassel@95.77.17.251) (Ping timeout: 256 seconds)
2024-01-25 17:52:37 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-25 17:54:10 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-01-25 17:54:45 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-25 17:54:51 +0100danse-nr3(~danse@151.47.78.152) (Ping timeout: 260 seconds)
2024-01-25 17:55:36 +0100L29Ah(~L29Ah@wikipedia/L29Ah) ()
2024-01-25 17:59:35 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:e51c:5224:763d:eb0f) (Remote host closed the connection)
2024-01-25 18:00:13 +0100econo_(uid147250@id-147250.tinside.irccloud.com)
2024-01-25 18:00:52 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds)
2024-01-25 18:01:22 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-25 18:04:04 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2024-01-25 18:04:04 +0100danse-nr3(~danse@151.37.152.59)
2024-01-25 18:08:42 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Remote host closed the connection)
2024-01-25 18:14:14 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-01-25 18:16:20 +0100nschoe(nschoe@gateway/vpn/protonvpn/nschoe) (Ping timeout: 252 seconds)
2024-01-25 18:18:29 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 240 seconds)
2024-01-25 18:25:35 +0100causal(~eric@50.35.85.7) (Quit: WeeChat 4.1.1)
2024-01-25 18:27:21 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-01-25 18:29:02 +0100tri_(~tri@ool-18bbef1a.static.optonline.net)
2024-01-25 18:29:02 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Read error: Connection reset by peer)
2024-01-25 18:33:46 +0100tri_(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 256 seconds)
2024-01-25 18:36:48 +0100fendor(~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Remote host closed the connection)
2024-01-25 18:38:16 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-25 18:43:55 +0100mqlnv(~tripod@47.154.25.27) (Ping timeout: 268 seconds)
2024-01-25 18:44:23 +0100tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net)
2024-01-25 18:45:21 +0100mqlnv(~tripod@47.154.25.27)
2024-01-25 18:49:31 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds)
2024-01-25 18:49:56 +0100euleritian(~euleritia@dynamic-176-006-189-183.176.6.pool.telefonica.de)
2024-01-25 18:53:22 +0100Tuplanolla(~Tuplanoll@91-159-68-95.elisa-laajakaista.fi)
2024-01-25 18:59:06 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-01-25 19:01:08 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2024-01-25 19:02:49 +0100danse-nr3(~danse@151.37.152.59) (Ping timeout: 246 seconds)
2024-01-25 19:06:13 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 276 seconds)
2024-01-25 19:14:36 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-01-25 19:17:09 +0100wlhn(~wenzel@dl5nxl8j-r4kxslv6t5kt-3.rev.dnainternet.fi) (Quit: Leaving)
2024-01-25 19:17:54 +0100euleritian(~euleritia@dynamic-176-006-189-183.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-25 19:17:55 +0100Erutuon(~Erutuon@user/erutuon)
2024-01-25 19:18:12 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-25 19:21:27 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-25 19:22:43 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-25 19:22:46 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
2024-01-25 19:23:32 +0100euleritian(~euleritia@dynamic-176-006-189-183.176.6.pool.telefonica.de)
2024-01-25 19:26:23 +0100euleritian(~euleritia@dynamic-176-006-189-183.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-25 19:26:40 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-25 19:27:50 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2024-01-25 19:28:39 +0100mqlnv(~tripod@47.154.25.27) (Ping timeout: 260 seconds)
2024-01-25 19:29:49 +0100megaTherion(~therion@unix.io) (Quit: ZNC 1.8.2 - https://znc.in)
2024-01-25 19:30:02 +0100irrgit_(~irrgit@89.47.234.26) (Remote host closed the connection)
2024-01-25 19:30:05 +0100mqlnv(~tripod@47.154.25.27)
2024-01-25 19:30:45 +0100irrgit_(~irrgit@146.70.27.218)
2024-01-25 19:31:01 +0100megaTherion(~therion@unix.io)
2024-01-25 19:31:30 +0100johnw_johnw
2024-01-25 19:33:01 +0100mima(~mmh@aftr-62-216-211-75.dynamic.mnet-online.de) (Ping timeout: 260 seconds)
2024-01-25 19:42:08 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2024-01-25 19:42:48 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-25 19:49:51 +0100rosco(~rosco@175.136.156.77) (Quit: Lost terminal)
2024-01-25 20:01:30 +0100megaTherion(~therion@unix.io) (Quit: ZNC 1.8.2 - https://znc.in)
2024-01-25 20:03:19 +0100megaTherion(~therion@unix.io)
2024-01-25 20:07:31 +0100megaTherion(~therion@unix.io) (Client Quit)
2024-01-25 20:08:36 +0100megaTherion(~therion@unix.io)
2024-01-25 20:13:32 +0100nschoe(nschoe@gateway/vpn/protonvpn/nschoe)
2024-01-25 20:14:01 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2024-01-25 20:18:52 +0100thegeekinside(~thegeekin@189.180.65.186)
2024-01-25 20:30:39 +0100chiselfuse(~chiselfus@user/chiselfuse) (Remote host closed the connection)
2024-01-25 20:30:39 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2024-01-25 20:30:39 +0100ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2024-01-25 20:30:39 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2024-01-25 20:30:39 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2024-01-25 20:30:39 +0100califax(~califax@user/califx) (Remote host closed the connection)
2024-01-25 20:31:43 +0100nschoe(nschoe@gateway/vpn/protonvpn/nschoe) (Ping timeout: 256 seconds)
2024-01-25 20:33:02 +0100ft(~ft@p508dbda4.dip0.t-ipconnect.de)
2024-01-25 20:36:01 +0100dsrt^(~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Ping timeout: 260 seconds)
2024-01-25 20:39:26 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Remote host closed the connection)
2024-01-25 20:42:13 +0100haskellbridge(~haskellbr@069-135-003-034.biz.spectrum.com) (Remote host closed the connection)
2024-01-25 20:43:56 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
2024-01-25 20:45:47 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2024-01-25 20:46:17 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-01-25 20:46:18 +0100califax(~califax@user/califx)
2024-01-25 20:46:47 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2024-01-25 20:48:19 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2024-01-25 20:50:03 +0100Lycurgus(~georg@user/Lycurgus)
2024-01-25 20:52:00 +0100haskellbridge(~haskellbr@069-135-003-034.biz.spectrum.com)
2024-01-25 20:52:00 +0100ChanServ+v haskellbridge
2024-01-25 20:53:01 +0100ec(~ec@gateway/tor-sasl/ec)
2024-01-25 20:53:19 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2024-01-25 20:53:26 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2024-01-25 20:53:31 +0100dsrt^(~cd@c-98-242-74-66.hsd1.ga.comcast.net)
2024-01-25 20:53:46 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2024-01-25 20:55:03 +0100pastly(~pastly@gateway/tor-sasl/pastly)
2024-01-25 20:55:23 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-01-25 20:58:18 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Quit: ZNC 1.8.2 - https://znc.in)
2024-01-25 20:58:25 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2024-01-25 20:59:14 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-25 21:03:56 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-01-25 21:05:40 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2024-01-25 21:11:33 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2024-01-25 21:14:30 +0100Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2024-01-25 21:16:35 +0100chiselfuse(~chiselfus@user/chiselfuse)
2024-01-25 21:19:44 +0100EvanR_(~EvanR@user/evanr)
2024-01-25 21:19:53 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c1cf:e14:7781:abcb) (Remote host closed the connection)
2024-01-25 21:19:59 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2024-01-25 21:20:46 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2024-01-25 21:20:51 +0100EvanR(~EvanR@user/evanr) (Ping timeout: 268 seconds)
2024-01-25 21:21:13 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-01-25 21:24:35 +0100mikko(~mikko@user/mikko) (Ping timeout: 264 seconds)
2024-01-25 21:37:30 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 268 seconds)
2024-01-25 21:37:57 +0100mikko(~mikko@user/mikko)
2024-01-25 21:41:00 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-25 21:45:15 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 256 seconds)
2024-01-25 21:47:24 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2024-01-25 21:47:55 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2024-01-25 21:54:42 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2024-01-25 21:54:46 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c1cf:e14:7781:abcb)
2024-01-25 22:01:53 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-01-25 22:06:55 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 276 seconds)
2024-01-25 22:10:02 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2024-01-25 22:15:17 +0100dsrt^(~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Ping timeout: 256 seconds)
2024-01-25 22:24:08 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2024-01-25 22:36:36 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2024-01-25 22:37:48 +0100TonyStone(~TonyStone@074-076-057-186.res.spectrum.com) (Quit: Leaving)
2024-01-25 22:37:56 +0100dsrt^(~cd@c-98-242-74-66.hsd1.ga.comcast.net)
2024-01-25 22:41:36 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-01-25 22:49:23 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2024-01-25 22:51:19 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2024-01-25 22:56:37 +0100irrgit_(~irrgit@146.70.27.218) (Quit: Leaving)
2024-01-25 22:57:34 +0100innegatives_(sid621315@id-621315.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-01-25 23:00:04 +0100EvanR_EvanR
2024-01-25 23:06:35 +0100noumenon(~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving)
2024-01-25 23:10:33 +0100trev(~trev@user/trev) (Quit: trev)
2024-01-25 23:20:57 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2024-01-25 23:24:04 +0100Guest86(~Guest86@2603-6081-7b00-a800-0000-0000-0000-0002.res6.spectrum.com)
2024-01-25 23:25:48 +0100mei(~mei@user/mei) (Remote host closed the connection)
2024-01-25 23:27:41 +0100Guest86(~Guest86@2603-6081-7b00-a800-0000-0000-0000-0002.res6.spectrum.com) (Client Quit)
2024-01-25 23:28:12 +0100mei(~mei@user/mei)
2024-01-25 23:33:22 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2024-01-25 23:38:37 +0100julie_pilgrim(~julie_pil@user/julie-pilgrim/x-1240752)
2024-01-25 23:41:12 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2024-01-25 23:43:58 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-25 23:47:26 +0100innegatives_(uid621315@id-621315.tinside.irccloud.com)
2024-01-25 23:49:44 +0100a51(a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.0)
2024-01-25 23:51:38 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 255 seconds)
2024-01-25 23:51:59 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2024-01-25 23:53:22 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds)