Newest at the top
2024-11-05 10:28:04 +0100 | rvalue | (~rvalue@user/rvalue) rvalue |
2024-11-05 10:27:51 +0100 | <tomsmeding> | now set (f1 ~ (->) a1) and (f2 ~ (->) a2) |
2024-11-05 10:27:36 +0100 | <Inst> | (.) = fmap for instance Functor (r ->) |
2024-11-05 10:27:35 +0100 | rvalue | (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
2024-11-05 10:27:34 +0100 | <lambdabot> | (Functor f1, Functor f2) => (a -> b) -> f1 (f2 a) -> f1 (f2 b) |
2024-11-05 10:27:33 +0100 | <tomsmeding> | :t fmap fmap fmap |
2024-11-05 10:27:31 +0100 | <lambdabot> | (b -> c) -> (a1 -> a2 -> b) -> a1 -> a2 -> c |
2024-11-05 10:27:30 +0100 | <tomsmeding> | :t (.) . (.) |
2024-11-05 10:27:03 +0100 | <haskellbridge> | <hellwolf> no, (.) != fmap. I just double checked with hoogle ;) |
2024-11-05 10:27:03 +0100 | Digitteknohippie | Digit |
2024-11-05 10:26:30 +0100 | <Inst> | good luck, and don't stress too much today, it'll be over when it's over, and it's over in 4-8 years afterwards anyways |
2024-11-05 10:26:21 +0100 | <tomsmeding> | hellwolf: (.) = fmap, so (.) . (.) = fmap fmap fmap |
2024-11-05 10:26:04 +0100 | <haskellbridge> | <hellwolf> I alwsy remember when Edward Kmett blew my mind with those combinators |
2024-11-05 10:25:58 +0100 | geekosaur | needs to try to go back to bed |
2024-11-05 10:25:52 +0100 | <haskellbridge> | ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/KtvFpYdPnvlljZESVtlFKcjB/LggDqDvOMGc (7 lines) |
2024-11-05 10:25:52 +0100 | <haskellbridge> | <hellwolf> "(.)" |
2024-11-05 10:25:52 +0100 | <tomsmeding> | in general, in haskell, if a type synonym / family thing doesn't work too well in haskell, an extra newtype layer often fixes things |
2024-11-05 10:25:51 +0100 | <arahael> | tomsmeding: That does make sense. Was just a bit confusing. |
2024-11-05 10:25:14 +0100 | <geekosaur> | it's too overloaded, I suspect, especially given `forall …. .` |
2024-11-05 10:25:13 +0100 | <tomsmeding> | but it's a newtype |
2024-11-05 10:25:09 +0100 | <Inst> | ah |
2024-11-05 10:25:06 +0100 | <Inst> | the problem is that Either is supposed to be the standard sum type |
2024-11-05 10:25:05 +0100 | <tomsmeding> | Inst: it's called Compose |
2024-11-05 10:24:53 +0100 | <tomsmeding> | (though yes it's ugly and fairly unreadable sometimes) |
2024-11-05 10:24:47 +0100 | <Inst> | sorry |
2024-11-05 10:24:46 +0100 | <Inst> | (.) doesn't seem to work that well on type level, though |
2024-11-05 10:24:46 +0100 | haskellbridge | hellwolf slaps myself with a large trout in good old IRC fashion |
2024-11-05 10:24:28 +0100 | <tomsmeding> | (isn't "cancer" a bit overblown?) |
2024-11-05 10:24:09 +0100 | <haskellbridge> | <hellwolf> sorry, I forget this is IRC channel, I was aware of it. |
2024-11-05 10:23:55 +0100 | <geekosaur> | ugh, those edits are cancer IRC-side |
2024-11-05 10:23:42 +0100 | <haskellbridge> | <hellwolf> * >=>, |
2024-11-05 10:23:27 +0100 | <haskellbridge> | <hellwolf> * <*, |
2024-11-05 10:23:15 +0100 | <haskellbridge> | <hellwolf> * "$, <$>, <$, $>, <_>, <_, *>, >>=, >=<, |
2024-11-05 10:23:12 +0100 | <geekosaur> | https://www.haskell.org/onlinereport/haskell2010/haskellch4.html#x10-820004.4.2 |
2024-11-05 10:22:53 +0100 | <haskellbridge> | <hellwolf> * <$> <$ $> <_> <_ *> >>= >=< <=<" |
2024-11-05 10:22:46 +0100 | <haskellbridge> | <hellwolf> * "$ \<$> \<$ $> \<_\> \<_ \*> >>= >=\< \<=\<\" |
2024-11-05 10:22:38 +0100 | <haskellbridge> | <hellwolf> * >=< |
2024-11-05 10:22:27 +0100 | <haskellbridge> | <hellwolf> I think there is beauty in '$ <$> <$ $> <_> <_ *> >>= >=> <=<` |
2024-11-05 10:22:04 +0100 | <geekosaur> | I strongly prefer to save operator syntax for things that are actually operator-like |
2024-11-05 10:21:36 +0100 | <Inst> | Haskell 98 apparently defaults to infixl 9, section seems missing in Haskell 2010, though |
2024-11-05 10:21:19 +0100 | <geekosaur> | anyway I think it's acceptable to the compiler (at type level, of course) but it makes code harder to read |
2024-11-05 10:21:03 +0100 | <Inst> | *riduculousness |
2024-11-05 10:20:51 +0100 | <Inst> | I don't know, but tbh anti-parens crusade, and the ridiculously we do with crazy stuff like do bulleting |
2024-11-05 10:20:15 +0100 | <Inst> | kaol: try :k instead of :t |
2024-11-05 10:20:03 +0100 | <geekosaur> | how much of that is complaining about `($)` in general? |
2024-11-05 10:19:28 +0100 | <Inst> | I heard people complaining about `type ($) a b = a b |
2024-11-05 10:19:24 +0100 | <geekosaur> | last I heard Julian was doing his own builds on the default channel, so I imagine adding extra ones would be even more work for him. (The vanilla channel contains upstream-provided builds.) |
2024-11-05 10:15:30 +0100 | <tomsmeding> | arahael: I guess ghcup doesn't provide versions for newer distro versions because 1. the older ones work and 2. fewer distribution artifacts lightens the load on release managers / CI infra etc. :) |
2024-11-05 10:13:44 +0100 | <Leary> | Anyway, you can always just `type (+) = Either`. |
2024-11-05 10:13:22 +0100 | <Leary> | Type level or not doesn't make a difference; infix is fine iff the identifier is suitably named. "a `Or` b" would be fine, but "a `Either` b" isn't. |