2024/01/29

2024-01-29 00:04:30 +0100fansly(~fansly@103.3.221.236) (Ping timeout: 260 seconds)
2024-01-29 00:05:16 +0100fansly(~fansly@182.0.197.126)
2024-01-29 00:12:58 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-01-29 00:18:10 +0100Lycurgus(~georg@user/Lycurgus)
2024-01-29 00:25:53 +0100fansly(~fansly@182.0.197.126) (Read error: Connection reset by peer)
2024-01-29 00:26:04 +0100fansly(~fansly@2001:448a:2010:476e:c9c:17f1:874c:ee93)
2024-01-29 00:34:23 +0100mud(~mud@user/kadoban)
2024-01-29 00:36:09 +0100 <[Leary]> ,'juki x
2024-01-29 00:36:09 +0100 <[Leary]> +
2024-01-29 00:36:41 +0100 <[Leary]> Oops. Dropped my keyboard. <.<
2024-01-29 00:37:42 +0100 <Hecate> 'sup Rembane :)
2024-01-29 00:38:14 +0100 <dsal> > drop 1 "keyboard"
2024-01-29 00:38:16 +0100 <lambdabot> "eyboard"
2024-01-29 00:40:26 +0100 <EvanR> I was going to say that
2024-01-29 00:40:31 +0100 <EvanR> then backed out
2024-01-29 00:41:20 +0100 <geekosaur> *keyboard drop*
2024-01-29 00:42:18 +0100Erutuon(~Erutuon@user/erutuon)
2024-01-29 00:42:23 +0100mokee(~mokee@37.228.215.150)
2024-01-29 00:47:03 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 00:50:07 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-29 00:54:08 +0100Tuplanolla(~Tuplanoll@91-159-68-95.elisa-laajakaista.fi) (Quit: Leaving.)
2024-01-29 00:55:17 +0100 <Axman6> eyyyyyboard
2024-01-29 00:59:06 +0100sudden(~cat@user/sudden) (Ping timeout: 260 seconds)
2024-01-29 01:05:04 +0100a51(a51@gateway/vpn/protonvpn/a51)
2024-01-29 01:07:17 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 240 seconds)
2024-01-29 01:09:57 +0100sudden(~cat@user/sudden)
2024-01-29 01:10:18 +0100Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2024-01-29 01:13:09 +0100mud(~mud@user/kadoban) (Quit: quit)
2024-01-29 01:15:24 +0100rvalue(~rvalue@user/rvalue)
2024-01-29 01:21:48 +0100caconym(~caconym@user/caconym) (Quit: bye)
2024-01-29 01:27:08 +0100caconym(~caconym@user/caconym)
2024-01-29 01:31:01 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 246 seconds)
2024-01-29 01:34:08 +0100a51(a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1)
2024-01-29 01:50:19 +0100athan(~athan@173-042-095-241.biz.spectrum.com) (Ping timeout: 256 seconds)
2024-01-29 01:58:11 +0100shapr(~user@c-24-218-186-89.hsd1.ma.comcast.net) (Ping timeout: 264 seconds)
2024-01-29 02:10:00 +0100sroso(~sroso@user/SrOso)
2024-01-29 02:10:07 +0100a51(a51@gateway/vpn/protonvpn/a51)
2024-01-29 02:16:31 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-01-29 02:21:37 +0100ft(~ft@p3e9bcb1e.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2024-01-29 02:25:15 +0100a51(a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1)
2024-01-29 02:25:20 +0100tamer(~tamer@user/tamer)
2024-01-29 02:25:35 +0100yaroot(~yaroot@p2987138-ipngn7501souka.saitama.ocn.ne.jp) (Remote host closed the connection)
2024-01-29 02:26:12 +0100yaroot(~yaroot@p2987138-ipngn7501souka.saitama.ocn.ne.jp)
2024-01-29 02:27:01 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:24d0:730b:131f:e5b3) (Remote host closed the connection)
2024-01-29 02:34:13 +0100causal(~eric@50.35.85.7) (Quit: WeeChat 4.1.1)
2024-01-29 02:37:13 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
2024-01-29 02:38:00 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2024-01-29 02:42:07 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-01-29 02:55:17 +0100 <tri> hi, i'd like to define an instance of Eq on newtype Bag t = Bag {items :: t String}
2024-01-29 02:55:44 +0100 <tri> for that t, for that t, i'd like for it to be a list
2024-01-29 02:56:07 +0100 <tri> not really a list, but a general abstract of list, e.g. vector, array, list
2024-01-29 02:56:52 +0100 <tri> but im not sure which typeclass would represent such abstract of a list-like datastrcutre.
2024-01-29 02:57:16 +0100 <tri> im thinking about a Traversable, but im not sure if that's appropriate
2024-01-29 02:57:51 +0100 <tri> an equivalent of what im thinking about is either IColletion or IList in .NET
2024-01-29 02:57:55 +0100 <c_wraith> Foldable is enough to give you toList
2024-01-29 02:58:34 +0100 <monochrom> "instance Show1 t => Show (Bag t)" may help.
2024-01-29 02:59:13 +0100 <tri> c_wraith: could you elaborate why you pick Foldable to represent an abstract list?
2024-01-29 02:59:19 +0100 <c_wraith> :t toList
2024-01-29 02:59:20 +0100 <lambdabot> Foldable t => t a -> [a]
2024-01-29 02:59:25 +0100stef204(~stef204@user/stef204) (Quit: WeeChat 4.2.1)
2024-01-29 02:59:31 +0100 <tri> monochrom: you mean aside from Eq, i should also implement an instance of Show as well?
2024-01-29 02:59:52 +0100 <c_wraith> Foldable implies an ordered traversal of a data type is possible
2024-01-29 03:00:01 +0100 <jackdk> monochrom: I think you mean `Eq1` but yeah. Although here you only have one type applied to `t` so I'm not sure why `deriving newtype (Eq (t String)) => Eq (Bag t)` does not suffice
2024-01-29 03:00:03 +0100 <c_wraith> For whatever "ordered" means for your type
2024-01-29 03:00:11 +0100 <tri> c_wraith: but actually, im not sure if my thinking like that is correct in Haskell. That is, I try to go for an abstract data type, rather than a concrete data type like a Vector or a List or an Array
2024-01-29 03:00:52 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:18c9:b5e1:a528:fba1)
2024-01-29 03:01:17 +0100 <tri> in OOP, it's natural for me to use an interface, and let the calling function supplies the concrete data data structure
2024-01-29 03:01:37 +0100 <tri> im not sure if i do it like that in Haskell
2024-01-29 03:02:24 +0100 <c_wraith> it depends on what you're trying to do
2024-01-29 03:02:41 +0100 <EvanR> abstract data type just means you don't expose the implementation
2024-01-29 03:02:46 +0100Sgeo(~Sgeo@user/sgeo)
2024-01-29 03:02:49 +0100 <EvanR> so in that sense Vector and Array are abstract
2024-01-29 03:03:00 +0100 <c_wraith> I could totally see a reason to write instance Foldable t => Eq (Bag t)
2024-01-29 03:03:12 +0100 <c_wraith> But... I could also see reasons not to
2024-01-29 03:04:00 +0100 <EvanR> but you could put yet another layer of abstract on top of that
2024-01-29 03:04:03 +0100 <c_wraith> The one big issue people coming from OOP will have, though, is that you still can't use Eq or Ord to compare a (Bag []) with a (Bag Vector)
2024-01-29 03:04:36 +0100 <c_wraith> those won't typecheck long before the instance definitions are examined
2024-01-29 03:05:23 +0100igemnace(~ian@user/igemnace) (Ping timeout: 264 seconds)
2024-01-29 03:05:36 +0100 <monochrom> Oh! Yeah s/Show1/Eq1/
2024-01-29 03:06:38 +0100 <monochrom> But it is very possible that all use cases of Bag t requires Foldable t anyway.
2024-01-29 03:07:09 +0100 <monochrom> Like, the name is "Bag", would you even expect a contravariant functor? >:)
2024-01-29 03:07:24 +0100 <c_wraith> It's also possible that the entire data type doesn't make sense.
2024-01-29 03:07:28 +0100 <tri> well ok i will just go with Foldable and switch out to anotehr typeclass if i need to
2024-01-29 03:07:36 +0100 <c_wraith> It depends on what you're *trying* to do
2024-01-29 03:07:47 +0100 <tri> c_wraith: just testing out the water to see how far i can go
2024-01-29 03:07:50 +0100 <c_wraith> If you're trying to hide the data type, it's entirely wrong
2024-01-29 03:08:05 +0100 <tri> c_wraith: no particular reason, just trying to mimic my OOP experience
2024-01-29 03:08:24 +0100 <monochrom> Ah yeah hidding the type is best done by controlling export.
2024-01-29 03:08:36 +0100 <tri> i could've been fine just using list
2024-01-29 03:08:52 +0100 <EvanR> also, isn't abstract data type "dual" to OOP, in some sense
2024-01-29 03:09:05 +0100 <EvanR> in context of the expression problem, or something
2024-01-29 03:10:11 +0100mima(~mmh@aftr-62-216-211-12.dynamic.mnet-online.de) (Ping timeout: 264 seconds)
2024-01-29 03:10:40 +0100 <monochrom> If you want to do OO in Haskell, you don't use type classes, you simply don't. Haskell type classes have nothing to do with OO.
2024-01-29 03:10:59 +0100 <monochrom> You use a record type that has methods as fields.
2024-01-29 03:11:15 +0100 <monochrom> Because that's what objects really are.
2024-01-29 03:11:38 +0100xff0x(~xff0x@ai085147.d.east.v6connect.net) (Ping timeout: 260 seconds)
2024-01-29 03:12:53 +0100 <monochrom> In fact, that's what objects in javascript are, too.
2024-01-29 03:15:45 +0100 <monochrom> Algebraic data types are dual to OO in the expression problem.
2024-01-29 03:15:58 +0100 <monochrom> Abstract data types are instead OO minus subclassing.
2024-01-29 03:17:22 +0100 <monochrom> On second though, I think you're right too.
2024-01-29 03:18:21 +0100 <EvanR> I can't find the blog post / paper where I saw that
2024-01-29 03:18:54 +0100 <monochrom> I'm now convinced! So no worries. :)
2024-01-29 03:19:33 +0100 <tri> EvanR: so when i use Foldable, i need to iterate over the 2 abstract lists to compare them. I think of zip for that. But zip works with the concrete list. So how could i iterate over each item in the 2 Foldables?
2024-01-29 03:19:44 +0100 <monochrom> "I did my own research" is so yesteryear. It's now "I did my own thinking". >:)
2024-01-29 03:19:47 +0100 <tri> EvanR: again, this is to implement Eq
2024-01-29 03:20:06 +0100 <EvanR> when you zip do they have the same shape? like two lists of the same length do?
2024-01-29 03:20:15 +0100 <EvanR> if so, you can use Applicative
2024-01-29 03:20:18 +0100 <tri> oh didn't think about that
2024-01-29 03:20:33 +0100 <tri> well i guess if it's not the same length, then it's not Eq then
2024-01-29 03:20:44 +0100 <EvanR> then how does zipping work
2024-01-29 03:21:16 +0100 <tri> zip is just a way to compare 2 abstract list that came to my mind, obviously i could be wrong
2024-01-29 03:21:30 +0100 <EvanR> oh, I thought you were trying to define a zip like operation.
2024-01-29 03:21:39 +0100 <EvanR> the XY problem continues
2024-01-29 03:21:44 +0100 <tri> my goal is to implement Eq
2024-01-29 03:21:57 +0100 <EvanR> so, implement it?
2024-01-29 03:22:16 +0100 <tri> yes, but i need a way to loop over the Foldable
2024-01-29 03:22:28 +0100 <tri> get each item between each of them and compare
2024-01-29 03:22:38 +0100 <EvanR> ok I guess that's one way to do it
2024-01-29 03:23:07 +0100 <EvanR> but if it's an abstract data type, behind the scenes you can simply implement an equals operation and use that in the Eq instance
2024-01-29 03:23:07 +0100 <tri> but... how do i loop over a foldable...
2024-01-29 03:23:18 +0100 <EvanR> toList
2024-01-29 03:23:21 +0100 <tri> ah
2024-01-29 03:23:21 +0100 <tri> !
2024-01-29 03:24:44 +0100 <jackdk> tri: also `traversable_` or `for_`
2024-01-29 03:26:03 +0100 <tri> jackdk: my first reaction is it would work, i need to implement Eq for a Foldable t => t item. So the underscore version will not be able to implement the == of Eq, because the "swallow" the result
2024-01-29 03:26:13 +0100 <tri> would NOT* work. My bad
2024-01-29 03:26:31 +0100yagkasha(uid629884@user/yagkasha)
2024-01-29 03:26:32 +0100 <tri> they* "swallow"
2024-01-29 03:27:22 +0100 <jackdk> I'm not sure what you're trying to do. I almost never have to write `Eq` instances by hand.
2024-01-29 03:27:49 +0100 <tri> I have this newtype Bag t = Bag {items :: t String}. So that's why i need to implement Eq
2024-01-29 03:27:50 +0100 <jackdk> Are you saying that you want both collections to have the same strings in the same order?
2024-01-29 03:28:21 +0100qqq(~qqq@92.43.167.61) (Remote host closed the connection)
2024-01-29 03:28:22 +0100 <tri> well i was about to mention the order part
2024-01-29 03:28:40 +0100 <EvanR> this doesn't look like it's going to work, from the implications of the name Bag
2024-01-29 03:28:47 +0100 <tri> EvanR: is there any function i can use to go from Foldable to Set?
2024-01-29 03:28:58 +0100 <EvanR> S.fromList . toList
2024-01-29 03:28:59 +0100 <tri> because on second thought, i don't care about the order
2024-01-29 03:29:15 +0100 <jackdk> You will also use duplicates if you go via Set
2024-01-29 03:29:16 +0100 <tri> gotcha thank you
2024-01-29 03:29:30 +0100 <jackdk> https://www.irccloud.com/pastebin/kqtvrPPc/BagDerivingEq.hs
2024-01-29 03:30:08 +0100 <EvanR> Bag is sort of implying you might have duplicates and they matter
2024-01-29 03:30:14 +0100 <EvanR> so AAAB is different from AB
2024-01-29 03:30:58 +0100 <tri> jackdk: i don't understand the part => Eq (Bag t) in your pastebin.
2024-01-29 03:31:27 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:18c9:b5e1:a528:fba1) (Remote host closed the connection)
2024-01-29 03:31:44 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:18c9:b5e1:a528:fba1)
2024-01-29 03:31:46 +0100 <tri> EvanR: each item should be unique, so i don't have duplicate. So i think the set difference operation will be good here
2024-01-29 03:32:26 +0100 <EvanR> so you're trying to implement an abstract Set
2024-01-29 03:32:32 +0100 <jackdk> It defines an instance for `Eq (Bag t)` which requires an instance of `Eq (t String)`
2024-01-29 03:32:43 +0100 <tri> EvanR: ... right
2024-01-29 03:32:58 +0100 <EvanR> newtype MySet a = MySet (Set a) xD
2024-01-29 03:33:35 +0100TonyStone(~TonyStone@074-076-057-186.res.spectrum.com)
2024-01-29 03:34:07 +0100 <tri> well i guess my solution is just use a set then
2024-01-29 03:35:02 +0100 <tri> jackdk: im not used to that syntax, i guess because of the language extension. Could you rewrite that without the language extension please
2024-01-29 03:35:15 +0100 <jackdk> Foldable probably won't give you enough of what you need in a performant way, because you'll probably end up writing insert/remove/member in terms of foldr or equivalent functions, meaning that everything will be basically linear.
2024-01-29 03:36:03 +0100 <jackdk> https://www.irccloud.com/pastebin/yPv3Y0fK/BagWithoutStandaloneDeriving.hs
2024-01-29 03:37:00 +0100 <EvanR> if you need a Set, then use literal Set is something that really helps code reuse in haskell. If you need a pair and A and B, use (A,B) instead of trying to make an AbstractEnterprisePair which tries to leave open how that works
2024-01-29 03:37:23 +0100 <jackdk> You may have seen `instance Eq a => Eq [a]` in your travels, saying "if we can test items for equality, we can test lists for equality". This is the same, but UndecidableInstances allows the prerequisites to be larger than the instance being defined.
2024-01-29 03:37:28 +0100 <EvanR> it helps code reuse. (though, strict pair is something good to use instead)
2024-01-29 03:38:29 +0100 <tri> "This is the same, but UndecidableInstances allows the prerequisites to be larger than the instance being defined." not understand what you mean by larger
2024-01-29 03:38:55 +0100 <tri> and also, i understand instance Eq a => Eq [a], but i don't understand (Eq (t String)) => Eq (Bag t)
2024-01-29 03:39:03 +0100 <tri> that (Eq (t String)) is really weird to me
2024-01-29 03:39:12 +0100dfii^(~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Remote host closed the connection)
2024-01-29 03:39:27 +0100 <tri> im only used to SomeTypeClass t => Eq (Bag t)
2024-01-29 03:40:11 +0100 <tri> EvanR: ok thank you
2024-01-29 03:40:12 +0100fun-safe-math(~fun-safe-@c-24-21-106-247.hsd1.or.comcast.net)
2024-01-29 03:45:41 +0100 <jackdk> `t` is a type constructor, so `t String` is a type. `Eq (t String)` is a constraint just like `[a]`, except it's the type constructor which is a type variable
2024-01-29 03:47:41 +0100 <tri> im still confused. For SomeTypeClass t => Eq (Bag t), i read it as: t must be an instance of SomeTypeClass, now my instance of Eq for Bag t is yada yada
2024-01-29 03:47:59 +0100 <tri> how do i read it for Eq (t String)?
2024-01-29 03:48:09 +0100 <jackdk> Exactly the same. `t String` must be an instance of `Eq`
2024-01-29 03:48:48 +0100 <tri> hmm
2024-01-29 03:49:17 +0100 <tri> so far, im only familiar with restaining the type of the free type variable alone, aka t
2024-01-29 03:49:26 +0100bilegeek(~bilegeek@2600:1008:b02f:a7fe:2faf:a4be:4db8:1a8c)
2024-01-29 03:49:26 +0100 <tri> now you have t coupled with String
2024-01-29 03:49:30 +0100 <tri> so idk what to make of it
2024-01-29 03:49:45 +0100 <tri> like
2024-01-29 03:50:01 +0100 <geekosaur> instead of having a fixed "container" and a variable type "inside", you have a fixed type "inside" and a variable "container"
2024-01-29 03:50:36 +0100 <geekosaur> (t String) could be ([] String) (aka [String]), Vector String, Set String, etc.
2024-01-29 03:50:41 +0100 <tri> in the newtype Bag t = Bag {items :: t String}. Im *only* concern about the left part Bag t, i don't care about the right part, when i implement an instance of Eq for Bag t
2024-01-29 03:51:09 +0100 <tri> so that it would make sense for me if you have something SomeTypeClass t =>
2024-01-29 03:51:32 +0100 <tri> but now you have it as SomeTypeClass (t String) =>
2024-01-29 03:51:37 +0100 <tri> which totally throw me off garud
2024-01-29 03:53:04 +0100 <tri> ah wait
2024-01-29 03:53:09 +0100 <tri> because t is * -> *
2024-01-29 03:53:15 +0100 <jackdk> yes
2024-01-29 03:53:32 +0100 <tri> alright that makes sense now
2024-01-29 03:53:41 +0100trihead hurts
2024-01-29 03:53:58 +0100 <tri> thanks jackdk and geekosaur
2024-01-29 03:57:52 +0100 <EvanR> yeah I'd call that f
2024-01-29 03:57:52 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2024-01-29 03:58:38 +0100 <EvanR> since it's probably a Functor
2024-01-29 03:59:14 +0100 <jackdk> Yeah but for foldables it's traditionally `t`. I suppose because it's commonly `t` in `Traversable`, because `f` is used for the `Applicative` in `sequence :: (Traversable t, Applicative f) => t (f a) -> f (t a)` and `traverse`
2024-01-29 03:59:56 +0100 <jackdk> (And similarly for `sequence_` and `traverse_` on `Foldable`
2024-01-29 04:00:23 +0100 <EvanR> fair
2024-01-29 04:06:02 +0100 <tri> i have a vector and would like to convert to Set, the only way is Set.fromList . toList right?
2024-01-29 04:07:39 +0100 <geekosaur> yes
2024-01-29 04:08:37 +0100 <tri> ty'
2024-01-29 04:15:35 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2024-01-29 04:17:20 +0100arahael_(~arahael@1.145.10.174)
2024-01-29 04:18:01 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:18c9:b5e1:a528:fba1) (Remote host closed the connection)
2024-01-29 04:19:20 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:9d5c:3643:2ba5:d457)
2024-01-29 04:24:01 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:9d5c:3643:2ba5:d457) (Ping timeout: 260 seconds)
2024-01-29 04:33:07 +0100 <monochrom> Wait we're arguing letters now?!
2024-01-29 04:34:48 +0100 <monochrom> put :: MonadState f x => f -> x f
2024-01-29 04:36:10 +0100 <EvanR> all types named ModuleName.t and classes ModuleName.c
2024-01-29 04:36:22 +0100 <EvanR> er, .T and .C
2024-01-29 04:36:28 +0100 <monochrom> :)
2024-01-29 04:37:41 +0100 <monochrom> put :: MonadState φ ψ => ψ -> φ ψ -- why not >:)
2024-01-29 04:46:49 +0100td_(~td@i53870912.versanet.de) (Ping timeout: 255 seconds)
2024-01-29 04:47:09 +0100 <c_wraith> that's not the right type for put!
2024-01-29 04:47:15 +0100 <jackdk> monochrom: consider \phi and \varphi
2024-01-29 04:48:49 +0100td_(~td@i53870921.versanet.de)
2024-01-29 05:05:05 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 260 seconds)
2024-01-29 05:05:16 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:d90a:8962:8a2b:5610)
2024-01-29 05:09:15 +0100[_](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2024-01-29 05:09:26 +0100arahael_(~arahael@1.145.10.174) (Read error: Connection reset by peer)
2024-01-29 05:09:59 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 252 seconds)
2024-01-29 05:12:40 +0100 <ski> EvanR : not sure if "dual" is the right way to phrase it. but both can be understood as relating to different ways of using existentials
2024-01-29 05:13:06 +0100 <ski> "Abstract data types are instead OO minus subclassing." -- OO bundles operations (methods) up with state, with Abstract Data Types (ADTs) you pass around naked states. ADTs can do "binary methods" (and "cloning methods"), something which OO can't do directly
2024-01-29 05:13:31 +0100 <monochrom> jackdk: hahaha
2024-01-29 05:14:13 +0100 <EvanR> all variables are a but with different fonts
2024-01-29 05:14:30 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:d90a:8962:8a2b:5610) (Remote host closed the connection)
2024-01-29 05:14:37 +0100 <monochrom> MonadState a a -> a -> a a
2024-01-29 05:14:47 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2024-01-29 05:15:09 +0100 <monochrom> "dependent type programming" >:)
2024-01-29 05:15:32 +0100 <EvanR> lol
2024-01-29 05:16:04 +0100 <ski> perhaps we could allow ANSI SGR escapes to be part of identifiers ?
2024-01-29 05:17:27 +0100 <jackdk> monochrom: "terms depend on type [face]"
2024-01-29 05:17:28 +0100 <ski> naturally, we'd translate source, using ncurses, depending on the value of `TERM', before looking up identifiers in other packages
2024-01-29 05:17:58 +0100 <ski> (or more specifically, translate the identifiers read from source)
2024-01-29 05:18:11 +0100 <jackdk> ski: "types depend on TERM". Also https://colorforth.github.io/
2024-01-29 05:18:15 +0100skitypes on palm
2024-01-29 05:18:22 +0100 <probie> > let (⍺) = (+) in let α = 26 in α ⍺ α
2024-01-29 05:18:24 +0100 <lambdabot> 52
2024-01-29 05:18:30 +0100 <monochrom> The missing corner of the lambda cube where type depends on type!
2024-01-29 05:19:08 +0100 <ski> perhaps we need an APL package for Haskell
2024-01-29 05:20:04 +0100 <haskellbridge> 05<i​rregularsphere> ski: "naked state" so functional programming is OO but you hold the state instead of packing it in objects, is this true?
2024-01-29 05:20:06 +0100 <jackdk> That's when one is overly comfortable with -XUnicodeSyntax
2024-01-29 05:20:28 +0100 <probie> ski: as in a mess of unicode symbols, or something like numpy?
2024-01-29 05:20:40 +0100 <ski> irregularsphere : i said with ADTs you pass around naked state, not with OO
2024-01-29 05:20:56 +0100 <haskellbridge> 05<i​rregularsphere> ah i misunderstood
2024-01-29 05:26:00 +0100 <ski> probie : approximating APL symbolism. see "Is Haskell Fast?" in 2009-02-06 at <https://augustss.blogspot.com/2009/02/is-haskell-fast-lets-do-simple.html>,"More Basic" in 2009-02-7 at <http://augustss.blogspot.com/2009/02/more-basic-not-that-anybody-should-care.html>, both by augustss
2024-01-29 05:29:45 +0100 <ski> irregularsphere : more specifically, imagine a queue. with ADT approach you have `data QueueOps a = forall q. MkQOps {empty :: q,enqueue :: a -> q -> q,dequeue :: q -> Maybe (q,a)}'. after defining e.g. `someQueueImpl :: QueueOps a' or `packgedCharQueueImpl :: QueueOps Char', you open the record, bringing the skolem `q' into (a big) scope, and then pass around raw values ("states") of type `q', inside that
2024-01-29 05:29:51 +0100 <ski> scope, invoking the operations on that directly
2024-01-29 05:33:14 +0100 <ski> (s/packged/packed/)
2024-01-29 05:33:20 +0100 <ski> irregularsphere : with OO approach, you have `data Queue = forall q. MkQ {qState :: q,enqueue :: a -> q -> q,dequeue :: q -> Maybe (q,a)}', and then define `enqueueQ :: a -> Queue a -> Queue a',`dequeueQ :: Queue a -> Maybe (Queue a,a)' (by unwrapping operations ("methods") from the state, applying the appropriate operation, then rewrapping the resulting state with the operations again). then a
2024-01-29 05:33:26 +0100 <ski> "class"/"class constructor" (in the OO sense) would be `emptyQueueClass :: Queue a' or `emptyPackedCharQueue :: Queue Char'
2024-01-29 05:34:40 +0100 <ski> note that with `foo :: Queue a -> Queue a -> ...', you can't assume that both input queues use the same implementation. at best, you can invoke an internal operation on one queue, which can access that one's internal state, and which then has to call provided operations on the other queue, in order to indirectly poke at its state. you can't really do "binary methods"
2024-01-29 05:35:56 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-29 05:37:02 +0100 <ski> while with ADT, you could easily add a `merge :: q -> q -> q' operation for priority queues, e.g. (with the OO approach, trying to define `mergePQ :: Ord a => PQueue a -> PQueue a -> PQueue a' in terms of an internal operation `merge :: Ord a => q -> q -> q', the problem is that each input priority queue has its own, bundled, version of each operation, and they're incompatible with each other)
2024-01-29 05:39:53 +0100bilegeek(~bilegeek@2600:1008:b02f:a7fe:2faf:a4be:4db8:1a8c) (Remote host closed the connection)
2024-01-29 05:42:42 +0100jargon(~jargon@211.sub-174-205-230.myvzw.com) (Remote host closed the connection)
2024-01-29 05:43:00 +0100bilegeek(~bilegeek@2600:1008:b02f:a7fe:2faf:a4be:4db8:1a8c)
2024-01-29 05:45:58 +0100igemnace(~ian@user/igemnace)
2024-01-29 05:46:04 +0100yagkasha(uid629884@user/yagkasha) (Quit: Connection closed for inactivity)
2024-01-29 05:50:04 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 256 seconds)
2024-01-29 05:53:20 +0100aforemny_(~aforemny@2001:9e8:6cc3:900:11e8:80e2:687f:11d6)
2024-01-29 05:53:52 +0100aforemny(~aforemny@2001:9e8:6cdf:ca00:229d:373b:2363:176f) (Ping timeout: 255 seconds)
2024-01-29 06:14:10 +0100fun-safe-math(~fun-safe-@c-24-21-106-247.hsd1.or.comcast.net) ()
2024-01-29 06:14:55 +0100wagle(~wagle@quassel.wagle.io) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
2024-01-29 06:15:48 +0100fun-safe-math(~fun-safe-@c-24-21-106-247.hsd1.or.comcast.net)
2024-01-29 06:17:55 +0100 <probie> ski: I think you'd really struggle to end up with anything that looks like APL. Let's say I wanted `sum [1..10]`. In APL that looks like `+/ ⍳ 10` (or probably `+/ 1 + ⍳ 10` since we should have `⎕IO←0` as default)
2024-01-29 06:18:28 +0100 <probie> You'd definitely have to add a lot more whitespace
2024-01-29 06:19:32 +0100 <probie> Since whilst APL doesn't care about `+/` or + /`, Haskell Certainly does
2024-01-29 06:21:03 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2024-01-29 06:22:13 +0100 <probie> Also, you're going to need something on the left hand side, but even something like `apl + / 1 + ⍳ 10` won't work because of the two symbols in a row
2024-01-29 06:26:16 +0100 <probie> I guess we can probably introduce some additional constructors to tie things together. `apl +OP/ 1 + MON⍳ 10`, but it's looking nowhere near as great as the BASIC implementation at this point
2024-01-29 06:27:23 +0100 <probie> it also doesn't help that Haskell's numeric operators have the wrong precedence (all APL functions are right associative with the same precedence)
2024-01-29 06:27:33 +0100 <tri> hi, im trying to do a combinatoric of 2 of a list of items using list comprehension
2024-01-29 06:27:51 +0100 <tri> [(x, y) | x <- list, y <- list, x /= y]
2024-01-29 06:27:55 +0100 <tri> this is what i have so far
2024-01-29 06:28:13 +0100 <probie> > [(x, y) | x <- [1..5], y <- [1..5], x /= y]
2024-01-29 06:28:15 +0100 <lambdabot> [(1,2),(1,3),(1,4),(1,5),(2,1),(2,3),(2,4),(2,5),(3,1),(3,2),(3,4),(3,5),(4,...
2024-01-29 06:28:34 +0100 <probie> > [(x, y) | x <- [1..3], y <- [1..3], x /= y] -- smaller
2024-01-29 06:28:36 +0100 <lambdabot> [(1,2),(1,3),(2,1),(2,3),(3,1),(3,2)]
2024-01-29 06:28:59 +0100 <tri> that's permutation, as in you have (1,2) and (2,1)
2024-01-29 06:29:21 +0100 <probie> Ah, so you want something like
2024-01-29 06:29:36 +0100 <tri> i could get away with not doing list comprehension if there is a function for that. I think there is definitely a function for it
2024-01-29 06:29:36 +0100 <Axman6> > tails "abcd"
2024-01-29 06:29:37 +0100 <lambdabot> ["abcd","bcd","cd","d",""]
2024-01-29 06:29:45 +0100 <tri> nno
2024-01-29 06:29:48 +0100 <probie> > [(x, y) | x <- [1..3], y <- [x+1..3], x /= y]
2024-01-29 06:29:50 +0100 <lambdabot> [(1,2),(1,3),(2,3)]
2024-01-29 06:29:51 +0100 <tri> im looking for a 5C2
2024-01-29 06:30:28 +0100 <tri> 5C2 is a math combinatoric operation
2024-01-29 06:30:43 +0100 <Axman6> > let comb xss = [(x,y) | (x:xs) <- tails xss, y <- xs, x /= y] in comb "abcd"
2024-01-29 06:30:44 +0100 <tri> sorry for the 5 there
2024-01-29 06:30:45 +0100 <lambdabot> [('a','b'),('a','c'),('a','d'),('b','c'),('b','d'),('c','d')]
2024-01-29 06:30:47 +0100 <tri> it's nC2
2024-01-29 06:32:20 +0100 <tri> Axman6: [(x,y) | (x:xs) <- tails xss, y <- xs, x /= y] is not compilable
2024-01-29 06:32:51 +0100 <tri> oh sorry im wrong. If lamdabot can do it then it's compiable
2024-01-29 06:33:04 +0100 <Axman6> yes :)
2024-01-29 06:33:14 +0100 <tri> my repl says tails is not inscope
2024-01-29 06:33:21 +0100 <Axman6> import Data.List
2024-01-29 06:33:24 +0100 <tri> oh wait because of name collision
2024-01-29 06:33:27 +0100 <Axman6> @hoogle tails
2024-01-29 06:33:28 +0100 <lambdabot> Data.List tails :: [a] -> [[a]]
2024-01-29 06:33:28 +0100 <lambdabot> Data.List.NonEmpty tails :: Foldable f => f a -> NonEmpty [a]
2024-01-29 06:33:28 +0100 <lambdabot> GHC.OldList tails :: [a] -> [[a]]
2024-01-29 06:33:36 +0100 <tri> it's ambiguous in my repl
2024-01-29 06:38:16 +0100wagle(~wagle@quassel.wagle.io)
2024-01-29 06:38:17 +0100 <ski> @let select :: Alternative i => [a] -> i (a,[a]); select [ ] = empty; select (x:xs) = pure (x,xs) <|> fmap (x :) <$> select xs
2024-01-29 06:38:19 +0100 <lambdabot> Defined.
2024-01-29 06:38:29 +0100 <tri> Axman6: your solution works. But it's tricky. There has to be a function that does it
2024-01-29 06:38:44 +0100 <ski> > [(x,y) | (x,xs) <- select [2,3,5,7],y <- xs]
2024-01-29 06:38:46 +0100 <lambdabot> [(2,3),(2,5),(2,7),(3,2),(3,5),(3,7),(5,2),(5,3),(5,7),(7,2),(7,3),(7,5)]
2024-01-29 06:39:07 +0100 <ski> > [(x,y) | x:xs <- tails [2,3,5,7],y <- xs]
2024-01-29 06:39:09 +0100 <lambdabot> [(2,3),(2,5),(2,7),(3,5),(3,7),(5,7)]
2024-01-29 06:40:01 +0100 <Axman6> I diagree that my solution it aat all tricky. But look in Data.List and see if it has what you're looking for
2024-01-29 06:40:14 +0100 <ski> .. is there a reason you wanted to use `/=', apart from removing the diagonal ?
2024-01-29 06:40:47 +0100 <Axman6> yeah I kept it because it seemed important, but I would personally do a filter (join (/=))
2024-01-29 06:40:59 +0100 <Axman6> un, uncurry in there too
2024-01-29 06:41:40 +0100 <ski> isn't `join (/=)' just `const False' ?
2024-01-29 06:41:44 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-01-29 06:41:46 +0100 <ski> oh
2024-01-29 06:42:22 +0100 <Axman6> :t join (uncurry (/=))
2024-01-29 06:42:23 +0100 <lambdabot> error:
2024-01-29 06:42:23 +0100 <lambdabot> • Couldn't match type ‘Bool’ with ‘(a, a) -> a1’
2024-01-29 06:42:23 +0100 <lambdabot> Expected type: (a, a) -> (a, a) -> a1
2024-01-29 06:42:42 +0100 <Axman6> :t (uncurry (/=))
2024-01-29 06:42:42 +0100 <ski> tri : if you already know your lists won't have duplicates, there's no reason to use `/=' here
2024-01-29 06:42:43 +0100 <lambdabot> Eq a => (a, a) -> Bool
2024-01-29 06:42:48 +0100 <Axman6> that one =)
2024-01-29 06:42:52 +0100 <ski> right
2024-01-29 06:43:26 +0100 <ski> probie : oh, yea .. too bad :/
2024-01-29 06:43:31 +0100 <tri> https://hackage.haskell.org/package/combinatorial-0.1.1/docs/Combinatorics.html has the tuples function which does what i ned
2024-01-29 06:43:51 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Client Quit)
2024-01-29 06:44:00 +0100 <tri> thank you both
2024-01-29 06:44:04 +0100 <Axman6> @hoogle [a] -> [(a,a)]
2024-01-29 06:44:05 +0100 <lambdabot> Number.Positional sliceVertPair :: [a] -> [(a, a)]
2024-01-29 06:44:05 +0100 <lambdabot> Algorithms.Geometry.LineSegmentIntersection.Naive pairs :: [a] -> [(a, a)]
2024-01-29 06:44:05 +0100 <lambdabot> Data.Geometry.Arrangement.Internal allPairs :: [a] -> [(a, a)]
2024-01-29 06:44:26 +0100 <Axman6> there's probably lots of places a similar thing is defined
2024-01-29 06:48:01 +0100trev(~trev@user/trev)
2024-01-29 06:53:03 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 256 seconds)
2024-01-29 06:53:22 +0100fansly(~fansly@2001:448a:2010:476e:c9c:17f1:874c:ee93) (Ping timeout: 246 seconds)
2024-01-29 06:54:13 +0100fansly(~fansly@182.0.174.92)
2024-01-29 07:06:35 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2024-01-29 07:08:22 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-29 07:08:57 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2024-01-29 07:09:34 +0100michalz(~michalz@185.246.207.205)
2024-01-29 07:16:32 +0100fansly(~fansly@182.0.174.92) (Read error: Connection reset by peer)
2024-01-29 07:16:47 +0100fansly(~fansly@2001:448a:2010:476e:c9c:17f1:874c:ee93)
2024-01-29 07:18:52 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-29 07:19:16 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2024-01-29 07:19:33 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2024-01-29 07:19:50 +0100euleritian(~euleritia@dynamic-176-000-152-096.176.0.pool.telefonica.de)
2024-01-29 07:22:12 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-01-29 07:23:02 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 07:27:17 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 240 seconds)
2024-01-29 07:27:34 +0100michalz(~michalz@185.246.207.205) (Quit: ZNC 1.8.2 - https://znc.in)
2024-01-29 07:30:28 +0100michalz(~michalz@185.246.207.221)
2024-01-29 07:32:23 +0100fansly(~fansly@2001:448a:2010:476e:c9c:17f1:874c:ee93) (Remote host closed the connection)
2024-01-29 07:46:35 +0100fansly(~fansly@2001:448a:2010:476e:c9c:17f1:874c:ee93)
2024-01-29 07:47:23 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 07:48:27 +0100mokee(~mokee@37.228.215.150) (Quit: off)
2024-01-29 07:50:25 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 246 seconds)
2024-01-29 07:52:06 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 260 seconds)
2024-01-29 08:00:07 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2024-01-29 08:01:42 +0100notzmv(~zmv@user/notzmv)
2024-01-29 08:01:50 +0100acidjnk_new(~acidjnk@p200300d6e737e756882f209ddca8eb35.dip0.t-ipconnect.de)
2024-01-29 08:06:21 +0100Square(~Square4@user/square)
2024-01-29 08:08:44 +0100Square2(~Square@user/square) (Ping timeout: 252 seconds)
2024-01-29 08:11:02 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-01-29 08:12:39 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 08:14:38 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-01-29 08:16:24 +0100destituion(~destituio@2a02:2121:304:cc78:d9dc:8709:4c3b:d0d2) (Quit: Quit)
2024-01-29 08:16:58 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 255 seconds)
2024-01-29 08:17:55 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 256 seconds)
2024-01-29 08:24:59 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2024-01-29 08:26:00 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2024-01-29 08:26:25 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2024-01-29 08:29:19 +0100phma(phma@2001:5b0:212a:bae8:aa84:1310:c00c:b4dd) (Read error: Connection reset by peer)
2024-01-29 08:30:32 +0100phma(phma@2001:5b0:215a:d678:f408:ffdb:4b4d:84f0)
2024-01-29 08:33:04 +0100lisbeths(uid135845@id-135845.lymington.irccloud.com)
2024-01-29 08:35:48 +0100bilegeek(~bilegeek@2600:1008:b02f:a7fe:2faf:a4be:4db8:1a8c) (Quit: Leaving)
2024-01-29 08:44:40 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-01-29 08:45:54 +0100fansly(~fansly@2001:448a:2010:476e:c9c:17f1:874c:ee93) (Remote host closed the connection)
2024-01-29 08:47:25 +0100yeahitsme(~bob@2a01:799:15e7:a300:e9b5:215b:7150:c682)
2024-01-29 08:47:29 +0100yeahitsme(~bob@2a01:799:15e7:a300:e9b5:215b:7150:c682) (Changing host)
2024-01-29 08:47:29 +0100yeahitsme(~bob@user/yeahitsme)
2024-01-29 08:48:29 +0100fansly(~fansly@2001:448a:2010:476e:c9c:17f1:874c:ee93)
2024-01-29 08:48:50 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 08:49:22 +0100danse-nr3(~danse@151.47.239.140)
2024-01-29 08:49:37 +0100mqlnv(~tripod@47.154.25.27) (Ping timeout: 264 seconds)
2024-01-29 08:51:02 +0100euleritian(~euleritia@dynamic-176-000-152-096.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-29 08:51:09 +0100mqlnv(~tripod@47.154.25.27)
2024-01-29 08:51:19 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-29 08:51:43 +0100m1dnight(~christoph@78-22-2-15.access.telenet.be) (Quit: WeeChat 4.2.1)
2024-01-29 08:52:16 +0100oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
2024-01-29 08:52:25 +0100m1dnight(~christoph@78-22-2-15.access.telenet.be)
2024-01-29 08:54:48 +0100yeahitsme(~bob@user/yeahitsme) (Ping timeout: 256 seconds)
2024-01-29 08:55:00 +0100czy(~user@114.226.59.181) (Read error: Connection reset by peer)
2024-01-29 08:55:35 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 268 seconds)
2024-01-29 08:56:37 +0100czy(~user@114.226.59.181)
2024-01-29 08:58:23 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-29 09:02:02 +0100sroso(~sroso@user/SrOso) (Read error: Connection reset by peer)
2024-01-29 09:03:47 +0100[exa](~exa@user/exa/x-3587197) (Quit: client change)
2024-01-29 09:04:23 +0100[exa](~exa@user/exa/x-3587197)
2024-01-29 09:06:38 +0100sroso(~sroso@user/SrOso)
2024-01-29 09:09:20 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 09:13:49 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 260 seconds)
2024-01-29 09:22:24 +0100mima(~mmh@aftr-62-216-211-164.dynamic.mnet-online.de)
2024-01-29 09:31:23 +0100fansly(~fansly@2001:448a:2010:476e:c9c:17f1:874c:ee93) (Read error: Connection reset by peer)
2024-01-29 09:37:12 +0100zetef(~quassel@95.77.17.251)
2024-01-29 09:39:29 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 09:42:20 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com)
2024-01-29 09:44:03 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 256 seconds)
2024-01-29 09:46:28 +0100fansly(~fansly@103.3.221.54)
2024-01-29 09:52:10 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-01-29 09:55:32 +0100__monty__(~toonn@user/toonn)
2024-01-29 09:57:16 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2024-01-29 09:58:06 +0100zetef(~quassel@95.77.17.251) (Ping timeout: 260 seconds)
2024-01-29 09:58:34 +0100eL_Bart0(eL_Bart0@dietunichtguten.org) (Ping timeout: 260 seconds)
2024-01-29 09:59:55 +0100eL_Bart0(eL_Bart0@dietunichtguten.org)
2024-01-29 10:00:11 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2024-01-29 10:01:02 +0100ell(~ellie@user/ellie) (Quit: Leaving)
2024-01-29 10:04:35 +0100fansly(~fansly@103.3.221.54) (Ping timeout: 256 seconds)
2024-01-29 10:05:22 +0100fansly(~fansly@2001:448a:2010:476e:c9c:17f1:874c:ee93)
2024-01-29 10:07:58 +0100eL_Bart0(eL_Bart0@dietunichtguten.org) (Ping timeout: 246 seconds)
2024-01-29 10:10:19 +0100eL_Bart0(eL_Bart0@dietunichtguten.org)
2024-01-29 10:10:57 +0100fendor(~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c)
2024-01-29 10:13:50 +0100fansly(~fansly@2001:448a:2010:476e:c9c:17f1:874c:ee93) (Remote host closed the connection)
2024-01-29 10:14:29 +0100mcfrdy(~mcfrdy@user/mcfrdy) (Ping timeout: 260 seconds)
2024-01-29 10:15:15 +0100qqq(~qqq@92.43.167.61)
2024-01-29 10:15:20 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 255 seconds)
2024-01-29 10:15:23 +0100adanwan_(~adanwan@gateway/tor-sasl/adanwan)
2024-01-29 10:15:41 +0100rembo10(~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
2024-01-29 10:16:14 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
2024-01-29 10:16:30 +0100mcfrdy(~mcfrdy@user/mcfrdy)
2024-01-29 10:16:38 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 10:16:59 +0100eugenrh(~eugenrh@2a01:4f9:c011:265::1) (Ping timeout: 268 seconds)
2024-01-29 10:18:01 +0100dyniec(~dyniec@dybiec.info) (Ping timeout: 255 seconds)
2024-01-29 10:18:41 +0100econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-01-29 10:18:41 +0100ec(~ec@gateway/tor-sasl/ec)
2024-01-29 10:19:34 +0100eugenrh(~eugenrh@static.20.60.21.65.clients.your-server.de)
2024-01-29 10:20:13 +0100dyniec(~dyniec@dybiec.info)
2024-01-29 10:20:30 +0100fansly(~fansly@2001:448a:2010:476e:c9c:17f1:874c:ee93)
2024-01-29 10:21:11 +0100adanwan_(~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 255 seconds)
2024-01-29 10:22:56 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 252 seconds)
2024-01-29 10:23:37 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2024-01-29 10:25:09 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-01-29 10:30:06 +0100rembo10(~rembo10@main.remulis.com)
2024-01-29 10:33:19 +0100athan(~athan@173-042-095-241.biz.spectrum.com)
2024-01-29 10:36:02 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 255 seconds)
2024-01-29 10:38:26 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2024-01-29 10:42:35 +0100lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-01-29 10:47:48 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2024-01-29 10:49:42 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2024-01-29 10:50:00 +0100qqq(~qqq@92.43.167.61) (Read error: Connection reset by peer)
2024-01-29 10:50:20 +0100cfricke(~cfricke@user/cfricke)
2024-01-29 10:50:36 +0100fansly(~fansly@2001:448a:2010:476e:c9c:17f1:874c:ee93) (Ping timeout: 268 seconds)
2024-01-29 10:52:06 +0100danse-nr3(~danse@151.47.239.140) (Ping timeout: 256 seconds)
2024-01-29 10:52:11 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 10:52:12 +0100zetef(~quassel@95.77.17.251)
2024-01-29 10:52:37 +0100fansly(~fansly@182.0.137.161)
2024-01-29 10:54:37 +0100qqq(~qqq@92.43.167.61)
2024-01-29 10:56:46 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 268 seconds)
2024-01-29 10:57:16 +0100CiaoSen(~Jura@2a05:5800:281:fa00:ca4b:d6ff:fec1:99da)
2024-01-29 10:57:53 +0100zetef_(~quassel@95.77.17.251)
2024-01-29 10:58:00 +0100zetef(~quassel@95.77.17.251) (Ping timeout: 268 seconds)
2024-01-29 11:01:50 +0100danse-nr3(~danse@151.37.255.140)
2024-01-29 11:08:02 +0100tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz)
2024-01-29 11:08:48 +0100fansly(~fansly@182.0.137.161) (Read error: Connection reset by peer)
2024-01-29 11:09:09 +0100fansly(~fansly@173-245-211-164.sin.as54203.net)
2024-01-29 11:09:25 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2024-01-29 11:09:46 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 255 seconds)
2024-01-29 11:09:46 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 255 seconds)
2024-01-29 11:11:15 +0100zetef_(~quassel@95.77.17.251) (Ping timeout: 260 seconds)
2024-01-29 11:14:02 +0100 <kuribas> We have some python code where the previous guy wrote lots of useless layers and boilerplate code.
2024-01-29 11:14:25 +0100 <kuribas> I wonder if I could use the haskell python parser to rewrite this code, by removing useless classes etc...
2024-01-29 11:14:51 +0100 <kuribas> https://hackage.haskell.org/package/hpython
2024-01-29 11:14:51 +0100 <danse-nr3> sheesh the faith we have in automation these days is ridiculous
2024-01-29 11:15:19 +0100 <kuribas> semantic preserving rewrite steps are fine.
2024-01-29 11:15:49 +0100 <danse-nr3> just semantic? Easy one then
2024-01-29 11:16:04 +0100 <kuribas> Sort of, because semantics in Python are often vague.
2024-01-29 11:16:17 +0100 <tomsmeding> kuribas: how many lines of code are we talking about
2024-01-29 11:16:19 +0100 <danse-nr3> clearly the irony did not make it through
2024-01-29 11:16:34 +0100fansly(~fansly@173-245-211-164.sin.as54203.net) (Ping timeout: 276 seconds)
2024-01-29 11:16:46 +0100fansly(~fansly@182.0.166.225)
2024-01-29 11:16:48 +0100 <kuribas> tomsmeding: sadly we have whole packages written in this style.
2024-01-29 11:16:58 +0100 <tomsmeding> also almost no change in python is semantics-preserving because reflection is a thing
2024-01-29 11:17:37 +0100 <tomsmeding> surely the useless code is not _so_ obviously structured that it's easy to write a bespoke pass that eliminates it?
2024-01-29 11:18:15 +0100 <tomsmeding> I appreciate that it's more fun to hack on a compiler than on legacy code, but I question the time-efficiency :p
2024-01-29 11:18:50 +0100 <kuribas> maybe some kind of partial evaluation?
2024-01-29 11:18:57 +0100 <tomsmeding> reflection
2024-01-29 11:19:07 +0100 <tomsmeding> almost nothing you can do to a python program is truly semantics-preserving
2024-01-29 11:19:19 +0100 <tomsmeding> you'd have to make assumptions about what the users of the packages are doing
2024-01-29 11:19:31 +0100 <tomsmeding> at which point you're writing a bespoke pass for this particular set of libraries in your usecase
2024-01-29 11:19:31 +0100 <kuribas> tomsmeding: right, but this was an application.
2024-01-29 11:19:37 +0100 <tomsmeding> right
2024-01-29 11:20:37 +0100 <tomsmeding> what about a human-guided procedure?
2024-01-29 11:20:51 +0100 <kuribas> tomsmeding: that's sort of what I had in mind.
2024-01-29 11:21:03 +0100 <kuribas> Small steps guided by a human.
2024-01-29 11:21:06 +0100 <tomsmeding> load a (set of) python package(s) into memory as ASTs, and have the human say "inline this function"
2024-01-29 11:21:28 +0100 <tomsmeding> which is impossible in the presence of higher-orderness or class inheritance
2024-01-29 11:21:33 +0100 <tomsmeding> but anyway
2024-01-29 11:22:02 +0100 <kuribas> tomsmeding: I can make some assumptions, like that methods are not changed dynamically (except for decorators).
2024-01-29 11:22:08 +0100 <kuribas> Decorators could be inlined.
2024-01-29 11:22:27 +0100 <tomsmeding> are there classes? Do they use virtual methods (i.e. inheritance)?
2024-01-29 11:22:44 +0100 <tomsmeding> it's true that decorators could probably be inlined fine
2024-01-29 11:23:16 +0100 <tomsmeding> grep your code for __getitem__ first
2024-01-29 11:23:34 +0100 <kuribas> tomsmeding: yeah, there are lots of AbstractBaseClasses that do nothing.
2024-01-29 11:25:02 +0100 <kuribas> I could turn a class into a dataclass, and all methods into functions. The local class variables become a dictionary that is passed through each function.
2024-01-29 11:25:45 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 11:27:35 +0100 <tomsmeding> as long as you have good and comprehensive tests :)
2024-01-29 11:27:50 +0100 <kuribas> right :)
2024-01-29 11:31:27 +0100Feuermagier(~Feuermagi@user/feuermagier)
2024-01-29 11:31:36 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 268 seconds)
2024-01-29 11:32:15 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 260 seconds)
2024-01-29 11:34:41 +0100nicos(~nsm@2800:2131:5400:883:28f6:1624:5755:79b0) (Ping timeout: 256 seconds)
2024-01-29 11:37:03 +0100 <phma> I got the progress bar working in the parallelized function, using unsafePerformIO.
2024-01-29 11:39:01 +0100nicos(~nsm@186.141.200.117)
2024-01-29 11:40:02 +0100 <kuribas> phma: why not embrance IO?
2024-01-29 11:40:04 +0100fansly(~fansly@182.0.166.225) (Read error: Connection reset by peer)
2024-01-29 11:40:31 +0100 <kuribas> If you are using a progress bar it means you are sequential anyway.
2024-01-29 11:40:36 +0100fansly(~fansly@2001:448a:2010:476e:c9c:17f1:874c:ee93)
2024-01-29 11:40:57 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:d90a:8962:8a2b:5610)
2024-01-29 11:41:47 +0100 <kuribas> Or find a pure way to represent "progress", and hook the progressbar into that.
2024-01-29 11:42:35 +0100 <phma> embrance?
2024-01-29 11:43:05 +0100 <danse-nr3> embrace like it was france
2024-01-29 11:43:09 +0100turlando(~turlando@user/turlando) (Remote host closed the connection)
2024-01-29 11:44:23 +0100turlando(~turlando@user/turlando)
2024-01-29 11:44:47 +0100 <phma> The function will take at least an hour when I'm finished with it; it's a cryptanalysis which calls the cipher function many times and computes statistics.
2024-01-29 11:45:14 +0100 <phma> Several instances of the cipher run in parallel.
2024-01-29 11:45:57 +0100 <kuribas> Is this for blockchain?
2024-01-29 11:46:01 +0100 <phma> no
2024-01-29 11:46:35 +0100 <danse-nr3> well they run in parallel but probably they would report to the same thread that can embrace IO to display progress?
2024-01-29 11:47:06 +0100 <kuribas> danse-nr3: well, reporting to thread is IO ....
2024-01-29 11:47:12 +0100 <phma> how do they report?
2024-01-29 11:51:14 +0100 <phma> it's https://github.com/phma/wring-twistree ; only one cryptanalysis has a progress bar yet, but I'll add it to the others
2024-01-29 11:51:21 +0100fendor(~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Remote host closed the connection)
2024-01-29 11:52:35 +0100fendor(~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c)
2024-01-29 11:53:21 +0100gehmehgeh(~user@user/gehmehgeh)
2024-01-29 11:54:10 +0100 <kuribas> I just wonder if the way I code with static types would match with how you code dynamicly with tests: To make small changes, and check each time if the tests still work.
2024-01-29 11:54:49 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 11:56:29 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-01-29 11:57:27 +0100 <Hecate> kuribas: sure it does
2024-01-29 11:57:32 +0100 <Hecate> you just test different things
2024-01-29 11:57:38 +0100 <Hecate> but TDD is very nice to do in Haskell
2024-01-29 11:59:25 +0100xff0x(~xff0x@2405:6580:b080:900:7000:b18f:89a0:e9bd)
2024-01-29 11:59:37 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 256 seconds)
2024-01-29 12:00:42 +0100 <kuribas> In haskell I don't end up writing a lot of tests.
2024-01-29 12:00:54 +0100 <kuribas> But in Python it seems almost a requirement.
2024-01-29 12:01:07 +0100danse-nr3(~danse@151.37.255.140) (Quit: Leaving)
2024-01-29 12:02:43 +0100 <[exa]> kuribas: I'm not risking less than 100% coverage AND autotested docs in dynamic languages anymore :D
2024-01-29 12:02:43 +0100sroso(~sroso@user/SrOso) (Quit: Leaving :))
2024-01-29 12:13:29 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 12:14:39 +0100pavonia(~user@user/siracusa)
2024-01-29 12:16:19 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 268 seconds)
2024-01-29 12:18:21 +0100mmhat(~mmh@p200300f1c73bf41cee086bfffe095315.dip0.t-ipconnect.de)
2024-01-29 12:18:25 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 264 seconds)
2024-01-29 12:22:53 +0100fansly(~fansly@2001:448a:2010:476e:c9c:17f1:874c:ee93) (Remote host closed the connection)
2024-01-29 12:26:16 +0100nicos(~nsm@186.141.200.117) (Ping timeout: 255 seconds)
2024-01-29 12:27:17 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2024-01-29 12:28:43 +0100xff0x(~xff0x@2405:6580:b080:900:7000:b18f:89a0:e9bd) (Ping timeout: 260 seconds)
2024-01-29 12:28:50 +0100nicos(~nsm@186.141.165.4)
2024-01-29 12:30:41 +0100xff0x(~xff0x@ai085147.d.east.v6connect.net)
2024-01-29 12:31:15 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 12:35:43 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 255 seconds)
2024-01-29 12:35:45 +0100acidjnk_new(~acidjnk@p200300d6e737e756882f209ddca8eb35.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2024-01-29 12:38:36 +0100califax(~califax@user/califx) (Remote host closed the connection)
2024-01-29 12:39:45 +0100califax(~califax@user/califx)
2024-01-29 12:42:05 +0100nicos(~nsm@186.141.165.4) (Ping timeout: 252 seconds)
2024-01-29 12:43:15 +0100califax(~califax@user/califx) (Remote host closed the connection)
2024-01-29 12:43:36 +0100califax(~califax@user/califx)
2024-01-29 12:44:18 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2024-01-29 12:44:53 +0100euleritian(~euleritia@dynamic-176-006-189-135.176.6.pool.telefonica.de)
2024-01-29 12:44:57 +0100nicos(~nsm@199.253.243.23)
2024-01-29 12:46:40 +0100fansly(~fansly@103.3.221.54)
2024-01-29 12:49:24 +0100euleritian(~euleritia@dynamic-176-006-189-135.176.6.pool.telefonica.de) (Ping timeout: 256 seconds)
2024-01-29 12:49:32 +0100tremon(~tremon@83.80.159.219)
2024-01-29 12:49:52 +0100euleritian(~euleritia@dynamic-176-006-198-247.176.6.pool.telefonica.de)
2024-01-29 12:49:58 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 12:54:30 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 256 seconds)
2024-01-29 12:55:19 +0100euleritian(~euleritia@dynamic-176-006-198-247.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-29 12:55:37 +0100euleritian(~euleritia@77.22.252.56)
2024-01-29 13:00:10 +0100fansly(~fansly@103.3.221.54) (Ping timeout: 256 seconds)
2024-01-29 13:01:03 +0100fansly(~fansly@182.0.171.189)
2024-01-29 13:04:11 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-01-29 13:05:44 +0100dhruvasagar(~dhruvasag@2401:4900:62fd:7384:5d1d:5cfa:8450:6f8)
2024-01-29 13:08:03 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 13:12:02 +0100dhruvasagar(~dhruvasag@2401:4900:62fd:7384:5d1d:5cfa:8450:6f8) (Quit: WeeChat 4.1.2)
2024-01-29 13:12:15 +0100dhruvasagar(~dhruvasag@2401:4900:62fd:7384:5d1d:5cfa:8450:6f8)
2024-01-29 13:13:43 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 256 seconds)
2024-01-29 13:14:43 +0100fansly(~fansly@182.0.171.189) (Remote host closed the connection)
2024-01-29 13:15:26 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-29 13:21:39 +0100dhruvasagar(~dhruvasag@2401:4900:62fd:7384:5d1d:5cfa:8450:6f8) (Ping timeout: 256 seconds)
2024-01-29 13:24:25 +0100trev(~trev@user/trev) (Ping timeout: 260 seconds)
2024-01-29 13:25:04 +0100a51(a51@gateway/vpn/protonvpn/a51)
2024-01-29 13:28:46 +0100waldo(~waldo@user/waldo)
2024-01-29 13:31:06 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-01-29 13:36:35 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 13:39:37 +0100alexherbo2(~alexherbo@2a02-8440-3241-a2f0-1d99-57f3-31fe-fa1c.rev.sfr.net)
2024-01-29 13:41:03 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 256 seconds)
2024-01-29 13:42:09 +0100trev(~trev@user/trev)
2024-01-29 13:46:29 +0100a51(a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1)
2024-01-29 13:51:54 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 260 seconds)
2024-01-29 13:53:38 +0100notzmv(~zmv@user/notzmv)
2024-01-29 13:58:51 +0100acidjnk_new(~acidjnk@p200300d6e737e728886c6af3a169d6ea.dip0.t-ipconnect.de)
2024-01-29 14:03:32 +0100danse-nr3(~danse@151.35.152.95)
2024-01-29 14:06:42 +0100 <danse-nr3> would anyone help me with intuition about `awaitForever :: Monad m => (i -> ConduitT i o m r) -> ConduitT i o m () `? A conduit is awaiting forever on an i, but then for each i another conduit is returned consuming another is
2024-01-29 14:09:49 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 14:13:35 +0100a51(a51@gateway/vpn/protonvpn/a51)
2024-01-29 14:15:07 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 260 seconds)
2024-01-29 14:15:24 +0100rosco(~rosco@175.136.156.77)
2024-01-29 14:16:48 +0100 <c_wraith> danse-nr3: it transforms a function that takes an i and returns a Conduit into a Conduit that feeds that function with values it receives via repeatedly awaiting
2024-01-29 14:17:18 +0100 <danse-nr3> cheers c_wraith !
2024-01-29 14:17:22 +0100 <c_wraith> danse-nr3: since the function returns a Conduit, it can do things like yielding an o
2024-01-29 14:17:39 +0100 <c_wraith> danse-nr3: or performing m effects
2024-01-29 14:17:48 +0100 <danse-nr3> makes sense
2024-01-29 14:25:05 +0100gehmehgeh(~user@user/gehmehgeh) (Ping timeout: 255 seconds)
2024-01-29 14:25:54 +0100gehmehgeh(~user@user/gehmehgeh)
2024-01-29 14:27:01 +0100mmhat(~mmh@p200300f1c73bf41cee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.2.1)
2024-01-29 14:30:45 +0100Square(~Square4@user/square) (Ping timeout: 268 seconds)
2024-01-29 14:31:52 +0100 <c_wraith> It also *could* await itself, but... that would get confusing. Probably don't do that.
2024-01-29 14:34:50 +0100yagkasha(uid629884@id-629884.hampstead.irccloud.com)
2024-01-29 14:35:02 +0100yagkasha(uid629884@id-629884.hampstead.irccloud.com) (Changing host)
2024-01-29 14:35:02 +0100yagkasha(uid629884@user/yagkasha)
2024-01-29 14:36:14 +0100Lycurgus(~georg@li1192-118.members.linode.com)
2024-01-29 14:36:14 +0100Lycurgus(~georg@li1192-118.members.linode.com) (Changing host)
2024-01-29 14:36:14 +0100Lycurgus(~georg@user/Lycurgus)
2024-01-29 14:37:42 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 14:40:06 +0100 <danse-nr3> v
2024-01-29 14:40:16 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 14:43:23 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 268 seconds)
2024-01-29 14:44:44 +0100waldo(~waldo@user/waldo) (Ping timeout: 252 seconds)
2024-01-29 14:45:20 +0100ell(~ellie@user/ellie)
2024-01-29 14:45:56 +0100qqq(~qqq@92.43.167.61) (Remote host closed the connection)
2024-01-29 14:53:54 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2024-01-29 14:55:38 +0100igemnace(~ian@user/igemnace) (Read error: Connection reset by peer)
2024-01-29 14:57:43 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 15:00:09 +0100nicos(~nsm@199.253.243.23) (Read error: Connection reset by peer)
2024-01-29 15:01:50 +0100nicos(~nsm@199.253.243.23)
2024-01-29 15:04:09 +0100nicos(~nsm@199.253.243.23) (Read error: Connection reset by peer)
2024-01-29 15:04:31 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Quit: WeeChat 4.1.2)
2024-01-29 15:05:07 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 246 seconds)
2024-01-29 15:05:14 +0100nicos(~nsm@199.253.243.23)
2024-01-29 15:07:19 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-29 15:11:56 +0100igemnace(~ian@user/igemnace)
2024-01-29 15:16:49 +0100thegeekinside(~thegeekin@189.180.65.186)
2024-01-29 15:19:54 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 15:30:51 +0100rosco(~rosco@175.136.156.77) (Quit: Lost terminal)
2024-01-29 15:31:02 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 15:44:42 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2024-01-29 15:45:38 +0100chiselfuse(~chiselfus@user/chiselfuse) (Ping timeout: 255 seconds)
2024-01-29 15:46:53 +0100danse-nr3(~danse@151.35.152.95) (Ping timeout: 252 seconds)
2024-01-29 15:47:42 +0100chiselfuse(~chiselfus@user/chiselfuse)
2024-01-29 15:48:52 +0100mrd(~mrd@145.107.129.12)
2024-01-29 15:49:04 +0100mrd(~mrd@145.107.129.12) (Changing host)
2024-01-29 15:49:04 +0100mrd(~mrd@user/mrd)
2024-01-29 15:49:38 +0100mrd(~mrd@user/mrd) (Client Quit)
2024-01-29 16:00:03 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2024-01-29 16:00:04 +0100mokee(~mokee@37.228.215.150)
2024-01-29 16:04:57 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2024-01-29 16:07:11 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 264 seconds)
2024-01-29 16:10:48 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Quit: WeeChat 4.1.2)
2024-01-29 16:13:45 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2024-01-29 16:13:52 +0100califax(~califax@user/califx) (Remote host closed the connection)
2024-01-29 16:14:12 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2024-01-29 16:15:34 +0100euleritian(~euleritia@77.22.252.56) (Read error: Connection reset by peer)
2024-01-29 16:15:43 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-29 16:16:01 +0100califax(~califax@user/califx)
2024-01-29 16:17:40 +0100califax(~califax@user/califx) (Remote host closed the connection)
2024-01-29 16:18:11 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2024-01-29 16:18:16 +0100califax(~califax@user/califx)
2024-01-29 16:18:49 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2024-01-29 16:23:54 +0100ddellacosta(~ddellacos@ool-44c73d16.dyn.optonline.net) (Ping timeout: 268 seconds)
2024-01-29 16:24:13 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds)
2024-01-29 16:24:49 +0100euleritian(~euleritia@dynamic-176-006-187-020.176.6.pool.telefonica.de)
2024-01-29 16:31:18 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2024-01-29 16:31:40 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2024-01-29 16:35:15 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 16:37:38 +0100alexherbo2(~alexherbo@2a02-8440-3241-a2f0-1d99-57f3-31fe-fa1c.rev.sfr.net) (Remote host closed the connection)
2024-01-29 16:38:00 +0100alexherbo2(~alexherbo@2a02-8440-3241-a2f0-25f6-2463-e80a-c3aa.rev.sfr.net)
2024-01-29 16:42:34 +0100alexherbo2(~alexherbo@2a02-8440-3241-a2f0-25f6-2463-e80a-c3aa.rev.sfr.net) (Ping timeout: 250 seconds)
2024-01-29 16:43:40 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 255 seconds)
2024-01-29 16:47:44 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 255 seconds)
2024-01-29 16:48:43 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2024-01-29 16:49:02 +0100nicos(~nsm@199.253.243.23) (Ping timeout: 252 seconds)
2024-01-29 16:53:45 +0100waldo(~waldo@user/waldo)
2024-01-29 16:53:52 +0100duncan_duncan
2024-01-29 17:07:45 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 256 seconds)
2024-01-29 17:11:57 +0100nicos(~nsm@186.143.197.185)
2024-01-29 17:18:59 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 260 seconds)
2024-01-29 17:19:38 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 17:24:17 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 260 seconds)
2024-01-29 17:28:47 +0100CiaoSen(~Jura@2a05:5800:281:fa00:ca4b:d6ff:fec1:99da) (Ping timeout: 260 seconds)
2024-01-29 17:32:13 +0100dolio(~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in)
2024-01-29 17:34:05 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-01-29 17:36:28 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 17:38:31 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:d90a:8962:8a2b:5610) (Remote host closed the connection)
2024-01-29 17:38:54 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:d90a:8962:8a2b:5610)
2024-01-29 17:40:13 +0100dolio(~dolio@130.44.134.54)
2024-01-29 17:41:11 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 256 seconds)
2024-01-29 17:42:02 +0100average(uid473595@user/average)
2024-01-29 17:47:26 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 17:49:54 +0100nicos(~nsm@186.143.197.185) (Read error: Connection reset by peer)
2024-01-29 17:51:41 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 240 seconds)
2024-01-29 17:54:22 +0100nicos(~nsm@199.253.243.23)
2024-01-29 17:58:51 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 18:02:55 +0100euleritian(~euleritia@dynamic-176-006-187-020.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-29 18:03:18 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-29 18:03:30 +0100waldo(~waldo@user/waldo) (Ping timeout: 268 seconds)
2024-01-29 18:04:07 +0100cfricke(~cfricke@user/cfricke) (Quit: WeeChat 4.1.2)
2024-01-29 18:08:44 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 268 seconds)
2024-01-29 18:08:59 +0100waldo(~waldo@user/waldo)
2024-01-29 18:13:13 +0100waldo(~waldo@user/waldo) (Ping timeout: 255 seconds)
2024-01-29 18:17:13 +0100ridcully(~ridcully@p508ac914.dip0.t-ipconnect.de) (Quit: WeeChat 4.1.2)
2024-01-29 18:17:29 +0100ridcully(~ridcully@p508ac914.dip0.t-ipconnect.de)
2024-01-29 18:19:36 +0100waldo(~waldo@user/waldo)
2024-01-29 18:21:09 +0100Erutuon(~Erutuon@user/erutuon)
2024-01-29 18:21:42 +0100econo_(uid147250@id-147250.tinside.irccloud.com)
2024-01-29 18:22:01 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
2024-01-29 18:34:54 +0100mc47(~mc47@xmonad/TheMC47)
2024-01-29 18:36:27 +0100tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net)
2024-01-29 18:37:45 +0100tri_(~tri@2607:fb90:552c:d345:90cc:4a85:515e:d21b)
2024-01-29 18:40:47 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 264 seconds)
2024-01-29 18:48:52 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 18:49:19 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-29 18:51:51 +0100__monty__(~toonn@user/toonn) (Ping timeout: 260 seconds)
2024-01-29 18:53:31 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 276 seconds)
2024-01-29 18:54:57 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 18:55:08 +0100HikariNee(~HikariNee@49.43.1.30)
2024-01-29 18:55:30 +0100HikariNee(~HikariNee@49.43.1.30) (Remote host closed the connection)
2024-01-29 18:55:47 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 18:58:05 +0100tri_(~tri@2607:fb90:552c:d345:90cc:4a85:515e:d21b) (Ping timeout: 260 seconds)
2024-01-29 19:00:31 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 256 seconds)
2024-01-29 19:01:00 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 19:01:19 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds)
2024-01-29 19:01:59 +0100Guest57(~Guest70@137.122.64.218)
2024-01-29 19:03:16 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 276 seconds)
2024-01-29 19:04:54 +0100michalz(~michalz@185.246.207.221) (Quit: ZNC 1.8.2 - https://znc.in)
2024-01-29 19:05:03 +0100hueso(~root@user/hueso) (Ping timeout: 256 seconds)
2024-01-29 19:05:06 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-29 19:05:07 +0100destituion(~destituio@2a02:2121:304:cc78:cd0b:f6d2:1dd2:3990)
2024-01-29 19:05:37 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 256 seconds)
2024-01-29 19:11:09 +0100mima(~mmh@aftr-62-216-211-164.dynamic.mnet-online.de) (Ping timeout: 260 seconds)
2024-01-29 19:11:53 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 19:13:40 +0100rvalue(~rvalue@user/rvalue)
2024-01-29 19:14:42 +0100ricardo__(~ricardo@shabang.toppoint.de) (Read error: Connection reset by peer)
2024-01-29 19:15:56 +0100Tuplanolla(~Tuplanoll@91-159-68-95.elisa-laajakaista.fi)
2024-01-29 19:16:47 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 264 seconds)
2024-01-29 19:17:36 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 19:17:59 +0100hueso(~root@user/hueso)
2024-01-29 19:21:01 +0100a51(a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1)
2024-01-29 19:22:29 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 252 seconds)
2024-01-29 19:22:42 +0100a51(a51@gateway/vpn/protonvpn/a51)
2024-01-29 19:24:17 +0100waldo(~waldo@user/waldo) (Ping timeout: 268 seconds)
2024-01-29 19:24:56 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 19:37:17 +0100 <dfg> spitball idea: would it be possible that an sql query could also be haskell code? or what might be the closest thing to it?
2024-01-29 19:39:32 +0100 <dfg> it occured to me that 3select * from table and maybe some other simpler queries might not be too far from also being haskell-ish syntax? or am i just high
2024-01-29 19:40:01 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 264 seconds)
2024-01-29 19:41:10 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 19:41:20 +0100 <EvanR> selectFrom star "table", might work
2024-01-29 19:43:12 +0100 <EvanR> @where basic
2024-01-29 19:43:13 +0100 <lambdabot> I know nothing about basic.
2024-01-29 19:43:47 +0100 <EvanR> for something more along the lines of mimicking another language ... I can't find the original post but there's https://hackage.haskell.org/package/BASIC-0.1.5.0/docs/Language-BASIC.html
2024-01-29 19:45:41 +0100mc47(~mc47@xmonad/TheMC47) (Ping timeout: 260 seconds)
2024-01-29 19:45:51 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 256 seconds)
2024-01-29 19:46:40 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 19:47:58 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-29 19:51:31 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 256 seconds)
2024-01-29 20:00:33 +0100nshepperd2(nshepperd@2600:3c03::f03c:92ff:fe28:92c9)
2024-01-29 20:03:20 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 20:03:22 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 260 seconds)
2024-01-29 20:03:25 +0100Guest57(~Guest70@137.122.64.218) (Quit: Client closed)
2024-01-29 20:08:05 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 256 seconds)
2024-01-29 20:11:27 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-01-29 20:12:13 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-29 20:19:57 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 20:23:10 +0100krei-se(~krei-se@p508747fd.dip0.t-ipconnect.de) (Quit: ZNC 1.8.2 - https://znc.in)
2024-01-29 20:23:45 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2024-01-29 20:24:38 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 252 seconds)
2024-01-29 20:24:41 +0100krei-se(~krei-se@p508747fd.dip0.t-ipconnect.de)
2024-01-29 20:25:09 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:d90a:8962:8a2b:5610) (Remote host closed the connection)
2024-01-29 20:30:57 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-01-29 20:31:01 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 20:56:34 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 255 seconds)
2024-01-29 20:58:26 +0100mc47(~mc47@xmonad/TheMC47)
2024-01-29 20:59:00 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:d90a:8962:8a2b:5610)
2024-01-29 21:03:21 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 21:04:10 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:d90a:8962:8a2b:5610) (Ping timeout: 276 seconds)
2024-01-29 21:06:35 +0100a51(a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1)
2024-01-29 21:10:01 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 276 seconds)
2024-01-29 21:12:06 +0100a51(a51@gateway/vpn/protonvpn/a51)
2024-01-29 21:19:45 +0100a51(a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1)
2024-01-29 21:23:09 +0100trev(~trev@user/trev) (Quit: trev)
2024-01-29 21:26:57 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 21:31:32 +0100a51(a51@gateway/vpn/protonvpn/a51)
2024-01-29 21:31:57 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 256 seconds)
2024-01-29 21:33:40 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-01-29 21:33:42 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2024-01-29 21:36:18 +0100ft(~ft@p3e9bc222.dip0.t-ipconnect.de)
2024-01-29 21:37:40 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-29 21:44:16 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds)
2024-01-29 21:54:26 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:d90a:8962:8a2b:5610)
2024-01-29 21:56:28 +0100EvanR(~EvanR@user/evanr) (Quit: Leaving)
2024-01-29 22:00:40 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 22:04:09 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-29 22:05:07 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 246 seconds)
2024-01-29 22:06:25 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 22:07:44 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2024-01-29 22:08:53 +0100tremon(~tremon@83.80.159.219) (Quit: getting boxed in)
2024-01-29 22:10:58 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 256 seconds)
2024-01-29 22:12:48 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 22:12:56 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-01-29 22:13:27 +0100nicos(~nsm@199.253.243.23) (Ping timeout: 260 seconds)
2024-01-29 22:15:29 +0100notzmv(~zmv@user/notzmv)
2024-01-29 22:15:58 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 22:17:16 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-01-29 22:17:19 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 22:17:49 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-29 22:20:19 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2024-01-29 22:22:01 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 260 seconds)
2024-01-29 22:22:12 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-29 22:23:18 +0100a51(a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1)
2024-01-29 22:28:23 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 22:28:25 +0100Guest|15(~Guest|15@075-185-104-199.res.spectrum.com)
2024-01-29 22:28:43 +0100Guest|15(~Guest|15@075-185-104-199.res.spectrum.com) (Client Quit)
2024-01-29 22:28:55 +0100danse-nr3(~danse@151.47.87.83)
2024-01-29 22:29:32 +0100danse-nr3(~danse@151.47.87.83) (Remote host closed the connection)
2024-01-29 22:31:51 +0100danse-nr3(~danse@151.47.87.83)
2024-01-29 22:33:13 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 260 seconds)
2024-01-29 22:33:27 +0100danse-nr3(~danse@151.47.87.83) (Remote host closed the connection)
2024-01-29 22:34:11 +0100danse-nr3(~danse@151.47.87.83)
2024-01-29 22:34:41 +0100danse-nr3(~danse@151.47.87.83) (Client Quit)
2024-01-29 22:35:24 +0100danse-nr3(~danse@151.47.87.83)
2024-01-29 22:36:01 +0100gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2024-01-29 22:36:57 +0100danse-nr3(~danse@151.47.87.83) (Read error: Connection reset by peer)
2024-01-29 22:37:28 +0100danse-nr3(~danse@151.47.87.83)
2024-01-29 22:39:29 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 22:42:16 +0100Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2024-01-29 22:44:29 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 256 seconds)
2024-01-29 22:45:02 +0100nicos(~nsm@186.141.133.40)
2024-01-29 22:45:14 +0100a51(a51@gateway/vpn/protonvpn/a51)
2024-01-29 22:53:02 +0100igemnace(~ian@user/igemnace) (Read error: Connection reset by peer)
2024-01-29 22:56:19 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 22:58:28 +0100average(uid473595@user/average) (Quit: Connection closed for inactivity)
2024-01-29 23:01:21 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 268 seconds)
2024-01-29 23:06:29 +0100danse-nr3(~danse@151.47.87.83) (Ping timeout: 240 seconds)
2024-01-29 23:07:24 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 23:10:12 +0100igemnace(~ian@user/igemnace)
2024-01-29 23:11:58 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 246 seconds)
2024-01-29 23:14:35 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
2024-01-29 23:16:39 +0100nicos(~nsm@186.141.133.40) (Read error: Connection reset by peer)
2024-01-29 23:17:17 +0100a51(a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1)
2024-01-29 23:19:18 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 23:19:19 +0100a51(a51@gateway/vpn/protonvpn/a51)
2024-01-29 23:23:15 +0100nicos(~nsm@2800:2131:5400:883:28f6:1624:5755:79b0)
2024-01-29 23:23:43 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 255 seconds)
2024-01-29 23:30:12 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2024-01-29 23:33:45 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-29 23:33:55 +0100Square(~Square@user/square)
2024-01-29 23:39:05 +0100nicos(~nsm@2800:2131:5400:883:28f6:1624:5755:79b0) (Quit: Quit)
2024-01-29 23:48:33 +0100a51(a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1)
2024-01-29 23:51:57 +0100dhruvasagar(~dhruvasag@49.207.206.234)
2024-01-29 23:56:55 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2024-01-29 23:56:59 +0100dhruvasagar(~dhruvasag@49.207.206.234) (Ping timeout: 264 seconds)
2024-01-29 23:57:23 +0100mima(~mmh@aftr-62-216-211-36.dynamic.mnet-online.de)
2024-01-29 23:57:55 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-01-29 23:59:45 +0100fendor(~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Remote host closed the connection)