Home liberachat/#haskell: Logs Calendar

Logs on 2024-11-18 (liberachat/#haskell)

00:00:26 xal joins (~xal@mx1.xal.systems)
00:00:26 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds)
00:01:25 <Axman6> yeah the RIO approach (or similar ReaderT Env IO ideas) get you a very long way. it's pretty easy to do things like `inDB :: DB a -> ReaderT Env IO a` which runs a transaction inside your reader
00:02:48 × sprotte24 quits (~sprotte24@p200300d16f2c3600a1fb2e60ac56d901.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
00:10:06 × Everything quits (~Everythin@178-133-36-30.mobile.vf-ua.net) (Ping timeout: 246 seconds)
00:12:25 hiredman joins (~hiredman@frontier1.downey.family)
00:12:33 × hiredman quits (~hiredman@frontier1.downey.family) (Client Quit)
00:12:51 hiredman joins (~hiredman@frontier1.downey.family)
00:16:22 athan joins (~athan@syn-173-042-095-241.biz.spectrum.com)
00:19:23 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
00:19:49 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
00:20:44 Lord_of_Life_ is now known as Lord_of_Life
00:28:41 × mari-estel quits (~mari-este@user/mari-estel) (Remote host closed the connection)
00:29:23 × tomboy64 quits (~tomboy64@user/tomboy64) (Read error: Connection reset by peer)
00:29:29 tomboy65 joins (~tomboy64@user/tomboy64)
00:35:24 rvalue- joins (~rvalue@user/rvalue)
00:36:10 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 252 seconds)
00:37:23 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
00:39:24 <Leary> SrPx: Note that if you use 'mtl' monad-polymorphically then performance will become unreliable for cross-module inlining reasons. Consider using a modern effect system like 'effectful' or 'bluefin' instead.
00:40:39 × athan quits (~athan@syn-173-042-095-241.biz.spectrum.com) (Ping timeout: 260 seconds)
00:41:30 rvalue- is now known as rvalue
00:53:45 × oxide quits (~lambda@user/oxide) (Ping timeout: 252 seconds)
00:54:53 × j1n37 quits (j1n37@user/j1n37) (Read error: Connection reset by peer)
00:59:15 j1n37 joins (j1n37@user/j1n37)
01:05:57 × sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 248 seconds)
01:09:33 son0p joins (~ff@2800:e2:f80:ee7::4)
01:18:24 × son0p quits (~ff@2800:e2:f80:ee7::4) (Remote host closed the connection)
01:19:23 son0p joins (~ff@2800:e2:f80:ee7::4)
01:23:06 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
01:35:56 × tremon quits (~tremon@83.80.159.219) (Quit: getting boxed in)
01:41:41 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Ping timeout: 248 seconds)
01:43:12 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
01:43:43 gorignak joins (~gorignak@user/gorignak)
01:53:23 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
01:53:53 gorignak joins (~gorignak@user/gorignak)
02:03:34 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
02:04:04 gorignak joins (~gorignak@user/gorignak)
02:13:44 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
02:14:15 gorignak joins (~gorignak@user/gorignak)
02:17:36 × ZLima12 quits (~zlima12@user/meow/ZLima12) ()
02:20:04 ZLima12 joins (~zlima12@user/meow/ZLima12)
02:23:56 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
02:24:27 gorignak joins (~gorignak@user/gorignak)
02:28:33 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds)
02:34:07 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
02:34:37 gorignak joins (~gorignak@user/gorignak)
02:35:41 × todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in)
02:35:59 todi joins (~todi@p57803331.dip0.t-ipconnect.de)
02:44:18 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
02:44:48 gorignak joins (~gorignak@user/gorignak)
02:54:29 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
02:54:59 gorignak joins (~gorignak@user/gorignak)
02:56:21 × Inst quits (~Inst@user/Inst) (Ping timeout: 246 seconds)
03:03:59 rvalue- joins (~rvalue@user/rvalue)
03:04:40 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
03:04:40 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 252 seconds)
03:05:11 gorignak joins (~gorignak@user/gorignak)
03:08:14 rvalue- is now known as rvalue
03:14:51 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
03:15:21 gorignak joins (~gorignak@user/gorignak)
03:24:44 × xff0x quits (~xff0x@2405:6580:b080:900:ba13:33aa:3901:2450) (Ping timeout: 260 seconds)
03:25:34 × td_ quits (~td@i5387090C.versanet.de) (Ping timeout: 252 seconds)
03:27:45 × willscripted quits (~willscrip@user/willscripted) (Ping timeout: 248 seconds)
03:32:41 × turlando quits (~turlando@user/turlando) ()
03:32:51 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
03:33:21 gorignak joins (~gorignak@user/gorignak)
03:37:58 turlando joins (~turlando@user/turlando)
03:42:48 × shapr quits (~user@2600:4040:5c49:5600:cd62:8744:52b3:406b) (Quit: sleeyp)
03:43:02 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
03:43:33 gorignak joins (~gorignak@user/gorignak)
03:51:33 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
04:02:31 × notzmv quits (~daniel@user/notzmv) (Ping timeout: 264 seconds)
04:21:54 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
04:32:03 × troydm quits (~troydm@user/troydm) (Ping timeout: 245 seconds)
04:35:08 × werneta quits (~werneta@syn-071-083-160-242.res.spectrum.com) (Quit: Lost terminal)
04:36:52 × Leary quits (~Leary@user/Leary/x-0910699) (Remote host closed the connection)
04:38:53 × rekahsoft quits (~rekahsoft@bras-base-orllon1103w-grc-06-76-69-85-220.dsl.bell.ca) (Ping timeout: 252 seconds)
04:45:14 Leary joins (~Leary@user/Leary/x-0910699)
04:48:57 xff0x joins (~xff0x@106.178.114.108)
04:57:33 michalz joins (~michalz@185.246.207.197)
05:53:50 × werneta_ quits (~werneta@syn-071-083-160-242.res.spectrum.com) (Ping timeout: 272 seconds)
06:13:32 notzmv joins (~daniel@user/notzmv)
06:14:21 × vanishing quits (~vanishing@user/vanishingideal) (Ping timeout: 276 seconds)
06:24:00 briandaed joins (~root@user/briandaed)
06:27:51 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:30:04 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
06:37:04 × euleritian quits (~euleritia@77.22.252.159) (Ping timeout: 260 seconds)
06:38:42 euleritian joins (~euleritia@dynamic-176-004-231-188.176.4.pool.telefonica.de)
06:44:04 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
06:53:59 acidjnk_new joins (~acidjnk@p200300d6e7283f6925a61425bb02ca09.dip0.t-ipconnect.de)
07:01:06 × xff0x quits (~xff0x@106.178.114.108) (Ping timeout: 248 seconds)
07:15:44 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:25:18 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
07:39:29 × acidjnk_new quits (~acidjnk@p200300d6e7283f6925a61425bb02ca09.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
07:39:53 × pointlessslippe1 quits (~pointless@62.106.85.17) (Read error: Connection reset by peer)
07:44:49 Square2 joins (~Square4@user/square)
07:45:13 pointlessslippe1 joins (~pointless@62.106.85.17)
07:45:46 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
07:51:02 × ft quits (~ft@p4fc2a26f.dip0.t-ipconnect.de) (Quit: leaving)
07:53:52 acidjnk_new joins (~acidjnk@p200300d6e7283f69701fb6560bc0f0be.dip0.t-ipconnect.de)
07:59:58 × rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer)
08:00:03 × caconym quits (~caconym@user/caconym) (Quit: bye)
08:00:29 rvalue joins (~rvalue@user/rvalue)
08:00:42 caconym joins (~caconym@user/caconym)
08:06:47 sord937 joins (~sord937@gateway/tor-sasl/sord937)
08:08:40 × fr33domlover quits (~fr33domlo@towards.vision) (Quit: The Lounge - https://thelounge.chat)
08:14:02 misterfish joins (~misterfis@046044172198.static.ipv4.heldenvannu.net)
08:35:03 sawilagar joins (~sawilagar@user/sawilagar)
08:35:09 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
08:36:37 × euleritian quits (~euleritia@dynamic-176-004-231-188.176.4.pool.telefonica.de) (Read error: Connection reset by peer)
08:36:54 euleritian joins (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de)
08:48:10 chele joins (~chele@user/chele)
08:54:17 xff0x joins (~xff0x@2405:6580:b080:900:e7b6:fba6:14b7:d70c)
08:57:37 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
09:02:49 × lockywolf quits (~lockywolf@coconut.lockywolf.net) (Read error: Connection reset by peer)
09:05:45 alphazone is now known as unalmasIRC
09:06:48 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:08:56 Digitteknohippie joins (~user@user/digit)
09:09:04 × Digit quits (~user@user/digit) (Ping timeout: 244 seconds)
09:11:15 × euleritian quits (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
09:11:22 euleritian joins (~euleritia@dynamic-176-004-231-188.176.4.pool.telefonica.de)
09:14:46 kuribas joins (~user@ptr-17d51eowbvu84pzojhe.18120a2.ip6.access.telenet.be)
09:19:26 CrunchyFlakes joins (~CrunchyFl@31.19.233.78)
09:19:59 × misterfish quits (~misterfis@046044172198.static.ipv4.heldenvannu.net) (Ping timeout: 260 seconds)
09:32:19 × Alleria quits (~Alleria@user/alleria) (Ping timeout: 244 seconds)
09:34:48 __monty__ joins (~toonn@user/toonn)
09:36:07 Alleria joins (~Alleria@user/alleria)
09:45:28 × euleritian quits (~euleritia@dynamic-176-004-231-188.176.4.pool.telefonica.de) (Read error: Connection reset by peer)
09:45:45 euleritian joins (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de)
09:45:54 misterfish joins (~misterfis@31-161-39-137.biz.kpn.net)
09:47:58 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
09:52:39 Smiles joins (uid551636@id-551636.lymington.irccloud.com)
09:52:55 mari-estel joins (~mari-este@user/mari-estel)
09:55:41 × Vajb quits (~Vajb@n7m8bu6eaitlx0eukg2-1.v6.elisa-mobile.fi) (Ping timeout: 252 seconds)
09:56:55 Vajb joins (~Vajb@n84e9ei03jkqt6rm3ev-1.v6.elisa-mobile.fi)
09:59:34 mari15224 joins (~mari-este@user/mari-estel)
10:02:59 × mari-estel quits (~mari-este@user/mari-estel) (Ping timeout: 260 seconds)
10:03:24 × euleritian quits (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
10:06:13 euleritian joins (~euleritia@dynamic-176-004-231-188.176.4.pool.telefonica.de)
10:24:49 × son0p quits (~ff@2800:e2:f80:ee7::4) (Ping timeout: 248 seconds)
10:24:57 lxsameer joins (~lxsameer@Serene/lxsameer)
10:27:33 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 248 seconds)
10:33:25 pavonia joins (~user@user/siracusa)
10:43:34 zlqrvx joins (~zlqrvx@user/zlqrvx)
10:47:04 × jinsun quits (~jinsun@user/jinsun) (Ping timeout: 272 seconds)
10:49:34 jinsun joins (~jinsun@user/jinsun)
11:04:50 Digitteknohippie is now known as Digit
11:07:23 × Digit quits (~user@user/digit) (Remote host closed the connection)
11:09:10 Digit joins (~user@user/digit)
11:10:03 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
11:15:52 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2)
11:18:34 × euleritian quits (~euleritia@dynamic-176-004-231-188.176.4.pool.telefonica.de) (Read error: Connection reset by peer)
11:18:52 euleritian joins (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de)
11:38:12 SlackCoder joins (~SlackCode@64-94-63-8.ip.weststar.net.ky)
11:44:08 Guest59 joins (~Guest25@2402:3a80:413e:e883:2944:58c2:e568:454c)
11:44:56 × mari15224 quits (~mari-este@user/mari-estel) (Remote host closed the connection)
11:45:41 Guest59 parts (~Guest25@2402:3a80:413e:e883:2944:58c2:e568:454c) ()
11:55:25 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:59:04 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
12:02:09 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
12:02:59 jinsun_ joins (~jinsun@user/jinsun)
12:02:59 × jinsun quits (~jinsun@user/jinsun) (Killed (tantalum.libera.chat (Nickname regained by services)))
12:02:59 jinsun_ is now known as jinsun
12:05:47 × notzmv quits (~daniel@user/notzmv) (Remote host closed the connection)
12:11:10 jinsun is now known as Guest2809
12:11:10 jinsun_ joins (~jinsun@user/jinsun)
12:11:10 × Guest2809 quits (~jinsun@user/jinsun) (Killed (zinc.libera.chat (Nickname regained by services)))
12:11:10 jinsun_ is now known as jinsun
12:24:03 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
12:27:24 × SlackCoder quits (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Remote host closed the connection)
12:41:31 shapr joins (~user@2600:4040:5c49:5600:7905:5c67:d410:b5e3)
12:44:20 × user363627 quits (~user@user/user363627) (Remote host closed the connection)
12:50:52 kupi joins (uid212005@id-212005.hampstead.irccloud.com)
12:52:03 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:55:48 × acidjnk_new quits (~acidjnk@p200300d6e7283f69701fb6560bc0f0be.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
12:58:39 acidjnk_new joins (~acidjnk@p200300d6e7283f69701fb6560bc0f0be.dip0.t-ipconnect.de)
13:04:16 × mange quits (~user@user/mange) (Quit: Zzz...)
13:15:45 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
13:22:52 × euleritian quits (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
13:23:30 euleritian joins (~euleritia@dynamic-176-006-145-171.176.6.pool.telefonica.de)
13:27:53 zlqrvx_ joins (~zlqrvx@2001:8003:8c8b:e00:58ff:a30c:881f:1fe4)
13:28:06 × euleritian quits (~euleritia@dynamic-176-006-145-171.176.6.pool.telefonica.de) (Ping timeout: 252 seconds)
13:28:27 euleritian joins (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de)
13:31:55 × zlqrvx quits (~zlqrvx@user/zlqrvx) (Ping timeout: 264 seconds)
13:33:00 × euleritian quits (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
13:39:58 euleritian joins (~euleritia@dynamic-176-007-160-241.176.7.pool.telefonica.de)
13:40:59 JuanDaugherty joins (~juan@user/JuanDaugherty)
13:41:25 × euleritian quits (~euleritia@dynamic-176-007-160-241.176.7.pool.telefonica.de) (Read error: Connection reset by peer)
13:41:44 euleritian joins (~euleritia@77.22.252.159)
13:42:43 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
13:48:20 × manwithluck quits (manwithluc@gateway/vpn/protonvpn/manwithluck) (Remote host closed the connection)
13:48:45 manwithluck joins (manwithluc@gateway/vpn/protonvpn/manwithluck)
13:52:43 × astroanax quits (~astroanax@2001:19f0:7402:f82:5400:1ff:fec4:f7d7) (Ping timeout: 244 seconds)
13:53:35 astroanax joins (~astroanax@2001:19f0:7402:f82:5400:1ff:fec4:f7d7)
13:57:52 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:59:46 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 260 seconds)
14:01:05 × misterfish quits (~misterfis@31-161-39-137.biz.kpn.net) (Ping timeout: 265 seconds)
14:01:31 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds)
14:05:08 × euleritian quits (~euleritia@77.22.252.159) (Read error: Connection reset by peer)
14:05:59 euleritian joins (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de)
14:07:31 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
14:07:35 × euleritian quits (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
14:07:56 euleritian joins (~euleritia@77.22.252.159)
14:11:21 ystael joins (~ystael@user/ystael)
14:22:12 alexherbo2 joins (~alexherbo@2a02-8440-3113-e8b3-4dc5-4d20-737c-18a7.rev.sfr.net)
14:37:24 k` joins (~k`@152.7.255.193)
14:38:18 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
14:39:49 willscripted joins (~willscrip@user/willscripted)
14:41:56 <k`> Is it possible to include GADT constraints in a pattern synonym? I'm trying to do something like `pattern ()=> (a ~ Int)=> Bool -> Foo a ; pattern Foo b <- (unpack -> b) where Foo x = Foo__ (pack x)`, and I get type error "Couldn't match type 'a' with 'Bool'".
14:43:32 × euleritian quits (~euleritia@77.22.252.159) (Ping timeout: 252 seconds)
14:43:58 euleritian joins (~euleritia@176.2.4.196)
14:44:15 <k`> The GHC docs seem to imply that that's how the second set of constraints works, but I can't get the type to check.
14:49:41 misterfish joins (~misterfis@31-161-39-137.biz.kpn.net)
14:50:11 <dolio> What is the type of unpack?
14:50:16 k` is now known as Wygulmage
14:52:41 × Wygulmage quits (~k`@152.7.255.193) (Changing host)
14:52:41 Wygulmage joins (~k`@user/Wygulmage)
14:52:43 <dolio> Presumably the problem is that it just returns a boolean, which means that it doesn't actually get you the a ~ Int evidence that you say it has.
14:53:14 <dolio> You need it to produce a type that is a Boolean with evidence that you're going to match on.
14:54:12 <dolio> Like `data Witness c a where Wit :: c => a -> Witness c a`
14:55:18 lol_ is now known as jcarpenter2
14:55:21 <Wygulmage> Sorry, so the GADT is `data Foo a where Foo__ :: Int -> Foo Bool
14:55:38 <Wygulmage> type of unpack is Int -> Bool
14:55:56 <dolio> Right, but what type is `unpack`?
14:56:39 × misterfish quits (~misterfis@31-161-39-137.biz.kpn.net) (Ping timeout: 252 seconds)
14:57:10 <dolio> Oh I see. Anyway, it doesn't matter. It just swaps around the problem.
14:57:12 <Wygulmage> (actually `Int# -> Bool`, if that matters.)
14:57:51 <Wygulmage> I assumed that strictly matching the GADT constructor Foo__ in the view pattern would bring the constraint into scope.
14:58:49 <dolio> It does in unpack. But what is the type of unpack?
14:59:09 <Wygulmage> `unpack :: Int# -> Bool`
14:59:24 <dolio> Okay, so, it only returns a Bool, not evidence that `a ~ Int`.
14:59:58 <Wygulmage> Right. Can I give it a type like `Int# -> (a ~ Bool)=> a` ?
15:00:14 <dolio> You could, but that's not the right type.
15:01:45 <dolio> The right type is something like `Foo a -> Witness (a ~ Bool) ...`
15:03:33 <Wygulmage> Sorry, sorry, I had messed this up at the beginning. In desperation I had changed the pattern to `Foo b <- (\ (Foo_ i) -> unpack i -> b`
15:04:56 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
15:05:22 <Wygulmage> Does a view pattern like that not bring `Foo__` 's constraints into scope? Do I need to return something like `(# b, Refl #)` ?
15:05:28 gorignak joins (~gorignak@user/gorignak)
15:05:41 <dolio> Maybe you want `Foo u <- Foo_ (unpack -> u)`
15:06:59 <Wygulmage> dolio: Thank you! I did not know that was legal syntax!
15:07:17 <dolio> It's just using a view pattern nested under a normal pattern.
15:07:35 <dolio> That way the Foo__ match gets you the evidence.
15:08:00 <dolio> If you put it all in a function, then the function won't be returning the evidence unless you give it a more complicated return type.
15:08:01 <Wygulmage> I'm pretty ignorant of view pattern syntax. I only use them when I need smart constructors in pattern synonyms.
15:08:23 <Wygulmage> Anyway, that works perfectly.
15:11:25 weary-traveler joins (~user@user/user363627)
15:15:08 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
15:15:38 gorignak joins (~gorignak@user/gorignak)
15:20:37 housemate joins (~housemate@2a04:9dc0:0:162::5d91:d7ed)
15:20:51 <Wygulmage> So here's a semirelated question: Do UNPACK pragmas do anything to UnliftedTypes? For example, my understanding is that `ByteArray#` is a reference to a GC-managed reference to a memory region of metadata and bytes. If you try to UNPACK the `ByteArray` into a lifted constructor `Bar Int# !ByteArray#` , is the result a reference to an `Int#` and a
15:20:52 <Wygulmage> GC-managed reference to a memory region of metadata and bytes? Or is it a reference to ( an `Int#` and a reference to a GC managed...)?
15:24:24 <Wygulmage> Is there a way to check by looking at the dumped .simpl file for the module?
15:24:27 <dolio> I'm not sure what you're asking. You can't unpack the ByteArray# stuff directly into the constructor of another type (to my knowledge) if that's what you mean.
15:24:50 <dolio> So the ByteArray# will still be an indirection.
15:25:19 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
15:25:19 <dolio> In a manner of speaking.
15:25:49 gorignak joins (~gorignak@user/gorignak)
15:28:22 <Wygulmage> For what it's worth, GHC does not complain about an UNPACK pragma on a ByteArray#. And I assume that if I define my own unlifted types, I can unpack them (because they are still boxed).
15:28:40 <dolio> Basically, Bar contains two words (I think), one of which is the Int# and one which is the pointer to the byte array structure.
15:30:34 <Wygulmage> The byte array structure as in the actual memory region, or another pointer (to GC-managed memory if unpinned and pinned memory if pinned) to the actual allocated memory?
15:32:08 <dolio> It's not just a pointer to the beginning of the bytes, because byte arrays e.g. know their length.
15:32:26 <dolio> It's a structure.
15:33:38 <dolio> I don't know exactly how it's represented, though. I guess the structure could be all packed together instead of involving another pointer.
15:34:56 <Wygulmage> Right. I think we're talking past each other. My understanding is that a ByteArray# is a pointer to another pointer to flat memory that consists of length in bytes and then the bytes. I'm wondering whether unpacking the ByteArray# lifts gets rid of that first pointer,
15:35:29 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
15:35:31 <Wygulmage> (because GC can rewrite the pointer to actual memory inside the lifted structure that it's been unpacked into)
15:35:59 <dolio> You can only unpack data types.
15:36:01 gorignak joins (~gorignak@user/gorignak)
15:37:35 <Wygulmage> Right. So UnliftedTypes are inside strict boxes (pointers) that allow the garbage collector to manage them. Does unpacking an unlifted type get rid of that box?
15:38:24 mari-estel joins (~mari-este@user/mari-estel)
15:39:24 <dolio> Are you asking about ByteArray#? Then the answer is no, because it's not defined with data. It's a built-in.
15:40:09 <dolio> If you're asking about a data definition with a specified kind of UnliftedType, then I'm less certain. I think the answer might still be no.
15:40:16 Alleria_ joins (~Alleria@user/alleria)
15:40:35 <Wygulmage> OK, thanks.
15:40:44 <Wygulmage> That's exactly what I wanted to know.
15:43:17 × Alleria quits (~Alleria@user/alleria) (Ping timeout: 248 seconds)
15:43:52 <Wygulmage> So a polymorphic `data Baz ( a :: UnliftedType ) = MkBaz Int# a` will have an equivalent in-memory representation to `data BazBytes = MkMazBytes Int# ByteArray#` when `a` is instantiated to `ByteArray#`
15:44:40 <Wygulmage> I was wondering whether the polymorphism would introduce an extra layer of indirection.
15:45:41 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
15:46:11 gorignak joins (~gorignak@user/gorignak)
15:46:28 Alleria joins (~Alleria@user/alleria)
15:47:00 × Alleria_ quits (~Alleria@user/alleria) (Ping timeout: 276 seconds)
15:47:27 <Wygulmage> It's nice to be able to have the `Baz` wrapper for `Array#`, `ByteArray#`, `MutableByteArray#`, etc., but at this low level, not if it creates an extra indirection.
15:49:03 <dolio> It appears that if `type F :: UnliftedType` is declared, then `data G = G {-# unpack #-} !F` does not actually unpack F.
15:49:49 <dolio> You can see this by messing around with -ddump-simpl.
15:50:12 × euleritian quits (~euleritia@176.2.4.196) (Read error: Connection reset by peer)
15:50:13 <Wygulmage> That is very good to know.
15:50:30 euleritian joins (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de)
15:50:51 <dolio> When F is not UnliftedType, a G value ends up looking like: `floobnar = Up.G 5# 6#`
15:51:29 <dolio> But the UnliftedType version is: `floobnar = Up.G (Up.F 5# 6#)`
15:51:33 × Alleria quits (~Alleria@user/alleria) (Ping timeout: 276 seconds)
15:52:07 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
15:53:12 <Wygulmage> Huh. I wonder whether that's a bug or a feature.
15:53:47 <dolio> I don't know. I guess they figured you wouldn't be unpacking unlifted data types into other types.
15:54:08 <dolio> Certainly there's no reason you couldn't.
15:54:52 <Wygulmage> I assumed that GHC would unpack anything of `BoxedRep r`, regardless of whether `r` was lifted or unlifted.
15:55:04 <Wygulmage> I guess it operates at a less general level.
15:55:52 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
15:56:23 gorignak joins (~gorignak@user/gorignak)
15:57:35 Alleria joins (~Alleria@user/alleria)
16:04:46 × Alleria quits (~Alleria@user/alleria) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:05:59 Alleria joins (~Alleria@user/alleria)
16:06:03 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
16:06:33 gorignak joins (~gorignak@user/gorignak)
16:16:19 × euleritian quits (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Remote host closed the connection)
16:16:53 euleritian joins (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de)
16:17:32 × housemate quits (~housemate@2a04:9dc0:0:162::5d91:d7ed) (Quit: Nothing to see here. I wasn't there.)
16:18:38 <dolio> You should probably check if UnliftedType omits other optimizations. E.G. does GHC still do constructed product returns for them?
16:18:42 housemate joins (~housemate@2a04:9dc0:0:162::5d91:d7ed)
16:20:07 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2)
16:21:31 son0p joins (~ff@2800:e6:4001:6cc3:2748:5c2a:65d9:57ac)
16:21:43 × housemate quits (~housemate@2a04:9dc0:0:162::5d91:d7ed) (Client Quit)
16:22:52 housemate joins (~housemate@2a04:9dc0:0:162::5d91:d7ed)
16:25:30 × Alleria quits (~Alleria@user/alleria) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:26:54 Leonard26 joins (~Leonard26@49.236.26.53)
16:27:16 × euleritian quits (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Remote host closed the connection)
16:27:33 euleritian joins (~euleritia@77.22.252.159)
16:29:16 × housemate quits (~housemate@2a04:9dc0:0:162::5d91:d7ed) (Ping timeout: 244 seconds)
16:29:17 × mari-estel quits (~mari-este@user/mari-estel) (Remote host closed the connection)
16:32:13 Alleria joins (~Alleria@user/alleria)
16:33:15 × berberman quits (~berberman@user/berberman) (Quit: ZNC 1.8.2 - https://znc.in)
16:34:21 killerstorm joins (~killersto@224.225.60.94.rev.vodafone.pt)
16:35:20 berberman joins (~berberman@user/berberman)
16:35:28 <Leonard26> Hello! =D How are you?
16:35:28 <Leonard26> I am trying to follow the tutorial/blog on ReaderT https://tech.fpcomplete.com/blog/2017/06/readert-design-pattern/
16:35:29 <Leonard26> I was asking myself if given the following line `var <- newTVarIO (1 :: Int)` one could then use it in a different function outside of main?
16:35:29 <Leonard26> Like so https://paste.tomsmeding.com/IyjbMmtV
16:37:35 alp joins (~alp@2001:861:e3d6:8f80:568b:9761:243e:95b5)
16:37:36 <ncf> pass var as an argument
16:39:47 × jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Read error: Connection reset by peer)
16:40:33 <Leonard26> You mean like so? https://paste.tomsmeding.com/5unyMRGn
16:41:51 jespada_ joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
16:43:23 × jespada_ quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Read error: Connection reset by peer)
16:44:05 <ncf> well obviously you need to call newFunc from main
16:44:46 <Leonard26> yes, right, sorry I forgot '=D
16:46:42 jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
16:48:48 housemate joins (~housemate@2a04:9dc0:0:162::5d91:d7ed)
16:49:54 × Alleria quits (~Alleria@user/alleria) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:50:52 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer)
16:52:31 × housemate quits (~housemate@2a04:9dc0:0:162::5d91:d7ed) (Remote host closed the connection)
16:52:49 rachelambda joins (~rachelamb@cust-95-80-25-71.csbnet.se)
16:54:14 housemate joins (~housemate@2a04:9dc0:0:162::5d91:d7ed)
17:06:04 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:10:11 <zzz> is there any potencial performance difference between using the State monad and threading manually like this?: https://paste.jrvieira.com/1731949754002
17:10:33 × acidjnk_new quits (~acidjnk@p200300d6e7283f69701fb6560bc0f0be.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
17:11:16 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
17:14:14 Alleria joins (~Alleria@user/alleria)
17:14:15 × euleritian quits (~euleritia@77.22.252.159) (Read error: Connection reset by peer)
17:18:49 euleritian joins (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de)
17:22:30 <zzz> i guess i could create a new IntMap and update it each step instead of appending to a linked list and then using IntMap.fromList but other than that
17:22:33 × Alleria quits (~Alleria@user/alleria) (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:24:04 <geekosaur> if ghc's doing its thing correctly, the state monad should get optimized down to the manual version
17:24:09 <zzz> and then again maybe not. i guess IntMap.fromList can be more performant than IntMap.insert every step
17:24:40 <geekosaur> (but you'd need to inspect Core to find out)
17:24:43 × Leonard26 quits (~Leonard26@49.236.26.53) (Quit: Client closed)
17:24:59 <geekosaur> and yes, especially if it's going to be a large tree I'd `fromList` at the end
17:25:25 <zzz> i actually prefer not using State in this particular instance
17:25:27 <zzz> thanks
17:26:09 × shapr quits (~user@2600:4040:5c49:5600:7905:5c67:d410:b5e3) (Ping timeout: 248 seconds)
17:28:13 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
17:32:07 × alexherbo2 quits (~alexherbo@2a02-8440-3113-e8b3-4dc5-4d20-737c-18a7.rev.sfr.net) (Remote host closed the connection)
17:33:55 × hellwolf quits (~user@04ed-dbc2-42ba-2a72-0f00-4d40-07d0-2001.sta.estpak.ee) (Remote host closed the connection)
17:34:15 hellwolf joins (~user@ce28-37de-4848-1507-0f00-4d40-07d0-2001.sta.estpak.ee)
17:47:07 acidjnk_new joins (~acidjnk@p200300d6e7283f69701fb6560bc0f0be.dip0.t-ipconnect.de)
17:48:07 Alleria_ joins (~Alleria@user/alleria)
17:49:25 iteratee joins (~kyle@162.218.222.207)
17:52:47 × killerstorm quits (~killersto@224.225.60.94.rev.vodafone.pt) (Quit: Client closed)
17:52:58 <iteratee> Chased down an interesting bug recently. I was trying to set up direct QUIC access to a server I have running.
17:53:26 <iteratee> My load balancer will answer requests via QUIC, but will only connect downstream via TCP.
17:53:56 × Alleria_ quits (~Alleria@user/alleria) (Max SendQ exceeded)
17:53:57 × euleritian quits (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
17:54:22 euleritian joins (~euleritia@77.22.252.159)
17:54:58 <iteratee> so I created a UDP load balancer that went directly to my webserver. This means that the webserver needs the correct certificates to answer with quic.
17:55:50 <iteratee> I was getting certificate issues with the direct connection that I wasn't getting with the same certificate served by my reverse proxy.
17:56:29 Alleria joins (~Alleria@user/alleria)
17:57:50 ft joins (~ft@p4fc2a26f.dip0.t-ipconnect.de)
17:58:18 <iteratee> it turned out that `credentialLoadX509` and `credentialLoadX509FromMemory` were returning the certificates in differing orders.
17:59:03 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
17:59:24 <iteratee> with the root cause buried in the crypton-x509-store library.
18:00:34 × Alleria quits (~Alleria@user/alleria) (Max SendQ exceeded)
18:01:27 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
18:01:33 × euleritian quits (~euleritia@77.22.252.159) (Ping timeout: 276 seconds)
18:02:25 Alleria joins (~Alleria@user/alleria)
18:02:41 euleritian joins (~euleritia@77.22.252.159)
18:03:04 × Square2 quits (~Square4@user/square) (Ping timeout: 260 seconds)
18:03:05 × housemate quits (~housemate@2a04:9dc0:0:162::5d91:d7ed) (Quit: Nothing to see here. I wasn't there.)
18:04:52 × Alleria quits (~Alleria@user/alleria) (Client Quit)
18:05:59 × dpk quits (~dpk@jains.nonceword.org) (Ping timeout: 260 seconds)
18:07:05 housemate joins (~housemate@2a04:9dc0:0:162::5d91:d7ed)
18:08:16 × kuribas quits (~user@ptr-17d51eowbvu84pzojhe.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
18:15:00 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:15:09 × Wygulmage quits (~k`@user/Wygulmage) (Quit: Client closed)
18:17:32 misterfish joins (~misterfis@84.53.85.146)
18:17:49 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 260 seconds)
18:20:41 × ystael quits (~ystael@user/ystael) (Read error: Connection reset by peer)
18:31:10 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:31:12 × son0p quits (~ff@2800:e6:4001:6cc3:2748:5c2a:65d9:57ac) (Ping timeout: 244 seconds)
18:31:17 lxsameer joins (~lxsameer@Serene/lxsameer)
18:31:54 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
18:32:50 × talismanick quits (~user@2601:644:937c:ed10::ae5) (Ping timeout: 248 seconds)
18:33:38 ljdarj joins (~Thunderbi@user/ljdarj)
18:35:59 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 252 seconds)
18:36:23 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
18:36:29 <briandaed> iteratee: was it somehow related to https://github.com/haskell-tls/hs-certificate/issues/31
18:36:32 <briandaed> ?
18:37:55 × euleritian quits (~euleritia@77.22.252.159) (Ping timeout: 264 seconds)
18:38:49 euleritian joins (~euleritia@dynamic-176-002-004-196.176.2.pool.telefonica.de)
18:56:01 L29Ah joins (~L29Ah@wikipedia/L29Ah)
19:06:01 Alleria joins (~Alleria@user/alleria)
19:07:09 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
19:08:53 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
19:13:45 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
19:19:55 × flounders quits (~flounders@173.246.200.74) (Quit: WeeChat 4.4.2)
19:21:27 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds)
19:28:31 k` joins (~k`@152.7.255.193)
19:28:31 × rachelambda quits (~rachelamb@cust-95-80-25-71.csbnet.se) (Read error: Connection reset by peer)
19:30:50 rachelambda joins (~rachelamb@cust-95-80-25-71.csbnet.se)
19:31:50 × rachelambda quits (~rachelamb@cust-95-80-25-71.csbnet.se) (Read error: Connection reset by peer)
19:32:36 × euleritian quits (~euleritia@dynamic-176-002-004-196.176.2.pool.telefonica.de) (Read error: Connection reset by peer)
19:32:54 euleritian joins (~euleritia@ip5f5ad3bc.dynamic.kabel-deutschland.de)
19:34:15 rachelambda joins (~rachelamb@cust-95-80-25-71.csbnet.se)
19:39:29 × euleritian quits (~euleritia@ip5f5ad3bc.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds)
19:40:20 euleritian joins (~euleritia@dynamic-176-002-004-196.176.2.pool.telefonica.de)
19:41:51 × Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
19:43:46 Alleria_ joins (~Alleria@user/alleria)
19:46:19 × Alleria quits (~Alleria@user/alleria) (Ping timeout: 260 seconds)
19:47:54 <SrPx> quick question about how IO and laziness mix. consider the following Haskell program:
19:47:58 <SrPx> gen = do print "A"; return 1
19:48:03 <SrPx> make = do x <- gen; y <- gen; z <- gen; return (x, y, z)
19:48:06 <SrPx> main = do (x, y, z) <- make; print x
19:48:20 <SrPx> obviously, it will print "A" 3 times, because we run all the lines of the "make" function
19:48:46 <SrPx> yet, we only ever observe "x". as such, in a full lazy sense, it should only print "A" once
19:48:56 × kaskal quits (~kaskal@2001:4bb8:2c3:1470:8b1d:2068:6ef2:d351) (Quit: ZNC - https://znc.in)
19:48:57 <SrPx> I know that's not how IO works -
19:49:40 <SrPx> that said, on my application, I do need the ability to do IO inside "pure" functions (because I'm using C FFI for performance), but I'd also like these IO's to only be executed when necessary, i.e., lazily
19:50:15 <SrPx> is there any idiomatic way to modify the 'make' function so that "A" will be printed once if 'main' prints 'x', yet "A" will be printed 3 times if 'main' prints '(x,y,z)?
19:50:18 ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207)
19:52:06 <haskellbridge> <sm> unsafePerformIO, I think
19:52:20 <davean> SrPx: what does C FFI have to do with pure functions?
19:52:21 <haskellbridge> <sm> not idiomatic, but I think that'd be the simple way
19:52:38 kaskal joins (~kaskal@213-147-165-220.nat.highway.webapn.at)
19:52:50 <davean> I'm lost as to the connection you're making
19:53:29 × rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer)
19:53:43 <geekosaur> you can do pure FFI, if you know the C function you are calling has no side effects and in particular doesn't allocate
19:53:44 <SrPx> davean: to be more specific, this is for an evaluator. the runtime is in C, including the "whnf-reduce" function. that function does, internally, effectiful things such as allocating memory and writing to the global heap. as such, whnf-reduce must be wrapped in IO - it isn't a pure function
19:53:59 <geekosaur> ah
19:54:00 rvalue joins (~rvalue@user/rvalue)
19:54:19 <davean> geekosaur: right, but see what he said "I do need the ability to do IO inside "pure" functions (because I'm using C FFI for performance)"
19:54:43 <SrPx> the problem is that, now, the 'normal' function (which calls whnf-reduce layer by layer) is extremely eager. if I normalize a term and drop it, it will still fully normalize the term because the whole thing has to be wrapped in IO
19:54:44 <geekosaur> right, but at that point I think I say "just do it in IO, you will be sad otherwise"
19:55:07 <davean> I mean you can pass laziness through IO
19:55:13 troydm joins (~troydm@user/troydm)
19:55:17 <davean> IO doesn't remove laziness
19:55:30 <SrPx> so I can't interleave IO calls to happen only when Haskell's lazy evaluator reaches an expression? ):
19:55:33 <SrPx> what will happen exactly?
19:55:45 <davean> I mean that is what IO already does.
19:56:15 × Angelz quits (Angelz@Angelz.oddprotocol.org) (Ping timeout: 246 seconds)
19:56:31 <mauke> unsafeInterleaveIO exists
19:56:48 <SrPx> no. it is true that you can pass IO around lazily. yet, within the context of the execution of IO monad, calls will not be evaluated lazily - Haskell will run the whole IO, even if some parts aren't visible (see my example)
19:57:05 <SrPx> mauke: I've just learned about it, seems like what I need. although documentation isn't clear on how it could break things
19:57:27 <mauke> are you familiar with getContents?
19:57:47 <SrPx> interestingly, seems like there is a SO thread about exactly that: https://stackoverflow.com/questions/13263692/when-is-unsafeinterleaveio-unsafe
19:57:50 <SrPx> mauke: no, what is that?
19:59:29 <mauke> gives you stdin as a lazy string
19:59:30 <davean> SrPx: It will run the whole IO, but IO can pass and produce lazy values just fine
19:59:34 <SrPx> "In general, it is up to you to prove that your use of unsafeInterleaveIO is safe. If you call unsafeInterleaveIO x, then you have to prove that x can be called at any time and still produce the same output."
19:59:59 <SrPx> ah, based on this I'm good to use it. reduce() will always return the same result, even though it mutates memory internally. ty guys
20:00:02 × caconym quits (~caconym@user/caconym) (Quit: bye)
20:00:40 <davean> SrPx: Then it might be pure and not involve IO at all?
20:00:41 <SrPx> and it works!
20:00:42 caconym joins (~caconym@user/caconym)
20:00:53 <mauke> is reduce a C function?
20:01:08 <SrPx> davean: you mean in the sense I could wrap unsafePerformIO into the reduce() function I get from C?
20:01:18 <SrPx> davean: that might be a better idea actually...
20:01:29 <mauke> if so, you can just import it at a pure type
20:01:56 <SrPx> mauke: makes sense
20:02:06 <mauke> (of course, that won't work if it takes/returns pointers)
20:02:25 <SrPx> so, as long as I guarantee reduce acts purely, it is ok to import it as a pure function, even thought it isn't
20:02:38 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:02:41 <davean> C FFI doesn't mean you have to have IO
20:02:52 <mauke> runST exists
20:03:05 <mauke> so I figure if it is morally "like ST", then it should be OK
20:04:46 <davean> Yah this sounds more ST than IO
20:09:54 Square joins (~Square@user/square)
20:10:30 × kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
20:12:11 <SrPx> it works flawlessly guys. the interaction count decreases based on the terms I actually observe in Haskell. so basically Haskell-side laziness propagates to HVM in the sense if you discard an HVM term Haskell-side, you won't pay for it
20:12:15 <SrPx> and that's extremely cool
20:12:17 <SrPx> ty
20:12:46 <SrPx> like mindblowingly cool
20:13:41 kaskal- joins (~kaskal@84-115-237-124.cable.dynamic.surfer.at)
20:15:11 × kaskal quits (~kaskal@213-147-165-220.nat.highway.webapn.at) (Ping timeout: 265 seconds)
20:17:20 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
20:19:54 sprotte24 joins (~sprotte24@p200300d16f36e9004570e4f99d260ace.dip0.t-ipconnect.de)
20:22:00 × kaskal- quits (~kaskal@84-115-237-124.cable.dynamic.surfer.at) (Quit: ZNC - https://znc.in)
20:22:04 <haskellbridge> <sm> 😎
20:22:46 kaskal joins (~kaskal@84-115-237-124.cable.dynamic.surfer.at)
20:28:53 <haskellbridge> <hellwolf> cool
20:31:24 × michalz quits (~michalz@185.246.207.197) (Remote host closed the connection)
20:32:17 × ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en)
20:33:43 × briandaed quits (~root@user/briandaed) (Remote host closed the connection)
20:33:54 Smiles joins (uid551636@id-551636.lymington.irccloud.com)
20:34:42 zmt01 joins (~zmt00@user/zmt00)
20:36:16 Angelz joins (Angelz@2605:6400:30:fc15:9bd1:2217:41cd:bb15)
20:38:12 × zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 276 seconds)
20:41:04 mari-estel joins (~mari-este@user/mari-estel)
20:44:59 ystael joins (~ystael@user/ystael)
20:45:47 × k` quits (~k`@152.7.255.193) (Quit: Client closed)
20:46:09 × CrunchyFlakes quits (~CrunchyFl@31.19.233.78) (Quit: ZNC 1.8.2 - https://znc.in)
20:54:12 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
21:08:34 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
21:13:09 Alleria joins (~Alleria@user/alleria)
21:15:09 × Alleria_ quits (~Alleria@user/alleria) (Ping timeout: 260 seconds)
21:21:02 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds)
21:22:33 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:22:36 × housemate quits (~housemate@2a04:9dc0:0:162::5d91:d7ed) (Quit: Nothing to see here. I wasn't there.)
21:26:34 jinsun_ joins (~jinsun@user/jinsun)
21:26:34 jinsun is now known as Guest2352
21:26:34 × Guest2352 quits (~jinsun@user/jinsun) (Killed (molybdenum.libera.chat (Nickname regained by services)))
21:26:34 jinsun_ is now known as jinsun
21:31:33 × ystael quits (~ystael@user/ystael) (Read error: Connection reset by peer)
21:31:58 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
21:34:54 housemate joins (~housemate@2a04:9dc0:0:162::5d91:d7ed)
21:40:48 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
21:42:09 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
21:55:49 × mari-estel quits (~mari-este@user/mari-estel) (Quit: <3)
22:00:43 mange joins (~user@user/mange)
22:02:59 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
22:11:44 × housemate quits (~housemate@2a04:9dc0:0:162::5d91:d7ed) (Quit: Nothing to see here. I wasn't there.)
22:18:12 ystael joins (~ystael@user/ystael)
22:31:48 Everything joins (~Everythin@31.144.80.156)
22:52:39 × Square quits (~Square@user/square) (Ping timeout: 252 seconds)
22:59:31 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 264 seconds)
23:02:46 housemate joins (~housemate@2a04:9dc0:0:162::5d91:d7ed)
23:19:04 × gabriel_sevecek quits (~gabriel@188-167-229-200.dynamic.chello.sk) (Ping timeout: 252 seconds)
23:21:21 × acidjnk_new quits (~acidjnk@p200300d6e7283f69701fb6560bc0f0be.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
23:23:00 <iteratee> briandead: Yes, it looks like that was fixed for reading from a file, but it was left unchanged for reading from a bytestring.
23:25:23 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
23:28:20 gabriel_sevecek joins (~gabriel@188-167-229-200.dynamic.chello.sk)
23:35:47 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
23:52:35 Alleria_ joins (~Alleria@user/alleria)
23:53:01 troojg joins (~troojg@user/troojg)
23:56:50 × Alleria quits (~Alleria@user/alleria) (Ping timeout: 272 seconds)
23:59:00 × chele quits (~chele@user/chele) (Remote host closed the connection)
23:59:29 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)

All times are in UTC on 2024-11-18.