Newest at the top
2024-11-07 22:55:51 +0100 | <monochrom> | Yeah, free monad tries to have f (f (f ... (f (Pure x)...) |
2024-11-07 22:55:15 +0100 | tomsmeding | . o O ( this module actually has an informative Portability metadata field ) |
2024-11-07 22:54:54 +0100 | Everything | (~Everythin@178-133-1-121.mobile.vf-ua.net) Everything |
2024-11-07 22:54:25 +0100 | <tomsmeding> | and that makes sense: a free monad also normalises out the association order of binds, so analogously, a free applicative should also normalise out the association order of (<*>) |
2024-11-07 22:54:22 +0100 | <monochrom> | Your question inspired me to actually think about it. :) |
2024-11-07 22:53:39 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-11-07 22:53:24 +0100 | <tomsmeding> | monochrom: the remark about the "list" is quite apt |
2024-11-07 22:52:29 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-11-07 22:52:26 +0100 | <monochrom> | I thought up my own field names "Ap f_secret cont", where f_secret :: f s, cont :: Ap f (s -> a). |
2024-11-07 22:51:47 +0100 | <tomsmeding> | it's just that juxtaposing the two makes it kind of funny |
2024-11-07 22:51:37 +0100 | <tomsmeding> | I mean, I kind of get it -- we have a value in a functor (call it f), and we have a value of our data type (call it x) |
2024-11-07 22:51:20 +0100 | <tomsmeding> | :D |
2024-11-07 22:51:13 +0100 | rvalue- | rvalue |
2024-11-07 22:51:08 +0100 | <monochrom> | Haha. "Let e be a group, H be its identity element, phi be a subgroup of e, G be a group homomorphism from e to f" |
2024-11-07 22:50:15 +0100 | <monochrom> | Oh I think I see it. It is trying to have a list like [x0 :: f A0, x1 :: f (A0 -> A1), x2 :: f (A1 -> A2)]. |
2024-11-07 22:50:08 +0100 | <tomsmeding> | f :: f a ; x :: Ap f (a -> b) |
2024-11-07 22:49:33 +0100 | <tomsmeding> | monochrom: if you wanna laugh, look at the implementation of runAp -- and in particular the naming of the fields of Ap |
2024-11-07 22:48:30 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-11-07 22:48:00 +0100 | <monochrom> | and it can't be in Pure so it may as well be in the recursive case. |
2024-11-07 22:47:39 +0100 | <monochrom> | Supposedly f has to be actually relevant somewhere rather than being a phantom type. |
2024-11-07 22:47:00 +0100 | <monochrom> | I don't know! I'm just learning. :) |
2024-11-07 22:46:36 +0100 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 276 seconds) |
2024-11-07 22:46:21 +0100 | <tomsmeding> | monochrom: is there a good reason the first field of that Ap doesn't have an Ap around it? |
2024-11-07 22:45:21 +0100 | rvalue- | (~rvalue@user/rvalue) rvalue |
2024-11-07 22:44:10 +0100 | infinity0 | (~infinity0@pwned.gg) (Ping timeout: 272 seconds) |
2024-11-07 22:44:06 +0100 | lxsameer | (~lxsameer@Serene/lxsameer) (Ping timeout: 252 seconds) |
2024-11-07 22:43:34 +0100 | <monochrom> | Derp. I am taking a look at free applicative functors (e.g. https://hackage.haskell.org/package/free-5.2/docs/Control-Applicative-Free.html), I try to implement <*> myself, get stuck, look at the answer, it is obvious (it is the same trick as fmap, and I could do fmap). |
2024-11-07 22:37:12 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
2024-11-07 22:28:31 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-11-07 22:21:21 +0100 | famubu | (~famubu@14.139.174.50) (Ping timeout: 248 seconds) |
2024-11-07 22:21:09 +0100 | son0p | (~ff@186.121.30.70) (Ping timeout: 260 seconds) |
2024-11-07 22:20:52 +0100 | tremon | (~tremon@83.80.159.219) (Quit: getting boxed in) |
2024-11-07 22:18:39 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds) |
2024-11-07 22:18:00 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2024-11-07 22:13:08 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-11-07 22:12:59 +0100 | son0p | (~ff@186.121.30.70) son0p |
2024-11-07 22:12:32 +0100 | sprotte24 | (~sprotte24@p200300d16f05e000c862cdd7b290d75c.dip0.t-ipconnect.de) |
2024-11-07 22:12:06 +0100 | ephilalethes | (~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving) |
2024-11-07 22:08:54 +0100 | Square2 | (~Square@user/square) (Ping timeout: 260 seconds) |
2024-11-07 22:08:50 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2024-11-07 22:08:26 +0100 | benjaminl | (~benjaminl@user/benjaminl) benjaminl |
2024-11-07 22:08:11 +0100 | benjaminl | (~benjaminl@user/benjaminl) (Read error: Connection reset by peer) |
2024-11-07 22:06:08 +0100 | emfrom | (~emfrom@37.168.27.131) (Remote host closed the connection) |
2024-11-07 22:05:18 +0100 | Square | (~Square4@user/square) Square |
2024-11-07 22:03:18 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-11-07 21:59:29 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-11-07 21:58:59 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
2024-11-07 21:54:47 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-11-07 21:51:49 +0100 | briandaed | (~root@185.234.210.211) (Ping timeout: 260 seconds) |
2024-11-07 21:47:26 +0100 | Sgeo_ | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |