2025/12/23

Newest at the top

2025-12-23 20:13:49 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-23 20:12:21 +0100iqubic(~sophia@2601:602:9203:1660:3bd8:1b23:71a3:5898) (Remote host closed the connection)
2025-12-23 20:08:36 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-23 20:07:29 +0100 <int-e> "programmer effort" is hard to objectively quantify though because compared to just using lists, it includes both time spent on extraneous conversions and time saved on debugging empty list errors.
2025-12-23 20:05:24 +0100 <int-e> Uh, or not since [] is the first constructor of [a]. So pointer tags would be wrong.
2025-12-23 20:04:25 +0100 <int-e> __monty__: I'm talking about programmer effort. Though replacing the top-level constructory by another one isn't free; I'm pretty sure that GHC won't reuse one for the other because the tags are different for different types. Even though it will, technically, work.
2025-12-23 20:03:01 +0100Everything(~Everythin@172-232-54-192.ip.linodeusercontent.com) Everything
2025-12-23 20:02:13 +0100cyphase(~cyphase@user/cyphase) cyphase
2025-12-23 20:02:05 +0100 <__monty__> int-e: Is there actually extra overhead? Or does it come in the form of lack of fusion?
2025-12-23 19:57:56 +0100somemathguy(~somemathg@user/somemathguy) (Client Quit)
2025-12-23 19:57:19 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-23 19:56:44 +0100somemathguy(~somemathg@user/somemathguy) somemathguy
2025-12-23 19:52:49 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-23 19:51:22 +0100 <monochrom> <-- uses dad jokes for meaningful names :)
2025-12-23 19:51:18 +0100 <hololeap> sure thing
2025-12-23 19:50:56 +0100 <monochrom> May I call it Applicable instead? >:)
2025-12-23 19:50:44 +0100 <hololeap> which Map is a perfect example of
2025-12-23 19:50:34 +0100 <monochrom> Ah thanks.
2025-12-23 19:50:26 +0100 <hololeap> it's Applicative sans `pure`
2025-12-23 19:50:15 +0100 <monochrom> What is Apply?
2025-12-23 19:49:59 +0100 <hololeap> not the most illuminating example :)
2025-12-23 19:49:50 +0100 <hololeap> traverse1 (\(x,y) -> Map.singleton x y) :: NonEmpty (x,y) -> Map x (NonEmpty y)
2025-12-23 19:49:04 +0100 <hololeap> int-e: I think it would be even more useful if they brought Traversable1 and Apply into base. it lets you traverse _into_ (as oppsed to over) Maps
2025-12-23 19:48:49 +0100 <monochrom> (hehe)
2025-12-23 19:48:43 +0100 <monochrom> Oh missed a pun opportunity! Here: Please don't bring in Prolog list syntax. :|
2025-12-23 19:47:27 +0100gentauro(~gentauro@user/gentauro) gentauro
2025-12-23 19:47:06 +0100 <geekosaur> I'd consider keeping the `:|`
2025-12-23 19:46:56 +0100 <geekosaur> it'll also potentially conflict with quasiquotations
2025-12-23 19:46:55 +0100 <monochrom> Please don't bring in Prolog list syntax. :(
2025-12-23 19:46:42 +0100 <int-e> it keeps surprising me that people find the NonEmpty overhead worthwhile
2025-12-23 19:45:43 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-23 19:44:52 +0100 <hololeap> it's trying to process it as a list comprehension
2025-12-23 19:44:42 +0100 <hololeap> Could not deduce ‘Num Bool’ arising from the literal ‘2’
2025-12-23 19:44:34 +0100 <hololeap> ghci> [1 | 2, 3]
2025-12-23 19:44:24 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 260 seconds)
2025-12-23 19:43:44 +0100Pozyomka(~pyon@user/pyon) pyon
2025-12-23 19:43:34 +0100 <hololeap> but [1 | 2, 3] in theory makes sense, but it might overlap with list comprehension syntax
2025-12-23 19:43:05 +0100gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2025-12-23 19:41:32 +0100 <hololeap> esp for tests and things where you control the input
2025-12-23 19:41:13 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-23 19:40:46 +0100 <hololeap> also, I have no shame in throwing a `NonEmpty.fromList [1, 2, 3]` into my code
2025-12-23 19:40:46 +0100 <haskellbridge> <loonycyborg> Yes, I think if syntax is shared then there's more potential for ambiguity
2025-12-23 19:39:34 +0100 <hololeap> but I might be wrong on the details
2025-12-23 19:39:25 +0100 <hololeap> and you have to be careful not to give it [] or else you get a runtime error
2025-12-23 19:39:12 +0100Pixi(~Pixi@user/pixi) Pixi
2025-12-23 19:38:56 +0100 <hololeap> but it shares the same syntax with list [1, 2, 3]
2025-12-23 19:38:30 +0100 <hololeap> I _think_ you can already do that with OverloadedLists
2025-12-23 19:38:08 +0100target_i(~target_i@user/target-i/x-6023099) target_i
2025-12-23 19:38:08 +0100 <haskellbridge> <loonycyborg> Were there any proposals to make NonEmpty a builtin list so you could write [1 | 2, 3] instead of 1 :| [2,3]?
2025-12-23 19:34:11 +0100 <haskellbridge> <loonycyborg> ye Foldable1 requires at least 1 item to work with because it has no starting accumulator so it's connected to NonEmpty.