Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,802,492 events total
2025-11-21 11:08:24 <c_wraith> but it turns out to actually work in Haskell
2025-11-21 11:09:19 × Vajb quits (~Vajb@n6jd7kwb4e2quheg6tf-1.v6.elisa-mobile.fi) (Ping timeout: 264 seconds)
2025-11-21 11:09:32 <c_wraith> (you can use hyperfunctions to implement deforestation for zip, for instance)
2025-11-21 11:09:59 Vajb joins (~Vajb@n4bl3ovzcj023yptes7-1.v6.elisa-mobile.fi)
2025-11-21 11:10:27 <lucabtz> you lost me
2025-11-21 11:11:57 <c_wraith> If you strip out the newtype wrappers, that type is like (((... -> b) -> a) -> b), with infinite recursion on right sides of the arrows.
2025-11-21 11:11:58 <__monty__> Is Void -> Void a problem for set theory? I can see how a "function" from a non-empty set to Void might be problematic. OTOH can't you say empty sets are not a thing because they're all inhabited by bottom?
2025-11-21 11:12:17 trickard_ is now known as trickard
2025-11-21 11:12:26 califax joins (~califax@user/califx)
2025-11-21 11:12:44 <lucabtz> c_wraith right
2025-11-21 11:12:55 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-21 11:13:50 <lucabtz> but you stil lost me with domain theory because i have no idea what it is
2025-11-21 11:14:25 <lucabtz> but thx for the insights, very interesting
2025-11-21 11:15:24 <c_wraith> domain theory is... sort of adding infinite loops to functions, by introducing a bottom value to represent "this never completes"
2025-11-21 11:15:32 <c_wraith> It's much more precise than that.
2025-11-21 11:15:50 <c_wraith> But that's what it's going for.
2025-11-21 11:25:08 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-11-21 11:36:22 × jle` quits (~jle`@2603:8001:3b00:11:658b:1126:1485:2a54) (Ping timeout: 246 seconds)
2025-11-21 11:37:57 jle` joins (~jle`@2603:8001:3b00:11:2f12:c034:12fc:8093)
2025-11-21 11:43:48 biberu joins (~biberu@user/biberu)
2025-11-21 11:47:23 × tromp quits (~textual@2001:1c00:3487:1b00:697a:bc7a:f580:408c) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-11-21 11:49:38 × califax quits (~califax@user/califx) (Remote host closed the connection)
2025-11-21 11:49:41 × bwe quits (~bwe@2a01:4f8:1c1c:4878::2) (Read error: Connection reset by peer)
2025-11-21 11:49:52 bwe70296 joins (~bwe@2a01:4f8:1c1c:4878::2)
2025-11-21 11:50:02 califax joins (~califax@user/califx)
2025-11-21 11:54:41 down200 joins (~down200@shell.lug.mtu.edu)
2025-11-21 12:00:58 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 256 seconds)
2025-11-21 12:08:39 <haskellbridge> <Morj> I have a promo code for a month of discord nitro: HPN5-7QGj-yp58-xZPT-Eu5R-W2ke - for anyone who's fast and wants
2025-11-21 12:10:16 aditya_an1l joins (~aditya_an@user/aditya-an1l:63825)
2025-11-21 12:17:13 srazkvt joins (~sarah@user/srazkvt)
2025-11-21 12:18:11 <chromoblob> that "Hyper" type looks like it could be used for games (in math sense)
2025-11-21 12:23:21 xff0x joins (~xff0x@ai083123.d.east.v6connect.net)
2025-11-21 12:28:54 × fp quits (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 252 seconds)
2025-11-21 12:36:06 × trickard quits (~trickard@cpe-88-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-11-21 12:36:18 <[exa]> any users of `pipes` here? Is the performance OK-ish if I have gazillions of very little pipe-ish operations glued together?
2025-11-21 12:36:19 trickard_ joins (~trickard@cpe-88-98-47-163.wireline.com.au)
2025-11-21 12:38:22 fp joins (~Thunderbi@dhcp-86-136.eduroam.aalto.fi)
2025-11-21 12:39:44 × bwe70296 quits (~bwe@2a01:4f8:1c1c:4878::2) (Read error: Connection reset by peer)
2025-11-21 12:41:57 <dminuoso> [exa]: "OK-ish" and "bazillion" are very subjective terms.
2025-11-21 12:42:03 <dminuoso> The answer is clearly "Yes, no, maybe"
2025-11-21 12:42:56 <dminuoso> From what I read, pipes is on the faster side of things, but conduit/streaming generally are much faster.
2025-11-21 12:43:17 ljdarj joins (~Thunderbi@user/ljdarj)
2025-11-21 12:44:25 <[exa]> like, main question probably is that if some kind of fusion works in there, like with Text
2025-11-21 12:44:29 bwe joins (~bwe@2a01:4f8:1c1c:4878::2)
2025-11-21 12:45:58 <dminuoso> Text fusion is so adhoc.. heh
2025-11-21 12:46:06 Googulator7 joins (~Googulato@81.183.235.203)
2025-11-21 12:46:27 <dminuoso> But should be easy to check: Just look for how many rewrite rules are in pipes.
2025-11-21 12:47:12 <[exa]> hm yeah good point
2025-11-21 12:48:06 <dminuoso> Ultimately its tough to make predictions about when fusion occurs externally, even in case of text.
2025-11-21 12:48:24 <dminuoso> It's best to just take your hot path and stare at the generated Core for way too much of your time.
2025-11-21 12:49:43 × Googulator66 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds)
2025-11-21 12:49:44 <[exa]> turns out `streaming` kinda measured that for me, see below in the readme https://github.com/haskell-streaming/streaming
2025-11-21 12:50:31 <dminuoso> [exa]: There seem to be quite a bunch of RULES that could facilitate shortcut fusion.
2025-11-21 12:50:37 <[exa]> yeah
2025-11-21 12:50:50 <dminuoso> But its really hard to predicte whether that actually ends up triggering.
2025-11-21 12:51:02 <dminuoso> And it may easily differ between GHC versions or other GHC flags.
2025-11-21 12:51:23 × qqe quits (~qqq@185.54.21.140) (Quit: Lost terminal)
2025-11-21 12:53:59 × bwe quits (~bwe@2a01:4f8:1c1c:4878::2) (Remote host closed the connection)
2025-11-21 12:54:23 bwe joins (~bwe@2a01:4f8:1c1c:4878::2)
2025-11-21 12:55:31 wootehfoot joins (~wootehfoo@user/wootehfoot)
2025-11-21 12:58:43 × aditya_an1l quits (~aditya_an@user/aditya-an1l:63825) (Quit: WeeChat 4.7.1)
2025-11-21 12:58:57 <lucabtz> c_wraith any resource with precise definitions for domain theory?
2025-11-21 12:59:05 × fp quits (~Thunderbi@dhcp-86-136.eduroam.aalto.fi) (Remote host closed the connection)
2025-11-21 12:59:07 tromp joins (~textual@2001:1c00:3487:1b00:697a:bc7a:f580:408c)
2025-11-21 13:02:03 <lucabtz> https://en.wikipedia.org/wiki/Domain_theory this page doesnt make much of a connection to haskell and im not even sure it is the same thing you mean because it is still speaking about sets in the end
2025-11-21 13:03:14 trickard_ is now known as trickard
2025-11-21 13:04:49 × ringo_ quits (~ringo@157.230.117.128) (Ping timeout: 264 seconds)
2025-11-21 13:13:23 × Nachtgespenst quits (~user@user/siracusa) (Quit: Bye!)
2025-11-21 13:18:15 ringo_ joins (~ringo@157.230.117.128)
2025-11-21 13:20:57 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
2025-11-21 13:23:51 Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-11-21 13:25:08 fp joins (~Thunderbi@130.233.70.141)
2025-11-21 13:26:37 ft joins (~ft@p4fc2aaeb.dip0.t-ipconnect.de)
2025-11-21 13:33:18 × fp quits (~Thunderbi@130.233.70.141) (Quit: fp)
2025-11-21 13:33:39 fp joins (~Thunderbi@2001:708:20:1406::1370)
2025-11-21 13:50:49 × ljdarj quits (~Thunderbi@user/ljdarj) (Quit: ljdarj)
2025-11-21 13:51:09 ljdarj joins (~Thunderbi@user/ljdarj)
2025-11-21 14:02:16 <kuribas> Interesting how dependent types blur the line between dynamic and static. For example, in haskell I can choose to pass JSON Value as opaque values, or to parse them into datatypes.
2025-11-21 14:02:23 <kuribas> But the two approaches are mutual exclusive.
2025-11-21 14:02:46 <kuribas> Other than messing with generics, you lose flexibility by putting values in data.
2025-11-21 14:03:51 <kuribas> However with a dependent types (idris) I can treat the schema as a description of the value, which can be manipulated at runtime, so it's both a static and dynamic value.
2025-11-21 14:04:01 <Hecate> kuribas: they blur the line only if you don't take advantage of them, by putting conditions in the type like 'Vector n where n > 3" or something
2025-11-21 14:04:47 <kuribas> Hecate: it's there where the flexbility comes from, by putting your schema in the type.
2025-11-21 14:05:10 <kuribas> The "n" in vector can be considered a static value, or something dynamic that can be manipulated at runtime.
2025-11-21 14:06:54 <kuribas> You can somewhat emulate this in haskell, by lifting the computations into type level haskell, but it gets cumbersome to do type level computations.
2025-11-21 14:12:02 L29Ah joins (~L29Ah@wikipedia/L29Ah)
2025-11-21 14:17:04 × biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer)
2025-11-21 14:18:55 × Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 250 seconds)
2025-11-21 14:22:36 <tomsmeding> you can also create existentials, which sometimes allow you to do things that seem dependent
2025-11-21 14:22:52 <tomsmeding> also GADTs and singletons allow you to simulate dependencies to a certain extent
2025-11-21 14:23:28 <tomsmeding> though with singletons, you indeed either have to lift the computation to the type-level too, or have to deal with some kind of forgetfulness on the type level and use existentials
2025-11-21 14:24:56 × Inline quits (~inlinE@2001-4dd7-ae97-0-4674-ae6d-2607-c022.ipv6dyn.netcologne.de) (Quit: Leaving)
2025-11-21 14:25:28 Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-11-21 14:27:48 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
2025-11-21 14:30:45 Googulator83 joins (~Googulato@team.broadbit.hu)
2025-11-21 14:32:01 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 255 seconds)
2025-11-21 14:34:09 × Googulator7 quits (~Googulato@81.183.235.203) (Ping timeout: 250 seconds)
2025-11-21 14:41:11 <kuribas> yes
2025-11-21 14:48:33 Inline joins (~inlinE@2001-4dd7-ae97-0-4674-ae6d-2607-c022.ipv6dyn.netcologne.de)
2025-11-21 14:49:14 × YoungFrog quits (~youngfrog@2a02:a03f:ca07:f900:5e58:dbf4:c0b:fbb3) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in)

All times are in UTC.