Logs: liberachat/#haskell
| 2026-03-23 19:24:35 | <raincomplex> | "untested code doesn't work" |
| 2026-03-23 19:24:58 | × | arandombit quits (~arandombi@user/arandombit) (Ping timeout: 276 seconds) |
| 2026-03-23 19:24:58 | <raincomplex> | good rule of thumb ime |
| 2026-03-23 19:33:43 | × | hololeap quits (~quassel@user/hololeap) (Quit: Bye) |
| 2026-03-23 19:36:15 | → | arandombit joins (~arandombi@user/arandombit) |
| 2026-03-23 19:40:19 | → | Tuplanolla joins (~Tuplanoll@88-114-89-88.elisa-laajakaista.fi) |
| 2026-03-23 19:40:53 | × | arandombit quits (~arandombi@user/arandombit) (Ping timeout: 252 seconds) |
| 2026-03-23 19:51:24 | <bwe> | Reader Monad: f :: a -> Reader b; g :: b -> Reader c; how do I properly call f from within g? I mean, is there a better way than calling runReader in `g`? |
| 2026-03-23 19:51:47 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 2026-03-23 19:52:38 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 2026-03-23 19:53:07 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds) |
| 2026-03-23 19:55:28 | → | arandombit joins (~arandombi@user/arandombit) |
| 2026-03-23 19:55:29 | Lord_of_Life_ | is now known as Lord_of_Life |
| 2026-03-23 19:58:02 | <haskellbridge> | <ijouw> If you have ReaderT you can stack them (Reader is usually something like ReaderT Identity). |
| 2026-03-23 20:00:44 | × | arandombit quits (~arandombi@user/arandombit) (Ping timeout: 245 seconds) |
| 2026-03-23 20:01:17 | <bwe> | ijouw: how do I stack them? |
| 2026-03-23 20:12:26 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-23 20:13:48 | <probie> | bwe: What's wrong with calling `runReader`? It's "free" |
| 2026-03-23 20:14:25 | <haskellbridge> | <ijouw> https://en.wikibooks.org/wiki/Haskell/Monad_transformers |
| 2026-03-23 20:15:12 | → | arandombit joins (~arandombi@2a02:2455:8656:7100:8944:14a8:1bde:2184) |
| 2026-03-23 20:15:12 | × | arandombit quits (~arandombi@2a02:2455:8656:7100:8944:14a8:1bde:2184) (Changing host) |
| 2026-03-23 20:15:12 | → | arandombit joins (~arandombi@user/arandombit) |
| 2026-03-23 20:16:48 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2026-03-23 20:16:59 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 2026-03-23 20:17:21 | <probie> | If you strip away newtypes, `Reader r a` is just (r -> a). What is unnatural about providing an argument to a function? |
| 2026-03-23 20:21:24 | <bwe> | …as of now I am used to: `d <- ask; ... runReaderT d f` how can I do it without the ask and `runReaderT d` wrapping? |
| 2026-03-23 20:22:42 | <mauke> | :t runReaderT |
| 2026-03-23 20:22:43 | <lambdabot> | ReaderT r m a -> r -> m a |
| 2026-03-23 20:23:15 | <mauke> | :t do { d <- ask; runReaderT d ?f } |
| 2026-03-23 20:23:16 | <lambdabot> | (MonadReader (ReaderT r m b) m, ?f::r) => m b |
| 2026-03-23 20:23:32 | × | elarks quits (~elarks@user/yerrii) (Quit: WeeChat 4.7.1) |
| 2026-03-23 20:24:00 | <mauke> | what |
| 2026-03-23 20:25:26 | × | arandombit quits (~arandombi@user/arandombit) (Ping timeout: 252 seconds) |
| 2026-03-23 20:25:38 | <haskellbridge> | <ijouw> Is that a new way to introduce r with f :: r |
| 2026-03-23 20:26:55 | <[exa]> | sm: iz not, we didn't find it ;_; |
| 2026-03-23 20:27:58 | × | oxapentane quits (~oxapentan@user/oxapentane) (Remote host closed the connection) |
| 2026-03-23 20:28:29 | <haskellbridge> | <sm> still, some educational discussion! |
| 2026-03-23 20:30:19 | <haskellbridge> | <sm> it's very hard for a non-expert human reading code to see all the places laziness can bite |
| 2026-03-23 20:30:32 | → | elarks joins (~elarks@user/yerrii) |
| 2026-03-23 20:30:33 | <bwe> | mauke: I messed up the function call, correct should be: runReaderT (f a) d |
| 2026-03-23 20:30:49 | <haskellbridge> | <sm> though bite is not quite the right word |
| 2026-03-23 20:31:07 | <haskellbridge> | <sm> all the leaky bits |
| 2026-03-23 20:31:50 | <mauke> | that's still the wrong reader type |
| 2026-03-23 20:32:22 | <mauke> | you got d from the outer reader context ("Reader c"), but you're using it as the inner reader context ("Reader b") |
| 2026-03-23 20:38:50 | × | craunts795335385 quits (~craunts@152.32.99.2) (Quit: The Lounge - https://thelounge.chat) |
| 2026-03-23 20:39:51 | → | craunts795335385 joins (~craunts@152.32.99.2) |
| 2026-03-23 20:45:44 | → | jcarpenter2 joins (~lol@2603:3016:1e01:b980:c8e1:97f3:4027:d729) |
| 2026-03-23 20:45:47 | → | lol_ joins (~lol@2603:3016:1e01:b980:c8e1:97f3:4027:d729) |
| 2026-03-23 20:45:49 | × | lol_ quits (~lol@2603:3016:1e01:b980:c8e1:97f3:4027:d729) (Read error: Connection reset by peer) |
| 2026-03-23 20:46:54 | × | koala_man quits (~vidar@157.146.251.23.bc.googleusercontent.com) (Ping timeout: 246 seconds) |
| 2026-03-23 20:47:01 | × | craunts795335385 quits (~craunts@152.32.99.2) (Quit: The Lounge - https://thelounge.chat) |
| 2026-03-23 20:48:05 | → | craunts795335385 joins (~craunts@152.32.99.2) |
| 2026-03-23 20:48:27 | → | koala_man joins (~vidar@157.146.251.23.bc.googleusercontent.com) |
| 2026-03-23 21:00:26 | <monochrom> | @type withReader |
| 2026-03-23 21:00:26 | <lambdabot> | (r' -> r) -> Reader r a -> Reader r' a |
| 2026-03-23 21:04:57 | × | koala_man quits (~vidar@157.146.251.23.bc.googleusercontent.com) (Ping timeout: 255 seconds) |
| 2026-03-23 21:11:55 | → | koala_man joins (~vidar@157.146.251.23.bc.googleusercontent.com) |
| 2026-03-23 21:11:59 | <haskellbridge> | <sm> Rob Pike's rules of programming: https://www.cs.unc.edu/~stotts/COMP590-059-f24/robsrules.html |
| 2026-03-23 21:12:42 | → | machinedgod joins (~machinedg@d172-219-48-230.abhsia.telus.net) |
| 2026-03-23 21:17:15 | → | arandombit joins (~arandombi@user/arandombit) |
| 2026-03-23 21:21:22 | × | arandombit quits (~arandombi@user/arandombit) (Ping timeout: 248 seconds) |
| 2026-03-23 21:36:01 | → | bggd__ joins (~bgg@2a01:e0a:fd5:f510:c95d:c0b8:ae6a:2432) |
| 2026-03-23 21:38:37 | → | hololeap joins (~quassel@user/hololeap) |
| 2026-03-23 21:41:04 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-23 21:41:48 | → | arandombit joins (~arandombi@user/arandombit) |
| 2026-03-23 21:44:04 | × | Googulator quits (~Googulato@2a01-036d-0106-2888-7906-f38b-8800-979e.pool6.digikabel.hu) (*.net *.split) |
| 2026-03-23 21:44:04 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (*.net *.split) |
| 2026-03-23 21:44:04 | × | tusko quits (~uwu@user/tusko) (*.net *.split) |
| 2026-03-23 21:44:05 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (*.net *.split) |
| 2026-03-23 21:44:05 | × | califax quits (~califax@user/califx) (*.net *.split) |
| 2026-03-23 21:44:05 | × | gmg quits (~user@user/gehmehgeh) (*.net *.split) |
| 2026-03-23 21:45:28 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-03-23 21:59:00 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-23 22:03:27 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2026-03-23 22:05:38 | → | emmanuelux joins (~em@user/emmanuelux) |
| 2026-03-23 22:09:34 | → | abiss27 joins (~abiss27@user/abiss) |
| 2026-03-23 22:10:12 | × | emmanuelux quits (~em@user/emmanuelux) (Ping timeout: 255 seconds) |
| 2026-03-23 22:12:03 | × | michalz quits (~michalz@185.246.207.200) (Remote host closed the connection) |
| 2026-03-23 22:16:09 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-23 22:19:18 | × | takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Ping timeout: 246 seconds) |
| 2026-03-23 22:20:35 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-03-23 22:21:07 | × | koala_man quits (~vidar@157.146.251.23.bc.googleusercontent.com) (Ping timeout: 276 seconds) |
| 2026-03-23 22:22:13 | → | koala_man joins (~vidar@157.146.251.23.bc.googleusercontent.com) |
| 2026-03-23 22:22:14 | × | haskellbridge quits (~hackager@96.28.224.214) (Read error: Connection reset by peer) |
| 2026-03-23 22:22:56 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 2026-03-23 22:26:53 | × | target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 2026-03-23 22:28:32 | → | haskellbridge joins (~hackager@96.28.224.214) |
| 2026-03-23 22:28:32 | ChanServ | sets mode +v haskellbridge |
| 2026-03-23 22:34:27 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-23 22:37:48 | × | koala_man quits (~vidar@157.146.251.23.bc.googleusercontent.com) (Read error: Connection reset by peer) |
| 2026-03-23 22:38:34 | → | koala_man joins (~vidar@157.146.251.23.bc.googleusercontent.com) |
| 2026-03-23 22:39:19 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-03-23 22:50:02 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-23 22:54:37 | → | peterbecich joins (~Thunderbi@71.84.33.135) |
| 2026-03-23 22:54:55 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-03-23 22:55:52 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 2026-03-23 22:59:14 | × | abiss27 quits (~abiss27@user/abiss) (Quit: I'm off, Goodbye!) |
| 2026-03-23 23:10:24 | → | DetourNe- joins (~DetourNet@user/DetourNetworkUK) |
| 2026-03-23 23:11:12 | × | DetourNetworkUK quits (~DetourNet@user/DetourNetworkUK) (Read error: Connection reset by peer) |
| 2026-03-23 23:12:47 | DetourNe- | is now known as DetourNetworkUK |
All times are in UTC.