Home liberachat/#haskell: Logs Calendar

Logs on 2023-12-31 (liberachat/#haskell)

00:00:21 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 245 seconds)
00:05:48 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:7c0f:c7d3:678b:7d3e) (Remote host closed the connection)
00:08:16 × malte quits (~malte@mal.tc) (Remote host closed the connection)
00:08:55 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
00:09:33 malte joins (~malte@mal.tc)
00:10:53 × acidjnk quits (~acidjnk@p200300d6e72b9353fc6858fc9037c8f4.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
00:20:26 × oo_miguel quits (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 260 seconds)
00:25:50 mima joins (~mmh@95.90.244.225)
00:34:06 × mima quits (~mmh@95.90.244.225) (Ping timeout: 245 seconds)
00:37:49 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:7c0f:c7d3:678b:7d3e)
00:43:23 erina joins (~erina@2409:8a31:4a3:c0a1::1000)
00:45:26 × johnw quits (~johnw@69.62.242.138) (Quit: ZNC - http://znc.in)
00:45:29 × Tuplanolla quits (~Tuplanoll@91-159-69-171.elisa-laajakaista.fi) (Quit: Leaving.)
00:58:49 <erina> @pl \x -> tail x == 'A'
00:58:49 <lambdabot> ('A' ==) . tail
01:05:55 Sgeo joins (~Sgeo@user/sgeo)
01:14:13 <int-e> that won't type-check
01:14:53 <geekosaur> maybe you wanted `last` instead of `tail`?
01:14:57 <geekosaur> :t last
01:14:58 <lambdabot> [a] -> a
01:15:07 <geekosaur> (also note that it's partial)
01:18:56 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
01:19:06 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds)
01:20:18 Lord_of_Life_ is now known as Lord_of_Life
01:26:43 <erina> geekosaur, thank you for pointing out (I discovered this on a lsp error)
01:28:48 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
01:30:20 stef204 joins (~stef204@user/stef204)
01:31:43 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
02:00:20 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
02:00:59 chexum joins (~quassel@gateway/tor-sasl/chexum)
02:10:27 × sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 260 seconds)
02:10:35 peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com)
02:20:31 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
02:20:44 chexum joins (~quassel@gateway/tor-sasl/chexum)
02:30:38 jmdaemon joins (~jmdaemon@user/jmdaemon)
02:38:12 × stef204 quits (~stef204@user/stef204) (Quit: WeeChat 4.1.2)
02:38:40 × micro quits (~micro@user/micro) (Remote host closed the connection)
02:39:39 × erina quits (~erina@2409:8a31:4a3:c0a1::1000) (Remote host closed the connection)
02:39:59 erina joins (~erina@178.157.56.217.16clouds.com)
02:41:02 micro joins (~micro@user/micro)
02:46:14 × megaTherion quits (~therion@unix.io) (Quit: ZNC 1.8.2 - https://znc.in)
02:47:25 megaTherion joins (~therion@unix.io)
03:19:43 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds)
03:20:46 ChaiTRex joins (~ChaiTRex@user/chaitrex)
03:24:32 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
03:24:32 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
03:24:32 finn_elija is now known as FinnElija
03:26:58 × igemnace quits (~ian@user/igemnace) (Read error: Connection reset by peer)
03:27:22 igemnace joins (~ian@user/igemnace)
03:27:27 × td_ quits (~td@i53870904.versanet.de) (Ping timeout: 260 seconds)
03:29:20 td_ joins (~td@i53870924.versanet.de)
03:42:57 bob joins (~who@user/bob)
03:50:47 zeka_ joins (~zeka@2600:1700:2121:180:a498:f6ae:d429:176)
03:53:16 × erina quits (~erina@178.157.56.217.16clouds.com) (Ping timeout: 245 seconds)
03:55:02 × zeka quits (~zeka@2600:1700:2121:180:3560:92ba:5300:c7ab) (Ping timeout: 268 seconds)
03:55:24 erina joins (~erina@178.157.56.217.16clouds.com)
04:00:21 random-jellyfish joins (~tiber@2a02:2f04:11e:c600:b107:9fa5:a9a5:7368)
04:00:21 × random-jellyfish quits (~tiber@2a02:2f04:11e:c600:b107:9fa5:a9a5:7368) (Changing host)
04:00:21 random-jellyfish joins (~tiber@user/random-jellyfish)
04:11:26 × peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
04:16:04 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 255 seconds)
04:16:13 × aforemny_ quits (~aforemny@i59F516CB.versanet.de) (Ping timeout: 256 seconds)
04:16:53 aforemny joins (~aforemny@i59F516E4.versanet.de)
04:31:11 <albet70> f config where f Config{..} = ... not in scope data constructor Config
04:31:31 <albet70> why use Config{..} in where, it causes not in scope?
04:32:42 <int-e> it doesn't?
04:34:52 <albet70> int-e , https://paste.tomsmeding.com/nmLbxuZ3
04:36:15 <int-e> You didn't import the Config data constructor, only the type constructor. Presumably you want to import Config(..)
04:36:35 <int-e> to get both the data constructor (which I assume is `Config` and the field accessors as well)
04:37:15 peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com)
04:38:03 TonyStone joins (~TonyStone@074-076-057-186.res.spectrum.com)
04:38:15 <int-e> in any case it has nothing to do with using a `where` clause
04:39:40 <albet70> import Config, is import the type constructor, data Config(this is type constructor) = Config(this is data constructor) whatever ?
04:40:34 <albet70> I don't understand why import Config just import the type constructor? why not both?
04:41:11 <int-e> No deep reason; it's how the import (and export) syntax works.
04:41:47 <albet70> import MDNS.Config.Parse (getConfig, Config, Config(..)) still the same error
04:42:39 <int-e> Hmm does the module export the data constructor?
04:43:15 <int-e> (I'm assuming that this is your own module)
04:44:28 <albet70> I see, thanks
04:45:13 <int-e> albet70: and yes, you names type constructor and data constructor correctly in your example
04:51:24 <erina> Is there a function for maximum with a custom compare?
04:51:32 <int-e> "No deep reason" -- the main thing people want is to make a completely abstract type, where only the type constructor is exported and a selection of curated functions. So that's why exporting `Config` only exports the type constructor, and the import declarations mirror that behavior. It could have been done differently of course.
04:52:06 <int-e> :t maximumBy
04:52:07 <lambdabot> Foldable t => (a -> a -> Ordering) -> t a -> a
04:52:24 <erina> hmmmmm, I wonder why the lsp didn't inform me about this
04:52:31 <erina> @hoogle maximumBy
04:52:31 <lambdabot> Data.List maximumBy :: Foldable t => (a -> a -> Ordering) -> t a -> a
04:52:31 <lambdabot> Data.Foldable maximumBy :: Foldable t => (a -> a -> Ordering) -> t a -> a
04:52:31 <lambdabot> GHC.OldList maximumBy :: (a -> a -> Ordering) -> [a] -> a
04:53:23 <erina> @hoogle maximumOn
04:53:23 <lambdabot> Data.List.Extra maximumOn :: (Partial, Ord b) => (a -> b) -> [a] -> a
04:53:23 <lambdabot> Extra maximumOn :: (Partial, Ord b) => (a -> b) -> [a] -> a
04:53:23 <lambdabot> Algorithms.Geometry.LinearProgramming.LP2DRIC maximumOn :: (Ord r, Fractional r) => LPState 2 r -> Line 2 r -> Maybe (Point 2 r)
04:56:34 <erina> How do I use Data.Hashtable? GHC can't find the module...... which is supposed to be in base
04:56:42 <erina> *Data.HashTable
04:58:26 <int-e> it hasn't been in base for 9 years (it was removed in base-4.7.0.0)
04:58:35 <int-e> almost 10
04:59:53 <erina> Oh my
05:00:15 <erina> So I have to use Data.HashMap or something?
05:00:21 × Halian quits (~halian@safiralliance/protobeeper) (Quit: WeeChat 4.1.2)
05:00:31 <int-e> yeah unordered-containers is a replacement
05:01:09 <int-e> or, you know, Data.Map
05:01:57 <EvanR> the main difference between Map and HashMap are the required capability of keys, Ord or Hashable
05:02:00 <EvanR> respectively
05:02:54 <EvanR> if your key is both Ord and Hashable, one of those is probably cheaper
05:08:22 × random-jellyfish quits (~tiber@user/random-jellyfish) (Ping timeout: 260 seconds)
05:22:25 Guest12 joins (~Guest12@129.170.197.115)
05:23:39 × Square quits (~Square@user/square) (Ping timeout: 260 seconds)
05:28:04 <Guest12> I’m reading a tutorial about Megaparsec, and it mentions that using the infix operator (<*) with the eof parser and some other arbitrary parser “forces” the resultant parser to either each the end of the input or fail. Does anyone have any insight into how this works on an implementation level? I know the type signature of (<*), but I
05:28:04 <Guest12> don’t really get how it translates to the behaviour the tutorial describes.
05:29:35 <monochrom> In general, you can think of "foo <* bar" as performing both foo and bar, in that order; then the return value is taken from foo's; bar's return value is discarded.
05:35:57 <Guest12> I see.  I think that makes sense in the context of the tutorial.  Thanks
05:37:15 × Guest12 quits (~Guest12@129.170.197.115) (Quit: Client closed)
05:37:44 actioninja5 joins (~actioninj@user/actioninja)
05:39:31 × actioninja quits (~actioninj@user/actioninja) (Ping timeout: 260 seconds)
05:39:31 actioninja5 is now known as actioninja
05:39:48 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
05:39:57 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Client Quit)
05:57:24 × kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
06:14:52 trev joins (~trev@user/trev)
06:20:32 rosco joins (~rosco@14.191.93.45)
06:25:11 × rosco quits (~rosco@14.191.93.45) (Ping timeout: 264 seconds)
06:26:24 rosco joins (~rosco@14.191.93.45)
06:29:49 × peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 256 seconds)
06:42:31 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds)
06:43:53 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
07:10:11 <albet70> is there Map comprehension like List comprehension?
07:16:47 takuan joins (~takuan@178-116-218-225.access.telenet.be)
07:21:01 <int-e> `fromListWith` takes a list, so list comprehensions seem good enough already
07:30:40 xdminsy joins (~xdminsy@117.147.71.169)
07:34:37 × Szilva quits (~Szilva@92-249-141-195.pool.digikabel.hu) (Ping timeout: 246 seconds)
07:41:45 Szilva joins (~Szilva@92-249-141-195.pool.digikabel.hu)
07:47:33 <albet70> [ (x,y) | (x,ys) <- b, y <- ys ] ys is not in scope, how to fix?
07:48:07 <albet70> in python's list comprehension it's like [ (x,y) for y in ys for ys in b ]
07:48:48 <int-e> > [(x,y) | x:ys <- tails [1..5], y <- ys]
07:48:50 <lambdabot> [(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)]
07:49:36 <int-e> albet70: no, it shouldn't complain about ys not being in scope *there*.
07:51:22 <albet70> > [ (x,y) | (x,ys) <- b, y <- ys ] where b = [("1",["1","2"])]
07:51:23 <lambdabot> <hint>:1:34: error: parse error on input ‘where’
07:51:57 <albet70> > let b = [("1",["1","2"])] in [(x,y) | (x,ys) <- b, y <- ys ]
07:51:59 <lambdabot> [("1","1"),("1","2")]
07:55:46 × Szilva quits (~Szilva@92-249-141-195.pool.digikabel.hu) (Ping timeout: 245 seconds)
07:57:46 Szilva joins (~Szilva@92-249-193-27.pool.digikabel.hu)
08:01:32 <albet70> why haskell has too many ByteString?
08:01:47 <albet70> Data.ByteString.Lazy.ByteString
08:02:03 <albet70> Data.ByteString.Char8.ByteString
08:02:26 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 245 seconds)
08:02:27 <albet70> Data.ByteString.Internal.ByteString
08:03:16 fendor joins (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c)
08:06:31 × anpad quits (~pandeyan@user/anpad) (Ping timeout: 260 seconds)
08:07:12 × Szilva quits (~Szilva@92-249-193-27.pool.digikabel.hu) (Ping timeout: 252 seconds)
08:07:18 anpad joins (~pandeyan@user/anpad)
08:07:55 misterfish joins (~misterfis@84.53.85.146)
08:08:38 × phma quits (~phma@2001:5b0:211f:a1d8:f686:bb6d:11af:9510) (Read error: Connection reset by peer)
08:11:41 <mauke> albet70: are you asking about ByteString types or ByteString modules?
08:12:06 <albet70> https://paste.tomsmeding.com/tAE25XFf
08:12:25 <albet70> mauke , never mind, I solved it
08:13:38 <albet70> I run some forkIO inside an IO do notation, why it tells syntax error?
08:14:41 × trev quits (~trev@user/trev) (Quit: trev)
08:17:22 <mauke> that 'config <- ...' line looks a bit weird. isn't that just 'let config = getConfig context'?
08:17:56 <mauke> albet70: the 'where' section terminates the declaration of 'main'
08:18:17 <mauke> after that, 'case v of ...' is just random code in the middle of the file, which Haskell doesn't like
08:22:37 <albet70> mauke , how to change 'where'?
08:22:49 <albet70> or can not?
08:25:27 <mauke> 'where' can only attach to declarations, not expressions
08:25:35 <int-e> That `where` is rather ill-fated. You could use `Config{..}` where you bind `config`.
08:25:40 <mauke> but it looks like you don't really need 'f' here
08:25:58 <int-e> Since that's the only purpose `f` seems to have... bringing whatever fields `Config` has into scope
08:26:13 <mauke> liftIO $ do { let Config{..} = config; ... }
08:26:38 <mauke> (replace { } by indentation as needed)
08:27:33 <int-e> I mean the Config{..} could be on line 9 already
08:27:51 <int-e> with no need to name that thing `config` at any point
08:28:57 <mauke> or indeed 'let Config{..} = getConfig context'
08:29:23 <mauke> ah, no
08:29:41 <mauke> there is an 'Either' in there
08:29:52 <albet70> yes, there's an Either!
08:30:11 <int-e> but that's from `return`?
08:30:47 <mauke> isn't that IO's return?
08:30:57 <int-e> On line 9?
08:31:03 <int-e> Oh.
08:31:17 <int-e> yes, you're right
08:31:28 <albet70> promblem solved, thanks
08:31:40 <albet70> use let Config{..} = config instead of 'where'
08:31:58 acidjnk joins (~acidjnk@p200300d6e72b9364c05d2cef6a824841.dip0.t-ipconnect.de)
08:32:29 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
08:33:13 <int-e> This whole use of ExceptT for capturing an error from a singular source feels awkward.
08:33:46 <albet70> how to change that?
08:34:22 <int-e> you could run the `getConfig context` IO action and check for the error right there
08:34:56 <int-e> or is that even an IO action.... it's not, it's just an Either value, right?
08:35:40 <albet70> since getConfig context will get Either value, and I don't want to use lots <$> to map on that Either value
08:35:50 <albet70> so I use ExceptT
08:36:50 <albet70> getConfig context is not an IO action, it's actually Aeson's eitherDecode
08:42:04 <int-e> well in my opinion "ExceptT $ ((return . getConfig) context :: IO (Either String Config))" is an eye sore; it's causing unecessary cognitive overload.
08:42:52 <int-e> something that a straightforward `case getConfig context of Left s -> print s; Right (Config{..}) -> do ...` would not suffer from.
08:45:47 <albet70> ok
08:47:02 <albet70> some function return Either value, some do not, it's so mixed
08:48:54 <albet70> Aeson's eitherDecode get Either, readFile do not, newMVar do not, Network.DNS.Decode's decode get Either, Network.Socket's recvFrom do not
08:49:05 <albet70> and all those actions are mixed
08:49:16 <albet70> IO actions and Either actions
08:52:20 × ft quits (~ft@mue-88-130-106-233.dsl.tropolys.de) (Quit: leaving)
08:59:02 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
09:04:56 × mauke quits (~mauke@user/mauke) (Remote host closed the connection)
09:06:51 × dexter2 quits (dexter@2a01:7e00::f03c:91ff:fe86:59ec) (Quit: WeeChat 2.8)
09:10:13 phma joins (~phma@2001:5b0:211f:2df8:fe50:c9dd:d398:6ba)
09:10:18 Szilva joins (~Szilva@94-21-82-238.pool.digikabel.hu)
09:11:08 × tzh quits (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz)
09:16:25 mauke joins (~mauke@user/mauke)
09:19:32 × rosco quits (~rosco@14.191.93.45) (Quit: Lost terminal)
09:26:39 CiaoSen joins (~Jura@2a05:5800:2a9:e200:ca4b:d6ff:fec1:99da)
09:28:58 azimut joins (~azimut@gateway/tor-sasl/azimut)
09:30:30 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
09:34:02 waldo joins (~waldo@user/waldo)
09:34:15 × CiaoSen quits (~Jura@2a05:5800:2a9:e200:ca4b:d6ff:fec1:99da) (Ping timeout: 260 seconds)
09:34:22 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
09:38:09 × vi- quits (violet@user/violetjewel) (Quit: ZNC - https://znc.in)
09:39:36 <albet70> since when 'compose' came into Data.Map.Strict? https://hackage.haskell.org/package/containers-0.7/docs/Data-Map-Strict.html#v:compose
09:40:09 <Rembane> albet70: Since: 0.6.3.1, it says so at the bottom of the function description.
09:40:31 Tuplanolla joins (~Tuplanoll@91-159-69-171.elisa-laajakaista.fi)
09:41:06 <albet70> how to know which version is installed?
09:41:35 <albet70> :t compose is not in scpoe in ghci
09:41:36 <lambdabot> error: parse error on input ‘in’
09:42:01 <Rembane> Are you in a project?
09:42:09 <Rembane> Is it using stack? cabal?
09:42:40 <albet70> cabal
09:43:23 <albet70> ghc 8.8.4
09:45:25 <Rembane> Try this command: cabal list --installed
10:02:32 Paracetamol joins (~WizardWit@2405:201:5004:1e8:5cc6:b5ee:4a75:5048)
10:06:55 × waldo quits (~waldo@user/waldo) (Ping timeout: 260 seconds)
10:08:29 × Paracetamol quits (~WizardWit@2405:201:5004:1e8:5cc6:b5ee:4a75:5048) (Quit: Leaving)
10:08:51 Paracetamol joins (~WizardWit@2405:201:5004:1e8:5cc6:b5ee:4a75:5048)
10:11:47 × Paracetamol quits (~WizardWit@2405:201:5004:1e8:5cc6:b5ee:4a75:5048) (Client Quit)
10:16:03 oo_miguel joins (~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
10:18:28 Paracetamol joins (~WizardWit@2405:201:5004:1e8:5cc6:b5ee:4a75:5048)
10:19:28 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:7c0f:c7d3:678b:7d3e) (Remote host closed the connection)
10:20:03 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:7c0f:c7d3:678b:7d3e)
10:20:26 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
10:21:52 sawilagar joins (~sawilagar@user/sawilagar)
10:24:18 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:7c0f:c7d3:678b:7d3e) (Ping timeout: 260 seconds)
10:24:19 waldo joins (~waldo@user/waldo)
10:25:10 sroso joins (~sroso@user/SrOso)
10:25:58 × turlando_ quits (~turlando@user/turlando) (Ping timeout: 255 seconds)
10:31:32 × Paracetamol quits (~WizardWit@2405:201:5004:1e8:5cc6:b5ee:4a75:5048) (Quit: Leaving)
10:31:47 × waldo quits (~waldo@user/waldo) (Ping timeout: 264 seconds)
10:32:42 Paracetamol joins (~WizardWit@2405:201:5004:1e8:5cc6:b5ee:4a75:5048)
10:34:11 turlando joins (~turlando@user/turlando)
10:40:24 Ibuprofen joins (~BolterWiz@2405:201:5004:1e8:5cc6:b5ee:4a75:5048)
10:40:37 × Ibuprofen quits (~BolterWiz@2405:201:5004:1e8:5cc6:b5ee:4a75:5048) (Client Quit)
10:40:39 Paracetamol is now known as Ibuprofen
10:40:56 Ibuprofen is now known as Caffiene
10:41:10 Caffiene is now known as WizardWithABolte
10:41:23 WizardWithABolte is now known as WizWithABolter
10:42:09 WizWithABolter is now known as Paracetamol
10:42:29 × Paracetamol quits (~WizardWit@2405:201:5004:1e8:5cc6:b5ee:4a75:5048) (Quit: Leaving)
10:42:52 × sroso quits (~sroso@user/SrOso) (Quit: Leaving)
10:43:33 chomwitt joins (~chomwitt@2a02:587:7a0f:8900:1ac0:4dff:fedb:a3f1)
10:44:36 Paracetamol joins (~BolterWiz@2405:201:5004:1e8:5cc6:b5ee:4a75:5048)
10:45:36 Ibuprofen joins (~Paracetam@2405:201:5004:1e8:5cc6:b5ee:4a75:5048)
10:45:56 × Ibuprofen quits (~Paracetam@2405:201:5004:1e8:5cc6:b5ee:4a75:5048) (Client Quit)
10:45:59 × Paracetamol quits (~BolterWiz@2405:201:5004:1e8:5cc6:b5ee:4a75:5048) (Client Quit)
10:47:05 Paracetamol joins (~Paracetam@2405:201:5004:1e8:5cc6:b5ee:4a75:5048)
10:50:10 Ibuprofen joins (~Paracetam@2405:201:5004:1e8:5cc6:b5ee:4a75:5048)
10:50:26 × Paracetamol quits (~Paracetam@2405:201:5004:1e8:5cc6:b5ee:4a75:5048) (Client Quit)
10:50:32 Ibuprofen is now known as Paracetamol
10:52:31 × Szilva quits (~Szilva@94-21-82-238.pool.digikabel.hu) (Ping timeout: 268 seconds)
10:52:41 Ibuprofen joins (~Paracetam@2405:201:5004:1e8:64ff:e6c:267d:f3c7)
10:53:18 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:7c0f:c7d3:678b:7d3e)
10:54:45 Caffiene joins (~Paracetam@2405:201:5004:1e8:c5ae:28d1:f06b:6363)
10:56:23 × Paracetamol quits (~Paracetam@2405:201:5004:1e8:5cc6:b5ee:4a75:5048) (Ping timeout: 260 seconds)
10:57:47 × Ibuprofen quits (~Paracetam@2405:201:5004:1e8:64ff:e6c:267d:f3c7) (Ping timeout: 260 seconds)
11:01:04 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
11:08:49 Szilva joins (~Szilva@178-164-171-236.pool.digikabel.hu)
11:14:23 × Szilva quits (~Szilva@178-164-171-236.pool.digikabel.hu) (Ping timeout: 264 seconds)
11:14:39 Szilva joins (~Szilva@80-95-69-224.pool.digikabel.hu)
11:16:18 mima_ joins (~mmh@ip5f5af4e1.dynamic.kabel-deutschland.de)
11:18:33 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
11:21:14 × elkcl quits (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) (Ping timeout: 260 seconds)
11:22:13 × mima_ quits (~mmh@ip5f5af4e1.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
11:25:25 × erina quits (~erina@178.157.56.217.16clouds.com) (Remote host closed the connection)
11:25:48 erina joins (~erina@2409:8a31:4a3:c0a1::1000)
11:29:08 × Caffiene quits (~Paracetam@2405:201:5004:1e8:c5ae:28d1:f06b:6363) (Quit: Leaving)
11:29:29 Paracetamol joins (~Paracetam@2405:201:5004:1e8:c5ae:28d1:f06b:6363)
11:32:53 elkcl joins (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru)
11:33:09 × Paracetamol quits (~Paracetam@2405:201:5004:1e8:c5ae:28d1:f06b:6363) (Changing host)
11:33:09 Paracetamol joins (~Paracetam@user/Paracetamol)
11:40:05 × mikess quits (~sam@user/mikess) (Ping timeout: 240 seconds)
11:46:55 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
12:12:01 shiguera joins (~shiguera@113.red-79-148-233.staticip.rima-tde.net)
12:12:33 × shiguera quits (~shiguera@113.red-79-148-233.staticip.rima-tde.net) (Client Quit)
12:13:28 × Paracetamol quits (~Paracetam@user/Paracetamol) (Quit: Leaving)
12:13:49 Paracetamol joins (~Paracetam@user/Paracetamol)
12:15:03 emmanuelux_ joins (~emmanuelu@user/emmanuelux)
12:18:13 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Ping timeout: 276 seconds)
12:19:22 doyougnu- joins (~doyougnu@045-046-170-068.res.spectrum.com)
12:19:47 × doyougnu quits (~doyougnu@045-046-170-068.res.spectrum.com) (Ping timeout: 268 seconds)
12:21:38 emmanuelux joins (~emmanuelu@user/emmanuelux)
12:21:44 × Tuplanolla quits (~Tuplanoll@91-159-69-171.elisa-laajakaista.fi) (Quit: Leaving.)
12:21:54 × emmanuelux_ quits (~emmanuelu@user/emmanuelux) (Ping timeout: 260 seconds)
12:21:56 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 268 seconds)
12:37:48 turmite joins (~turmite@178.249.211.97)
12:42:08 × turmite quits (~turmite@178.249.211.97) (Remote host closed the connection)
12:55:07 Ibuprofen joins (~Paracetam@user/Paracetamol)
12:57:08 Caffiene joins (~Paracetam@user/Paracetamol)
12:59:15 × Paracetamol quits (~Paracetam@user/Paracetamol) (Ping timeout: 268 seconds)
12:59:46 × Ibuprofen quits (~Paracetam@user/Paracetamol) (Ping timeout: 246 seconds)
13:02:59 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:28:55 × not_reserved quits (~not_reser@154.16.157.88) (Quit: Client closed)
13:38:31 × mjs2600 quits (~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in)
13:40:46 × igemnace quits (~ian@user/igemnace) (Ping timeout: 245 seconds)
13:49:24 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
13:52:44 ChaiTRex joins (~ChaiTRex@user/chaitrex)
13:58:54 Ibuprofen joins (~Paracetam@user/Paracetamol)
14:01:43 × Caffiene quits (~Paracetam@user/Paracetamol) (Ping timeout: 246 seconds)
14:04:51 random-jellyfish joins (~tiber@user/random-jellyfish)
14:07:38 <albet70> https://hackage.haskell.org/package/containers-0.7/docs/src/Data.Map.Internal.html#compose could be compose empty ab = empty?
14:08:21 <albet70> compose empty _ = empty; compose bc ab = mapMaybe (bc !?) ab
14:09:51 × random-jellyfish quits (~tiber@user/random-jellyfish) (Ping timeout: 268 seconds)
14:12:56 <haskellbridge> 15<J​ade> is it possible to have an instance along the lines of `instance SomeConstraint s => SomeConstraint (a -> s a)` where a is the "free" variable in the instance?
14:12:56 <haskellbridge> 15<J​ade> My current "solution" is to have `newtype Foo s a = Foo { getFoo :: a -> s a }` and the instance head is then `instance SomeConstraint s => SomeConstraint (Foo s)`
14:13:07 <haskellbridge> 15<J​ade> is there a way to achieve this without having the newtype wrapper?
14:15:16 <albet70> left-value right-value, empty can not be evaled in left
14:15:42 <albet70> what is empty Map look like
14:17:34 mima joins (~mmh@ip5f5af4e1.dynamic.kabel-deutschland.de)
14:18:50 <bwe> parseOnly (scientific) "1.000" -- expected is 1000; how do I skip the "." while parsing "1.000" ?
14:19:03 <bwe> Right 1.0
14:28:11 <erina> bwe. sorry if I didn't get what you mean...... but I guess filter isDigit can rid the '.'
14:32:36 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
14:33:08 igemnace joins (~ian@user/igemnace)
14:33:20 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
14:48:31 <albet70> how to config parameter in cabal's main-is?
14:49:41 <bwe> erina: I want to have the parser filter to digits only; however can I use filter isDigit in :: Parser Double ?
14:49:53 VioletJewel joins (~violet@user/violetjewel)
14:50:45 × erina quits (~erina@2409:8a31:4a3:c0a1::1000) (Ping timeout: 256 seconds)
14:57:54 Square joins (~Square@user/square)
15:01:11 Tlsx joins (~rscastilh@189.61.140.215)
15:07:02 VioletJewel is now known as vi-
15:20:29 _myclm joins (~myclm_@2a02:810d:8200:1628::8920)
15:24:31 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds)
15:27:47 ChaiTRex joins (~ChaiTRex@user/chaitrex)
15:36:13 × fendor quits (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Remote host closed the connection)
15:43:40 × Ibuprofen quits (~Paracetam@user/Paracetamol) (Quit: Leaving)
15:47:42 <cheater> geekosaur: could you please rename haskellbridge to something shorter, preferably just one character?
15:51:20 waldo joins (~waldo@user/waldo)
15:55:41 <glguy> cheater: you might be able to configure your client to do a better job with it, e.g. https://0x0.st/s/vuzxDxIQ5XoAB_U_xLBHdw/HE5B.png
15:56:29 <cheater> nah, my client doesn't do advanced stuff like that
15:56:38 <cheater> it's a good idea but doesn't really work
15:56:47 <cheater> what client are you using glguy?
15:58:17 <glguy> https://hackage.haskell.org/package/glirc
16:00:09 <cheater> does it have >1 user
16:00:12 <cheater> :)
16:00:18 <cheater> lol
16:00:22 <cheater> jk :)
16:00:49 <cheater> really happy there's *finally* an irc client in haskell
16:00:57 <cheater> literally every irc client out there is just... bad
16:01:14 × chomwitt quits (~chomwitt@2a02:587:7a0f:8900:1ac0:4dff:fedb:a3f1) (Ping timeout: 260 seconds)
16:01:57 <glguy> Yeah, pretty many
16:02:26 × TonyStone quits (~TonyStone@074-076-057-186.res.spectrum.com) (Quit: Leaving)
16:02:32 <glguy> More from people installing it from their distro than the haskell programmer who I know that use it
16:02:42 <cheater> oh interesting
16:02:50 <cheater> any plans on a windowed (desktop) version?
16:03:30 <glguy> No
16:04:56 <cheater> too bad!
16:05:04 × Square quits (~Square@user/square) (Remote host closed the connection)
16:05:28 Square joins (~Square@user/square)
16:05:39 × Square quits (~Square@user/square) (Remote host closed the connection)
16:06:04 Square joins (~Square@user/square)
16:06:49 × waldo quits (~waldo@user/waldo) (Ping timeout: 256 seconds)
16:08:07 <cheater> glguy: does it do that thing where you can leave a client running on a vps somewhere and connect to the client from where ever?
16:08:19 <cheater> (your desktop, phone, ...)
16:08:54 <cheater> i guess it's called a bouncer, or a tunnel, or proxy
16:13:28 <haskellbridge> 14<m​auke> Or ssh + a terminal client running in tmux on the server
16:13:53 erina joins (~erina@2409:8a31:4a3:c0a1::1000)
16:14:46 <glguy> cheater: it has good support for connecting via a bouncer, which is how I use it
16:15:02 <cheater> what sort of bouncer do you use?
16:17:08 <glguy> I use both znc and soju
16:17:12 × _myclm quits (~myclm_@2a02:810d:8200:1628::8920) (Ping timeout: 268 seconds)
16:18:42 <cheater> you use two? why?
16:22:09 × causal quits (~eric@50.35.85.7) (Quit: WeeChat 4.1.1)
16:22:57 waldo joins (~waldo@user/waldo)
16:23:21 <glguy> I wanted to have options and as a used soju I found stuff that wasn't quite right and got it fixed. I have this connection I use for chatting and another I use fora server status client I use to help with managing the network
16:23:44 <cheater> thanks
16:24:40 _myclm joins (~myclm_@2a02:810d:8200:1628::8920)
16:28:47 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 264 seconds)
16:33:10 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
16:46:06 × erina quits (~erina@2409:8a31:4a3:c0a1::1000) (Ping timeout: 260 seconds)
16:52:55 × waldo quits (~waldo@user/waldo) (Ping timeout: 260 seconds)
16:53:36 waldo joins (~waldo@user/waldo)
16:53:39 mikess joins (~sam@user/mikess)
16:57:41 × waldo quits (~waldo@user/waldo) (Ping timeout: 240 seconds)
16:59:36 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
17:01:42 haskellbridge 06<s​m> likes the bridge's matrix avatar
17:01:48 <haskellbridge> 06<s​m> +1 attention to detail
17:01:58 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:07:51 × mima quits (~mmh@ip5f5af4e1.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
17:08:29 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 240 seconds)
17:09:15 × _myclm quits (~myclm_@2a02:810d:8200:1628::8920) (Ping timeout: 260 seconds)
17:10:15 _myclm joins (~myclm_@2a02:810d:8200:1628::8920)
17:11:19 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
17:12:21 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
17:21:48 tzh joins (~tzh@c-71-193-181-0.hsd1.or.comcast.net)
17:25:13 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:27:01 waldo joins (~waldo@user/waldo)
17:36:52 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
17:37:40 × Xe quits (~cadey@perl/impostor/xe) (Ping timeout: 268 seconds)
17:38:06 np is now known as nerdypepper
17:42:51 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 260 seconds)
17:44:45 waleee joins (~waleee@h-176-10-144-38.na.cust.bahnhof.se)
17:48:25 <petrichor> new year's resolution: do more with haskell
17:49:15 petrichor realises they can probably fulfill this with tidalcycles alone >_<
17:49:38 <monochrom> Why commit to a resolution until you really need to. >:)
17:50:08 <darkling> I think mine's 320x192.
17:50:31 × _myclm quits (~myclm_@2a02:810d:8200:1628::8920) (Ping timeout: 256 seconds)
18:02:01 × waleee quits (~waleee@h-176-10-144-38.na.cust.bahnhof.se) (Ping timeout: 245 seconds)
18:04:20 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
18:04:44 <haskellbridge> 14<m​aerwald> new year's resolution: do less for Haskell
18:13:07 <cheater> haskell is too successful
18:18:30 rosco joins (~rosco@14.191.93.45)
18:27:54 × rosco quits (~rosco@14.191.93.45) (Quit: Lost terminal)
18:31:22 <duncan> cheater: it is missing for loops
18:31:32 <duncan> in 2023
18:32:29 <cheater> duncan: at least it has BASIC and GOTO
18:32:47 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:36:27 <EvanR> > for [0..n-1] $ \i -> print i
18:36:29 <lambdabot> <IO [()]>
18:41:25 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 255 seconds)
18:42:22 <haskellbridge> 14<m​aerwald> not a real for loop
18:42:42 <haskellbridge> 14<m​aerwald> https://gist.github.com/hasufell/b5d00650a03809cccabfb07dcae0d987
18:43:30 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
18:50:49 × waldo quits (~waldo@user/waldo) (Ping timeout: 276 seconds)
18:51:40 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
18:53:50 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 268 seconds)
18:55:19 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
19:02:56 × megaTherion quits (~therion@unix.io) (Quit: ZNC 1.8.2 - https://znc.in)
19:16:32 waldo joins (~waldo@user/waldo)
19:21:14 × igemnace quits (~ian@user/igemnace) (Quit: WeeChat 4.1.2)
19:22:57 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
19:24:01 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
19:26:21 megaTherion joins (~therion@unix.io)
19:30:05 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
19:30:37 <cheater> Your name will be on board NASA’s Europa Clipper spacecraft as it travels 1.8 billion miles to explore Jupiter’s icy moon!
19:30:52 <cheater> if anyone wants to send someone to outer space, here's your chance.
19:30:58 <cheater> i think it's only today, but not sure.
19:37:00 × Tlsx quits (~rscastilh@189.61.140.215) (Remote host closed the connection)
19:38:07 misterfish joins (~misterfis@84.53.85.146)
19:44:32 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:7c0f:c7d3:678b:7d3e) (Remote host closed the connection)
19:44:48 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:7c0f:c7d3:678b:7d3e)
20:01:41 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
20:04:23 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
20:13:44 <monochrom> (Very obscured joke reference) All for-loops are real, unless declared integer. :)
20:14:32 × megaTherion quits (~therion@unix.io) (Read error: Connection reset by peer)
20:14:50 megaTherion joins (~therion@unix.io)
20:16:28 × pieguy128 quits (~pieguy128@67.70.103.21) (Quit: ZNC 1.8.2 - https://znc.in)
20:17:58 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:7c0f:c7d3:678b:7d3e) (Remote host closed the connection)
20:22:24 pieguy128 joins (~pieguy128@bras-base-mtrlpq5031w-grc-49-67-70-103-21.dsl.bell.ca)
20:23:33 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 268 seconds)
20:23:54 TonyStone joins (~TonyStone@074-076-057-186.res.spectrum.com)
20:29:00 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
20:32:27 <c_wraith> monochrom: my programs magically tended to get faster after I discovered DEFINT A-Z
20:34:55 × mikess quits (~sam@user/mikess) (Quit: Lost terminal)
20:39:00 <monochrom> :)
20:39:40 <monochrom> Me too in Haskell with "default (Int)" >:)
20:47:55 Feuermagier joins (~Feuermagi@user/feuermagier)
20:57:10 Xe joins (~cadey@perl/impostor/xe)
20:58:16 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 245 seconds)
20:59:31 × xdminsy quits (~xdminsy@117.147.71.169) (Ping timeout: 245 seconds)
21:19:11 × waldo quits (~waldo@user/waldo) (Ping timeout: 264 seconds)
21:26:23 <monochrom> Javascript needs DEFINT A-Z too >:)
21:30:59 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
21:34:47 × [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
21:48:55 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
21:51:47 Sgeo joins (~Sgeo@user/sgeo)
21:54:24 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 252 seconds)
21:54:43 <cheater> haksell needs DEFSTRICT
21:55:37 × jrm quits (~jrm@user/jrm) (Quit: ciao)
21:56:23 Maxdamantus joins (~Maxdamant@user/maxdamantus)
21:58:23 jrm joins (~jrm@user/jrm)
22:02:59 <nullie> I wonder why Haskell chose wrapping behaviour for Int operations
22:10:20 <monochrom> It is a nice way to implement laziness.
22:11:07 <monochrom> At the minimum you have to spend at least 1 bit to say "I am unevaluated" vs "I am evaluated".
22:12:02 <monochrom> Your only choice is take 64 bits and sacrify 1 bit, or take 64x2 bits and sacrify 64 bits.
22:12:27 <monochrom> GHC (generally the STG machine paper) chose the latter.
22:12:40 <int-e> "wrapping", har
22:12:51 <nullie> I mean why max_bound + 1 wraps and not raises and exception
22:12:53 <int-e> > 2^63 :: Int
22:12:54 <lambdabot> -9223372036854775808
22:13:26 <geekosaur> because raising an exception means adding an extra machine operation for every Int operation
22:13:32 <monochrom> Oh that. Someone made a very pragmatic decision that offended all the theorists and aestheticists.
22:14:53 <geekosaur> most CPUs, and in particular the most common CPUs, don't support automatically raising an exception on wrap
22:15:01 <geekosaur> they just set a bit that has to be tested
22:17:22 <nullie> I see, that makes sense
22:18:19 <geekosaur> (the idea being that you can chain operations using the bit to carry into another word, so Int128 would be relatively cheap)
22:18:51 <monochrom> Fortunately, because career is a zero-sum game, theorists can't write compilers that do what they want, so all they can do is make noise. >:)
22:22:42 not_reserved joins (~not_reser@154.16.157.92)
22:23:11 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Ping timeout: 268 seconds)
22:24:52 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
22:25:19 Pixi` joins (~Pixi@user/pixi)
22:28:11 × Pixi quits (~Pixi@user/pixi) (Ping timeout: 264 seconds)
22:39:01 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 246 seconds)
22:41:00 son0p joins (~ff@181.136.122.143)
22:54:54 ft joins (~ft@p4fc2a1d8.dip0.t-ipconnect.de)
22:55:44 × AlexNoo quits (~AlexNoo@178.34.163.207) (Read error: Connection reset by peer)
22:55:54 × phma quits (~phma@2001:5b0:211f:2df8:fe50:c9dd:d398:6ba) (Read error: Connection reset by peer)
22:56:08 AlexNoo joins (~AlexNoo@178.34.163.207)
22:56:23 phma joins (~phma@host-67-44-208-123.hnremote.net)
22:59:23 Pixi__ joins (~Pixi@user/pixi)
23:02:23 × Pixi` quits (~Pixi@user/pixi) (Ping timeout: 264 seconds)
23:02:47 peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com)
23:18:34 jmdaemon joins (~jmdaemon@user/jmdaemon)
23:19:40 × phma quits (~phma@host-67-44-208-123.hnremote.net) (Read error: Connection reset by peer)
23:20:03 phma joins (phma@2001:5b0:211f:2df8:fe50:c9dd:d398:6ba)
23:20:08 johnw joins (~johnw@69.62.242.138)
23:33:27 chomwitt joins (~chomwitt@2a02:587:7a0f:8900:1ac0:4dff:fedb:a3f1)
23:38:20 <cheater> happy ny
23:38:45 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
23:39:37 <haskellbridge> 15<J​ade> happy new year
23:45:23 misterfish joins (~misterfis@84.53.85.146)
23:46:22 Lycurgus joins (~georg@li1192-118.members.linode.com)
23:46:22 × Lycurgus quits (~georg@li1192-118.members.linode.com) (Changing host)
23:46:22 Lycurgus joins (~georg@user/Lycurgus)
23:51:46 × not_reserved quits (~not_reser@154.16.157.92) (Quit: Client closed)
23:54:52 not_reserved joins (~not_reser@45.88.220.41)
23:57:17 × acidjnk quits (~acidjnk@p200300d6e72b9364c05d2cef6a824841.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
23:57:54 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:450d:70a8:4372:1e73)

All times are in UTC on 2023-12-31.