Newest at the top
| 2026-03-31 11:21:29 +0200 | Square2 | (~Square4@user/square) Square |
| 2026-03-31 11:07:52 +0200 | gentauro | «The beauty of Haskell is charming enough, but there is a whole swath of operational and organizational reality beyond it, and if you ignore that reality for too long, your company will likely fire the whole Haskell team2 and start writing PHP or something instead». It reminds me when I watched Kris Jenkins saying we SHOULD use PHP. Asin PureScript (FE) + Haskell (BE) + PostgreSQL (DS) |
| 2026-03-31 11:05:06 +0200 | <gentauro> | mesaoptimizer: really good read |
| 2026-03-31 11:05:03 +0200 | <gentauro> | 01:21 < mesaoptimizer> https://blog.haskell.org/a-couple-million-lines-of-haskell/ |
| 2026-03-31 10:56:09 +0200 | ft | (~ft@p508db341.dip0.t-ipconnect.de) (Quit: leaving) |
| 2026-03-31 10:51:52 +0200 | <sclv> | this is a feature of haskell packages, which are defined with .cabal files. stack the tool and cabal-install the tool both respect cabal files. |
| 2026-03-31 10:51:21 +0200 | <haskellbridge> | <sm> stack uses the same cabal files as cabal, gentauro |
| 2026-03-31 10:50:22 +0200 | gentauro | but if I'm right, I'm no longer team stack but all onboard team cabal xD |
| 2026-03-31 10:50:05 +0200 | <gentauro> | tomsmeding: is it correct to assume that this is a "cabal" thing? I recall using `stack` and there were no way to enforce hidden modules? (I might be wrong) |
| 2026-03-31 10:42:08 +0200 | mistiv1a | (~mistivia@user/mistivia) mistivia |
| 2026-03-31 10:28:22 +0200 | jreicher | (~joelr@user/jreicher) jreicher |
| 2026-03-31 10:26:16 +0200 | <tomsmeding> | gentauro: other-modules in general are hidden to consumers, not just those named `Internal` |
| 2026-03-31 10:22:47 +0200 | chele | (~chele@user/chele) chele |
| 2026-03-31 10:12:54 +0200 | mistivia | (~mistivia@user/mistivia) (Ping timeout: 256 seconds) |
| 2026-03-31 10:12:18 +0200 | mistiv1a | (~mistivia@user/mistivia) (Remote host closed the connection) |
| 2026-03-31 10:10:11 +0200 | merijn | (~merijn@77.242.116.146) merijn |
| 2026-03-31 10:10:06 +0200 | mistiv1a | (~mistivia@user/mistivia) mistivia |
| 2026-03-31 10:09:03 +0200 | emmanuelux | (~em@user/emmanuelux) (Quit: bye) |
| 2026-03-31 10:08:44 +0200 | <gentauro> | sclv: nice |
| 2026-03-31 10:08:34 +0200 | <sclv> | no |
| 2026-03-31 10:08:12 +0200 | <gentauro> | tomsmeding: if you place `Internal` modules in `other-modules:` (cabal file) for your lib, can they be reached by consumers? |
| 2026-03-31 10:07:02 +0200 | mistivia | (~mistivia@user/mistivia) mistivia |
| 2026-03-31 10:06:57 +0200 | <gentauro> | tomsmeding: got it |
| 2026-03-31 10:06:48 +0200 | mistivia | (~mistivia@user/mistivia) (Remote host closed the connection) |
| 2026-03-31 10:01:27 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e700e586cf86a3ab51f9bf20.dip0.t-ipconnect.de) acidjnk |
| 2026-03-31 09:57:50 +0200 | marinelli | (~weechat@gateway/tor-sasl/marinelli) marinelli |
| 2026-03-31 09:57:31 +0200 | marinelli | (~weechat@gateway/tor-sasl/marinelli) (Remote host closed the connection) |
| 2026-03-31 09:55:34 +0200 | oskarw | (~user@user/oskarw) oskarw |
| 2026-03-31 09:55:31 +0200 | <tomsmeding> | backpack signatures are rare because use of backpack in general is rare; hs-boot files are rare because generally people try to avoid module cycles |
| 2026-03-31 09:54:43 +0200 | <tomsmeding> | gentauro: no, there's no .mli; but for curiosity, there are two kinds of files that both kind of look like an .mli: backpack signatures (https://cabal.readthedocs.io/en/stable/how-to-use-backpack.html) and hs-boot files (https://downloads.haskell.org/ghc/latest/docs/users_guide/separate_compilation.html#mutually-recur…) |
| 2026-03-31 09:51:56 +0200 | xff0x | (~xff0x@175.177.157.211) (Ping timeout: 256 seconds) |
| 2026-03-31 09:51:41 +0200 | tomsmeding_ | tomsmeding |
| 2026-03-31 09:51:10 +0200 | <gentauro> | mauke: do you know if Haskell has the .ml/.mli like OCaml? Where you can separate definition from implementation? I kind of like that separation tbh |
| 2026-03-31 09:49:31 +0200 | puke | (~puke@user/puke) (Ping timeout: 264 seconds) |
| 2026-03-31 09:47:53 +0200 | mistivia | (~mistivia@user/mistivia) mistivia |
| 2026-03-31 09:47:38 +0200 | qqq | (~qqq@185.54.20.216) |
| 2026-03-31 09:46:15 +0200 | xff0x | (~xff0x@175.177.157.211) |
| 2026-03-31 09:42:56 +0200 | <gentauro> | mauke: now that I didn't know :o |
| 2026-03-31 09:37:53 +0200 | <mauke> | as in "this is an interface specification, not actual .hs source code" |
| 2026-03-31 09:37:13 +0200 | <mauke> | gentauro: related: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/separate_compilation.html#index-19:~:text=it%20… |
| 2026-03-31 09:34:38 +0200 | <gentauro> | Leary: thx |
| 2026-03-31 09:34:38 +0200 | qqq | (~qqq@185.54.20.216) (Ping timeout: 252 seconds) |
| 2026-03-31 09:34:19 +0200 | <gentauro> | while their `opaque` type doesn't. So you will never be able to instantiate it |
| 2026-03-31 09:34:19 +0200 | <mauke> | the point is, it's an abstract type as far as users of the library are concerned |
| 2026-03-31 09:33:53 +0200 | <mauke> | well, duh |
| 2026-03-31 09:33:44 +0200 | <gentauro> | `IO` still has something on the right side … |
| 2026-03-31 09:33:33 +0200 | <Leary> | The actual data declaration might look like, e.g. `data Transact a = Pure a | Record Transaction (Transact a) | Emit Event (Transact a)`. |
| 2026-03-31 09:33:25 +0200 | <gentauro> | mauke: -> https://wiki.haskell.org/IO_inside#The_GHC_implementation |
| 2026-03-31 09:32:41 +0200 | <Leary> | gentauro: 'Opaque' just means the constructors are hidden. `record` and `emit` (provided in their place) are written with access to those constructors. |
| 2026-03-31 09:30:22 +0200 | danza | (~danza@user/danza) danza |