Logs: liberachat/#haskell
| 2025-12-23 15:54:09 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-12-23 15:56:14 | <haskellbridge> | <Morj> Hm, pretty good! |
| 2025-12-23 15:56:25 | <haskellbridge> | <Morj> Not pointfree enough, but oh well |
| 2025-12-23 16:05:07 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-23 16:10:13 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-23 16:13:14 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 2025-12-23 16:13:26 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 2025-12-23 16:14:02 | × | trickard quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-23 16:14:27 | × | Axman6 quits (~Axman6@user/axman6) (Ping timeout: 250 seconds) |
| 2025-12-23 16:14:44 | → | LaurentH joins (~LaurentH@e7-72-0-245-18.dynamic.sthy.maskatel.ca) |
| 2025-12-23 16:16:33 | → | trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au) |
| 2025-12-23 16:19:07 | × | Digit quits (~user@user/digit) (Ping timeout: 255 seconds) |
| 2025-12-23 16:19:09 | → | Digitteknohippie joins (~user@user/digit) |
| 2025-12-23 16:20:57 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-23 16:25:19 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 240 seconds) |
| 2025-12-23 16:25:48 | → | Googulator9 joins (~Googulato@80-95-87-105.pool.digikabel.hu) |
| 2025-12-23 16:26:08 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-12-23 16:26:13 | × | Googulator63 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-23 16:26:28 | → | distopico joins (~cerdolibr@xvm-111-150.dc2.ghst.net) |
| 2025-12-23 16:30:19 | × | lucabtz quits (~lucabtz@user/lucabtz) (Quit: Lost terminal) |
| 2025-12-23 16:30:54 | × | tromp quits (~textual@2001:1c00:3487:1b00:7dcc:b6c2:83dc:ef69) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-12-23 16:32:35 | Digitteknohippie | is now known as Digit |
| 2025-12-23 16:34:56 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 240 seconds) |
| 2025-12-23 16:36:43 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-23 16:38:22 | × | CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 246 seconds) |
| 2025-12-23 16:39:30 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:e0a7:677c:4fbf:6fab) |
| 2025-12-23 16:40:07 | × | hc quits (~hc@mail.hce.li) (Remote host closed the connection) |
| 2025-12-23 16:41:05 | × | LaurentH quits (~LaurentH@e7-72-0-245-18.dynamic.sthy.maskatel.ca) (Quit: Client closed) |
| 2025-12-23 16:41:15 | → | LaurentH joins (~LaurentH@e7-72-0-245-18.dynamic.sthy.maskatel.ca) |
| 2025-12-23 16:41:18 | → | hc joins (~hc@mail.hce.li) |
| 2025-12-23 16:42:59 | <Leary> | % :t let (.:) = (.) . (.) in partitionEithers . map (uncurry (flip . maybe Left . flip $ Right .: (,)) . fmap nonEmpty) |
| 2025-12-23 16:42:59 | <yahb2> | let (.:) = (.) . (.) in partitionEithers . map (uncurry (flip . maybe Left . flip $ Right .: (,)) . fmap nonEmpty) ; :: [(a1, [a2])] -> ([a1], [(a1, NonEmpty a2)]) |
| 2025-12-23 16:43:10 | <Leary> | Morj: Pick your poison. |
| 2025-12-23 16:43:19 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-23 16:43:25 | → | jmcantrell joins (~weechat@user/jmcantrell) |
| 2025-12-23 16:43:32 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 2025-12-23 16:44:19 | × | synchromesh quits (~john@2406:5a00:2412:2c00:f9fc:b4ea:5c3c:255e) (Read error: Connection reset by peer) |
| 2025-12-23 16:45:19 | → | synchromesh joins (~john@2406:5a00:2412:2c00:f9fc:b4ea:5c3c:255e) |
| 2025-12-23 16:47:09 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:e0a7:677c:4fbf:6fab) (Ping timeout: 260 seconds) |
| 2025-12-23 16:48:28 | × | jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 256 seconds) |
| 2025-12-23 16:49:27 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 2025-12-23 16:50:47 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-23 16:52:29 | × | yin quits (~zero@user/zero) (Ping timeout: 244 seconds) |
| 2025-12-23 16:52:54 | → | haritz joins (~hrtz@140.228.70.141) |
| 2025-12-23 16:52:54 | × | haritz quits (~hrtz@140.228.70.141) (Changing host) |
| 2025-12-23 16:52:54 | → | haritz joins (~hrtz@user/haritz) |
| 2025-12-23 16:56:07 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-23 17:00:29 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 2025-12-23 17:02:54 | <hololeap> | or, instead of building a [(ByteString, [ByteString])], just build a [(ByteString, Maybe (NonEmpty ByteString))] from the start |
| 2025-12-23 17:03:24 | <hololeap> | (I assume this data structure is being built using some kind of input from the real world) |
| 2025-12-23 17:03:38 | → | yin joins (~zero@user/zero) |
| 2025-12-23 17:06:35 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-23 17:07:42 | <Leary> | % :t partitionEithers . map ((uncurry . flip . maybe Left . flip . curry) Right . fmap nonEmpty) |
| 2025-12-23 17:07:42 | <yahb2> | partitionEithers . map ((uncurry . flip . maybe Left . flip . curry) Right . fmap nonEmpty) ; :: [(a1, [a2])] -> ([a1], [(a1, NonEmpty a2)]) |
| 2025-12-23 17:08:14 | <Leary> | I might actually be alright with this ... the symmetries are doing it for me. |
| 2025-12-23 17:08:39 | → | peterbecich joins (~Thunderbi@71.84.33.135) |
| 2025-12-23 17:10:17 | × | LaurentH quits (~LaurentH@e7-72-0-245-18.dynamic.sthy.maskatel.ca) (Quit: Client closed) |
| 2025-12-23 17:11:42 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-12-23 17:11:52 | → | tromp joins (~textual@2001:1c00:3487:1b00:20d1:6701:d995:9bb6) |
| 2025-12-23 17:19:54 | <hololeap> | Foldable1 seems kind of pointless on the surface, but now I'm seeing a few useful functions that don't have any Foldable equivalent |
| 2025-12-23 17:22:06 | <hololeap> | being able to use a Semigroup that cannot have a Monoid instance could be very handy on occasion |
| 2025-12-23 17:22:22 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-23 17:24:56 | <monochrom> | Yeah, things like maximum may better belong to Foldable1 too. |
| 2025-12-23 17:25:52 | <EvanR> | er, is that what Foldable1 is |
| 2025-12-23 17:26:00 | <EvanR> | it's not a higher kinded Foldable? |
| 2025-12-23 17:26:33 | <monochrom> | Took me a while to realize that too. :) |
| 2025-12-23 17:26:35 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds) |
| 2025-12-23 17:26:55 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-23 17:27:04 | <monochrom> | "Oh as in foldr1, not as in Eq1" |
| 2025-12-23 17:27:45 | <monochrom> | The "Semigroup" hint helped. :) |
| 2025-12-23 17:34:38 | → | euphores joins (~SASL_euph@user/euphores) |
| 2025-12-23 17:37:55 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-23 17:39:54 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 2025-12-23 17:42:55 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-23 17:43:49 | × | peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 264 seconds) |
| 2025-12-23 17:51:47 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-23 17:56:32 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-23 18:01:42 | trickard_ | is now known as trickard |
| 2025-12-23 18:03:10 | × | tromp quits (~textual@2001:1c00:3487:1b00:20d1:6701:d995:9bb6) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-12-23 18:09:54 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-23 18:14:38 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-23 18:16:15 | → | tromp joins (~textual@2001:1c00:3487:1b00:20d1:6701:d995:9bb6) |
| 2025-12-23 18:16:32 | → | lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:e0a7:677c:4fbf:6fab) |
| 2025-12-23 18:21:25 | × | lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:e0a7:677c:4fbf:6fab) (Ping timeout: 256 seconds) |
| 2025-12-23 18:22:01 | → | LaurentH joins (~LaurentH@e7-72-0-245-18.dynamic.sthy.maskatel.ca) |
| 2025-12-23 18:25:26 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-23 18:26:23 | <haskellbridge> | <loonycyborg> NonEmpty for example is Foldable1 but not Foldable, so Foldable1 is pretty necessary given the push to use NonEmpty to avoid partial functions. |
| 2025-12-23 18:27:56 | <hololeap> | NonEmpty is Foldable though |
| 2025-12-23 18:28:41 | <hololeap> | it's just that foldMap for NonEmpty carries a Monoid constraint, when Semigroup would be enough |
| 2025-12-23 18:28:46 | ← | LaurentH parts (~LaurentH@e7-72-0-245-18.dynamic.sthy.maskatel.ca) () |
| 2025-12-23 18:28:52 | <haskellbridge> | <loonycyborg> hmm nwm, it seems to be actually Foldable. But I vaguely remember some use of Foldable1 being related to NonEmpty. |
| 2025-12-23 18:30:40 | <hololeap> | with a NonEmpty, you don't have to worry about the case of an empty list, thus you don't need a definition for mempty and can use any Semigroup instead |
| 2025-12-23 18:30:44 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2025-12-23 18:31:03 | × | Pixi quits (~Pixi@user/pixi) (Quit: Leaving) |
| 2025-12-23 18:31:42 | <hololeap> | the fact that toNonEmpty is part of Foldable1 sort of proves that NonEmpty is the canonical Foldable1 |
| 2025-12-23 18:33:16 | <hololeap> | I do think that Traversable1 is more useful https://hackage.haskell.org/package/semigroupoids-6.0.1/docs/Data-Semigroup-Traversable.html |
| 2025-12-23 18:33:43 | × | ttybitnik quits (~ttybitnik@user/wolper) (Quit: Fading out...) |
| 2025-12-23 18:33:45 | <hololeap> | I missed the discussion where Foldable1 was added to base and why some of the other things from semigroupoids were left out |
| 2025-12-23 18:34:11 | <haskellbridge> | <loonycyborg> ye Foldable1 requires at least 1 item to work with because it has no starting accumulator so it's connected to NonEmpty. |
| 2025-12-23 18:38:08 | <haskellbridge> | <loonycyborg> Were there any proposals to make NonEmpty a builtin list so you could write [1 | 2, 3] instead of 1 :| [2,3]? |
All times are in UTC.