Home liberachat/#haskell: Logs Calendar

Logs on 2022-06-11 (liberachat/#haskell)

00:03:11 × Tuplanolla quits (~Tuplanoll@91-159-69-63.elisa-laajakaista.fi) (Quit: Leaving.)
00:03:12 kaskal joins (~kaskal@089144205066.atnat0014.highway.webapn.at)
00:03:47 × kaskal- quits (~kaskal@213-225-35-123.nat.highway.a1.net) (Ping timeout: 255 seconds)
00:04:33 × Qudit quits (~user@user/Qudit) (Remote host closed the connection)
00:05:12 jakalx parts (~jakalx@base.jakalx.net) ()
00:06:57 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
00:07:17 jakalx joins (~jakalx@base.jakalx.net)
00:08:44 × sagax quits (~sagax_nb@user/sagax) (Ping timeout: 255 seconds)
00:09:49 Qudit joins (~user@user/Qudit)
00:14:17 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.5)
00:18:11 Mensan23421 joins (~Mensan234@S01069050ca4e3573.cg.shawcable.net)
00:18:22 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 244 seconds)
00:19:37 × Mensan23421 quits (~Mensan234@S01069050ca4e3573.cg.shawcable.net) (Client Quit)
00:19:57 Mga joins (~Mga@S01069050ca4e3573.cg.shawcable.net)
00:20:38 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
00:20:44 vicfred joins (~vicfred@user/vicfred)
00:22:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
00:25:44 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 272 seconds)
00:27:03 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
00:29:07 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
00:30:04 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
00:32:13 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
00:32:36 × Kaipei quits (~Kaiepi@156.34.47.253) (Remote host closed the connection)
00:32:50 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
00:32:55 Kaipei joins (~Kaiepi@156.34.47.253)
00:33:26 cheater joins (~Username@user/cheater)
00:33:31 × pie_ quits (~pie_bnc@user/pie/x-2818909) ()
00:33:52 pie_ joins (~pie_bnc@user/pie/x-2818909)
00:38:51 littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
00:39:37 × stackdroid18 quits (~stackdroi@user/stackdroid) (Quit: hasta la vista... tchau!)
00:40:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
00:43:47 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
00:47:04 × littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
00:47:20 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
00:49:33 × k8yun quits (~k8yun@user/k8yun) (Quit: Leaving)
00:50:00 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 248 seconds)
00:51:18 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
00:52:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
00:54:17 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
00:54:25 <Mga> my boyfriend is a staffer
00:54:29 <Mga> and contributed of haskell
00:58:53 <Mga> i enjoy running simulations
00:59:07 <Mga> various inputs, etc. haha.
01:01:32 causal joins (~user@50.35.83.177)
01:02:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
01:03:56 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
01:10:32 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:14:26 × xff0x quits (~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 255 seconds)
01:16:39 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:19:20 × mimmy_ quits (~mimmy@185.153.179.38) (Ping timeout: 244 seconds)
01:23:21 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 258 seconds)
01:24:54 <dragestil> does anyone know how to get the hls installed from ghcup have brittany support?
01:25:02 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
01:25:55 <dragestil> or, alternatively, is there a way to disable formatting-on-save by hls?
01:26:54 xff0x joins (~xff0x@b133147.ppp.asahi-net.or.jp)
01:27:57 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 258 seconds)
01:28:17 cyphase joins (~cyphase@user/cyphase)
01:28:56 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 248 seconds)
01:28:58 <dragestil> in hls configuration, there's formattingProvider, but it seems there's no knob to make hls hands off formatter
01:30:11 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 244 seconds)
01:30:46 mvk joins (~mvk@2607:fea8:5ce3:8500::ba9a)
01:30:46 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
01:39:03 yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
01:39:28 simendsj` joins (~user@78-72-230-58-no2730.tbcn.telia.com)
01:41:06 × simendsjo quits (~user@78-72-230-58-no2730.tbcn.telia.com) (Ping timeout: 272 seconds)
01:42:35 <Bulby[m]> I'm starting to write a bytecode emitter now -would the preferred way to get opcodes be deriving `Enum` ?
01:45:51 ChanServ sets mode +o litharge
01:45:52 litharge sets mode -bo *!*@151.52.164.1 litharge
01:48:45 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
01:52:07 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
01:53:46 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 272 seconds)
01:54:02 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 255 seconds)
01:54:59 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
01:55:10 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
01:55:36 Haskelytic joins (~Haskelyti@37.111.212.211)
01:56:36 <Haskelytic> ```isAssociative :: Eq a => (a -> a -> a) -> a -> a -> a -> Bool
01:56:37 <Haskelytic> isAssociative (<>) x y z =
01:56:37 <Haskelytic>     x <> (y <> z) == (x <> y) <> z
01:56:38 <Haskelytic> isSemigroup :: (Eq a, Semigroup a) => a -> a -> a -> Bool
01:56:38 <Haskelytic> isSemigroup = isAssociative (<>)
01:56:39 <Haskelytic> hasLeftIdentity :: (Eq a, Monoid a) => a -> Bool
01:56:39 <Haskelytic> hasLeftIdentity m = mempty <> m == m
01:56:40 <Haskelytic> hasRightIdentity :: (Eq a, Monoid a) => a -> Bool
01:56:40 <Haskelytic> hasRightIdentity m = m <> mempty == m
01:56:41 <Haskelytic> isMonoid :: Test.QuickCheck.Property.Property
01:56:41 <Haskelytic> isMonoid = isSemigroup .&&. hasLeftIdentity```
01:56:51 <Haskelytic> I'm getting ambiguous type variable for isMonoid
01:57:22 _xor joins (~xor@72.49.198.103)
01:57:30 <Haskelytic> Ambiguous type variable ‘a1’ arising from a use of ‘isSemigroup’
01:57:30 <Haskelytic>   prevents the constraint ‘(Eq a1)’ from being solved.
01:57:31 <Haskelytic>   Probable fix: use a type annotation to specify what ‘a1’ should be.
01:57:31 <Haskelytic>   These potential instances exist:
01:57:32 <Haskelytic>     ...plus 275 instances involving out-of-scope types
01:57:32 <Haskelytic>     (use -fprint-potential-instances to see them all)
01:57:33 <Haskelytic> • In the first argument of ‘(.&&.)’, namely ‘isSemigroup’
01:57:33 <Haskelytic>   In the expression: isSemigroup .&&. hasLeftIdentity
01:57:34 <Haskelytic>   In an equation for ‘isMonoid’:
01:57:34 <Haskelytic>       isMonoid = isSemigroup .&&. hasLeftIdentitytypecheck(-Wdeferred-type-errors)
01:57:40 <dsal> @where patse
01:57:40 <lambdabot> I know nothing about patse.
01:57:43 <dsal> @where paste
01:57:43 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
01:58:05 <Bulby[m]> @where pasta
01:58:05 <lambdabot> I know nothing about pasta.
01:58:09 <Bulby[m]> 😔
02:00:08 z0k joins (~z0k@206.84.143.2)
02:00:51 <Haskelytic> https://paste.tomsmeding.com/NslNe9NQ
02:00:59 kimjetwav joins (~user@2607:fea8:2340:da00:ce44:66a9:7fdd:687e)
02:01:31 <Haskelytic> I'm trying to write a test for monoid properties by composing test for semigroup AND the left/right identity test
02:02:08 × Kaipei quits (~Kaiepi@156.34.47.253) (Ping timeout: 255 seconds)
02:02:46 <Haskelytic> this is for use with QuickCheck
02:03:28 × kimjetwav quits (~user@2607:fea8:2340:da00:ce44:66a9:7fdd:687e) (Client Quit)
02:04:04 kimjetwav joins (~user@2607:fea8:2340:da00:b28:9278:475e:6fce)
02:08:30 <dsal> @hackage checkers
02:08:30 <lambdabot> https://hackage.haskell.org/package/checkers
02:08:35 <dsal> Haskelytic: Have you seen this?
02:13:12 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 248 seconds)
02:14:02 <dsal> Haskelytic: It's not really clear to me what you intended `isMonoid` to do. i.e., I agree with the compiler: "what?"
02:14:42 zebrag joins (~chris@user/zebrag)
02:14:45 <Haskelytic> dsal: I didn't know about this package
02:15:26 nate3 joins (~nate@98.45.169.16)
02:15:52 × td_ quits (~td@94.134.91.132) (Ping timeout: 248 seconds)
02:15:55 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
02:15:55 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
02:15:55 wroathe joins (~wroathe@user/wroathe)
02:17:21 <Haskelytic> dsal: Hmm...tbh I just made a wild guess that since `quickCheck :: Testable prop => prop -> IO ()` and `(.&&.) :: (Testable prop1, Testable prop2) => prop1 -> prop2 -> Property` I could use conjuction (.&&.) to create a prop that is satisfied if both props are
02:17:32 <Haskelytic> I must be misunderstanding something
02:17:39 <dsal> How would you use it?
02:17:44 × xacktm quits (xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com)
02:17:52 <Haskelytic> `quickCheck isMonoid`
02:17:54 td_ joins (~td@muedsl-82-207-238-090.citykom.de)
02:18:01 <dsal> What would that test?
02:18:32 <Haskelytic> I presume it would test both properties and only succeed if both succeed
02:18:52 <Haskelytic> by both properties I mean the arguments to the .&&.
02:19:22 <Haskelytic> namely, `isSemigroup` and  `hasLeftIdentity`
02:19:24 <dsal> But the signature doesn't mention any monoids, so it's not clear what you'd expect it to be testing.
02:19:42 <dsal> At some point, you need the monoid you intend to test.
02:19:57 × Topsi quits (~Topsi@dyndsl-095-033-088-183.ewe-ip-backbone.de) (Read error: Connection reset by peer)
02:20:22 × andreas303 quits (andreas303@ip227.orange.bnc4free.com) (Ping timeout: 272 seconds)
02:21:38 <Haskelytic> Hmm...wait so when I use conjunction `.&&.`, the types deduced for its args: `isSemigroup` and `hasLeftIdentity` must be something concrete (e.g., `[Int]`)
02:21:56 × even4void quits (even4void@came.here.for-some.fun) (Ping timeout: 248 seconds)
02:21:56 mimmy_ joins (~mimmy@23.230.46.220)
02:22:53 <dsal> When you call `isSemigroup` at all, you have to have a semigroup.
02:23:28 <dsal> It can work on any semigroup, but if the compiler can't figure out which one you mean, it can't do the work.
02:23:35 <Haskelytic> Ohhhhh hahahaha I got it now!
02:23:52 <Haskelytic> dsal: thanks!
02:24:16 <dsal> It's possible to add a type parameter `isMonoid` and pass that along with some language extensions.
02:24:30 <dsal> But if you just want to do the work, checkers is OK. It's a bit weird to use, but I use it for exactly this on occasion.
02:24:40 <Haskelytic> right
02:24:44 <Haskelytic> thanks for the kind pointers
02:25:12 <dsal> This uses checkers for similar things: https://github.com/dustin/mqttd/blob/master/test/SubTree.hs
02:28:08 × mimmy_ quits (~mimmy@23.230.46.220) (Ping timeout: 248 seconds)
02:29:36 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 244 seconds)
02:33:05 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
02:33:51 julian joins (~julian@20.83.116.49)
02:34:41 cyphase joins (~cyphase@user/cyphase)
02:38:21 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
02:39:38 × z0k quits (~z0k@206.84.143.2) (Ping timeout: 258 seconds)
02:41:22 even4void joins (even4void@came.here.for-some.fun)
02:41:49 ketema joins (~ketema@160.sub-174-211-228.myvzw.com)
02:42:03 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:42:03 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:42:03 finn_elija is now known as FinnElija
02:43:08 <ketema> @help
02:43:08 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
02:43:48 <ketema> @pointful sum (filter divisibleBy3Or5 (unfoldr (\b -> if b == 1000 then Nothing else Just (b, b+1)) 0))
02:43:48 <lambdabot> sum (filter divisibleBy3Or5 (unfoldr (\ b -> if (b == 1000) then Nothing else Just (b, (b + 1))) 0))
02:44:39 <ketema> @pointful filter (<10) (unfoldr (\b -> if b == 1001 then Nothing else Just (b, b+1)) 1)
02:44:40 <lambdabot> filter (\ a0 -> a0 < 10) (unfoldr (\ b -> if (b == 1001) then Nothing else Just (b, (b + 1))) 1)
02:45:37 xacktm joins (xacktm@user/xacktm)
02:46:49 <ketema> @pl filter (<10) (unfoldr (\b -> if b == 1001 then Nothing else Just (b, b+1)) 1)
02:46:49 <lambdabot> filter (< 10) (unfoldr (ap (flip if' Nothing . (1001 ==)) (Just . ap (,) (1 +))) 1)
02:47:28 <ketema> @pl sum (filter divisibleBy3Or5 (unfoldr (\b -> if b == 1000 then Nothing else Just (b, b+1)) 0))
02:47:28 <lambdabot> sum (filter divisibleBy3Or5 (unfoldr (ap (flip if' Nothing . (1000 ==)) (Just . ap (,) (1 +))) 0))
02:49:35 k8yun joins (~k8yun@user/k8yun)
02:50:44 andreas303 joins (andreas303@ip227.orange.bnc4free.com)
02:57:28 × alp quits (~alp@user/alp) (Ping timeout: 248 seconds)
02:57:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
02:58:25 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 258 seconds)
03:00:02 × haasn quits (~nand@haasn.dev) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
03:00:07 × k8yun quits (~k8yun@user/k8yun) (Quit: Leaving)
03:00:35 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
03:01:23 haasn joins (~nand@haasn.dev)
03:05:17 × ketema quits (~ketema@160.sub-174-211-228.myvzw.com) (Quit: ketema)
03:07:43 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
03:08:49 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
03:12:11 Mga52 joins (~Mga@S01069050ca4e3573.cg.shawcable.net)
03:12:39 × Mga52 quits (~Mga@S01069050ca4e3573.cg.shawcable.net) (Client Quit)
03:15:11 × Mga quits (~Mga@S01069050ca4e3573.cg.shawcable.net) (Quit: Client closed)
03:18:46 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds)
03:28:59 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
03:42:52 × simeon quits (~pi@dslb-088-069-178-224.088.069.pools.vodafone-ip.de) (Remote host closed the connection)
03:43:00 × zmt01 quits (~zmt00@user/zmt00) (Quit: Leaving)
03:44:51 zmt00 joins (~zmt00@user/zmt00)
03:46:59 × [Leary] quits (~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) (Ping timeout: 255 seconds)
03:55:36 × briandaed quits (~briandaed@109.95.143.14.r.toneticgroup.pl) (Remote host closed the connection)
03:57:24 mimmy_ joins (~mimmy@23.230.46.221)
04:00:10 × shinjipf quits (~shinjipf@vmi826685.contaboserver.net) (Quit: Shinji leaves)
04:02:26 mimmy joins (~mimmy@23.82.193.83)
04:03:34 × mimmy_ quits (~mimmy@23.230.46.221) (Ping timeout: 246 seconds)
04:03:38 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 244 seconds)
04:04:10 shinjipf joins (~shinjipf@2a02:c207:2082:6685::1)
04:20:22 × mimmy quits (~mimmy@23.82.193.83) (Ping timeout: 246 seconds)
04:25:08 × kitty1 quits (~kitty@096-039-147-043.res.spectrum.com) (Ping timeout: 272 seconds)
04:31:51 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
04:31:55 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Ping timeout: 246 seconds)
04:32:45 coot joins (~coot@213.134.190.95)
04:35:40 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 244 seconds)
04:36:02 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 255 seconds)
04:40:34 cyphase joins (~cyphase@user/cyphase)
04:43:36 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 248 seconds)
04:46:17 kitty1 joins (~kitty@096-039-147-043.res.spectrum.com)
04:58:59 × shriekingnoise quits (~shrieking@201.231.16.156) (Ping timeout: 255 seconds)
04:59:45 ubert1 joins (~Thunderbi@p200300ecdf14f99dfb6d2023d109ce6e.dip0.t-ipconnect.de)
04:59:57 × ubert quits (~Thunderbi@p200300ecdf14f9a1eda1a89be8fd240f.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
04:59:58 ubert1 is now known as ubert
05:00:07 [Leary] joins (~Leary]@122-58-228-205-vdsl.sparkbb.co.nz)
05:04:52 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
05:17:39 Kaipei joins (~Kaiepi@156.34.47.253)
05:20:19 shriekingnoise joins (~shrieking@201.231.16.156)
05:20:29 mimmy joins (~mimmy@23.82.193.84)
05:26:46 × mimmy quits (~mimmy@23.82.193.84) (Ping timeout: 258 seconds)
05:33:06 frost joins (~frost@user/frost)
05:34:02 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
05:36:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
05:37:28 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 248 seconds)
05:42:09 mimmy joins (~mimmy@23.82.193.82)
05:42:25 cyphase joins (~cyphase@user/cyphase)
05:42:25 × mimmy quits (~mimmy@23.82.193.82) (Client Quit)
05:46:39 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
05:49:35 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
06:00:40 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
06:06:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
06:07:20 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds)
06:08:25 ormaaj is now known as jaamro
06:12:07 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
06:12:14 × Haskelytic quits (~Haskelyti@37.111.212.211) (Quit: Client closed)
06:19:27 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
06:22:07 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection)
06:22:21 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
06:24:17 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Ping timeout: 260 seconds)
06:24:51 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
06:28:01 × Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection)
06:34:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
06:34:49 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
06:36:37 irfan joins (~irfan@user/irfan)
06:37:43 kenran joins (~kenran@200116b82bb5a1009ed0e3ac5a3eacc5.dip.versatel-1u1.de)
06:44:59 acidjnk_new joins (~acidjnk@p200300d0c7068b02c52aeeb3175c6b9c.dip0.t-ipconnect.de)
06:54:27 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
06:58:28 × irfan quits (~irfan@user/irfan) (Quit: leaving)
06:59:09 alp joins (~alp@user/alp)
07:00:55 alp_ joins (~alp@user/alp)
07:02:19 × alp_ quits (~alp@user/alp) (Remote host closed the connection)
07:02:38 alp_ joins (~alp@user/alp)
07:03:52 × alp quits (~alp@user/alp) (Ping timeout: 248 seconds)
07:04:23 alp__ joins (~alp@user/alp)
07:06:38 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Remote host closed the connection)
07:07:04 × alp_ quits (~alp@user/alp) (Ping timeout: 248 seconds)
07:08:24 yw61 joins (~yw@2.58.65.178)
07:09:07 × alp__ quits (~alp@user/alp) (Ping timeout: 258 seconds)
07:14:54 × Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
07:16:10 nate3 joins (~nate@98.45.169.16)
07:16:22 Teacup joins (~teacup@user/teacup)
07:20:06 × Teacup quits (~teacup@user/teacup) (Client Quit)
07:20:58 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds)
07:21:04 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
07:21:32 Teacup joins (~teacup@user/teacup)
07:22:35 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
07:23:41 _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl)
07:26:48 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds)
07:29:26 <hololeap> @let divisibleBy3Or5 x = x `rem` 3 == 0 || x `rem` 5 == 0
07:29:27 <lambdabot> Defined.
07:31:36 <hololeap> > sum [ x | x <- [0..1000], divisibleBy3Or5 x ]
07:31:38 <lambdabot> 234168
07:33:07 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
07:33:18 × Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
07:33:28 × kenran quits (~kenran@200116b82bb5a1009ed0e3ac5a3eacc5.dip.versatel-1u1.de) (Quit: WeeChat info:version)
07:34:43 Teacup joins (~teacup@user/teacup)
07:38:04 <hololeap> why isn't there a MonadWriter instance for Control.Monad.Trans.Writer.CPS
07:38:52 <hololeap> is it just a quirk of the libs or does the CPS version work differently somehow
07:41:18 <hololeap> also, could someone please point me to a resource that explains in detail why the Strict version of WriterT has memory issues that the CPS version does not have?
07:43:10 × simendsj` quits (~user@78-72-230-58-no2730.tbcn.telia.com) (Ping timeout: 240 seconds)
07:44:17 <jackdk> hololeap: that instance exists as of mtl-2.3
07:45:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
07:45:39 <hololeap> ok, I'm on 2.2.2
07:48:07 <jackdk> this was in the first page of DDG results for "strict writert": https://stackoverflow.com/questions/14644830/what-is-the-point-of-having-a-lazy-strict-version-of-writer
07:48:35 <jackdk> I imagine that even the strict version may still build a pile of <> thunks
07:49:54 <hololeap> ok, but why doesn't CPS have the same problem? I feel like I'm missing something fundamental here
07:51:13 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
07:51:27 <hololeap> actually, I don't really understand how dlist works, either
07:52:33 <hololeap> I think they would be related
07:53:01 <jackdk> You will have to noodle around with the source of the cps WriterT, but note that its version of `writer` forces the <> to WHNF using `seq` before returning a result. This is probably what's avoiding the thunk buildup : https://hackage.haskell.org/package/transformers-0.6.0.4/docs/src/Control.Monad.Trans.Writer.CPS.html#writer
07:53:56 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
07:53:59 <hololeap> oh
07:56:00 <jackdk> To understand dlist, spend half an hour performing the transformations yourself: step through the evaluation of `((([1, 2, 3] ++ [4, 5, 6]) ++ [7, 8, 9]) ++ [10, 11, 12])` to get a feel for why it must walk the prefix over and over to generate any result, then evaluate `((( ([1, 2, 3] ++) . ([4, 5, 6] ++) ) . ([7, 8, 9] ++) ) . ([10, 11, 12] ++)) []` by hand, stepping through the evaluation of `(.)` to see how it causes right-associated chain of (++)
07:56:06 <tomsmeding> hololeap: paper is completely unrelated, but it happens to contain a description of the core idea of dlist: search for "Example 7.1" in https://arxiv.org/pdf/2205.11368.pdf
07:56:10 zincy joins (~zincy@lfbn-bay-1-105-223.w83-193.abo.wanadoo.fr)
07:56:17 <tomsmeding> or that :)
07:56:20 <jackdk> (the second expression is the first, but transformed into dlist and back)
07:56:30 littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
07:57:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
07:57:36 Pickchea joins (~private@user/pickchea)
07:58:03 Kaipii joins (~Kaiepi@156.34.47.253)
07:58:37 <tomsmeding> (the example in that PDF spreads over the page break, just to be clear)
07:58:52 × coot quits (~coot@213.134.190.95) (Quit: coot)
07:59:35 <hololeap> ok, thanks
08:00:07 ketema joins (~ketema@129.sub-174-212-38.myvzw.com)
08:00:36 <hololeap> I understand regular concatenation well enough, but not the dlist version. writing it out seems like a good idea
08:01:15 × Kaipei quits (~Kaiepi@156.34.47.253) (Ping timeout: 258 seconds)
08:01:52 <hololeap> actually, it makes intuitive sense already, since each sublist only has to be walked once in the dlist version
08:02:36 <tomsmeding> the function compositions do cost time, but that time is proportional to the _number_ of concatenations
08:06:01 energizer_ is now known as energizer
08:21:09 × Pickchea quits (~private@user/pickchea) (Ping timeout: 276 seconds)
08:23:38 Pickchea joins (~private@user/pickchea)
08:27:37 chomwitt joins (~chomwitt@2a02:587:dc1f:5600:72bd:2e5c:4221:2d73)
08:28:40 × acidjnk_new quits (~acidjnk@p200300d0c7068b02c52aeeb3175c6b9c.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
08:30:58 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds)
08:32:30 acidjnk_new joins (~acidjnk@p200300d0c7068b02e9c770e98d5298a4.dip0.t-ipconnect.de)
08:37:44 × acidjnk_new quits (~acidjnk@p200300d0c7068b02e9c770e98d5298a4.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
08:44:53 × Pickchea quits (~private@user/pickchea) (Ping timeout: 255 seconds)
08:47:50 × gabriel_1 quits (~gabriel@188-167-229-200.dynamic.chello.sk) (Quit: WeeChat 3.5)
08:48:31 gabriel_sevecek joins (~gabriel@188-167-229-200.dynamic.chello.sk)
08:48:33 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:55:53 vglfr joins (~vglfr@88.155.106.79)
08:57:07 × bilegeek quits (~bilegeek@2600:1008:b006:dc9e:9b3e:98b5:2da3:eff8) (Quit: Leaving)
09:00:31 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
09:00:37 × zincy quits (~zincy@lfbn-bay-1-105-223.w83-193.abo.wanadoo.fr) (Ping timeout: 260 seconds)
09:01:38 zaquest joins (~notzaques@5.130.79.72)
09:06:27 × chomwitt quits (~chomwitt@2a02:587:dc1f:5600:72bd:2e5c:4221:2d73) (Ping timeout: 240 seconds)
09:06:59 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
09:08:39 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
09:16:16 × yw61 quits (~yw@2.58.65.178) (Quit: Client closed)
09:19:21 Tuplanolla joins (~Tuplanoll@91-159-69-63.elisa-laajakaista.fi)
09:23:29 × Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
09:25:03 Teacup joins (~teacup@user/teacup)
09:29:19 × Teacup quits (~teacup@user/teacup) (Client Quit)
09:30:47 Teacup joins (~teacup@user/teacup)
09:30:49 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
09:31:11 × ketema quits (~ketema@129.sub-174-212-38.myvzw.com) (Quit: ketema)
09:34:22 × Batzy quits (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
09:35:17 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 255 seconds)
09:35:37 Batzy joins (~quassel@user/batzy)
09:35:54 × Kaipii quits (~Kaiepi@156.34.47.253) (Ping timeout: 276 seconds)
09:36:34 × littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
09:37:31 × Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
09:37:49 × vglfr quits (~vglfr@88.155.106.79) (Ping timeout: 246 seconds)
09:38:58 Teacup joins (~teacup@user/teacup)
09:40:25 Pickchea joins (~private@user/pickchea)
09:48:12 × Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
09:48:52 jaamro is now known as ormaaj
09:49:34 Teacup joins (~teacup@user/teacup)
09:51:51 × frost quits (~frost@user/frost) (Quit: Ping timeout (120 seconds))
09:52:48 DNH joins (~DNH@2a02:8108:1100:16d8:589c:27c2:e36:6e88)
09:54:37 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
10:02:20 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417) (Remote host closed the connection)
10:09:00 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
10:13:39 coot joins (~coot@213.134.190.95)
10:19:06 × coot quits (~coot@213.134.190.95) (Quit: coot)
10:21:58 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
10:23:23 × Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
10:23:25 img joins (~img@user/img)
10:23:51 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
10:24:31 wootehfoot joins (~wootehfoo@user/wootehfoot)
10:24:35 Kaipii joins (~Kaiepi@156.34.47.253)
10:25:12 cosimone joins (~user@93-44-186-171.ip98.fastwebnet.it)
10:25:23 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection)
10:25:46 unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
10:26:18 coot joins (~coot@213.134.190.95)
10:26:22 Teacup joins (~teacup@user/teacup)
10:27:45 × coot quits (~coot@213.134.190.95) (Remote host closed the connection)
10:27:54 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
10:28:49 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
10:29:27 gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
10:31:10 vglfr joins (~vglfr@88.155.106.79)
10:37:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
10:38:23 × Vajb quits (~Vajb@2001:999:580:7ad5:4d80:745:ec1c:305) (Read error: Connection reset by peer)
10:39:02 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
10:40:29 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
10:41:10 × Pickchea quits (~private@user/pickchea) (Ping timeout: 246 seconds)
10:41:27 jakalx parts (~jakalx@base.jakalx.net) ()
10:42:49 jakalx joins (~jakalx@base.jakalx.net)
10:45:25 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
10:47:29 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
10:47:30 × Kaipii quits (~Kaiepi@156.34.47.253) (Ping timeout: 240 seconds)
10:50:17 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
10:50:45 coot joins (~coot@213.134.190.95)
10:50:48 × coot quits (~coot@213.134.190.95) (Remote host closed the connection)
10:51:45 dsp joins (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net)
10:54:14 chomwitt joins (~chomwitt@2a02:587:dc1f:5600:1db:79aa:6ee1:a01a)
10:55:53 × DNH quits (~DNH@2a02:8108:1100:16d8:589c:27c2:e36:6e88) (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:58:16 fr-isotope joins (uid556229@id-556229.ilkley.irccloud.com)
11:02:52 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417)
11:07:32 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417) (Ping timeout: 255 seconds)
11:08:14 <dsp> I have a package that requires a specific base version <4.15. My GHC is 9.0.2 and i am curious how i best go about delivering a lower base, or do i need to downgrade the compiler
11:09:43 DNH joins (~DNH@2a02:8108:1100:16d8:589c:27c2:e36:6e88)
11:14:13 dsp parts (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Leaving)
11:14:18 dsp joins (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net)
11:17:40 nate3 joins (~nate@98.45.169.16)
11:18:34 <geekosaur> base is hardwired into the compiler, you must downgrade
11:20:53 <geekosaur> https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries/version-history shows what versions of things come with which compilers. base, integer-simple/integer-gmp/ghc-bignum, ghc-prim, ghc, and template-haskell are wired in
11:22:32 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds)
11:25:12 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds)
11:26:50 alp joins (~alp@user/alp)
11:29:04 × dsp quits (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Remote host closed the connection)
11:33:08 <unit73e> I figured ghcup fixes all my GHC instalation problems
11:33:33 <[exa]> ghcup is underrated.
11:33:54 <tomsmeding> not by its users :)
11:37:15 <[exa]> anyway, re the problem that dsp had before -- is there some kinda switch that would, for a package, just go yolo and ignore the upper bound? (like, this is quite a common source of problems, and the only fix is that all maintainers regularly reupload new dependency bounds)
11:38:23 <geekosaur[m]> --allow-newer
11:40:51 <[exa]> how come I wasn't able to google this? ._.
11:40:55 <[exa]> (thanks a lot! :D )
11:41:02 × chomwitt quits (~chomwitt@2a02:587:dc1f:5600:1db:79aa:6ee1:a01a) (Ping timeout: 260 seconds)
11:41:10 <geekosaur[m]> There's also a more constrained version: --allow-newer=package: dependency [,...]
11:41:27 <tomsmeding> can also put allow-newer: in a cabal.project, if that's your schtick
11:41:42 <geekosaur[m]> Ugh,minus the extra spaces
11:42:31 <[exa]> o cool
11:43:23 <tomsmeding> [exa]: HLS uses this extensively (this list was far longer when 9.2 was fresher) https://github.com/haskell/haskell-language-server/blob/master/cabal.project#L66
11:46:23 Kaipii joins (~Kaiepi@156.34.47.253)
11:48:35 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
11:49:12 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 248 seconds)
11:50:16 × unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 248 seconds)
11:51:33 Vajb joins (~Vajb@2001:999:580:7ad5:4d80:745:ec1c:305)
11:53:17 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 260 seconds)
11:57:53 kaskal- joins (~kaskal@213-147-164-164.nat.highway.webapn.at)
11:59:15 × kaskal quits (~kaskal@089144205066.atnat0014.highway.webapn.at) (Ping timeout: 256 seconds)
12:04:44 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417)
12:07:42 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
12:07:45 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 244 seconds)
12:08:56 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417) (Ping timeout: 248 seconds)
12:09:41 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
12:15:29 × Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
12:16:59 Teacup joins (~teacup@user/teacup)
12:17:05 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
12:17:14 gio123 joins (~gio123@94.137.173.75)
12:19:47 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
12:20:53 × gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 255 seconds)
12:22:48 × alp quits (~alp@user/alp) (Ping timeout: 248 seconds)
12:26:36 alp joins (~alp@user/alp)
12:33:55 Feuermagier joins (~Feuermagi@user/feuermagier)
12:39:40 × Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
12:41:17 Teacup joins (~teacup@user/teacup)
12:47:01 × joo-_ quits (~joo-_@fsf/member/joo--) (Quit: leaving)
12:47:28 × benin quits (~benin@183.82.179.200) (Quit: The Lounge - https://thelounge.chat)
12:47:46 × Vajb quits (~Vajb@2001:999:580:7ad5:4d80:745:ec1c:305) (Ping timeout: 250 seconds)
12:52:50 × vglfr quits (~vglfr@88.155.106.79) (Ping timeout: 255 seconds)
12:53:24 vglfr joins (~vglfr@88.155.106.79)
12:53:42 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
12:54:23 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
12:54:24 trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
12:58:24 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
13:00:34 × shriekingnoise quits (~shrieking@201.231.16.156) (Quit: Quit)
13:01:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
13:11:52 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds)
13:13:35 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
13:14:28 × trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 246 seconds)
13:17:50 × fr-isotope quits (uid556229@id-556229.ilkley.irccloud.com) (Quit: Connection closed for inactivity)
13:24:12 jlamothe joins (~jlamothe@198.251.60.209)
13:26:19 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
13:28:43 Pickchea joins (~private@user/pickchea)
13:29:04 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
13:32:08 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
13:36:06 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 244 seconds)
13:42:54 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
13:47:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
13:47:04 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds)
13:48:43 __monty__ joins (~toonn@user/toonn)
13:52:41 × mvk quits (~mvk@2607:fea8:5ce3:8500::ba9a) (Ping timeout: 255 seconds)
13:56:21 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
14:01:35 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
14:05:39 × cosimone quits (~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection)
14:06:02 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417)
14:10:58 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417) (Ping timeout: 272 seconds)
14:13:49 chreekat2 joins (~b@152.96.94.198)
14:17:03 × julian quits (~julian@20.83.116.49) (Killed (NickServ (GHOST command used by tos9_!~tos9@python/site-packages/Julian)))
14:22:13 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Remote host closed the connection)
14:24:34 Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net)
14:24:51 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
14:26:44 × Pickchea quits (~private@user/pickchea) (Ping timeout: 244 seconds)
14:27:40 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
14:31:50 × chreekat2 quits (~b@152.96.94.198) (Ping timeout: 240 seconds)
14:37:18 azimut joins (~azimut@gateway/tor-sasl/azimut)
14:40:53 chreekat2 joins (~b@2001:620:130:6092:f0a5:94c4:beca:8e7a)
14:44:41 mvk joins (~mvk@2607:fea8:5ce3:8500::ba9a)
14:44:55 <exarkun> Why does the definition of `select` use an irrefutable pattern - `~(ts,fs)`?
14:45:34 <exarkun> https://hackage.haskell.org/package/base-4.16.1.0/docs/src/Data-OldList.html#select
14:46:40 <shapr> I've been fighting laziness and having vaguely related questions, like why is tails strict
14:47:03 × raym quits (~raym@user/raym) (Quit: audio problem, rebooting...)
14:48:40 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 250 seconds)
14:49:26 raym joins (~raym@user/raym)
14:49:42 × mvk quits (~mvk@2607:fea8:5ce3:8500::ba9a) (Quit: Going elsewhere)
14:50:36 mvk joins (~mvk@2607:fea8:5ce3:8500::ba9a)
14:52:31 <geekosaur> mm, I was going to say the Report probably specified the strictness of both, but the Report doesn't have anything outside the basic Prelude
14:56:28 <geekosaur> my guess re select is that it causes partition to hold all lists completely in memory instead of lazily consuming the original an item at a time
14:58:45 <geekosaur> as for tails, I'm not clear that laziness buys anything since it holds the entire original list (maybe minus its first element) anyway
14:59:05 <geekosaur> or is even possible
14:59:47 <geekosaur> holds it multiple times, even
15:01:47 <geekosaur> mrr, clarify that: lack of ~ would cause it to hold everything in memory
15:02:52 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 260 seconds)
15:12:04 × m1dnight quits (~christoph@78-22-9-5.access.telenet.be) (Ping timeout: 248 seconds)
15:14:12 m1dnight joins (~christoph@78-22-9-5.access.telenet.be)
15:15:26 <geekosaur> yeh, tails does essentially what I would expect, and I don't think it can be made less strict meaningfully because something else would make it strict anyway
15:15:29 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
15:17:01 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
15:17:55 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
15:17:55 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
15:17:55 wroathe joins (~wroathe@user/wroathe)
15:18:28 emad joins (~emad@156.214.109.162)
15:18:49 × emad quits (~emad@156.214.109.162) (Remote host closed the connection)
15:18:56 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
15:19:11 nate3 joins (~nate@98.45.169.16)
15:19:52 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds)
15:24:05 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 244 seconds)
15:29:55 × vglfr quits (~vglfr@88.155.106.79) (Ping timeout: 246 seconds)
15:33:04 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
15:39:37 ec joins (~ec@gateway/tor-sasl/ec)
15:41:01 bilegeek joins (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b)
15:43:04 vglfr joins (~vglfr@88.155.106.79)
15:43:52 gmg joins (~user@user/gehmehgeh)
15:45:18 × califax quits (~califax@user/califx) (Remote host closed the connection)
15:46:27 califax joins (~califax@user/califx)
15:47:16 dextaa joins (~DV@user/dextaa)
15:51:48 takuan joins (~takuan@178-116-218-225.access.telenet.be)
15:54:51 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 276 seconds)
16:00:06 × DNH quits (~DNH@2a02:8108:1100:16d8:589c:27c2:e36:6e88) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:00:06 × oak- quits (~oakuniver@2001:470:69fc:105::fcd) (Quit: You have been kicked for being idle)
16:00:15 × noiobeforebed quits (~noiobefor@2001:470:69fc:105::1:3c2d) (Quit: You have been kicked for being idle)
16:01:00 doomfume[m] joins (~doomfumeh@2001:470:69fc:105::2:2a62)
16:06:47 × TonyStone quits (~TonyStone@2603-7080-8607-c36a-2d91-707e-31c1-4661.res6.spectrum.com) (Ping timeout: 255 seconds)
16:07:55 stackdroid18 joins (14094@user/stackdroid)
16:09:02 doomfume[m]1 joins (~doomfumem@2001:470:69fc:105::2:2a64)
16:09:42 × kimjetwav quits (~user@2607:fea8:2340:da00:b28:9278:475e:6fce) (Quit: time to reboot)
16:13:54 kimjetwav joins (~user@2607:fea8:2340:da00:dee7:1b6:101c:bb2)
16:14:12 julian joins (~julian@20.83.116.49)
16:19:34 TonyStone joins (~TonyStone@2603-7080-8607-c36a-dd76-ba9d-2665-21fb.res6.spectrum.com)
16:22:35 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
16:27:37 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
16:28:05 gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
16:28:24 × chreekat2 quits (~b@2001:620:130:6092:f0a5:94c4:beca:8e7a) (Ping timeout: 272 seconds)
16:29:52 Sgeo joins (~Sgeo@user/sgeo)
16:34:32 gmg joins (~user@user/gehmehgeh)
16:35:35 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 255 seconds)
16:35:36 econo joins (uid147250@user/econo)
16:36:04 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
16:36:16 user3 joins (~user@188.253.237.9)
16:38:27 × user3 quits (~user@188.253.237.9) (Client Quit)
16:39:42 × vglfr quits (~vglfr@88.155.106.79) (Ping timeout: 276 seconds)
16:40:24 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 248 seconds)
16:41:24 × causal quits (~user@50.35.83.177) (Quit: WeeChat 3.5)
16:46:47 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Remote host closed the connection)
16:47:56 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer)
16:48:17 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
17:03:50 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
17:07:23 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
17:07:23 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
17:07:23 wroathe joins (~wroathe@user/wroathe)
17:07:31 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
17:08:08 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds)
17:08:35 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417)
17:09:19 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
17:12:18 DNH joins (~DNH@2a02:8108:1100:16d8:589c:27c2:e36:6e88)
17:12:56 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417) (Ping timeout: 248 seconds)
17:13:22 Guest10 joins (~Guest10@136.56.166.157)
17:14:13 × Guest10 quits (~Guest10@136.56.166.157) (Client Quit)
17:14:24 Guest10 joins (~Guest10@136.56.166.157)
17:15:47 × Guest10 quits (~Guest10@136.56.166.157) (Client Quit)
17:16:59 jakalx parts (~jakalx@base.jakalx.net) ()
17:23:39 jakalx joins (~jakalx@base.jakalx.net)
17:26:16 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 248 seconds)
17:35:06 <Bulby[m]> what do you guys use for binary serialization
17:35:27 <geekosaur> binary or cereal are the usual go-tos
17:36:09 epolanski joins (uid312403@id-312403.helmsley.irccloud.com)
17:36:34 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
17:36:47 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
17:36:58 <Clint> i used to use cereal, then i switched to binary
17:37:41 <Bulby[m]> binary is really old ☹️
17:37:58 <Bulby[m]> i'll use cereal
17:38:10 × Tuplanolla quits (~Tuplanoll@91-159-69-63.elisa-laajakaista.fi) (Ping timeout: 258 seconds)
17:38:12 <geekosaur> what, does it have to be updated daily to be usable?
17:38:18 <Rembane> Maybe binary is done?
17:38:56 <Bulby[m]> it depends on base < 4.13
17:39:37 <geekosaur> https://hackage.haskell.org/package/binary says otherwise
17:39:49 <geekosaur> >= 4.5.0.0 && < 5
17:40:18 <Bulby[m]> oh
17:40:25 <geekosaur> maybe check the upper right of the page to see if you're on the latest version vs. the version google picked due to links
17:40:26 <Bulby[m]> what are the .9 and .10 versions
17:40:49 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:41:15 <geekosaur> red is deprecated
17:41:20 <geekosaur> it doesn't say why
17:45:08 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:1917:7088:7036:8417)
17:47:02 gmg joins (~user@user/gehmehgeh)
17:48:42 zer0bitz joins (~zer0bitz@2001:2003:f444:8f00:911a:9716:9df3:c391)
17:49:15 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
17:51:45 Tuplanolla joins (~Tuplanoll@91-159-69-173.elisa-laajakaista.fi)
17:54:04 <monochrom> I use binary because it comes with GHC. I use parsec because it comes with GHC. I use mtl because it comes with GHC.
17:54:19 <monochrom> They are old but so am I. I am old and wise, and so are they.
17:54:28 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds)
17:54:40 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
17:54:45 <monochrom> But you should have figured. I use IRC, too, an old thing.
17:55:01 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
17:55:42 <monochrom> Whereas newer people chose the subreddit or stackoverflow or the discourse, and will never consider IRC.
17:56:02 <monochrom> If you're all about new, perhaps you should bring your questions to them, not us.
17:57:32 <[exa]> where do people even get this expectation of old software being worse?
17:57:57 <Clint> bitrot
17:58:01 <monochrom> I don't blame them. I did that once, too, when I was younger.
17:58:10 <Bulby[m]> true, old software is usually better, especially when maintained
17:58:23 <hpc> i mean, "old = less good" is true of almost everything
17:58:28 <Bulby[m]> by old I mean unmaintained
17:58:43 <monochrom> At school, I found out a bug in some software. I emailed the sysadmin and said things like "this software is old".
17:59:13 <monochrom> The sysadmins rightfully reply "we acknowledge the bug, but age doesn't always matter".
17:59:22 <[exa]> Clint: fair enough
17:59:34 <geekosaur[m]> Could you tell us where you got such an old link?
18:00:03 <davean> HTTP is old, so we should use Web3 for everything.
18:00:21 <monochrom> Please use HTTP 3.14159 :)
18:00:28 <Bulby[m]> ok, now on text, encode utf8: it seems it encodes an empty string. does that mean it puts nothing if the text is empty?
18:00:48 <[exa]> davean: also computers are like 30+ years now!!11
18:01:27 <davean> [exa]: More than that and we should stop using them
18:01:43 <[exa]> Bulby[m]: empty unicode string encoded to utf8 should make an empty byte sequence, yes.
18:01:48 <darkling> davean: Some days, I could get on board with that idea.
18:01:50 <monochrom> We should switch from tcp/ip to x.24
18:01:50 <davean> [exa]: you're proving their point, computers are horrid
18:02:06 <hpc> this is why i never use imported libraries
18:02:12 <hpc> they're always older than the code i am writing right now
18:02:19 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
18:02:28 <Bulby[m]> hm... that is an issue. does that mean the string doesn't end with a null byte as well
18:02:41 <monochrom> This is why I teach programming rather than write programs. :)
18:03:28 <monochrom> What null byte? This is not ##c.
18:03:37 <davean> Bulby[m]: Huh?
18:03:41 <[exa]> Bulby[m]: the null byte is a C and unix convention, completely irrelevant in all other systems
18:03:56 <[exa]> esp these that actually remember the size of their strings
18:04:00 <monochrom> Hell, not even always a unix convention.
18:04:09 <Bulby[m]> well I'm serialzing to binary
18:04:16 <davean> and not even a good convention - it has to be broken a lot, because we need string with null bytes in them
18:04:28 <Bulby[m]> so I either a. store the length or b. append a null byte
18:04:34 <davean> So length tagged strings are normal even in C and Unix
18:04:51 <darkling> Either of those will work, but I'd recomment storing the length.
18:04:58 <monochrom> So store the length.
18:04:58 <[exa]> Bulby[m]: if you need to place the binary representation to some larger bytestream, I suggest you do one of these, yes.
18:05:00 <darkling> Advanced developers will store the length first. ;)
18:05:31 <[exa]> and please store the length, the terminating zero is a particular piece of mess in any data exchange
18:06:01 <Bulby[m]> I assume length of Text is not length in bytes so I have to manually call up encodeUtf8
18:06:34 <monochrom> You look at basically every binary file format except C strings, they all given lengths up front.
18:06:40 <[exa]> Bulby[m]: yes, lengths of encoding vary a lot (accidentally, length of Text is afaik equal to the data length in utf32)
18:07:09 coot joins (~coot@213.134.190.95)
18:07:15 <Bulby[m]> i'm getting flashbacks to haxe deserialization 😭
18:07:49 <monochrom> If you don't want length, please use "\end{verbatim}" instead of null byte at the end. :)
18:07:55 <[exa]> Bulby[m]: is there Binary instance for ByteString?
18:08:10 <Bulby[m]> yes
18:08:29 <[exa]> darkling: advanced programmers ride on all paradigms at once and store length at the end
18:08:46 <monochrom> store checksum and then length at the end :)
18:09:00 <Bulby[m]> https://hackage.haskell.org/package/binary-0.8.9.0/docs/src/Data.Binary.Class.html#line-635
18:09:01 <Bulby[m]> bytestring stores it's length anyway
18:09:04 <[exa]> Bulby[m]: and the Binary instance doesn't encode its length?
18:09:10 <[exa]> o nice
18:09:25 <[exa]> so just encode to ByteString and serialize the bytestring :]
18:09:38 <Bulby[m]> so i can just use Text's encoding method which encodes via put
18:10:15 <Bulby[m]> btw what's an int? int64?
18:10:28 <Bulby[m]> yeah
18:10:30 <[exa]> likely.
18:11:14 <Bulby[m]> idk why they store it as int. I guess they don't expect a string longer than 2^63
18:11:26 img joins (~img@user/img)
18:12:08 <davean> Packagees like 'bytes' have VarInt instances
18:12:32 <[exa]> Bulby[m]: you might want to contemplate on the size of that number
18:12:47 <Bulby[m]> yeah
18:13:12 <Bulby[m]> that was a joke but apparently it wasn't very funny 🥲
18:13:33 tremon joins (~tremon@83-84-18-241.cable.dynamic.v4.ziggo.nl)
18:13:54 <[exa]> ah okay. sorry I'm not fun today. :D
18:14:21 <geekosaur> encode to ASN.1
18:14:31 Clint twitches.
18:15:20 gmg joins (~user@user/gehmehgeh)
18:15:54 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 276 seconds)
18:16:36 <[exa]> Bulby[m]: anyway, I'd say `put . encodeUtf8` should just work
18:17:02 [exa] finds Data.Text.Binary
18:17:03 <Bulby[m]> Text has a binary instance that does exactly that
18:17:17 <[exa]> ah
18:17:21 <[exa]> all done then
18:17:22 <tomsmeding> Bulby[m]: probably no system that bytestring/text supports can handle allocations longer than 2^48 in the first place
18:17:22 <[exa]> \o/
18:17:34 <tomsmeding> oh it was a joke
18:17:37 <tomsmeding> woooosh
18:17:44 <Bulby[m]> I was just unsure if it stored the length
18:17:55 <[exa]> tomsmeding: it's triggerish right? :D
18:17:59 <tomsmeding> yes
18:18:49 <[exa]> these young peeps complaining about a completely nonsential possibility of ever having a string bigger than 640kB
18:18:50 <davean> tomsmeding: we don't need to allocate them to define them ... I'll send you the exact base 10 representation of 1/3rd ;)
18:18:58 <[exa]> oh i mean 2^63.
18:19:09 cyphase joins (~cyphase@user/cyphase)
18:19:18 <tomsmeding> davean: hm, good point, lazy bytestrings could have interesting lengths
18:19:51 <hpc> fun related fact i saw the other day, in rust a vector of () has a fixed size
18:20:04 <hpc> it doesn't have to reserve space for any of the values, it just keeps track of the size :D
18:20:13 <Bulby[m]> haha
18:20:17 <davean> tomsmeding: and we can actually store them when we take into account compression.
18:20:33 <[exa]> hpc: kinda wondering what c++ will tell me about std::vector<void>
18:21:04 <[exa]> that would be the same case I'd say, except c++ is likely picky about void
18:21:18 <tomsmeding> luckily haskell can do the same https://hackage.haskell.org/package/base-4.15.1.0/docs/src/Foreign.Storable.html#line-149
18:21:36 <hpc> tomsmeding: haha that's great
18:21:50 <tomsmeding> so a Data.Vector.Storable of () will be constant-size :)
18:22:27 <tomsmeding> [exa]: void likely won't work, but you could try `struct Unit {}; std::vector<Unit> v;`
18:23:11 <tomsmeding> [exa]: sizeof(struct Unit) == 0, so likely it would work
18:23:36 <tomsmeding> yay lots of languages getting this right
18:24:11 <davean> tomsmeding: in Haskell () isn't information free
18:24:20 <[exa]> tomsmeding: haha you sure?
18:24:30 <tomsmeding> davean: Vector doesn't care
18:24:33 <tomsmeding> [exa]: no
18:24:39 <[exa]> I spent quite sime time trying to get a 0-sized struct :D
18:24:43 <davean> tomsmeding: *storable* doesn't
18:24:58 <davean> tomsmeding: the forcing is critical
18:25:01 <tomsmeding> [exa]: as in, that sizeof is correct, but no idea whether that will actually result in constant-size arrays
18:25:05 <geekosaur> there's a Vector backed by Storable
18:25:17 <tomsmeding> davean: which forcing
18:25:28 <tomsmeding> oh, as in, Storable doesn't force but you think it should?
18:25:37 <[exa]> maybe it works in C, but in all C++ses I tried the size of empty struct is 1
18:25:57 <monochrom> But C++ allows you to hand-code what vector<Unit> does and sidestep the general template.
18:26:06 <geekosaur> strictly speaking that Storable definition is wrong because it never forces the value, so it treats _|_ as defined
18:26:19 <tomsmeding> [exa]: WAT
18:26:32 <tomsmeding> [exa]: compiling as C++ gives sizeof 1, but compiling as C gives sizeof 0
18:26:36 <[exa]> yes
18:26:42 <tomsmeding> this is the weirdest incompatibility between the two that I've seen in a long while
18:27:10 <tomsmeding> geekosaur: right, technically. However I think I would prefer the current definition
18:27:23 <[exa]> AFAIK it's because of up/downcasting or something weird that requires RTTI
18:27:27 <davean> tomsmeding: data A = A {data :: ???, normalized :: () }, A ... (deepseq data `seq` ())
18:27:30 <davean> tomsmeding: etc
18:29:32 <tomsmeding> [exa]: that _requires RTTI_?
18:29:47 <tomsmeding> oh, as in, there should be some place to store some data
18:29:55 <tomsmeding> except you can't store anything useful in 1 byte
18:30:09 <tomsmeding> (regarding RTTI -- I know bytes are useful in general lol)
18:30:32 <[exa]> tomsmeding: yeah, in case someone would to use this as a field in some structure and blablabla C++std blabla, you can't have 2 things at 1 place ever™
18:30:44 × coot quits (~coot@213.134.190.95) (Quit: coot)
18:30:52 <tomsmeding> oh hm
18:31:03 <tomsmeding> sounds fishy though, union{} exists
18:31:19 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
18:31:27 <[exa]> I remember deciding to completely forget about the actual reason as soon as I found it on SA
18:31:46 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
18:32:15 <davean> tomsmeding: so its very meaningful that something is or has come from a Data.Vector.Storable
18:32:44 <tomsmeding> davean: I'm afraid I'm not completely following
18:33:06 <davean> tomsmeding: () in Haskell is a value or a computation\
18:33:08 <tomsmeding> the only information in a value of type () is whether it is a bottom, and if so, what bottom it is (the asynchronous error)
18:33:26 <tomsmeding> if you put anything else in it, you better ensure _yourself_ that you evaluate it
18:33:29 <tomsmeding> in my opinion
18:33:30 <davean> tomsmeding: no, it can also be the information about if something is evaluated
18:33:56 <tomsmeding> davean: except querying that information forces the evaluation, right?
18:34:04 <davean> The *point* of the data A example is that LOOKING at the () enforces an evaluation property
18:34:11 <davean> tomsmeding: Thats The Point(tm)
18:34:17 <tomsmeding> yes, looking at the () from the deepseq
18:34:18 <davean> It tracks the evaluation
18:34:22 jakalx joins (~jakalx@base.jakalx.net)
18:34:33 <davean> It allows you to - for example - impliment deepseq that doesn't rewalk
18:34:39 <davean> Thats a fairly trivial example
18:34:43 <tomsmeding> wait what?
18:35:00 <davean> () stores if an evaluation *has or has not happened*
18:35:00 <tomsmeding> you can't check whether something is a thunk in O(1), right?
18:35:11 <tomsmeding> (well, maybe there is some weird ghc internal function for that, but disregarding that)
18:35:15 <davean> Don't need that
18:35:26 <davean> your deepseq implimentation is "force (normalize A)
18:35:40 <tomsmeding> normalize :: A -> A ?
18:35:42 <davean> if you've already deepseqed that is O(1)
18:35:44 <davean> no
18:35:49 <davean> look at my A definition
18:36:02 <davean> tomsmeding: data A = A {data :: ???, normalized :: () }, A ... (deepseq data `seq` ())
18:36:03 <tomsmeding> on *normalizeD you meant maybe?
18:36:07 <tomsmeding> *oh
18:36:12 <davean> yes, sorry
18:36:15 <tomsmeding> right
18:36:22 <davean> Usually you'll see this particular one with that cell as "rnf"
18:36:39 <tomsmeding> with the invariant on A that the () in 'normalized' depends on the evaluation of 'data'?
18:36:47 <tomsmeding> OH
18:37:05 <tomsmeding> right, you do what I just said, and then you deepseq the unit instead of the data
18:37:24 <davean> You don't need to deep seq it, you just force it, or rnf it
18:37:31 <tomsmeding> okay, so you still don't get the _information_ about whether it was evaluated, but you _can_ avoid traversing the data twice
18:37:39 <tomsmeding> right, deepseq = seq for unit
18:37:40 <davean> it evaluates whatever its existence predicates evaluation of
18:38:03 <davean> The information is always "Eventually True"
18:38:08 <davean> Or bottom
18:38:16 <davean> You *do* get the information
18:38:34 <tomsmeding> I consider "getting the information" equivalent to "being able to turn that into a Bool -- already evaluated or not already evaluated"
18:38:38 <davean> The information should just be trivial, but it is not true when you go to look at it, its is "eventually true"
18:39:05 <davean> tomsmeding: Well consider computational tree logic - True is not the same as Eventually True
18:39:29 <davean> and here we aren't guarrenteed true
18:39:32 <davean> we get either true or bottom
18:39:38 <davean> which is a large portion of the point
18:40:04 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 248 seconds)
18:40:12 <tomsmeding> I'm afraid my mind is too classical still for this :p
18:41:01 <davean> tomsmeding: well, if you force all of them to put them in your vector, you might cause issues, and if you don't and claim they're all () you might cause issues
18:41:16 <davean> tomsmeding: Its very clear that (computation resulting in ()) is not (is ())
18:41:25 <davean> you very well could get bottom and that very much is important
18:41:31 <tomsmeding> only if you put side effects into your computation using unsafePerformIO
18:41:37 <davean> Nope
18:41:41 <davean> Incorrect
18:41:49 <tomsmeding> otherwise the only difference is resource usage
18:41:49 <Bulby[m]> what about undefined?
18:41:49 <davean> That is true when pure
18:41:54 <davean> tomsmeding: incorrect
18:41:54 <tomsmeding> yes, () is pure
18:42:08 <tomsmeding> IO () is a vastly different world :p
18:42:14 <davean> I'm not talking about IO ()
18:42:18 <Bulby[m]> undefined is pure, and defined as bottom, no?
18:42:23 <davean> Bulby[m]: correct
18:42:35 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:42:39 <davean> computations on infinite lists can also be () and non-terminal
18:42:51 <davean> And many pure computatiosn error
18:43:05 <tomsmeding> agreed
18:43:08 <davean> no unsafePerformIO in sight
18:43:34 <davean> The value of () can be at least one of (), non-terminal, pure exception
18:43:43 <davean> At the *least*, and that its self is a trit
18:43:48 <tomsmeding> very few people care about the non-terminal option
18:43:57 <tomsmeding> more people care about a possible exception
18:44:48 <tomsmeding> in my opinion, if you care about the specific bottom that a computation produces, you should ensure _yourself_ that you evaluate the thing
18:45:05 <tomsmeding> I expect stuff like a Storable Vector of () to not evaluate my stuff
18:45:05 <davean> tomsmeding: the point is to *not* evaluate it unless you care about it
18:45:20 <davean> tomsmeding: () ensures a *property* if you look at it
18:45:48 × gio123 quits (~gio123@94.137.173.75) (Quit: Client closed)
18:45:55 <davean> Data.Storable.Vector changes the *semantics* of the code
18:46:03 <Bulby[m]> I think `()` usually means side effects and is kinda weird when you are handling it purely
18:46:17 <tomsmeding> Data.Vector.Storable changes nothing
18:46:26 <tomsmeding> it has an interface, and if you use it, you use the interface
18:46:26 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
18:46:26 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
18:46:26 wroathe joins (~wroathe@user/wroathe)
18:46:40 <tomsmeding> perhaps it didn't have the semantics you _expected_
18:48:19 jafarlihi joins (~user@188.253.237.9)
18:48:25 <davean> if you want to make that claim, I guess this discussion is going nowhere except a discussion of what the definition of is is
18:48:29 <davean> So I'm out
18:48:57 <tomsmeding> yes I'm feeling we're talking past each other
18:48:59 <tomsmeding> sorry :)
18:53:01 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
18:53:58 × jafarlihi quits (~user@188.253.237.9) (Quit: WeeChat 3.5)
18:56:38 notzmv joins (~zmv@user/notzmv)
19:03:20 shriekingnoise joins (~shrieking@201.231.16.156)
19:04:56 justsomeguy joins (~justsomeg@user/justsomeguy)
19:07:59 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
19:08:26 acidjnk_new joins (~acidjnk@p200300d0c7068b02e9c770e98d5298a4.dip0.t-ipconnect.de)
19:11:13 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Remote host closed the connection)
19:11:26 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
19:11:32 BusConscious joins (~martin@ip5f5acfa2.dynamic.kabel-deutschland.de)
19:14:16 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds)
19:14:32 × ulvarrefr quits (~user@185.24.53.152) (Read error: Connection reset by peer)
19:16:17 × caubert quits (~caubert@136.244.111.235) (Quit: WeeChat 3.5)
19:16:31 caubert joins (~caubert@136.244.111.235)
19:18:18 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 276 seconds)
19:19:50 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
19:20:42 nate3 joins (~nate@98.45.169.16)
19:22:12 × zaquest quits (~notzaques@5.130.79.72) (Ping timeout: 276 seconds)
19:22:47 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 240 seconds)
19:25:29 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
19:25:29 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
19:25:29 wroathe joins (~wroathe@user/wroathe)
19:25:44 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds)
19:27:39 gusbicalho joins (~gusbicalh@2804:431:c7f4:8ec4:4ce7:6d2e:9f0c:a377)
19:28:11 cyphase joins (~cyphase@user/cyphase)
19:33:54 ulvarrefr joins (~user@185.24.53.152)
19:34:20 zaquest joins (~notzaques@5.130.79.72)
19:36:13 × shapr quits (~user@2600:4040:2d31:7100:9163:bb47:6e24:ceed) (Remote host closed the connection)
19:36:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
19:48:49 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
19:49:47 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
19:55:15 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:55:28 × DNH quits (~DNH@2a02:8108:1100:16d8:589c:27c2:e36:6e88) (Ping timeout: 250 seconds)
19:55:32 opow242 joins (~opow242@2601:404:c400:e5e:24e1:bf8d:bd12:b91f)
19:56:33 <Bulby[m]> to write jump operations, Crafting Intepreters wants me to back patch, which doesn't really make sense in haskell
19:57:41 shapr joins (~user@2600:4040:2d31:7100:bf17:8a01:f76e:e214)
19:58:34 <Rembane> Bulby[m]: Why doesn't it make sense?
19:58:36 <Bulby[m]> especially with the Put monad
19:58:36 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 276 seconds)
19:58:48 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 248 seconds)
19:59:04 <Bulby[m]> you can't back up with the put monad/edit binary already written
19:59:45 <Rembane> Is there a way for you to read what has been written?
19:59:56 × alp quits (~alp@user/alp) (Ping timeout: 272 seconds)
20:00:15 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
20:00:15 <Bulby[m]> not in any sane way
20:02:52 × opow242 quits (~opow242@2601:404:c400:e5e:24e1:bf8d:bd12:b91f) (Quit: Client closed)
20:03:06 <Rembane> Okay, then that makes it harder. I haven't read Crafting Interpreters so I don't know how they would like this to be solved.
20:03:40 <geekosaur> the book provides Java examples iirc
20:03:45 opow242 joins (~opow242@2601:404:c400:e5e:24e1:bf8d:bd12:b91f)
20:03:51 <geekosaur> Bulby[m] is translating to Haskell
20:03:57 × _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
20:04:04 <geekosaur> I think I'd do this in 2 passes rather than try to backtrack
20:04:07 × opow242 quits (~opow242@2601:404:c400:e5e:24e1:bf8d:bd12:b91f) (Client Quit)
20:04:23 opow242 joins (~opow242@2601:404:c400:e5e:24e1:bf8d:bd12:b91f)
20:04:36 machinedgod joins (~machinedg@66.244.246.252)
20:04:47 <Bulby[m]> how would two passes work?
20:05:03 × opow242 quits (~opow242@2601:404:c400:e5e:24e1:bf8d:bd12:b91f) (Client Quit)
20:05:10 <Rembane> geekosaur: Oh, that explains quite a bit.
20:05:39 <geekosaur> actually I'm not sure because I can't see why they'd want you to backpatch anyway
20:06:09 <Bulby[m]> https://craftinginterpreters.com/jumping-back-and-forth.html#if-statements
20:06:10 <geekosaur> unless it's adding something like a label / jump landing point, and the point of the first patch would be to precompute those and insert them into whatever you're serializing
20:06:14 <Bulby[m]> for jumping
20:06:57 <Bulby[m]> then for the first pass, what's the point of serializing to binary?
20:07:20 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 248 seconds)
20:07:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
20:07:35 <Bulby[m]> oh, I guess it has mixed types
20:07:36 <geekosaur> you don't serialize during that patch except to compute how many bytes are to be skipped
20:08:24 <geekosaur> then you insert that into the AST, then you have it when serializing the AST. although this looks like it's generating code during parsing, which, well, this is why you don't do that
20:08:47 <Bulby[m]> I am not generating during parsing
20:08:48 <geekosaur> (IIRC [exa] described PHP doing this in reearly versions and discovering the hard way why it's a bad move)
20:08:58 × Midjak quits (~Midjak@82.66.147.146) (Quit: Leaving)
20:09:09 <Bulby[m]> I am reusing my AST parser
20:09:38 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
20:10:52 <geekosaur> okay, so you're not blindly duplicating their code, which is generating during parsing (and is why they need to backpatch)
20:11:13 <Bulby[m]> I'm traversing the AST
20:11:18 <Bulby[m]> not "traversing"
20:11:24 <Bulby[m]> you know what I mean
20:11:48 <Rembane> Compiling?
20:12:15 <geekosaur> in a full development system you output a label at the target, output a reference to it at the point it's needed as a relocation entry, and let the linker resolve it
20:12:18 <Bulby[m]> yes
20:14:10 <Bulby[m]> a fun idea could be just `runPut` what I want to jump over, getting length of bytestring, then directly using `putLazyByteString` (which doesn't emit a length)
20:14:47 <geekosaur> right, that's basically my first suggestion
20:15:30 <Bulby[m]> ok, i'll do that then.
20:15:30 <Bulby[m]> it's probably unoptimized but w/e
20:15:34 <geekosaur> needs to be a little more clever than that because it may traverse other such relocations but at that point it doesn't care about them, only their lengths
20:15:47 × epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
20:15:58 Vajb joins (~Vajb@2001:999:580:7ad5:4d80:745:ec1c:305)
20:16:05 <Bulby[m]> if it traverses them then it will do the same thing
20:16:27 <Bulby[m]> because i'd be running a recursive call
20:16:29 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
20:16:30 <geekosaur> not the first time since it's not outputting them at that point
20:16:54 <Bulby[m]> what?
20:16:58 <Bulby[m]> i'm confused
20:17:50 <geekosaur> if (expr) { then_part } else { something; if (expr2) { ... } else { ... }; something_else; } -- while generating the size of the else part you don't need to do generation of the contained if/else
20:17:51 alp joins (~alp@user/alp)
20:17:58 <geekosaur> you only need that later.
20:18:43 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
20:19:03 <Bulby[m]> why not? it would contain a jump expr as well, and I could manage it in just one pass
20:19:09 <geekosaur> because you'll be throwing away the result while getting its length, it's a waste of time doing the whole size/fillin there
20:19:13 nicbk joins (~nicbk@user/nicbk)
20:19:34 <geekosaur> unless you provide a way to return all the fillins for nested jumps
20:19:36 <Bulby[m]> I am not throwing away the result, I said I would use `putLazyByteString`
20:20:08 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 248 seconds)
20:20:24 × dfg quits (~dfg@user/dfg) (Quit: I hate quit messages.)
20:21:33 dfg joins (dfg@dfg.rocks)
20:21:33 × dfg quits (dfg@dfg.rocks) (Changing host)
20:21:33 dfg joins (dfg@user/dfg)
20:22:03 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
20:22:03 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
20:22:03 wroathe joins (~wroathe@user/wroathe)
20:24:15 pavonia joins (~user@user/siracusa)
20:24:33 × caubert quits (~caubert@136.244.111.235) (Changing host)
20:24:33 caubert joins (~caubert@user/caubert)
20:28:31 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:35:15 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
20:45:44 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 248 seconds)
20:46:42 unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
20:49:14 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Remote host closed the connection)
20:50:00 × shriekingnoise quits (~shrieking@201.231.16.156) (Ping timeout: 248 seconds)
20:50:36 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
20:54:14 <unit73e> after some hiatus I'll continue my SDL engine/tutorial saga. I think it should be possible to make something completely declarative but I'm being super optimistic about it.
20:54:24 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
20:54:28 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Remote host closed the connection)
20:55:00 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
20:59:10 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 250 seconds)
21:01:28 jgeerds joins (~jgeerds@55d45f48.access.ecotel.net)
21:07:40 × machinedgod quits (~machinedg@66.244.246.252) (Ping timeout: 246 seconds)
21:08:36 machinedgod joins (~machinedg@66.244.246.252)
21:13:48 × gusbicalho quits (~gusbicalh@2804:431:c7f4:8ec4:4ce7:6d2e:9f0c:a377) (Quit: Client closed)
21:23:19 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
21:33:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
21:34:58 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
21:37:14 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
21:49:00 × acidjnk_new quits (~acidjnk@p200300d0c7068b02e9c770e98d5298a4.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
21:49:21 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
21:49:59 ec joins (~ec@gateway/tor-sasl/ec)
21:53:00 wootehfoot joins (~wootehfoo@user/wootehfoot)
21:56:45 × bilegeek quits (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) (Remote host closed the connection)
21:57:11 bilegeek joins (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b)
21:57:20 cyphase joins (~cyphase@user/cyphase)
22:04:44 × bilegeek quits (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) (Remote host closed the connection)
22:05:10 bilegeek joins (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b)
22:05:25 × Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
22:06:01 biberu\ joins (~biberu@user/biberu)
22:06:48 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 248 seconds)
22:06:52 Teacup joins (~teacup@user/teacup)
22:09:16 × biberu quits (~biberu@user/biberu) (Ping timeout: 246 seconds)
22:09:16 biberu\ is now known as biberu
22:10:05 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:13:45 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
22:19:03 shriekingnoise joins (~shrieking@201.231.16.156)
22:23:52 justsomeguy joins (~justsomeg@user/justsomeguy)
22:24:32 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 250 seconds)
22:25:59 × tremon quits (~tremon@83-84-18-241.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
22:27:09 × Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
22:28:32 Teacup joins (~teacup@user/teacup)
22:28:47 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 244 seconds)
22:33:58 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:34:06 × unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Quit: Leaving)
22:34:45 × bilegeek quits (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) (Remote host closed the connection)
22:35:13 bilegeek joins (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b)
22:47:05 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
22:48:27 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:48:55 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
22:51:24 ketema joins (~ketema@140.sub-174-211-237.myvzw.com)
22:51:44 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 258 seconds)
22:52:23 × BusConscious quits (~martin@ip5f5acfa2.dynamic.kabel-deutschland.de) (Remote host closed the connection)
22:53:29 zincy joins (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0)
22:57:21 × jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 276 seconds)
23:00:45 × bilegeek quits (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) (Remote host closed the connection)
23:01:07 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 240 seconds)
23:01:09 bilegeek joins (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b)
23:06:19 cyphase joins (~cyphase@user/cyphase)
23:07:27 × gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 258 seconds)
23:10:11 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
23:10:45 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
23:11:49 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
23:12:32 × stackdroid18 quits (14094@user/stackdroid) (Quit: hasta la vista... tchau!)
23:13:14 × bilegeek quits (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) (Remote host closed the connection)
23:13:41 bilegeek joins (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b)
23:18:50 × Teacup quits (~teacup@user/teacup) (Quit: No Ping reply in 180 seconds.)
23:20:30 Teacup joins (~teacup@user/teacup)
23:22:20 nate3 joins (~nate@98.45.169.16)
23:31:55 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
23:38:04 × nicbk quits (~nicbk@user/nicbk) (Ping timeout: 240 seconds)
23:39:50 × machinedgod quits (~machinedg@66.244.246.252) (Ping timeout: 240 seconds)
23:40:02 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
23:41:45 × bilegeek quits (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) (Remote host closed the connection)
23:42:01 machinedgod joins (~machinedg@66.244.246.252)
23:42:23 bilegeek joins (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b)
23:54:55 × Tuplanolla quits (~Tuplanoll@91-159-69-173.elisa-laajakaista.fi) (Quit: Leaving.)
23:56:54 × zincy quits (~zincy@2a01:cb18:82de:bf00:70cc:2da1:ce4e:63a0) (Ping timeout: 258 seconds)
23:57:44 × bilegeek quits (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b) (Remote host closed the connection)
23:58:23 bilegeek joins (~bilegeek@2600:1008:b014:4c38:487c:f230:6a2b:928b)

All times are in UTC on 2022-06-11.