2026/02/20

Newest at the top

2026-02-20 15:01:18 +0100 <tomsmeding> (fmap on (->) is (.))
2026-02-20 15:00:56 +0100 <lambdabot> (b -> c) -> (a1 -> a2 -> a3 -> a4 -> b) -> a1 -> a2 -> a3 -> a4 -> c
2026-02-20 15:00:54 +0100 <tomsmeding> :t (.) . (.) . (.) . (.)
2026-02-20 15:00:40 +0100 <lambdabot> (Functor f1, Functor f2, Functor f3, Functor f4) => (a -> b) -> f1 (f2 (f3 (f4 a))) -> f1 (f2 (f3 (f4 b)))
2026-02-20 15:00:39 +0100 <tomsmeding> :t fmap fmap fmap `fmap` fmap fmap fmap
2026-02-20 15:00:16 +0100 <tomsmeding> magic_rb: your message has a `<magic_rb> ` prefix here
2026-02-20 15:00:00 +0100 <lambdabot> (b -> c) -> (a1 -> a2 -> a3 -> a4 -> b) -> a1 -> a2 -> a3 -> a4 -> c
2026-02-20 14:59:58 +0100 <tomsmeding> :t ((.) . (.)) . ((.) . (.))
2026-02-20 14:59:56 +0100 <haskellbridge> <magic_rb> fuck, do i not have the right
2026-02-20 14:59:48 +0100 <haskellbridge> <magic_rb> :t ((.) . (.)) . ((.) . (.))
2026-02-20 14:59:38 +0100 <tomsmeding> set f1 ~ (u ->) and f2 ~ (v ->) :)
2026-02-20 14:58:59 +0100 <lambdabot> (Functor f1, Functor f2) => (a -> b) -> f1 (f2 a) -> f1 (f2 b)
2026-02-20 14:58:58 +0100 <tomsmeding> :t fmap fmap fmap
2026-02-20 14:57:13 +0100gentauro`(.) . (.)` :o
2026-02-20 14:51:19 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-02-20 14:50:03 +0100Hafydd(~Hafydd@user/hafydd) Hafydd
2026-02-20 14:49:46 +0100Hafydd(~Hafydd@user/hafydd) (Server closed connection)
2026-02-20 14:47:14 +0100castan(~castan@86.121.192.170) (Quit: castan)
2026-02-20 14:44:15 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-02-20 14:43:12 +0100 <tomsmeding> the @pl command is also here https://pointfree.io/
2026-02-20 14:42:20 +0100 <castan> oh wow
2026-02-20 14:42:08 +0100 <lambdabot> (f .) . g
2026-02-20 14:42:07 +0100 <tomsmeding> @pl \x y -> f (g x y)
2026-02-20 14:42:05 +0100 <tomsmeding> ah:
2026-02-20 14:41:10 +0100 <castan> yeah, it's impressive nevertheless
2026-02-20 14:40:43 +0100 <tomsmeding> the downside of generic tools, they don't give you the nice middle road
2026-02-20 14:40:30 +0100 <tomsmeding> heh
2026-02-20 14:40:27 +0100 <lambdabot> (.) . (.)
2026-02-20 14:40:27 +0100 <tomsmeding> @pl \a b c d -> a (b c d)
2026-02-20 14:40:11 +0100 <lambdabot> f a b c d = a (b c d)
2026-02-20 14:40:11 +0100 <tomsmeding> @djinn (c -> d) -> (a -> b -> c) -> a -> b -> d
2026-02-20 14:40:07 +0100Googulator(~Googulato@2a01-036d-0106-499d-1c5a-0e4b-5795-d7e3.pool6.digikabel.hu)
2026-02-20 14:39:48 +0100 <castan> That's great thanks
2026-02-20 14:39:45 +0100Googulator(~Googulato@2a01-036d-0106-499d-1c5a-0e4b-5795-d7e3.pool6.digikabel.hu) (Quit: Client closed)
2026-02-20 14:39:21 +0100 <tomsmeding> whether that's clean enough I'll leave to you
2026-02-20 14:39:10 +0100 <tomsmeding> castan: ^
2026-02-20 14:39:06 +0100 <lambdabot> (b -> c) -> (a1 -> a2 -> b) -> a1 -> a2 -> c
2026-02-20 14:39:05 +0100 <tomsmeding> :t \f g -> (f .) . g
2026-02-20 14:37:52 +0100 <castan> Hi. Is there a clean way to get this kind of composition: (c -> d) -> (a -> b -> c) -> a -> b -> d, without writing a new operator for it?
2026-02-20 14:35:39 +0100housemate(~housemate@pa49-178-146-220.pa.nsw.optusnet.com.au) housemate
2026-02-20 14:33:54 +0100mfc_kbs(~keibisoft@2a06:1fc0:0:1::1cd)
2026-02-20 14:33:45 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2026-02-20 14:33:36 +0100mfc_kbs(~keibisoft@2a06:1fc0:0:1::1cd) (Server closed connection)
2026-02-20 14:32:02 +0100castan(~castan@86.121.192.170)
2026-02-20 14:31:54 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 268 seconds)
2026-02-20 14:28:12 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-02-20 14:27:26 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2026-02-20 14:25:35 +0100arandombit(~arandombi@user/arandombit) (Remote host closed the connection)
2026-02-20 14:23:26 +0100kilolympus(~kilolympu@vmi1102682.contaboserver.net) kilolympus
2026-02-20 14:23:06 +0100kilolympus(~kilolympu@vmi1102682.contaboserver.net) (Server closed connection)