Newest at the top
| 2025-12-20 20:10:20 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2025-12-20 20:06:53 +0100 | trickard_ | (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 2025-12-20 20:06:38 +0100 | trickard | (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-20 20:05:22 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-20 20:04:47 +0100 | <haskellbridge> | <loonycyborg> like plain [] vs ZipList |
| 2025-12-20 20:03:40 +0100 | <haskellbridge> | <loonycyborg> And they're essential if you want to use same typeclass instance on same object with different semanics. |
| 2025-12-20 20:03:40 +0100 | <haskellbridge> | <loonycyborg> In haskell it has less typing overhead because you can use deriving. |
| 2025-12-20 20:02:30 +0100 | <haskellbridge> | <loonycyborg> I used to think that newtype wrappers were dumb idea but it was because of me coming from C++ where doing something like that would require you to do a lot of boilerplate. |
| 2025-12-20 20:01:13 +0100 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 264 seconds) |
| 2025-12-20 19:54:22 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2025-12-20 19:49:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-20 19:48:59 +0100 | karenw | (~karenw@user/karenw) (Ping timeout: 244 seconds) |
| 2025-12-20 19:48:06 +0100 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
| 2025-12-20 19:46:51 +0100 | milan2 | (~milan@88.212.61.169) |
| 2025-12-20 19:45:12 +0100 | shaeto | (~Shaeto@94.25.234.244) (Quit: WeeChat 4.1.1) |
| 2025-12-20 19:42:57 +0100 | Jackneill | (~Jackneill@178-164-234-79.pool.digikabel.hu) Jackneill |
| 2025-12-20 19:42:45 +0100 | Jackneill | (~Jackneill@178-164-234-79.pool.digikabel.hu) (Quit: Leaving) |
| 2025-12-20 19:42:43 +0100 | jackneill__ | (~Jackneill@178-164-234-79.pool.digikabel.hu) (Quit: Leaving) |
| 2025-12-20 19:39:04 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-20 19:38:42 +0100 | jonnie | (~jonnie@user/jonnie) jonnie |
| 2025-12-20 19:38:29 +0100 | Pozyomka | (~pyon@user/pyon) pyon |
| 2025-12-20 19:36:50 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |
| 2025-12-20 19:35:34 +0100 | jonnie | (~jonnie@user/jonnie) (Remote host closed the connection) |
| 2025-12-20 19:34:09 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-20 19:32:34 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:dcc4:d31b:c3d9:56cd) (Ping timeout: 260 seconds) |
| 2025-12-20 19:30:36 +0100 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 2025-12-20 19:28:08 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:dcc4:d31b:c3d9:56cd) |
| 2025-12-20 19:26:22 +0100 | Googulator28 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-20 19:25:53 +0100 | Googulator53 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-20 19:25:02 +0100 | Lycurgus | (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org )) |
| 2025-12-20 19:23:19 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-20 19:22:51 +0100 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2025-12-20 19:18:31 +0100 | ystael | (~ystael@user/ystael) (Ping timeout: 240 seconds) |
| 2025-12-20 19:18:22 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-20 19:11:43 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-20 19:08:26 +0100 | Jackneill | (~Jackneill@178-164-234-79.pool.digikabel.hu) |
| 2025-12-20 19:07:43 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) (Ping timeout: 240 seconds) |
| 2025-12-20 19:06:59 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-20 19:05:40 +0100 | <haskellbridge> | <Morj> Another think typeclasses allow you vs modules is delaying a choice between runtime or compile time polymorphism. Like in haskell you can specialize-pragma or you can use dynamically |
| 2025-12-20 19:04:51 +0100 | <haskellbridge> | <Morj> For the purpose of this excercise I rule it out. But in general I don't think it's unacceptable |
| 2025-12-20 19:03:44 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |
| 2025-12-20 19:03:28 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) (Remote host closed the connection) |
| 2025-12-20 19:02:14 +0100 | <monochrom> | Yeah GND is benovolent magic :) |
| 2025-12-20 19:01:26 +0100 | <monochrom> | But ocaml has m4 so it's "OK". >:) |
| 2025-12-20 19:00:44 +0100 | fp | (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 256 seconds) |
| 2025-12-20 19:00:27 +0100 | <tomsmeding> | yin geekosaur: re ghcup's bootstrap script, I made a PR https://github.com/haskell/ghcup-hs/pull/1301 |
| 2025-12-20 19:00:16 +0100 | <monochrom> | But I can understand if you desire automation. |
| 2025-12-20 18:59:51 +0100 | <monochrom> | Do you rule out hand-written forwarding? Because in SML I can write "module MyHashMap sig Map where insert = wrap . insert . unwrap; etc". |
| 2025-12-20 18:57:39 +0100 | <haskellbridge> | <Morj> GeneralizedNewtypeDeriving is magic that replaces macros, but it's very useful magic |
| 2025-12-20 18:57:24 +0100 | <haskellbridge> | <Morj> Rust requires macros for a similar thing for examples |