Newest at the top
| 2025-12-15 23:42:27 +0100 | <lambdabot> | (Applicative f, Num a) => f a |
| 2025-12-15 23:42:26 +0100 | <chromoblob> | :t do pure 5 |
| 2025-12-15 23:42:26 +0100 | <tomsmeding> | 'do' is syntactic sugar: 'do a; b' ~> 'a >> b'; 'do x <- a; b' ~> 'a >>= \x -> b'; 'do let { x = a }; b' ~> 'let x = a in b'; 'do a' ~> 'a' |
| 2025-12-15 23:42:20 +0100 | michalz | (~michalz@185.246.207.197) (Remote host closed the connection) |
| 2025-12-15 23:42:16 +0100 | <davean> | () is a value and nothing in your do interacts with it |
| 2025-12-15 23:42:03 +0100 | <davean> | do () just becomes () |
| 2025-12-15 23:41:55 +0100 | <davean> | Do desugars procedurally, via monad functions, or applicitive, none of those are used so the resultant code has no issues |
| 2025-12-15 23:41:17 +0100 | <davean> | Its not making it do behave so, its what do is. |
| 2025-12-15 23:40:57 +0100 | <chromoblob> | so, what can i do with this? why make `do` behave so? |
| 2025-12-15 23:40:55 +0100 | <lambdabot> | () |
| 2025-12-15 23:40:55 +0100 | <davean> | :t do (); |
| 2025-12-15 23:40:18 +0100 | <lambdabot> | • In a stmt of a 'do' block: () |
| 2025-12-15 23:40:18 +0100 | <lambdabot> | • Couldn't match expected type ‘m a0’ with actual type ‘()’ |
| 2025-12-15 23:40:18 +0100 | <lambdabot> | error: [GHC-83865] |
| 2025-12-15 23:40:17 +0100 | <chromoblob> | :t do (); () |
| 2025-12-15 23:40:13 +0100 | <davean> | Yes, because that *does* entail Monad because you used return |
| 2025-12-15 23:39:35 +0100 | <lambdabot> | • In the expression: return 5 :: () |
| 2025-12-15 23:39:35 +0100 | <lambdabot> | • Couldn't match expected type ‘()’ with actual type ‘m0 a0’ |
| 2025-12-15 23:39:35 +0100 | <lambdabot> | error: [GHC-83865] |
| 2025-12-15 23:39:34 +0100 | <chromoblob> | :t return 5 :: () |
| 2025-12-15 23:39:30 +0100 | <davean> | Thus nothing contradicts it |
| 2025-12-15 23:39:15 +0100 | euphores | (~SASL_euph@user/euphores) (Ping timeout: 240 seconds) |
| 2025-12-15 23:38:55 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 240 seconds) |
| 2025-12-15 23:38:48 +0100 | <davean> | chromoblob: that do uses no nonactic things, so it entails no monad class functions |
| 2025-12-15 23:33:21 +0100 | milan2 | (~milan@88.212.61.169) (Quit: WeeChat 4.5.2) |
| 2025-12-15 23:30:47 +0100 | Googulator | (~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-15 23:30:44 +0100 | Googulator85 | (~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-15 23:29:23 +0100 | <lambdabot> | () |
| 2025-12-15 23:29:22 +0100 | <chromoblob> | :t () |
| 2025-12-15 23:29:02 +0100 | <chromoblob> | c_wraith: how is () a Monad? there is no type parameter in (), and a monad must have a parameter |
| 2025-12-15 23:15:43 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-15 23:08:16 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-12-15 23:07:41 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2025-12-15 23:06:23 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-15 23:06:08 +0100 | Googulator21 | Googulator |
| 2025-12-15 23:03:45 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-12-15 23:03:06 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2025-12-15 23:00:50 +0100 | Googulator21 | (~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-15 23:00:31 +0100 | Googulator21 | (~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-15 22:55:15 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-15 22:50:38 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-15 22:40:55 +0100 | trickard_ | (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 2025-12-15 22:39:37 +0100 | <c_wraith> | gentauro: you genually need monadic parsing when the source is context-sensitive. Applicative + Alternative doesn't give you a way to choose parsers based on a value previously parsed. |
| 2025-12-15 22:39:35 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-15 22:38:10 +0100 | trickard_ | (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-15 22:34:51 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-15 22:34:43 +0100 | target_i | (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 2025-12-15 22:34:04 +0100 | takuan | (~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection) |
| 2025-12-15 22:32:41 +0100 | myme | (~myme@2a01:799:d5e:5f00:5e12:8326:f92:1a30) myme |
| 2025-12-15 22:31:34 +0100 | myme | (~myme@2a01:799:d5e:5f00:e46f:4150:c7c:78b) (Ping timeout: 260 seconds) |