2025/06/13

Newest at the top

2025-06-13 14:10:14 +0200sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
2025-06-13 14:09:29 +0200 <Leary> tomsmeding: I all too often find that what the type doesn't determine, the name does actually clarify. Then I have to struggle between the poor choices of no documentation and trivial documentation...
2025-06-13 14:08:02 +0200 <tomsmeding> example: the 'time' library
2025-06-13 14:07:30 +0200 <Leary> kqr: Documentation lists types and transformations between them; achieving your goal by "following" these links from what you have to what you need is a case of "following the types".
2025-06-13 14:06:53 +0200 <tomsmeding> though haskell being haskell, you'd still need documentation to distinguish (flip const :: a -> b -> b) from (seq :: a -> b -> b) :p
2025-06-13 14:06:48 +0200humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 252 seconds)
2025-06-13 14:05:50 +0200 <tomsmeding> (id :: a -> a), (const :: a -> b -> a) I guess could be such cases
2025-06-13 14:05:31 +0200 <tomsmeding> it's rare that types are simultaneously so precise and so general that without any documentation you can fully understand what a function does
2025-06-13 14:04:30 +0200 <kuribas`> IMO documentation doesn't replace types, but types don't replace documentation either. You want a bit of both.
2025-06-13 14:03:55 +0200 <kuribas`> kqr: if a library doesn't have documentation, it's better to have types. And IMO it's better to have some documentation and types, rather than walls of text and no documentation. sqlalchemy used to be like that (last time I used it many years ago). I don't want to read walls of text to find some particular function that suits my usecase.
2025-06-13 14:03:50 +0200sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
2025-06-13 14:03:39 +0200 <tomsmeding> the suggestions above are about following the types in your own program (and modifying them in a principled fashion if necessary); in the case of a library, you either start with a library function and derive from its types what your code should look like, or you have some types and look at the types in the library to decide which function is applicable
2025-06-13 14:03:29 +0200sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
2025-06-13 14:02:06 +0200 <tomsmeding> kqr: are they not related, somewhat?
2025-06-13 14:01:47 +0200humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-06-13 14:00:10 +0200 <kqr> It could very well be that such was its canonical meaning over a decade ago when I had an active Haskell hobbyist phase, but that it has sinse morphed.
2025-06-13 13:59:36 +0200 <kqr> Huh, interesting. I have only ever thought of "follow the types" as being a way to read documentation and learn how to use a library.
2025-06-13 13:59:35 +0200shaeto(~Shaeto@94.25.234.41)
2025-06-13 13:59:22 +0200trickard_(~trickard@cpe-60-98-47-163.wireline.com.au)
2025-06-13 13:59:10 +0200trickard_(~trickard@cpe-60-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-06-13 13:58:56 +0200tmciver(~tim@syn-198-255-177-240.res.spectrum.com) tmciver
2025-06-13 13:58:15 +0200tmciver(~tim@syn-198-255-177-240.res.spectrum.com) (Ping timeout: 272 seconds)
2025-06-13 13:57:10 +0200sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
2025-06-13 13:57:02 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-06-13 13:56:49 +0200sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
2025-06-13 13:56:36 +0200ljdarj(~Thunderbi@user/ljdarj) (Quit: ljdarj)
2025-06-13 13:52:37 +0200shaeto(~Shaeto@94.25.234.191) (Ping timeout: 252 seconds)
2025-06-13 13:50:04 +0200sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
2025-06-13 13:49:42 +0200sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
2025-06-13 13:46:23 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2025-06-13 13:45:28 +0200prdak(~Thunderbi@user/prdak) prdak
2025-06-13 13:43:53 +0200sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
2025-06-13 13:43:31 +0200sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
2025-06-13 13:40:29 +0200rvalue(~rvalue@user/rvalue) rvalue
2025-06-13 13:37:41 +0200sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
2025-06-13 13:37:21 +0200sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
2025-06-13 13:37:06 +0200prdak(~Thunderbi@user/prdak) (Read error: Connection reset by peer)
2025-06-13 13:34:10 +0200qaotsap(~paotsaq@161.230.89.225) (Ping timeout: 272 seconds)
2025-06-13 13:31:07 +0200paotsaq(~paotsaq@161.230.89.225)
2025-06-13 13:30:44 +0200sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
2025-06-13 13:30:23 +0200sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
2025-06-13 13:22:52 +0200sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
2025-06-13 13:22:32 +0200sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
2025-06-13 13:19:14 +0200vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 260 seconds)
2025-06-13 13:14:50 +0200sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
2025-06-13 13:14:29 +0200sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
2025-06-13 13:10:41 +0200prdak(~Thunderbi@user/prdak) prdak
2025-06-13 13:07:29 +0200sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
2025-06-13 13:07:07 +0200sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
2025-06-13 13:06:52 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn