2026/01/05

Newest at the top

2026-01-05 03:45:51 +0100gmg(~user@user/gehmehgeh) gehmehgeh
2026-01-05 03:45:10 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2026-01-05 03:43:20 +0100omidmash(~omidmash@user/omidmash) (Quit: The Lounge - https://thelounge.chat)
2026-01-05 03:41:22 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-05 03:35:55 +0100Square3(~Square@user/square) (Ping timeout: 240 seconds)
2026-01-05 03:31:15 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2026-01-05 03:26:46 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-05 03:25:31 +0100simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net)
2026-01-05 03:24:25 +0100jmcantrell_jmcantrell
2026-01-05 03:20:37 +0100Lycurgus(~juan@user/Lycurgus) Lycurgus
2026-01-05 03:15:35 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2026-01-05 03:13:54 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 265 seconds)
2026-01-05 03:10:58 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-05 03:00:04 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-01-05 02:55:28 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-05 02:54:29 +0100foul_owl(~kerry@71-212-2-112.tukw.qwest.net) foul_owl
2026-01-05 02:51:32 +0100arandombit(~arandombi@user/arandombit) arandombit
2026-01-05 02:51:32 +0100arandombit(~arandombi@2603:7000:4600:ffbe:e018:2291:d659:5626) (Changing host)
2026-01-05 02:51:31 +0100arandombit(~arandombi@2603:7000:4600:ffbe:e018:2291:d659:5626)
2026-01-05 02:50:54 +0100arandombit(~arandombi@user/arandombit) (Ping timeout: 260 seconds)
2026-01-05 02:48:33 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 260 seconds)
2026-01-05 02:47:19 +0100geekosaur-o geekosaur
2026-01-05 02:47:03 +0100geekosaur-r
2026-01-05 02:46:51 +0100 <oats> gotcha, thanks
2026-01-05 02:46:43 +0100ChanServ+o geekosaur
2026-01-05 02:46:10 +0100 <c_wraith> and @undo doesn't give you what GHC does. It is an independent reimplementation of the rules from the Haskell report.
2026-01-05 02:45:37 +0100 <c_wraith> technically they are, but not in a way that influences semantics. There are some performance optimizations.
2026-01-05 02:45:00 +0100 <oats> oh I was just trying out desugaring list comprehensions, because I thought I remembered someone telling me they were special to ghc in some way
2026-01-05 02:44:28 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2026-01-05 02:44:16 +0100 <c_wraith> [ x | x <- foo ] as opposed to do { x <- foo ; pure x }
2026-01-05 02:43:57 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2026-01-05 02:43:53 +0100 <oats> ?
2026-01-05 02:43:22 +0100 <c_wraith> You don't have to write pure. :)
2026-01-05 02:42:56 +0100 <oats> don't remember who told me that
2026-01-05 02:42:53 +0100 <oats> interesting, I thought list comprehensions were special in some way
2026-01-05 02:42:43 +0100 <int-e> oats: Int (machine word sized), yes.
2026-01-05 02:42:34 +0100 <lambdabot> concatMap (\ a -> case a of { Just x -> [x]; _ -> []}) [Just 1, Nothing]
2026-01-05 02:42:34 +0100 <oats> @undo [x | Just x <- [Just 1, Nothing] ]
2026-01-05 02:42:25 +0100 <Axman6> and fail str = [] for []
2026-01-05 02:41:45 +0100 <oats> int-e: I'm not super clear on #, that's an unboxed integer right?
2026-01-05 02:41:37 +0100 <lambdabot> [Just 1, Nothing] >>= \ a -> case a of { Just x -> pure x; _ -> fail ""}
2026-01-05 02:41:37 +0100 <int-e> @undo do { Just x <- [Just 1, Nothing]; pure x }
2026-01-05 02:41:31 +0100 <c_wraith> the report actually specifies that.
2026-01-05 02:41:05 +0100 <oats> wonder what that desugars to
2026-01-05 02:40:33 +0100 <yahb2> [1]
2026-01-05 02:40:33 +0100 <oats> % do { Just x <- [Just 1, Nothing]; pure x }
2026-01-05 02:39:13 +0100 <yahb2> [1,2,3,4,6,7,8,9,10]
2026-01-05 02:39:13 +0100 <oats> % do { x <- [1..10]; if (x == 5) then fail "bleh" else pure (); pure x }
2026-01-05 02:38:49 +0100 <haskellbridge> <loonycyborg> case is one of few constructs that aren't syntactic sugar for something else.
2026-01-05 02:38:11 +0100 <int-e> So up to that point, `case` was the only way to do this. `case` is also clearer about the order of operations.