2024/11/05

Newest at the top

2024-11-05 10:28:04 +0100rvalue(~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 +0100rvalue(~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 +0100DigitteknohippieDigit
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 +0100geekosaurneeds 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 +0100haskellbridgehellwolf 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.