2024/05/31

Newest at the top

2024-05-31 16:07:40 +0200zetef(~quassel@2a02:2f00:5202:1200:3fa2:e908:b522:fa2f)
2024-05-31 16:07:27 +0200euleritian(~euleritia@dynamic-176-000-194-148.176.0.pool.telefonica.de)
2024-05-31 16:07:20 +0200sshine(~simon@zhen.mechanicus.xyz) (Quit: 再见)
2024-05-31 16:07:13 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2024-05-31 15:59:48 +0200vpan(~vpan@212.117.1.172) (Quit: Leaving.)
2024-05-31 15:55:02 +0200AlexNoo(~AlexNoo@178.34.150.84)
2024-05-31 15:46:47 +0200AlexNoo(~AlexNoo@178.34.150.84) (Ping timeout: 264 seconds)
2024-05-31 15:46:11 +0200AlexZenon(~alzenon@178.34.150.84) (Ping timeout: 264 seconds)
2024-05-31 15:45:30 +0200 <dminuoso> TH and linkage seems... fun.
2024-05-31 15:45:10 +0200 <dminuoso> tomsmeding: Oh Im just pondering how this is resolved at all, since you can refer to not exported identifiers, but they appear to be linkable somehow anyway.
2024-05-31 15:43:04 +0200TMA(tma@twin.jikos.cz)
2024-05-31 15:41:12 +0200TMA(tma@twin.jikos.cz) (Ping timeout: 256 seconds)
2024-05-31 15:38:08 +0200gastus_(~gastus@185.6.123.171)
2024-05-31 15:32:13 +0200michalz(~michalz@185.246.207.221) (Quit: ZNC 1.9.0 - https://znc.in)
2024-05-31 15:28:41 +0200danse-nr3(~danse-nr3@151.19.228.85)
2024-05-31 15:27:23 +0200pounce(~pounce@user/cute/pounce)
2024-05-31 15:24:53 +0200pounce(~pounce@user/cute/pounce) (Ping timeout: 240 seconds)
2024-05-31 15:17:41 +0200danse-nr3(~danse-nr3@151.19.228.85) (Ping timeout: 240 seconds)
2024-05-31 15:06:43 +0200[exa](~exa@user/exa/x-3587197) (Ping timeout: 256 seconds)
2024-05-31 15:04:43 +0200destituion(~destituio@2a02:2121:28c:be84:309e:b5ea:1c6b:9320)
2024-05-31 15:04:30 +0200danse-nr3(~danse-nr3@151.19.228.85)
2024-05-31 15:03:58 +0200danse-nr3(~danse-nr3@151.57.225.167) (Read error: Connection reset by peer)
2024-05-31 15:03:15 +0200 <lxsameer> Thank you
2024-05-31 15:03:13 +0200 <sshine> also, I apologize for the mixture of camelCase and snake_case :-D I didn't write Haskell for a long time and my brain apparently defaults to snake_case now.
2024-05-31 15:02:01 +0200 <sshine> lxsameer, a bit of the point is lost when FibReader is so specialized towards the function it runs over, since it's not reusable in other monadic contexts.
2024-05-31 15:01:11 +0200 <sshine> lxsameer, you wouldn't do the last thing unless you're following some course that asks you to reconstruct monads from the bottom up to get a better understanding.
2024-05-31 15:00:53 +0200 <sshine> lxsameer, https://play.haskell.org/saved/zpN4C4Zk -- I made two more examples, one more that uses mtl Reader, and another that defines a custom Reader that doesn't parameterise the 'r' argument and is explicit about what's going on.
2024-05-31 14:56:34 +0200cfricke(~cfricke@user/cfricke)
2024-05-31 14:51:45 +0200xdminsy(~xdminsy@117.147.70.212)
2024-05-31 14:44:51 +0200rosco(~rosco@90.58.221.226)
2024-05-31 14:44:07 +0200Feuermagier(~Feuermagi@user/feuermagier)
2024-05-31 14:42:44 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 260 seconds)
2024-05-31 14:41:23 +0200destituion(~destituio@85.221.111.174) (Ping timeout: 264 seconds)
2024-05-31 14:39:46 +0200 <lxsameer> sshine: thank you
2024-05-31 14:21:37 +0200 <sshine> lxsameer, https://play.haskell.org/saved/nnUbuaAA -- I don't know if this is a good example.
2024-05-31 14:14:19 +0200xff0x(~xff0x@2405:6580:b080:900:75ce:7dd6:5a9:4d8a)
2024-05-31 14:12:39 +0200 <lxsameer> thanks for you time and clarifications
2024-05-31 14:12:29 +0200 <lxsameer> I have to read it more
2024-05-31 14:12:22 +0200 <lxsameer> I think I got it :P
2024-05-31 14:12:14 +0200zer0bitz(~zer0bitz@user/zer0bitz) (Ping timeout: 256 seconds)
2024-05-31 14:12:13 +0200 <lxsameer> ah got it
2024-05-31 14:12:02 +0200 <ncf> m :: ((->) XConf) XConf
2024-05-31 14:11:40 +0200 <lxsameer> and the compiler would know what implementation of `ask` to use because `m :: XConf` right?
2024-05-31 14:11:30 +0200 <ncf> runX is just doing this with a few newtype wrappers in between (and more monads in the stack)
2024-05-31 14:11:03 +0200 <ncf> the actual value of c isn't determined until i actually run m by applying it to an XConf
2024-05-31 14:10:35 +0200 <ncf> so, if i write something like `m = (do c <- ask; return c) :: XConf -> XConf`, i am describing a computation that takes an XConf and just returns it unchanged
2024-05-31 14:09:25 +0200 <ncf> ask :: XConf -> XConf is just the identity function
2024-05-31 14:09:06 +0200 <ncf> (>>=) :: (XConf -> a) -> (a -> XConf -> b) -> XConf -> b chains computations together by duplicating the environment
2024-05-31 14:08:59 +0200ddellacosta(~ddellacos@ool-44c73d29.dyn.optonline.net) (Ping timeout: 264 seconds)
2024-05-31 14:08:27 +0200 <ncf> return :: a -> XConf -> a is just the `const` function that ignores the XConf argument