Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,789,704 events total
2026-03-31 06:54:49 × foul_owl quits (~kerry@94.156.149.92) (Read error: Connection reset by peer)
2026-03-31 06:57:22 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-03-31 07:00:00 × marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli)
2026-03-31 07:03:42 craunts795335385 joins (~craunts@152.32.99.2)
2026-03-31 07:07:30 marinelli joins (~weechat@gateway/tor-sasl/marinelli)
2026-03-31 07:08:17 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-03-31 07:08:34 × Angelz quits (Angelz@Angelz.oddprotocol.org) (Changing host)
2026-03-31 07:08:34 Angelz joins (Angelz@user/angelz)
2026-03-31 07:09:18 <gentauro> CTRL + F -> "data Transact a -- opaque; cannot be run directly" how does this work with `record :: Transaction -> Transact ()`? Can you even instantiate an `opaque` type? Or do you just use `undefined`?
2026-03-31 07:10:20 <gentauro> oh, I see to get it. Nevermind :)
2026-03-31 07:11:55 foul_owl joins (~kerry@94.156.149.94)
2026-03-31 07:12:41 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 265 seconds)
2026-03-31 07:13:15 qqq joins (~qqq@185.54.20.216)
2026-03-31 07:14:50 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-03-31 07:15:57 <gentauro> nah, I don't get it xD
2026-03-31 07:27:37 <mauke> Transact is like IO
2026-03-31 07:27:41 <mauke> you can't look "inside"
2026-03-31 07:30:22 danza joins (~danza@user/danza)
2026-03-31 07:32:41 <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 07:33:25 <gentauro> mauke: -> https://wiki.haskell.org/IO_inside#The_GHC_implementation
2026-03-31 07:33:33 <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 07:33:44 <gentauro> `IO` still has something on the right side …
2026-03-31 07:33:53 <mauke> well, duh
2026-03-31 07:34:19 <mauke> the point is, it's an abstract type as far as users of the library are concerned
2026-03-31 07:34:19 <gentauro> while their `opaque` type doesn't. So you will never be able to instantiate it
2026-03-31 07:34:38 × qqq quits (~qqq@185.54.20.216) (Ping timeout: 252 seconds)
2026-03-31 07:34:38 <gentauro> Leary: thx
2026-03-31 07:37:13 <mauke> gentauro: related: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/separate_compilation.html#index-19:~:text=it%20can%20be%20given%20abstractly,-%2C%20by
2026-03-31 07:37:53 <mauke> as in "this is an interface specification, not actual .hs source code"
2026-03-31 07:42:56 <gentauro> mauke: now that I didn't know :o
2026-03-31 07:46:15 xff0x joins (~xff0x@175.177.157.211)
2026-03-31 07:47:38 qqq joins (~qqq@185.54.20.216)
2026-03-31 07:47:53 mistivia joins (~mistivia@user/mistivia)
2026-03-31 07:49:31 × puke quits (~puke@user/puke) (Ping timeout: 264 seconds)
2026-03-31 07:51:10 <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 07:51:41 tomsmeding_ is now known as tomsmeding
2026-03-31 07:51:56 × xff0x quits (~xff0x@175.177.157.211) (Ping timeout: 256 seconds)
2026-03-31 07:54:43 <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-recursive-modules-and-hs-boot-files)
2026-03-31 07:55:31 <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 07:55:34 oskarw joins (~user@user/oskarw)
2026-03-31 07:57:31 × marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Remote host closed the connection)
2026-03-31 07:57:50 marinelli joins (~weechat@gateway/tor-sasl/marinelli)
2026-03-31 08:01:27 acidjnk_new3 joins (~acidjnk@p200300d6e700e586cf86a3ab51f9bf20.dip0.t-ipconnect.de)
2026-03-31 08:06:48 × mistivia quits (~mistivia@user/mistivia) (Remote host closed the connection)
2026-03-31 08:06:57 <gentauro> tomsmeding: got it
2026-03-31 08:07:02 mistivia joins (~mistivia@user/mistivia)
2026-03-31 08:08:12 <gentauro> tomsmeding: if you place `Internal` modules in `other-modules:` (cabal file) for your lib, can they be reached by consumers?
2026-03-31 08:08:34 <sclv> no
2026-03-31 08:08:44 <gentauro> sclv: nice
2026-03-31 08:09:03 × emmanuelux quits (~em@user/emmanuelux) (Quit: bye)
2026-03-31 08:10:06 mistiv1a joins (~mistivia@user/mistivia)
2026-03-31 08:10:11 merijn joins (~merijn@77.242.116.146)
2026-03-31 08:12:18 × mistiv1a quits (~mistivia@user/mistivia) (Remote host closed the connection)
2026-03-31 08:12:54 × mistivia quits (~mistivia@user/mistivia) (Ping timeout: 256 seconds)
2026-03-31 08:22:47 chele joins (~chele@user/chele)
2026-03-31 08:26:16 <tomsmeding> gentauro: other-modules in general are hidden to consumers, not just those named `Internal`
2026-03-31 08:28:22 jreicher joins (~joelr@user/jreicher)
2026-03-31 08:42:08 mistiv1a joins (~mistivia@user/mistivia)
2026-03-31 08:50:05 <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 08:50:22 gentauro but if I'm right, I'm no longer team stack but all onboard team cabal xD
2026-03-31 08:51:21 <haskellbridge> <sm> stack uses the same cabal files as cabal, gentauro
2026-03-31 08:51:52 <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 08:56:09 × ft quits (~ft@p508db341.dip0.t-ipconnect.de) (Quit: leaving)
2026-03-31 09:05:03 <gentauro> 01:21 < mesaoptimizer> https://blog.haskell.org/a-couple-million-lines-of-haskell/
2026-03-31 09:05:06 <gentauro> mesaoptimizer: really good read
2026-03-31 09:07:52 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 09:21:29 Square2 joins (~Square4@user/square)
2026-03-31 09:26:28 Guest14 joins (~Guest14@mm-197-96-84-93.static.mgts.by)
2026-03-31 09:26:40 srazkvt joins (~sarah@user/srazkvt)
2026-03-31 09:32:10 <Guest14> sup
2026-03-31 09:38:14 × Guest14 quits (~Guest14@mm-197-96-84-93.static.mgts.by) (Quit: Client closed)
2026-03-31 09:40:55 __monty__ joins (~toonn@user/toonn)
2026-03-31 09:52:02 × oskarw quits (~user@user/oskarw) (Remote host closed the connection)
2026-03-31 09:54:08 xff0x joins (~xff0x@2405:6580:b080:900:637c:4b69:bd45:f373)
2026-03-31 10:02:59 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 265 seconds)
2026-03-31 10:03:28 × marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Ping timeout: 265 seconds)
2026-03-31 10:03:32 × czan quits (~czan@user/mange) (Quit: Zzz...)
2026-03-31 10:04:42 ChaiTRex joins (~ChaiTRex@user/chaitrex)
2026-03-31 10:05:09 marinelli joins (~weechat@gateway/tor-sasl/marinelli)
2026-03-31 10:07:14 × tri quits (~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 248 seconds)
2026-03-31 10:15:20 × qqq quits (~qqq@185.54.20.216) (Remote host closed the connection)
2026-03-31 10:20:27 acidjnk_new joins (~acidjnk@p200300d6e700e57349db68dd44053d60.dip0.t-ipconnect.de)
2026-03-31 10:23:07 tri joins (~tri@ool-44c70bcb.dyn.optonline.net)
2026-03-31 10:23:37 × acidjnk_new3 quits (~acidjnk@p200300d6e700e586cf86a3ab51f9bf20.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2026-03-31 10:23:39 × Square2 quits (~Square4@user/square) (Ping timeout: 268 seconds)
2026-03-31 10:30:29 × mcfrdy quits (~mcfrdy@user/mcfrdy) (Quit: quit)
2026-03-31 10:30:57 <tomsmeding> gentauro: don't confuse stack.yaml with package.yaml
2026-03-31 10:31:19 <tomsmeding> stack.yaml corresponds to cabal.project, package.yaml is read by hpack (called by stack) to produce yourthing.cabal
2026-03-31 10:36:16 divlamir_ joins (~divlamir@user/divlamir)
2026-03-31 10:36:16 × divlamir quits (~divlamir@user/divlamir) (Ping timeout: 256 seconds)
2026-03-31 10:36:53 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
2026-03-31 10:40:50 × divlamir_ quits (~divlamir@user/divlamir) (Ping timeout: 248 seconds)
2026-03-31 10:42:22 haritz joins (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
2026-03-31 10:42:22 × haritz quits (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
2026-03-31 10:42:22 haritz joins (~hrtz@user/haritz)
2026-03-31 10:45:19 terrorjack joins (~terrorjac@2a01:4f8:271:2d98::2)
2026-03-31 10:46:43 divlamir joins (~divlamir@user/divlamir)
2026-03-31 10:48:35 × marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Remote host closed the connection)
2026-03-31 10:48:58 marinelli joins (~weechat@gateway/tor-sasl/marinelli)
2026-03-31 10:50:43 × danza quits (~danza@user/danza) (Remote host closed the connection)

All times are in UTC.