2026/06/14

Newest at the top

2026-06-14 16:14:39 +0000maerwald(~maerwald@mail.hasufell.de)
2026-06-14 16:14:18 +0000maerwald(~maerwald@mail.hasufell.de) (Quit: gone)
2026-06-14 16:10:58 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-06-14 16:08:57 +0000 <c_wraith> That's why liftM isn't deprecated, despite the AMP success
2026-06-14 16:08:27 +0000 <c_wraith> It's technically not circular, fwiw. It's fully possible for a type to define fmap in terms of >>= and pure. Despite the Monad instance requiring that a Functor instance exist, they are not required to have any particular direction of dependency on each other.
2026-06-14 16:06:44 +0000 <jaror> IO is kind of a bad place to start because its `Functor` instance cannot be written in user code (without digging into GHC specifics)
2026-06-14 16:06:42 +0000maerwald(~maerwald@mail.hasufell.de)
2026-06-14 16:06:01 +0000 <c_wraith> pure in this case means "this is the thing that is neutral - it has no effects in the context of this type"
2026-06-14 16:05:59 +0000 <vms14> i didn't know how to extract the value from IO
2026-06-14 16:05:42 +0000 <jaror> Note that you're kind of making a circular definitions, since `do` notation depends on already having a Functor instance
2026-06-14 16:05:35 +0000maerwald(~maerwald@mail.hasufell.de) (Client Quit)
2026-06-14 16:05:18 +0000 <vms14> i like the use of pure to return impurity
2026-06-14 16:05:09 +0000 <vms14> that's my first functor
2026-06-14 16:04:51 +0000 <vms14> ty <3
2026-06-14 16:04:43 +0000 <vms14> ok then i guess i'm starting to undestand them :D
2026-06-14 16:04:17 +0000 <jaror> Categorically a functor is an action on types and an action on morphisms (which must satisfy certain laws)
2026-06-14 16:04:15 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-14 16:03:50 +0000 <c_wraith> but yes, that's fmap for IO
2026-06-14 16:03:45 +0000 <c_wraith> terminology-wise... no. Types are functors, not values.
2026-06-14 16:03:43 +0000 <jaror> aka `fmap`
2026-06-14 16:03:39 +0000 <jaror> Yes, that's the standard way IO is a functor
2026-06-14 16:02:53 +0000vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-06-14 16:02:45 +0000 <vms14> contaminate f x = do value <- x; pure (f value)
2026-06-14 16:02:43 +0000 <vms14> contaminate :: (a -> b) -> IO a -> IO b
2026-06-14 16:02:37 +0000 <vms14> is this a functor?
2026-06-14 16:01:26 +0000vms14(~vms14@user/vms14) vms14
2026-06-14 16:01:26 +0000karenw(~karenw@user/karenw) karenw
2026-06-14 16:00:49 +0000maerwald(~maerwald@mail.hasufell.de)
2026-06-14 15:59:04 +0000maerwald(~maerwald@mail.hasufell.de) (Quit: gone)
2026-06-14 15:57:57 +0000chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2026-06-14 15:57:32 +0000chromoblob(~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2026-06-14 15:53:13 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-06-14 15:52:16 +0000sdrfan123(~sdrfan123@2a01:cb15:148:1800:e17b:5f59:5326:2799) (Quit: Client closed)
2026-06-14 15:51:52 +0000chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2026-06-14 15:51:25 +0000chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 245 seconds)
2026-06-14 15:50:25 +0000maerwald(~maerwald@mail.hasufell.de)
2026-06-14 15:48:29 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-14 15:44:24 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-06-14 15:39:28 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-14 15:39:26 +0000puke(~puke@user/puke) puke
2026-06-14 15:35:01 +0000pavonia(~user@user/siracusa) (Quit: Bye!)
2026-06-14 15:28:41 +0000merijn(~merijn@62.45.136.136) (Ping timeout: 261 seconds)
2026-06-14 15:26:33 +0000rscastilho2024_(rscastilho@user/rscastilho2024-:23901) rscastilho2024_
2026-06-14 15:23:40 +0000merijn(~merijn@62.45.136.136) merijn
2026-06-14 15:13:24 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2026-06-14 15:07:54 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-14 15:07:09 +0000tnt1(~Thunderbi@user/tnt1) tnt1
2026-06-14 14:59:44 +0000Vajb(~Vajb@n4fsyxesh0a4t8vm6z0-1.v6.elisa-mobile.fi)
2026-06-14 14:58:49 +0000Vajb(~Vajb@n60e7ydkwtjklcc1qro-1.v6.elisa-mobile.fi) (Ping timeout: 248 seconds)
2026-06-14 14:57:52 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)