Home liberachat/#haskell: Logs Calendar

Logs on 2024-06-29 (liberachat/#haskell)

00:00:59 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
00:02:49 × sgarcia quits (sgarcia@swarm.znchost.com) (Quit: Hosted by www.ZNCHost.com)
00:40:47 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
00:51:14 × haskellbridge quits (~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection)
00:58:09 haskellbridge joins (~hackager@syn-024-093-192-219.res.spectrum.com)
00:58:09 ChanServ sets mode +v haskellbridge
01:07:16 × DreamDeckup quits (~DreamDeck@184.145.181.233) (Ping timeout: 246 seconds)
01:07:34 DreamDeckup joins (~DreamDeck@194.127.199.91)
01:16:22 <glguy> andrea_r: seems like you're using alloca incorrectly
01:17:56 <glguy> You shouldn't be peeking it before poking it, and the pointer isn't valid that it passes to the continuation once the continuation returns
01:19:45 <glguy> You need malloc instead of alloca
01:20:17 <glguy> Specifically you can use: new :: Storable a => a -> IO (Ptr a)
01:31:16 danza joins (~francesco@151.46.223.232)
01:32:15 × phma quits (phma@2001:5b0:211c:3a08:71e1:2206:9a0a:f676) (Read error: Connection reset by peer)
01:32:40 phma joins (phma@2001:5b0:211c:3a08:71e1:2206:9a0a:f676)
01:41:23 × CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
01:44:00 CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
01:53:03 × nitrix quits (~nitrix@user/meow/nitrix) (Quit: ZNC 1.8.2 - https://znc.in)
01:54:41 nitrix joins (~nitrix@user/meow/nitrix)
01:56:50 machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net)
02:00:35 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
02:01:27 danza_ joins (~francesco@151.44.142.105)
02:01:39 stiell joins (~stiell@gateway/tor-sasl/stiell)
02:02:03 × machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 264 seconds)
02:03:03 × petrichor quits (~znc-user@user/petrichor) (Quit: ZNC 1.8.2 - https://znc.in)
02:03:58 × danza quits (~francesco@151.46.223.232) (Ping timeout: 246 seconds)
02:04:22 petrichor joins (~znc-user@user/petrichor)
02:46:05 × td_ quits (~td@i53870939.versanet.de) (Ping timeout: 240 seconds)
02:48:07 td_ joins (~td@i5387091C.versanet.de)
03:02:03 × zzz quits (~yin@user/zero) (Ping timeout: 264 seconds)
03:08:26 zzz joins (~yin@user/zero)
03:16:17 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
03:17:18 euleritian joins (~euleritia@dynamic-176-007-199-084.176.7.pool.telefonica.de)
03:17:44 <glguy> andrea_r: even fixing those mistakes I still get the crash on 9.8 but not 9.10
03:18:52 × zzz quits (~yin@user/zero) (Ping timeout: 246 seconds)
03:26:02 zzz joins (~yin@user/zero)
03:32:45 abrantesasf joins (~abrantesa@179.217.48.72)
03:37:33 × DreamDeckup quits (~DreamDeck@194.127.199.91) (Read error: Connection reset by peer)
03:43:37 aaronv joins (~aaronv@user/aaronv)
03:50:08 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
03:50:53 machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net)
04:01:30 × Goodbye_Vincent quits (cyvahl@freakshells.net) (Quit: )
04:02:09 × Pixi quits (~Pixi@user/pixi) (Read error: Connection reset by peer)
04:02:39 × zzz quits (~yin@user/zero) (Ping timeout: 264 seconds)
04:03:48 Pixi joins (~Pixi@user/pixi)
04:05:03 × abrantesasf quits (~abrantesa@179.217.48.72) (Remote host closed the connection)
04:08:24 × joeyadams quits (~joeyadams@2603:6010:5100:2ed:8ec3:58dc:1906:fdfb) (Quit: Leaving)
04:09:02 zzz joins (~yin@user/zero)
04:16:20 × euleritian quits (~euleritia@dynamic-176-007-199-084.176.7.pool.telefonica.de) (Ping timeout: 268 seconds)
04:23:25 euleritian joins (~euleritia@dynamic-176-004-188-141.176.4.pool.telefonica.de)
04:28:57 rekahsoft joins (~rekahsoft@bras-base-orllon1103w-grc-05-70-51-80-57.dsl.bell.ca)
04:30:56 × euleritian quits (~euleritia@dynamic-176-004-188-141.176.4.pool.telefonica.de) (Read error: Connection reset by peer)
04:31:14 euleritian joins (~euleritia@77.22.252.56)
04:32:11 × zzz quits (~yin@user/zero) (Ping timeout: 252 seconds)
04:36:16 Goodbye_Vincent joins (cyvahl@freakshells.net)
04:37:44 <cheater> how would you encode: function f takes a type a and returns another value of type a that is larger than the parameter (larger meaning that all the values held inside the parameter are also held in the return value)
04:38:06 × rekahsoft quits (~rekahsoft@bras-base-orllon1103w-grc-05-70-51-80-57.dsl.bell.ca) (Ping timeout: 255 seconds)
04:38:51 zzz joins (~yin@user/zero)
04:46:29 <c_wraith> It's either trivial due to parametricity, or an ad-hoc mess that can be anything.
04:48:24 × danza_ quits (~francesco@151.44.142.105) (Ping timeout: 268 seconds)
04:54:08 danza_ joins (~francesco@151.44.142.105)
04:55:11 × zzz quits (~yin@user/zero) (Ping timeout: 268 seconds)
04:56:59 <danza_> or a function that was previously partially applied
05:01:32 zzz joins (~yin@user/zero)
05:02:38 × tabemann__ quits (~tabemann@2600:1700:7990:24e0:fc27:3b97:9d0e:b091) (Remote host closed the connection)
05:03:09 tabemann__ joins (~tabemann@2600:1700:7990:24e0:2727:c00:50bb:6a1f)
05:06:56 <cheater> are y'all talking to me
05:07:18 <cheater> i'm talking about a function f :: a -> a
05:07:41 <cheater> but i want to enhance the type to explain that if f x = y where y = ..., then y `largerThan` x for a specific largerThan
05:07:54 <cheater> or something else to that effect
05:10:08 × tomku quits (~tomku@syn-141-126-184-057.res.spectrum.com) (Ping timeout: 252 seconds)
05:12:06 <c_wraith> Do you want to choose a type that actually says what you mean?
05:12:26 <c_wraith> Like... do you mean something more like f :: A -> A?
05:14:34 <c_wraith> (capitalization matters. If you're actually talking about some concrete but opaque type, use capital letters)
05:15:06 <danza_> nah it sounds more like the untyped behaviour is the topic, but the question is not really clear. That `largerThan`, for instance, seems like it would be an argument to `f`
05:16:38 harveypwca joins (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288)
05:17:59 × chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection)
05:19:01 chiselfuse joins (~chiselfus@user/chiselfuse)
05:19:45 <c_wraith> Or maybe you want f :: LargerThan a b => a -> b
05:26:39 × erty quits (~user@user/aeroplane) (Ping timeout: 264 seconds)
05:30:49 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
05:30:59 × wbooze quits (~wbooze@2a02:908:1244:9a20:b98a:b09d:31d2:62c5) (Remote host closed the connection)
05:36:46 × wagle quits (~wagle@quassel.wagle.io) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
05:37:39 wagle joins (~wagle@quassel.wagle.io)
05:48:26 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
05:57:15 acidjnk_new3 joins (~acidjnk@p200300d6e714dc649d6268bc0b57d2a1.dip0.t-ipconnect.de)
05:57:21 euphores joins (~SASL_euph@user/euphores)
06:01:39 danza__ joins (~francesco@151.44.205.235)
06:04:02 × danza_ quits (~francesco@151.44.142.105) (Ping timeout: 252 seconds)
06:24:19 × danza__ quits (~francesco@151.44.205.235) (Ping timeout: 256 seconds)
06:25:13 danza__ joins (~francesco@151.44.205.235)
06:29:40 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:30:36 × danza__ quits (~francesco@151.44.205.235) (Ping timeout: 255 seconds)
06:32:00 × machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 268 seconds)
06:35:05 × zzz quits (~yin@user/zero) (Ping timeout: 268 seconds)
06:41:29 zzz joins (~yin@user/zero)
06:49:11 × zzz quits (~yin@user/zero) (Ping timeout: 264 seconds)
06:55:11 × euleritian quits (~euleritia@77.22.252.56) (Read error: Connection reset by peer)
06:55:23 euleritian joins (~euleritia@77.22.252.56)
06:56:01 zzz joins (~yin@user/zero)
06:57:24 × euleritian quits (~euleritia@77.22.252.56) (Read error: Connection reset by peer)
06:57:48 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
06:57:58 × mikess quits (~mikess@user/mikess) (Ping timeout: 246 seconds)
07:02:02 × harveypwca quits (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) (Quit: Leaving)
07:22:00 target_i joins (~target_i@user/target-i/x-6023099)
07:22:33 × poscat quits (~poscat@user/poscat) (Quit: Bye)
07:22:53 × aaronv quits (~aaronv@user/aaronv) (Ping timeout: 240 seconds)
07:26:50 poscat joins (~poscat@user/poscat)
07:32:01 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
08:01:29 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
08:07:10 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
08:13:06 gmg joins (~user@user/gehmehgeh)
08:16:02 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
08:16:13 euleritian joins (~euleritia@dynamic-176-004-183-092.176.4.pool.telefonica.de)
08:17:09 rvalue- joins (~rvalue@user/rvalue)
08:17:59 × ft quits (~ft@p4fc2ab80.dip0.t-ipconnect.de) (Remote host closed the connection)
08:18:41 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 268 seconds)
08:21:10 rvalue- is now known as rvalue
08:22:49 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:24:10 Nixkernal joins (~Nixkernal@240.17.194.178.dynamic.cust.swisscom.net)
08:46:40 <probie> cheater: Not Haskell, but in a dependently typed language you can have a type like (using Coq's syntax) `forall (x: nat), { y: nat | x < y }` (a function which takes a nat, and returns a pair containing a nat and a proof that the returned nat is bigger than the input)
08:50:36 <geekosaur> I was thinking liquid haskell might be able to do it
08:57:13 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
08:57:19 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 246 seconds)
09:14:06 lxsameer joins (~lxsameer@Serene/lxsameer)
09:15:56 × zzz quits (~yin@user/zero) (Ping timeout: 256 seconds)
09:22:44 zzz joins (~yin@user/zero)
09:23:54 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
09:31:03 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
09:31:26 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds)
09:31:27 bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex)
09:35:49 __monty__ joins (~toonn@user/toonn)
09:42:16 danza__ joins (~francesco@151.44.205.235)
09:42:34 soverysour joins (~soverysou@user/soverysour)
09:50:49 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:53:17 × soverysour quits (~soverysou@user/soverysour) (Ping timeout: 240 seconds)
09:56:45 KaitoDaumoto joins (~asdf@user/kaitodaumoto)
10:01:45 danza_ joins (~francesco@na-19-73-233.service.infuturo.it)
10:03:52 × danza__ quits (~francesco@151.44.205.235) (Read error: Connection reset by peer)
10:07:40 × euleritian quits (~euleritia@dynamic-176-004-183-092.176.4.pool.telefonica.de) (Ping timeout: 246 seconds)
10:09:14 wootehfoot joins (~wootehfoo@user/wootehfoot)
10:13:49 mreh joins (~matthew@host86-160-168-12.range86-160.btcentralplus.com)
10:20:23 sawilagar joins (~sawilagar@user/sawilagar)
10:25:54 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
10:37:11 <cheater> what about using type level lists
10:37:13 <cheater> could that do that
10:38:11 <cheater> ] <c_wraith> Like... do you mean something more like f :: A -> A? <<< well i mean we start with something that just takes the same type and returns it, and then, yeah, we find a type signature that also encodes the property i'm talking about
10:38:39 <cheater> but yeah, probably start with f :: A -> A, i was just trying to say "the input type and output type are the same (ish) "
10:38:48 <cheater> i don't necessarily need it to be polymorphic
10:39:51 <cheater> <c_wraith> Or maybe you want f :: LargerThan a b => a -> b <<< i was thinking about that, but how would i implement LargerThan?
10:44:09 <mreh> @paste
10:44:09 <lambdabot> A pastebin: https://paste.debian.net/
10:45:40 <danza_> it sounded like you needed at least a `largerThan` passed as an arg to the function, because you want it to return a different value in a way that's controlled by f
10:47:10 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
10:49:05 <mreh> Am I mistaken in thinking `Symbol` and `Type` are different kinds? https://paste.debian.net/1321825/
10:50:04 <mreh> Or can GHC not infer kinds from signatures like it can for type signatures
10:53:48 <mreh> full code with better highlighting https://paste.debian.net/1321828/
10:54:15 euleritian joins (~euleritia@dynamic-176-001-128-156.176.1.pool.telefonica.de)
10:58:18 <mreh> given the instance head has to match the indexed type, why do I still need to supply a kind signature I guess is my question
10:58:21 <danza_> huh...
10:58:26 <danza_> > :k Type
10:58:28 <lambdabot> <hint>:1:1: error: parse error on input ‘:’
10:58:38 <danza_> % :k Type
10:58:38 <yahb2> <interactive>:1:1: error: ; Not in scope: type constructor or class ‘Type’
10:58:43 × euleritian quits (~euleritia@dynamic-176-001-128-156.176.1.pool.telefonica.de) (Ping timeout: 268 seconds)
10:59:11 <danza_> @hoogle Type
10:59:11 <lambdabot> Data.Kind type Type = Type
10:59:11 <lambdabot> module GHC.Exception.Type
10:59:11 <lambdabot> GHC.Exts data TYPE (a :: RuntimeRep)
10:59:22 <danza_> % import Data.Kind
10:59:22 <yahb2> <no output>
10:59:26 <danza_> % :k Type
10:59:27 <yahb2> Type :: *
10:59:33 <danza_> % :k Symbol
10:59:34 <yahb2> <interactive>:1:1: error: ; Not in scope: type constructor or class ‘Symbol’
10:59:41 <danza_> @hoogle Symbol
10:59:42 <lambdabot> Text.Read Symbol :: String -> Lexeme
10:59:42 <lambdabot> Text.Read.Lex Symbol :: String -> Lexeme
10:59:42 <lambdabot> GHC.TypeLits data Symbol
10:59:43 <mreh> GHC.TypeLits.Symbol
10:59:49 × zzz quits (~yin@user/zero) (Ping timeout: 246 seconds)
11:00:06 <danza_> % import GHC.TypeLits.Symbol
11:00:06 <yahb2> <no location info>: error: ; Could not find module ‘GHC.TypeLits.Symbol’ ; It is not a module in the current program, or in any known package.
11:00:10 <danza_> % import GHC.TypeLits
11:00:10 <yahb2> <no output>
11:00:13 <danza_> % :k Symbol
11:00:13 <yahb2> Symbol :: *
11:00:20 <danza_> yeah same kind
11:01:16 <mreh> Those are terms though. I'm using them promotoed to the type level I thought.
11:01:50 <mreh> Maybe I'm misunderstanding something. *goes to the back of the class*
11:01:53 <danza_> you mean `Type` and `Symbol` are terms?
11:03:07 <mreh> yeah https://hackage.haskell.org/package/ghc-prim-0.11.0/docs/src/GHC.Types.html#Symbol
11:03:29 <mreh> hmm. maybe not
11:03:59 <danza_> huh isn't that a different module anyway?
11:04:41 <danza_> but may be exported through TypeLits, i don't know
11:06:46 zzz joins (~yin@user/zero)
11:19:43 rosco joins (~rosco@175.136.155.137)
11:23:38 emm joins (~emm@user/edmeme)
11:31:44 wbooze joins (~wbooze@2a02:908:1244:9a20:dc6b:1b70:a3f1:ce01)
11:32:49 madhavanmiui joins (~madhavanm@2409:40f4:1035:24a8:8000::)
11:34:23 × madhavanmiui quits (~madhavanm@2409:40f4:1035:24a8:8000::) (Client Quit)
11:44:52 × wbooze quits (~wbooze@2a02:908:1244:9a20:dc6b:1b70:a3f1:ce01) (Quit: Konversation terminated!)
11:46:31 wbooze joins (~wbooze@2a02:908:1244:9a20:dc6b:1b70:a3f1:ce01)
11:48:49 killy joins (~killy@staticline-31-183-161-180.toya.net.pl)
11:50:55 × emm quits (~emm@user/edmeme) (Ping timeout: 246 seconds)
12:06:15 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
12:06:51 × danza_ quits (~francesco@na-19-73-233.service.infuturo.it) (Ping timeout: 268 seconds)
12:13:30 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 255 seconds)
12:18:53 × acidjnk_new3 quits (~acidjnk@p200300d6e714dc649d6268bc0b57d2a1.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
12:45:48 lxsameer joins (~lxsameer@Serene/lxsameer)
12:47:33 × wbooze quits (~wbooze@2a02:908:1244:9a20:dc6b:1b70:a3f1:ce01) (Quit: Konversation terminated!)
12:55:30 wbooze joins (~wbooze@2a02:908:1244:9a20:7544:9b2d:46bd:449a)
12:59:49 × nek0 quits (~nek0@user/nek0) (Quit: The Lounge - https://thelounge.chat)
13:18:32 harveypwca joins (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288)
13:20:23 × RiXSon quits (~rixson@77-234-86-141.pool.digikabel.hu) (Ping timeout: 264 seconds)
13:22:01 RiXSon joins (~rixson@178-164-206-66.pool.digikabel.hu)
13:25:52 × wbooze quits (~wbooze@2a02:908:1244:9a20:7544:9b2d:46bd:449a) (Quit: Konversation terminated!)
13:33:05 soverysour joins (~soverysou@81.196.150.219)
13:33:05 × soverysour quits (~soverysou@81.196.150.219) (Changing host)
13:33:05 soverysour joins (~soverysou@user/soverysour)
13:36:02 × cheater quits (~Username@user/cheater) (Ping timeout: 256 seconds)
13:36:33 madeleine-sydney joins (~madeleine@c-71-229-185-228.hsd1.co.comcast.net)
13:37:49 × soverysour quits (~soverysou@user/soverysour) (Ping timeout: 268 seconds)
13:38:42 × madeleine-sydney quits (~madeleine@c-71-229-185-228.hsd1.co.comcast.net) (Remote host closed the connection)
13:41:29 ft joins (~ft@i5C743B07.versanet.de)
13:43:06 wbooze joins (~wbooze@2a02:908:1244:9a20:ac6f:59e0:9f9e:dd87)
13:47:55 × rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer)
13:48:25 rvalue joins (~rvalue@user/rvalue)
13:49:10 × rosco quits (~rosco@175.136.155.137) (Quit: Lost terminal)
13:51:55 acidjnk_new3 joins (~acidjnk@p200300d6e714dc64f17ffbaa6306596b.dip0.t-ipconnect.de)
13:52:33 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
13:53:27 Guest52 joins (~Guest52@97-117-76-196.slkc.qwest.net)
13:56:13 <Guest52> When using nonmoving-gc is it possible somehow at a specific point in my program to do a full gc more along the lines of a moving collection? A problem we are seeing is when using moving collection we see large pauses (latency) during gc. The nonmoving collector solves this, but the problem there is we are not seeing memory released at all with
13:56:13 <Guest52> nonmoving on.
14:20:35 × killy quits (~killy@staticline-31-183-161-180.toya.net.pl) (Quit: leaving)
14:24:25 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
14:30:02 machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net)
14:42:50 × inedia quits (~irc@2600:3c00:e000:287::1) (Remote host closed the connection)
14:45:36 inedia joins (~irc@2600:3c00:e000:287::1)
14:49:27 <xerox> is there somebody here that knows why stackage lost all of the links to all of the hoogle searches?
15:00:26 <haskellbridge> <sm> got an example ?
15:04:14 madhavanmiui joins (~madhavanm@152.58.212.232)
15:04:39 × madhavanmiui quits (~madhavanm@152.58.212.232) (Client Quit)
15:08:43 <xerox> sm: any search on stackage.org
15:09:32 <xerox> you can pick any set https://www.stackage.org/nightly-2024-06-28/hoogle?q=Data.Set https://www.stackage.org/lts-22.27/hoogle?q=Data.Set https://www.stackage.org/lts-22.20/hoogle?q=Data.Set
15:27:16 <xerox> sm: curiously package pages are also devoid of links to the modules' docs https://www.stackage.org/lts-22.27/package/containers-0.6.7
15:30:24 × wbooze quits (~wbooze@2a02:908:1244:9a20:ac6f:59e0:9f9e:dd87) (Quit: Konversation terminated!)
15:32:23 <haskellbridge> <sm> ah, all stackage.org hoogle searches returning "The given Hoogle database is not available." eh. Seems like a recent outage
15:32:31 mikess joins (~mikess@user/mikess)
15:32:50 <xerox> :/
15:33:15 <haskellbridge> <sm> reported in the stackage room
15:33:43 <xerox> is it on irc as well?
15:37:56 emm joins (~emm@user/edmeme)
15:38:59 × destituion quits (~destituio@2a02:2121:6cb:fbc3:5940:6cf4:b639:63ef) (Ping timeout: 268 seconds)
15:39:17 joeyadams joins (~joeyadams@2603:6010:5100:2ed:9050:10e4:443d:2f1c)
15:58:38 <zzz> if i use 'cabal install program', which directory would that program consider its root directory?
15:59:34 <mreh> xerox: I thought we've not been able to search within snapshots for a while
15:59:51 <mreh> consuming too much disk space or some such
16:00:06 <xerox> mreh: does any other kind of search work?
16:01:13 <EvanR> Guest52, did you try performMajorGC
16:01:15 <mreh> hmm no, but it used to revert to the latest I thought
16:01:28 <EvanR> or performBlockingMajorGC
16:01:45 <EvanR> in System.Mem
16:02:15 <xerox> when the default search box on the page doesn't work something's iffy
16:02:18 × mreh quits (~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Quit: leaving)
16:02:41 mreh joins (~matthew@host86-160-168-12.range86-160.btcentralplus.com)
16:02:42 <zzz> i guess it's the cwd from where you launched it
16:05:45 <haskellbridge> <sm> xerox: theres an irc channel.. but no, not really
16:08:43 <mreh> looks like people have reported it in the past on github
16:08:49 <mreh> https://github.com/commercialhaskell/stackage/issues/7314
16:09:15 × CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
16:11:42 CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
16:12:11 <haskellbridge> <4d5a9000> hi... I'm new to Haskell, can I ask a question here?
16:12:20 <xerox> please do
16:12:30 <haskellbridge> <4d5a9000> ghci> succ()
16:12:30 <haskellbridge> *** Exception: Prelude.Enum.().succ: bad argumentWhy does this cause a runtime exception instead of a type error?
16:12:49 <xerox> mreh: that gives some hope that's a faily mechanical fix :)
16:13:05 <mreh> It still might not help you since this: https://github.com/commercialhaskell/stackage-server/issues/305
16:13:19 <mreh> they only support searching in one LTS and one Nightly
16:14:00 <xerox> 4d5a9000: I think that's ()'s succ implementation
16:14:14 <monochrom> What type error would it be?
16:14:55 <mreh> > fromEnum ()
16:14:57 <lambdabot> 0
16:15:05 <haskellbridge> <4d5a9000> monochrom something likeghci> succ(1,2)
16:15:05 <haskellbridge> ... long message truncated: https://kf8nh.com/_matrix/media/v3/download/kf8nh.com/fqYbOiweVCIfgxInGNBIjgNu (6 lines)
16:15:43 <mreh> kinda weird () has an Enum instance
16:15:56 <xerox> https://hackage.haskell.org/package/ghc-internal-9.1001.0/docs/src/GHC.Internal.Enum.html it's in here
16:16:12 <mauke> > [() .. ()]
16:16:14 <lambdabot> [()]
16:16:23 <mreh> it's not superficially very useful
16:16:29 <mauke> I mean, technically () is an enum type with one element
16:16:55 <mreh> > toEnum 2 :: Bool
16:16:56 <lambdabot> *Exception: Prelude.Enum.Bool.toEnum: bad argument
16:17:19 <joeyadams> That should return FileNotFound.
16:17:21 <mauke> > toEnum maxBound :: Integer
16:17:22 <lambdabot> 9223372036854775807
16:17:37 <mreh> > succ maxBound :: Int
16:17:38 <lambdabot> *Exception: Prelude.Enum.succ{Int}: tried to take `succ' of maxBound
16:17:55 <mreh> lol
16:18:19 <haskellbridge> <4d5a9000> Well that's weird but I'll just take it
16:18:38 <mauke> > succ 3.14
16:18:38 × euphores quits (~SASL_euph@user/euphores) (Read error: Connection reset by peer)
16:18:39 <lambdabot> 4.140000000000001
16:18:43 <xerox> 4d5a9000 keep in mind that parens are not function application syntax here, () is the one element of the () type (called "unit"), and (1,2) is a tuple
16:18:44 <mauke> ... I guess
16:18:47 <mreh> Whoever wrte Enum didn't want () to feel left out
16:19:22 <mreh> mauke: haha, that one is amusing
16:20:12 <mreh> > toEnum 3.141
16:20:13 <lambdabot> error:
16:20:14 <lambdabot> • Could not deduce (Fractional Int)
16:20:14 <lambdabot> arising from the literal ‘3.141’
16:20:39 <mreh> whoops
16:20:50 <mreh> > fromEnum 3.141
16:20:52 <lambdabot> 3
16:21:17 <haskellbridge> <4d5a9000> xerox I know that, but it still seems weird for "succ ()" to pass the type check xD
16:22:04 <xerox> I guess somebody with enough pull needed the Enum instance for … something, and it can't do much else
16:22:20 <mauke> > [1.5 .. pi]
16:22:22 <lambdabot> [1.5,2.5,3.5]
16:23:35 × Pixi quits (~Pixi@user/pixi) (Quit: Leaving)
16:23:40 <mreh> I can't think of an example where `succ` is total
16:23:49 <mreh> why should () not have an Enum instance
16:24:01 <Leary> I doubt it's there because someone needed it. Instances are written when they morally should exist. () is enumerable, so it has Enum. That's it.
16:24:13 <mreh> exactly
16:26:02 <haskellbridge> <4d5a9000> Also why does "length(repeat(succ()))" not throw an exception, and will just run forever?
16:26:23 <xerox> > length (repeat undefined)
16:26:32 <lambdabot> mueval.real: ExitFailure 1
16:26:48 <xerox> length doesn't evaluate the elements in the list, only the spine that repeat keeps producing
16:27:20 <mreh> 4d5a9000: laziness
16:27:24 <mauke> > error "oops"
16:27:25 <lambdabot> *Exception: oops
16:27:31 <mauke> > let x = error "oops" in length [x, x]
16:27:32 <lambdabot> 2
16:28:06 <mauke> mreh: Integer.succ is probably total
16:28:21 <mreh> > succ maxBound :: Integer
16:28:23 <lambdabot> error:
16:28:23 <lambdabot> • No instance for (Bounded Integer)
16:28:23 <lambdabot> arising from a use of ‘maxBound’
16:28:24 <mauke> inb4 most-positive-bignum
16:28:43 <mreh> no max bound?!
16:28:49 <mauke> unboundled
16:29:03 <c_wraith> technically, there's a max bound of around 2^(2^64)
16:29:14 <c_wraith> but you don't have that much RAM
16:29:18 euphores joins (~SASL_euph@user/euphores)
16:29:45 <monochrom> When I was a kid, I conflated "largest" with "largest expressible under a language", so I thought the largest number was something like 999 billion 999 million ...
16:29:58 <haskellbridge> <4d5a9000> That's 16 exabytes of RAM
16:30:20 <c_wraith> And that max bound is only an implementation detail
16:30:28 <c_wraith> whenever we get 128-bit GHC, it'll go up. :)
16:30:34 <monochrom> :)
16:30:41 <monochrom> \∩/ 128-bit GHC
16:30:48 <mreh> okay, that's one `succ` that's total
16:32:24 <mauke> https://www.jwz.org/blog/2008/03/most-positive-bignum/
16:34:23 <monochrom> Haha bit-level hacks in Lisp?!
16:35:07 <monochrom> And here we say/scaremonger that such hacks are UB in C.
16:35:23 <dolio> monochrom: Everyone knows 24 is the highest number.
16:36:19 <monochrom> Wait, why is 24 the highest number?
16:36:33 <dolio> https://www.youtube.com/watch?v=9P2ROAbQZYw
16:38:11 <monochrom> haha OK
16:44:42 cheater joins (~Username@user/cheater)
16:45:04 Pixi joins (~Pixi@user/pixi)
16:46:55 Sgeo joins (~Sgeo@user/sgeo)
16:58:32 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 268 seconds)
17:05:36 bolivood joins (~bolivood@user/bolivood)
17:09:29 × phma quits (phma@2001:5b0:211c:3a08:71e1:2206:9a0a:f676) (Read error: Connection reset by peer)
17:10:09 phma joins (~phma@host-67-44-208-9.hnremote.net)
17:27:06 wootehfoot joins (~wootehfoo@user/wootehfoot)
17:30:55 aaronv joins (~aaronv@user/aaronv)
17:35:57 <EvanR> I thought 420 was the highest
17:50:13 × harveypwca quits (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) (Quit: Leaving)
17:52:53 euleritian joins (~euleritia@dynamic-176-001-133-228.176.1.pool.telefonica.de)
17:54:17 × EvanR quits (~EvanR@user/evanr) (Quit: Leaving)
17:54:43 × bolivood quits (~bolivood@user/bolivood) (Quit: Leaving)
17:56:29 soverysour joins (~soverysou@user/soverysour)
18:14:44 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
18:14:59 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds)
18:16:05 Lord_of_Life_ is now known as Lord_of_Life
18:35:44 pavonia joins (~user@user/siracusa)
18:43:22 alexherbo2 joins (~alexherbo@2a02-8440-3216-58a7-4198-eabe-8a40-71c0.rev.sfr.net)
18:43:31 × joeyadams quits (~joeyadams@2603:6010:5100:2ed:9050:10e4:443d:2f1c) (Quit: Leaving)
18:45:13 × aaronv quits (~aaronv@user/aaronv) (Ping timeout: 268 seconds)
18:49:25 aaronv joins (~aaronv@user/aaronv)
18:51:26 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
18:55:25 destituion joins (~destituio@2a02:2121:6cb:fbc3:5940:6cf4:b639:63ef)
18:56:25 euphores joins (~SASL_euph@user/euphores)
18:57:00 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
19:01:49 × soverysour quits (~soverysou@user/soverysour) (Ping timeout: 256 seconds)
19:20:27 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
19:22:37 madeleine-sydney joins (~madeleine@c-71-229-185-228.hsd1.co.comcast.net)
19:25:02 × chiselfuse quits (~chiselfus@user/chiselfuse) (Ping timeout: 260 seconds)
19:25:58 × bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds)
19:26:51 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
19:27:03 chiselfuse joins (~chiselfus@user/chiselfuse)
19:27:42 bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex)
19:35:13 × CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
19:37:55 CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
19:45:35 JimL joins (~quassel@89.162.16.26)
19:48:59 × bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
19:49:20 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
19:50:00 bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex)
20:12:28 robotsnowfall joins (~robotsnow@user/robotsnowfall)
20:14:22 × madeleine-sydney quits (~madeleine@c-71-229-185-228.hsd1.co.comcast.net) (Remote host closed the connection)
20:21:58 × robotsnowfall quits (~robotsnow@user/robotsnowfall) (Quit: ZNC 1.9.0 - https://znc.in)
20:22:21 robotsnowfall joins (~robotsnow@user/robotsnowfall)
20:27:20 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
20:37:10 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:48:15 × gabiruh_ quits (~gabiruh@vps19177.publiccloud.com.br) (Ping timeout: 264 seconds)
20:49:10 gabiruh joins (~gabiruh@vps19177.publiccloud.com.br)
20:49:47 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 264 seconds)
20:51:13 noumenon joins (~noumenon@113.51-175-156.customer.lyse.net)
20:55:50 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
21:10:34 × mikess quits (~mikess@user/mikess) (Ping timeout: 246 seconds)
21:10:38 <haskellbridge> <zwro> > succ ()
21:11:18 <zzz> > succ ()
21:11:19 <lambdabot> *Exception: Prelude.Enum.().succ: bad argument
21:11:29 <haskellbridge> <zwro> thanks
21:12:57 <haskellbridge> <zwro> why this error? why not 'No instance for Enum () ...'
21:13:09 mikess joins (~mikess@user/mikess)
21:13:37 <geekosaur> > enumFrom ()
21:13:38 <lambdabot> [()]
21:13:53 <geekosaur> some parts of `Enum` work, just not `succ`
21:14:10 <zzz> oh damn
21:14:22 <zzz> :i Enum
21:14:34 <geekosaur> which is the same behavior you get if you derive `Enum` on a single-constructor data type
21:14:47 <zzz> this is not good
21:14:59 <geekosaur> also, ghci doesn't do :i
21:15:00 <haskellbridge> <zwro> agree
21:15:05 <geekosaur> %% :i ()
21:15:06 <yahb2> https://paste.tomsmeding.com/ViUAlIlm
21:15:37 × machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 272 seconds)
21:15:57 <zzz> geekosaur: ghci doesn't do i?
21:16:04 <zzz> i think it does
21:16:09 <geekosaur> lambdabot isn't ghci
21:16:25 <geekosaur> yahb is, which is why I directed it there
21:16:26 × Guest52 quits (~Guest52@97-117-76-196.slkc.qwest.net) (Quit: Client closed)
21:18:31 <zzz> ah, you meant 'lambdabot doesn't do :i'
21:18:34 <zzz> right
21:18:59 <geekosaur> oh, sorry yes
21:19:42 <geekosaur> I was halfweay between lambdabot (not ghci) and yahb2 (ghci) and got muddled because I've had maybe 4 hours of sleep 😞
21:20:06 <zzz> so wait, when creating a class instance we don't need to satisfy {-# MINIMAL ... #-} ?
21:20:46 <geekosaur> eh? the method exists, it just fails because there's no successor in a single-constructor type
21:20:56 <geekosaur> > succ True
21:20:57 <lambdabot> *Exception: Prelude.Enum.Bool.succ: bad argument
21:21:02 <zzz> oh
21:21:03 <geekosaur> same error
21:21:11 <zzz> > succ False
21:21:12 <lambdabot> True
21:21:14 <zzz> i get it
21:21:26 <zzz> succ is not total :(
21:22:43 <zzz> hate the idea of deriving non-total functions
21:23:09 <geekosaur> what's it supposed to do?
21:23:20 <geekosaur> also I think the Report specifies this
21:23:45 <geekosaur> and it's recoverable if you also derive Bounded
21:23:54 <geekosaur> > maxBound :: ()
21:23:56 <lambdabot> ()
21:24:04 <zzz> succ :: Enum a -> a -> Maybe a ?
21:24:18 <geekosaur> sadly that's not how the Report definees it
21:24:21 <zzz> s/->/=>
21:24:55 <zzz> sadly ye
21:25:06 <zzz> i personally don't use succ
21:26:09 <zzz> https://github.com/jrvieira/zero/blob/d5a6356bf1ee5deee254e5881823f3b38e324bf6/src/Zero.hs#L44-L56
21:27:38 <geekosaur> https://www.haskell.org/onlinereport/haskell2010/haskellch6.html#dx13-131007
21:27:57 <geekosaur> (I really wish they provided links to subsections)
21:30:08 <zzz> i have a question
21:30:22 <zzz> :t 99999999999999999999999999999999999999999999999999999999999999
21:30:22 <geekosaur> it also opens a can of worms because you have to ask when it produces Nothing for non-derived instances witgh gaps
21:30:23 <lambdabot> Num p => p
21:30:37 <zzz> geekosaur: good point
21:31:04 <zzz> in this case, what can p be other than Integer?
21:31:13 <geekosaur> Scientific
21:31:38 <geekosaur> https://hackage.haskell.org/package/scientific
21:32:02 <geekosaur> it can also be Double, with some loss of precision (but that's expected for floating point)
21:32:29 <geekosaur> also CReal from the numbers package
21:32:40 <zzz> so literals still work like this even if no possible instances are in scope?
21:32:44 <geekosaur> yes
21:32:52 <zzz> oh that's weird
21:33:02 <geekosaur> again, that's Report-mandated
21:34:24 <geekosaur> the Report tends to specify a lowest-common-denominator behavior
21:35:06 <geekosaur> in this case, the spec is "does it have a decimal point or exponent? store as a Rational and wrap in fromRational. otherwise, store as Integer and wrap in fromInteger
21:35:25 <geekosaur> "
21:36:51 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:37:17 EvanR joins (~EvanR@user/evanr)
21:37:19 <zzz> is there something like {-# LANGUAGE NoImplicitGHC #-} ?
21:37:23 <zzz> :P
21:37:52 <zzz> i guess that would be GHC and not LANGUAGE
21:41:18 <monochrom> What would that mean?
21:41:37 <zzz> well... the GHC module is always implicitly imported, isn't it?
21:41:51 <monochrom> Who told you that? But the answer is no.
21:42:03 <zzz> (what i'm trying to do is not having access to Integer)
21:42:07 <geekosaur> Prelude is the only implicitly imported module, and this has nothing to do with Prelude, it's compiler behavior
21:42:26 <zzz> oh ok
21:42:32 <zzz> so where does Integer live?
21:42:45 <monochrom> Integer is specified by Haskell2010 and before. Hugs has to provide Integer, too.
21:43:02 <zzz> i see
21:43:17 <zzz> so we can't get rid of it?
21:43:28 <geekosaur> and that compiler behavior is likely to break your intent because it's wired-in. it's possible that NoImplicitPrelude + the RebindableSyntax big hammer would work
21:43:51 <geekosaur> but only by letting you provide your own Integer
21:44:02 <geekosaur> it's deeply wired into the compiler
21:44:03 <monochrom> I am too lazy to even call it an XY problem, so I will just say no we can't get rid of it.
21:44:52 <zzz> monochrom: i'm just curiously exploring the edges of the language. no X nor Y problem
21:46:34 <geekosaur> you would need some modification / LANGUAGE pragma that disabled Report-specified numeric behavior. which would probably be difficult to implement, since obeying the Report results in Integer and Rational being deeply wired in
21:46:57 <geekosaur> it also has been complicating the move toward runtime-selectable Integer backends
21:47:42 <geekosaur> (Rational reduces to Integer since in practice it's just two Integers)
21:48:04 madeleine-sydney joins (~madeleine@c-71-229-185-228.hsd1.co.comcast.net)
21:48:14 <zzz> that makes sense. literals should be guaranteed to have at least one correponding type
21:49:20 <zzz> now if literals should ideally exist, that's another question
21:49:38 <monochrom> Frankly and bluntly I have trouble logically reconciling "curious and exploring the edge of the language" with having never read the Haskell 2010 Report (or even 98). But I'll drop the issue now.
21:49:48 dcoutts joins (~duncan@2a02:8012:ae9a:0:9a7e:1cf5:7c51:c650)
21:51:38 <geekosaur> I don't, since "the language" in practice has diverged significantly from the Report (FAM, Num's "superclasses", FTP among others, not to mention all the actual language extensions although GHC at least tries to keep those hidden behind LANGUAGE pragmas for the most part)
21:52:11 <zzz> monochrom: i hear you. it comes down to opportunity. the investment of reading the report is not worth it for me (i use haskell recreationally) and i had the opportunity to ask here, by chance. i happen to be relaxing and just chatting
21:54:19 <zzz> if i ever use haskell for work (i wish) i'll read it gladly
21:55:20 × noumenon quits (~noumenon@113.51-175-156.customer.lyse.net) (Read error: Connection reset by peer)
21:55:37 <monochrom> geekosaur: Even in music where musicians deviate and/or disregard theories of music and harmony all the time, the consensus is "you have to know the rules before you break them".
21:56:25 <monochrom> The Haskell 2010 Report is a baseline. And then one can talk about which parts of it are superceded.
21:57:52 <monochrom> And for things like the detailed strictness of "case ~(x : (y : zs))", it is still Haskell 2010.
21:58:06 × mreh quits (~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Ping timeout: 256 seconds)
21:58:43 <monochrom> err "case ... of ~(x : (y : zs))"
21:59:31 <zzz> monochrom: some musicians agree, others disagree. some very highly regarded musicians never learned basic theory
21:59:38 <zzz> think of it like this: https://www.youtube.com/watch?v=NTYg9cgHvkA
21:59:39 <zzz> :)
21:59:46 canta parts (~canta@user/canta) (WeeChat 3.5)
21:59:59 <haskellbridge> <sm> zzz true
22:00:12 <geekosaur> I'll agree with that
22:00:34 <geekosaur> for that matter, I have no formal CS training and barely any programming training (I once took a fortran course)
22:01:27 <zzz> that being said, i recognise the importance of knowing
22:02:21 <geekosaur> but in this case, I'll also argue that many of the rules you have to know about aren't just from the Report; they're from how early GHC devs chose to implement them and the resulting technical debt
22:02:30 <geekosaur> cf. Integer behavior
22:02:52 <geekosaur> and you can't get that even from the GHC manual
22:04:12 <geekosaur> much of it you have to get by reading the source to the ghc-bignum package
22:05:21 <geekosaur> which you won't even know about unless you get curious about ghc-pkg --global output, or pay very close attention to ghc release notes
22:07:29 × aaronv quits (~aaronv@user/aaronv) (Ping timeout: 268 seconds)
22:11:00 aaronv joins (~aaronv@user/aaronv)
22:11:48 × mikess quits (~mikess@user/mikess) (Ping timeout: 268 seconds)
22:16:26 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:38:19 × emm quits (~emm@user/edmeme) (Ping timeout: 268 seconds)
22:46:10 × xdminsy quits (~xdminsy@117.147.70.231) (Quit: Konversation terminated!)
22:46:24 × aaronv quits (~aaronv@user/aaronv) (Remote host closed the connection)
22:46:36 xdminsy joins (~xdminsy@117.147.70.231)
22:46:43 aaronv joins (~aaronv@user/aaronv)
22:48:30 mikess joins (~mikess@user/mikess)
23:01:07 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
23:07:11 × mikess quits (~mikess@user/mikess) (Ping timeout: 264 seconds)
23:10:53 × acidjnk_new3 quits (~acidjnk@p200300d6e714dc64f17ffbaa6306596b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
23:17:10 × aaronv quits (~aaronv@user/aaronv) (Ping timeout: 268 seconds)
23:17:59 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
23:27:20 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
23:28:32 wootehfoot joins (~wootehfoo@user/wootehfoot)
23:29:25 × sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 256 seconds)
23:30:58 aaronv joins (~aaronv@user/aaronv)
23:34:48 justsomeguy joins (~justsomeg@user/justsomeguy)
23:41:01 × madeleine-sydney quits (~madeleine@c-71-229-185-228.hsd1.co.comcast.net) (Remote host closed the connection)
23:42:10 × alexherbo2 quits (~alexherbo@2a02-8440-3216-58a7-4198-eabe-8a40-71c0.rev.sfr.net) (Remote host closed the connection)
23:55:06 OscarZ joins (~oscarz@mobile-access-5d6ab7-137.dhcp.inet.fi)
23:55:16 × pavonia quits (~user@user/siracusa) (Read error: Connection reset by peer)
23:57:52 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
23:59:01 pavonia joins (~user@user/siracusa)

All times are in UTC on 2024-06-29.