| 2026-01-18 00:00:53 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> the idea is (and it works and speeds up runtime considerably) that I add lots of INLINEs and INLINEABLE and then in each line starting with "Is @<some type>" a function is either inlined or called (but with unfolding available), which GHC now sees operating at concrete type, so it specializes the function (or its inlining) to that specific type |
| 2026-01-18 00:01:30 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> this is a code base with a huge amount of existential types, which totally block any sane ways of specializing code |
| 2026-01-18 00:01:44 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> * specializing/monomorphizing |
| 2026-01-18 00:02:06 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...) |
| 2026-01-18 00:02:38 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2026-01-18 00:02:52 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> but if anybody has any other ideas how to avoid passing around explicit dictionaries but maintain the very abstract API, I'm all ears |
| 2026-01-18 00:05:18 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> because what I'm currently doing is seriously embarrassing |
| 2026-01-18 00:05:34 +0100 | <EvanR> | any time you pass around explicit dictionaries, can't it also be passing (perhaps hidden inside a data type) a record of things doing the implementation |
| 2026-01-18 00:06:38 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> that makes sense; let me think why not |
| 2026-01-18 00:07:35 +0100 | ethantwardy | (~user@user/ethantwardy) ethantwardy |
| 2026-01-18 00:09:58 +0100 | ethantwardy | (~user@user/ethantwardy) (Client Quit) |
| 2026-01-18 00:11:40 +0100 | target_i | (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 2026-01-18 00:13:13 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 00:14:14 +0100 | ethantwardy | (~user@user/ethantwardy) ethantwardy |
| 2026-01-18 00:15:01 +0100 | ethantwardy | (~user@user/ethantwardy) (Client Quit) |
| 2026-01-18 00:16:51 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> so, the only argument against I can find is circularity: say, I'm implementing indexing in fancy nested arrays (which is called 12! times in the benchmark I'm working on), the code for the indexing takes a dictionary for storable vectors (the arrays are represented as tuples of such vectors) and it's terribly slow when it has to access the dictionary each time it's called |
| 2026-01-18 00:17:26 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> if I understand your idea correctly, the nested array indexing code should instead take a dictionary that directly works on nested arrays, not vectors |
| 2026-01-18 00:18:13 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> but the nested array indexing code implements what should be in that dictionary --- I'd need a way to somehow boostrap this, recurse across a dictionary |
| 2026-01-18 00:18:24 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2026-01-18 00:18:34 +0100 | <EvanR> | holy moly |
| 2026-01-18 00:21:01 +0100 | <EvanR> | if you're combining implementations in a way to implement another implementation, you do want to use prudent "let" bindings to make sure you only access the dependent implementation once |
| 2026-01-18 00:21:14 +0100 | <EvanR> | instead of every time it's accessed |
| 2026-01-18 00:21:38 +0100 | <EvanR> | this assumes the dependent implementation isn't dynamically changing for the same data structure |
| 2026-01-18 00:22:27 +0100 | <EvanR> | dependency isn't dynamically changing* |
| 2026-01-18 00:22:50 +0100 | <monochrom> | Oh, like "f x = f (x - 1) + f (x - 1)" vs "f x = let y = f (x - 1) in y + y"? |
| 2026-01-18 00:22:54 +0100 | <EvanR> | as far as knot typing I don't know about this |
| 2026-01-18 00:22:58 +0100 | <EvanR> | tying |
| 2026-01-18 00:24:10 +0100 | <EvanR> | makeF add x = add (x - 1) (x + 1) |
| 2026-01-18 00:24:20 +0100 | <EvanR> | let f = makeF (+) |
| 2026-01-18 00:24:38 +0100 | <EvanR> | this might not apply exactly, I'm not sure I totally understand the situation |
| 2026-01-18 00:24:38 +0100 | <Leary> | Man of Letters (Mikolaj): Re monomorphising, I see, that's a bit unfortunate. You can perhaps get rid of those existentials by using suitable heterogeneous types instead. |
| 2026-01-18 00:24:53 +0100 | ethantwardy | (~user@user/ethantwardy) ethantwardy |
| 2026-01-18 00:25:34 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> Leary: where can I see an example of something like that? |
| 2026-01-18 00:27:55 +0100 | troydm | (~troydm@user/troydm) troydm |
| 2026-01-18 00:28:07 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> some of the existential types arise naturally from AST GADTs (I have multiple interpreters of deeply embedded DLS in the implementation) |
| 2026-01-18 00:29:01 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 00:30:01 +0100 | <Leary> | The classic example is `data HList f xs where { Nil :: HList f '[]; Cons :: f x -> HList f xs -> HList f (x:xs) }`, but you can do similarly for arbitrary ASTs by duplicating some of their structure on the type level in the same way. |
| 2026-01-18 00:30:03 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> e.g., I can't think how to get rid of the existentially bound types in the node |
| 2026-01-18 00:30:03 +0100 | <haskellbridge> | ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/QetWxmpnbhshlldjxsPntKNj/OFJ7l1DSftE (5 lines) |
| 2026-01-18 00:30:32 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> ok, thank you, I will think about this |
| 2026-01-18 00:31:55 +0100 | ethantwardy | (~user@user/ethantwardy) (Quit: WeeChat 4.4.2) |
| 2026-01-18 00:32:18 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> EvanR: right, so that's precisely the purpose of my crude hack with duplicating functions (or function calls) and so helping GHC specialize each call at a concrete known type; let me explain: |
| 2026-01-18 00:33:13 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> in your example, by the well placed "let", you avoid one of the two applications of subtraction |
| 2026-01-18 00:33:51 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> in my case, by specializing/monomorphising, I get rid of more than one dictionary lookup/passing |
| 2026-01-18 00:34:08 +0100 | <EvanR> | that was monochroms version |
| 2026-01-18 00:34:21 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> oh, yes, right |
| 2026-01-18 00:34:33 +0100 | Inline | (~User@2001-4dd6-dd24-0-d5a6-802e-e6e6-ce59.ipv6dyn.netcologne.de) (Ping timeout: 256 seconds) |
| 2026-01-18 00:34:55 +0100 | ethantwardy | (~user@user/ethantwardy) ethantwardy |
| 2026-01-18 00:35:20 +0100 | <EvanR> | I was thinking that, for a given properly constructed implementation, you only do look ups into any implementation once per call to the API |
| 2026-01-18 00:35:43 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 00:35:44 +0100 | <EvanR> | for any of the types that have this api |
| 2026-01-18 00:35:47 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> anyway, sadly, while "let" can cache values, it can't cache the determination which dictionary to look up into and how to combine whatever has been obtained from the dictionary --- only the GHC magic can do that |
| 2026-01-18 00:36:01 +0100 | <EvanR> | :thonk: |
| 2026-01-18 00:36:28 +0100 | Zemy_ | (~Zemy@2600:100c:b04a:cc3c:2826:1bff:fef2:30a6) |
| 2026-01-18 00:37:22 +0100 | <EvanR> | I would guess whatever ghc magic that is can be "manually" coded into the implementations, but no bearing on how the effort compares |
| 2026-01-18 00:37:38 +0100 | Core3498 | (~Zemy@72.178.108.235) |
| 2026-01-18 00:37:40 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> and the same regarding knots --- Haskell recursion doesn't cut it, something involving GHC internals would be needed (or something totally out of the box like maybe the heterogeneous types idea once I understand it) |
| 2026-01-18 00:38:03 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> oh, yes, sure, e.g., you can manually write monomorphic code from the start |
| 2026-01-18 00:38:17 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> and I actually like that a lot |
| 2026-01-18 00:38:30 +0100 | <EvanR> | not monomorphic |
| 2026-01-18 00:39:01 +0100 | <EvanR> | polymorphic types can satisfy the same API as monomorphic types |
| 2026-01-18 00:39:02 +0100 | trickard | (~trickard@cpe-82-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2026-01-18 00:39:14 +0100 | Core4452 | (~Zemy@2600:100c:b04a:cc3c:ac56:f4ff:fe3c:1c26) |
| 2026-01-18 00:39:15 +0100 | trickard_ | (~trickard@cpe-82-98-47-163.wireline.com.au) |
| 2026-01-18 00:39:42 +0100 | Zemy_ | (~Zemy@2600:100c:b04a:cc3c:2826:1bff:fef2:30a6) (Read error: Connection reset by peer) |
| 2026-01-18 00:39:44 +0100 | <EvanR> | e.g. addition interface could be implemented by Word8 or Complex a where a implements addition interface |
| 2026-01-18 00:40:04 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> yes, you are right, code without existentials, plus "-fexpose-overloaded-unfoldings" and "-fspecialise-aggressively" should in theory be just as good at avoiding runtime lookups |
| 2026-01-18 00:40:12 +0100 | Zemy | (~Zemy@72.178.108.235) (Ping timeout: 256 seconds) |
| 2026-01-18 00:41:10 +0100 | <EvanR> | aiui typeclasses shine in cases where you can get away without talking about explicit dictionaries, since it will be passed automagically around |
| 2026-01-18 00:41:26 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> yes, I fully agree |
| 2026-01-18 00:41:45 +0100 | bgamari | (~bgamari@64.223.170.198) (Quit: ZNC 1.8.2 - https://znc.in) |
| 2026-01-18 00:41:49 +0100 | Core3498 | (~Zemy@72.178.108.235) (Ping timeout: 246 seconds) |
| 2026-01-18 00:43:32 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> but once you start writing GADTs it's so hard to avoid existentials; I tried for a while, marked each one in the source code, but quickly gave up --- too many :) |
| 2026-01-18 00:44:07 +0100 | ethantwardy | (~user@user/ethantwardy) (Quit: WeeChat 4.4.2) |
| 2026-01-18 00:44:15 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2026-01-18 00:44:27 +0100 | bgamari | (~bgamari@64.223.173.201) |
| 2026-01-18 00:44:29 +0100 | <geekosaur> | enh, you can enable GADTSyntax without enabling GADTs |
| 2026-01-18 00:45:40 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> oh no, but the sweet reward is in the extra type correctness real GADTs ensure, unlike GADTSyntax, especially for syntax-like things |
| 2026-01-18 00:46:18 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> I'd love to read some functional pearl that rewrites the classic GADT AST examples without existentials in some fancy way |
| 2026-01-18 00:46:36 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> in many plausible ways, preferably |
| 2026-01-18 00:46:52 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> with similar correctness guarantees |
| 2026-01-18 00:47:03 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 00:47:58 +0100 | <EvanR> | the GADTsyntax is besides the point, since the key thing is case analyzing to introduce the forgotten now unknown type... however it was defined and constructed |
| 2026-01-18 00:48:07 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> for a non-trivial AST (I don't remember Peano arithmetic or lambda calculus already have existential types in the classic encoding) |
| 2026-01-18 00:48:08 +0100 | <geekosaur> | I'm confused. Doesn't that extra correctness come specifically from the embedded existentials, which are exposed by scrutinizing constructors? |
| 2026-01-18 00:48:10 +0100 | <EvanR> | in cases where you use existentials |
| 2026-01-18 00:49:00 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> geekosaur: I'm afraid so, but maybe there is another way? |
| 2026-01-18 00:49:15 +0100 | <EvanR> | doing existentials without existentials sounds tricky |
| 2026-01-18 00:49:25 +0100 | <EvanR> | (and what's the point) |
| 2026-01-18 00:49:30 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> :D |
| 2026-01-18 00:50:23 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2026-01-18 00:50:59 +0100 | ethantwardy | (~user@user/ethantwardy) ethantwardy |
| 2026-01-18 00:51:37 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-01-18 00:52:51 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> well, the point is, they are not a zero-cost abstraction unlike, in principle, most of other abstractions Haskell provides |
| 2026-01-18 00:53:47 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> and being so handy, they easily pollute the performance-sensitive parts of the application |
| 2026-01-18 00:55:03 +0100 | catties | kitties |
| 2026-01-18 00:55:27 +0100 | <geekosaur> | I think the only other alternative isn't here yet: dependent type witnesses of some kind. Which are also not zero cost, and I suspect end up being just a different way to encode existentials |
| 2026-01-18 00:56:30 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> ;< |
| 2026-01-18 00:57:23 +0100 | trickard_ | (~trickard@cpe-82-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2026-01-18 00:57:37 +0100 | trickard_ | (~trickard@cpe-82-98-47-163.wireline.com.au) |
| 2026-01-18 00:58:10 +0100 | <geekosaur> | (GADT-style, at least) |
| 2026-01-18 00:58:18 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
| 2026-01-18 01:02:47 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 01:07:19 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 01:08:00 +0100 | <Leary> | Man of Letters (Mikolaj): Re the heterogeneous types, it's basically just a matter of building a home for your discarded types to live in. In the simplest case where all those types have the same kind, you could literally just add a type level list to your AST: `AstCastS :: (NumScalar r1, RealFrac r1, NumScalar r2, RealFrac r2) => AstTensor discarded ms s (TKS sh r1) -> AstTensor (r1:discarded) ms s (TKS sh r2)` |
| 2026-01-18 01:10:55 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds) |
| 2026-01-18 01:14:31 +0100 | qqq | (~qqq@185.54.21.105) (Quit: Lost terminal) |
| 2026-01-18 01:17:09 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 01:18:32 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> oh wow, thank you, that's interesting |
| 2026-01-18 01:20:00 +0100 | mhatta | (~mhatta@www21123ui.sakura.ne.jp) (Quit: ZNC 1.10.1+deb1 - https://znc.in) |
| 2026-01-18 01:20:19 +0100 | <haskellbridge> | <Man of Letters (Mikolaj)> falls more into the category of "ways to make existential-like things zero-cost" than the category "an alternative but similarly handy abstraction mechanism" |
| 2026-01-18 01:21:35 +0100 | takuan | (~takuan@d8D86B9E9.access.telenet.be) (Ping timeout: 245 seconds) |
| 2026-01-18 01:22:14 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-01-18 01:24:23 +0100 | poscat | (~poscat@user/poscat) (Remote host closed the connection) |
| 2026-01-18 01:25:43 +0100 | mhatta | (~mhatta@www21123ui.sakura.ne.jp) |
| 2026-01-18 01:27:33 +0100 | poscat | (~poscat@user/poscat) poscat |
| 2026-01-18 01:31:08 +0100 | trickard_ | trickard |
| 2026-01-18 01:32:56 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 01:38:19 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2026-01-18 01:38:48 +0100 | machinedgod | (~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod |
| 2026-01-18 01:43:04 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 246 seconds) |
| 2026-01-18 01:43:05 +0100 | droideqa | (uid499291@user/droideqa) (Quit: Connection closed for inactivity) |
| 2026-01-18 01:43:25 +0100 | Zemy | (~Zemy@72.178.108.235) |
| 2026-01-18 01:44:59 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2026-01-18 01:47:16 +0100 | Core4452 | (~Zemy@2600:100c:b04a:cc3c:ac56:f4ff:fe3c:1c26) (Ping timeout: 246 seconds) |
| 2026-01-18 01:48:43 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 01:50:11 +0100 | <monochrom> | Existentials are zero-cost iff unusable. |
| 2026-01-18 01:51:58 +0100 | <monochrom> | an easy corollary of information theory. For a value to be usable, you must pass around sufficient information, thus the non-zero cost. |
| 2026-01-18 01:53:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 01:53:34 +0100 | <EvanR> | a value can have zero cost if the only possibility is that it exists i.e. () |
| 2026-01-18 01:53:52 +0100 | <EvanR> | sounds useful |
| 2026-01-18 01:54:07 +0100 | <monochrom> | A concrete example being: If you give me an existential value and want me to be able to use Show methods on it, then you must also give me the Show methods, lest how do I even know that I'm allowed to. |
| 2026-01-18 01:55:30 +0100 | <monochrom> | or at least a pointer to the struct of Show methods. |
| 2026-01-18 01:57:12 +0100 | <monochrom> | OK OK s/unusable/indistinguishable from ()/ :) |
| 2026-01-18 02:00:09 +0100 | Zemy_ | (~Zemy@2600:100c:b04a:cc3c:1015:34ff:fe46:86ce) |
| 2026-01-18 02:03:18 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 252 seconds) |
| 2026-01-18 02:03:18 +0100 | Zemy | (~Zemy@72.178.108.235) (Ping timeout: 252 seconds) |
| 2026-01-18 02:03:30 +0100 | Zemy | (~Zemy@72.178.108.235) |
| 2026-01-18 02:04:30 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 02:06:55 +0100 | Zemy_ | (~Zemy@2600:100c:b04a:cc3c:1015:34ff:fe46:86ce) (Ping timeout: 264 seconds) |
| 2026-01-18 02:06:58 +0100 | skum | (~skum@user/skum) (Quit: WeeChat 4.8.1) |
| 2026-01-18 02:10:35 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 02:22:03 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2026-01-18 02:22:32 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 02:24:45 +0100 | divlamir | (~divlamir@user/divlamir) (Read error: Connection reset by peer) |
| 2026-01-18 02:25:10 +0100 | divlamir | (~divlamir@user/divlamir) divlamir |
| 2026-01-18 02:27:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 02:31:54 +0100 | emmanuelux | (~em@user/emmanuelux) (Quit: bye) |
| 2026-01-18 02:32:08 +0100 | emmanuelux | (~em@user/emmanuelux) emmanuelux |
| 2026-01-18 02:38:17 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 02:40:02 +0100 | emmanuelux | (~em@user/emmanuelux) (Quit: bye) |
| 2026-01-18 02:40:15 +0100 | emmanuelux | (~em@user/emmanuelux) emmanuelux |
| 2026-01-18 02:42:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 02:44:17 +0100 | acidjnk | (~acidjnk@p200300d6e7171955902046af4b3b27fd.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
| 2026-01-18 02:49:48 +0100 | omidmash0 | (~omidmash@user/omidmash) omidmash |
| 2026-01-18 02:50:39 +0100 | Square2 | (~Square@user/square) (Ping timeout: 260 seconds) |
| 2026-01-18 02:52:24 +0100 | omidmash | (~omidmash@user/omidmash) (Ping timeout: 260 seconds) |
| 2026-01-18 02:52:24 +0100 | omidmash0 | omidmash |
| 2026-01-18 02:54:04 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 02:58:40 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-01-18 03:06:13 +0100 | Tuplanolla | (~Tuplanoll@85-156-32-207.elisa-laajakaista.fi) (Quit: Leaving.) |
| 2026-01-18 03:09:52 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 03:10:30 +0100 | trickard | (~trickard@cpe-82-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2026-01-18 03:10:44 +0100 | trickard_ | (~trickard@cpe-82-98-47-163.wireline.com.au) |
| 2026-01-18 03:14:35 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 03:17:30 +0100 | Inline | (~User@2001-4dd6-dd24-0-5713-7235-9889-58da.ipv6dyn.netcologne.de) Inline |
| 2026-01-18 03:25:38 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 03:30:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 03:35:55 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 240 seconds) |
| 2026-01-18 03:41:24 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 03:45:52 +0100 | jmcantrell_ | (~weechat@user/jmcantrell) jmcantrell |
| 2026-01-18 03:48:05 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-01-18 03:48:13 +0100 | omidmash | (~omidmash@user/omidmash) (Quit: The Lounge - https://thelounge.chat) |
| 2026-01-18 03:51:36 +0100 | omidmash | (~omidmash@user/omidmash) omidmash |
| 2026-01-18 03:53:25 +0100 | emmanuelux | (~em@user/emmanuelux) (Quit: bye) |
| 2026-01-18 03:54:47 +0100 | emmanuelux | (~em@user/emmanuelux) emmanuelux |
| 2026-01-18 03:56:24 +0100 | emmanuelux | (~em@user/emmanuelux) (Remote host closed the connection) |
| 2026-01-18 03:59:26 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 04:00:17 +0100 | xff0x | (~xff0x@2405:6580:b080:900:c589:6b53:dd18:5a14) (Ping timeout: 265 seconds) |
| 2026-01-18 04:00:47 +0100 | xff0x | (~xff0x@2405:6580:b080:900:c180:d9e0:95c3:e24d) |
| 2026-01-18 04:00:55 +0100 | emmanuelux | (~em@user/emmanuelux) emmanuelux |
| 2026-01-18 04:03:01 +0100 | emmanuelux | (~em@user/emmanuelux) (Remote host closed the connection) |
| 2026-01-18 04:04:18 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-01-18 04:05:03 +0100 | op_4 | (~tslil@user/op-4/x-9116473) (Remote host closed the connection) |
| 2026-01-18 04:05:35 +0100 | op_4 | (~tslil@user/op-4/x-9116473) op_4 |
| 2026-01-18 04:07:45 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2026-01-18 04:14:58 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 04:16:14 +0100 | emmanuelux | (~em@user/emmanuelux) emmanuelux |
| 2026-01-18 04:19:35 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 04:46:32 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 04:52:11 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...) |
| 2026-01-18 04:53:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 05:03:42 +0100 | attlin | (~user@user/attlin) (Ping timeout: 256 seconds) |
| 2026-01-18 05:05:36 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 05:07:09 +0100 | emmanuelux | (~em@user/emmanuelux) (Quit: bye) |
| 2026-01-18 05:07:22 +0100 | emmanuelux | (~em@user/emmanuelux) emmanuelux |
| 2026-01-18 05:08:06 +0100 | machinedgod | (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 252 seconds) |
| 2026-01-18 05:10:14 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-01-18 05:21:00 +0100 | emmanuelux | (~em@user/emmanuelux) (Quit: bye) |
| 2026-01-18 05:21:20 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 05:21:49 +0100 | emmanuelux | (~em@user/emmanuelux) emmanuelux |
| 2026-01-18 05:24:35 +0100 | jmcantrell_ | (~weechat@user/jmcantrell) (Ping timeout: 240 seconds) |
| 2026-01-18 05:27:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 05:30:18 +0100 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
| 2026-01-18 05:34:16 +0100 | emmanuelux | (~em@user/emmanuelux) (Quit: bye) |
| 2026-01-18 05:34:30 +0100 | emmanuelux | (~em@user/emmanuelux) emmanuelux |
| 2026-01-18 05:34:52 +0100 | emmanuelux | (~em@user/emmanuelux) (Remote host closed the connection) |
| 2026-01-18 05:35:12 +0100 | emmanuelux | (~em@user/emmanuelux) emmanuelux |
| 2026-01-18 05:39:23 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 05:44:14 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-01-18 05:47:39 +0100 | emmanuelux | (~em@user/emmanuelux) (Quit: bye) |
| 2026-01-18 05:47:53 +0100 | emmanuelux | (~em@user/emmanuelux) emmanuelux |
| 2026-01-18 05:55:09 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 06:00:01 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-01-18 06:00:34 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2026-01-18 06:10:32 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 06:15:19 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 06:18:57 +0100 | attlin | (~user@user/attlin) attlin |
| 2026-01-18 06:26:18 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 06:31:09 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-01-18 06:41:48 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 06:46:51 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-01-18 06:50:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 06:52:43 +0100 | attlin | (~user@user/attlin) (Ping timeout: 260 seconds) |
| 2026-01-18 06:55:37 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-01-18 06:57:40 +0100 | yangby | (~secret@115.205.110.194) yangby |
| 2026-01-18 06:57:43 +0100 | gmg | (~user@user/gehmehgeh) (Ping timeout: 252 seconds) |
| 2026-01-18 06:58:06 +0100 | trickard_ | (~trickard@cpe-82-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2026-01-18 06:58:52 +0100 | gmg | (~user@user/gehmehgeh) gehmehgeh |
| 2026-01-18 07:03:31 +0100 | attlin | (~user@2602:fa59:9:1fe::1) |
| 2026-01-18 07:03:31 +0100 | attlin | (~user@2602:fa59:9:1fe::1) (Changing host) |
| 2026-01-18 07:03:31 +0100 | attlin | (~user@user/attlin) attlin |
| 2026-01-18 07:04:49 +0100 | troydm | (~troydm@user/troydm) (Ping timeout: 264 seconds) |
| 2026-01-18 07:06:32 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 07:08:37 +0100 | trickard_ | (~trickard@cpe-82-98-47-163.wireline.com.au) |
| 2026-01-18 07:12:24 +0100 | trickard_ | (~trickard@cpe-82-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2026-01-18 07:12:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 07:19:12 +0100 | trickard_ | (~trickard@cpe-82-98-47-163.wireline.com.au) |
| 2026-01-18 07:24:34 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 07:29:25 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 2026-01-18 07:32:01 +0100 | raym_ | (~ray@user/raym) (Ping timeout: 246 seconds) |
| 2026-01-18 07:38:25 +0100 | gmg | (~user@user/gehmehgeh) (Ping timeout: 252 seconds) |
| 2026-01-18 07:38:59 +0100 | raym | (~ray@user/raym) raym |
| 2026-01-18 07:39:06 +0100 | gmg | (~user@user/gehmehgeh) gehmehgeh |
| 2026-01-18 07:40:20 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 07:42:40 +0100 | trickard_ | (~trickard@cpe-82-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2026-01-18 07:42:54 +0100 | trickard_ | (~trickard@cpe-82-98-47-163.wireline.com.au) |
| 2026-01-18 07:43:36 +0100 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 2026-01-18 07:44:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 07:48:39 +0100 | trickard_ | (~trickard@cpe-82-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2026-01-18 07:49:49 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 264 seconds) |
| 2026-01-18 07:51:16 +0100 | euphores | (~SASL_euph@user/euphores) euphores |
| 2026-01-18 07:51:49 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 07:53:17 +0100 | trickard_ | (~trickard@cpe-82-98-47-163.wireline.com.au) |
| 2026-01-18 07:56:35 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 08:05:10 +0100 | qqq | (~qqq@185.54.21.105) |
| 2026-01-18 08:07:36 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 08:12:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 08:16:08 +0100 | takuan | (~takuan@d8D86B9E9.access.telenet.be) |
| 2026-01-18 08:16:31 +0100 | xff0x | (~xff0x@2405:6580:b080:900:c180:d9e0:95c3:e24d) (Ping timeout: 264 seconds) |
| 2026-01-18 08:23:25 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 08:28:01 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-01-18 08:30:28 +0100 | trickard_ | (~trickard@cpe-82-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2026-01-18 08:30:36 +0100 | DetourNe- | (DetourNetw@user/DetourNetworkUK) DetourNetworkUK |
| 2026-01-18 08:30:41 +0100 | trickard_ | (~trickard@cpe-82-98-47-163.wireline.com.au) |
| 2026-01-18 08:31:06 +0100 | DetourNetworkUK | (~DetourNet@user/DetourNetworkUK) (Read error: Connection reset by peer) |
| 2026-01-18 08:32:54 +0100 | DetourNe- | DetourNetworkUK |
| 2026-01-18 08:39:11 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 08:43:21 +0100 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2026-01-18 08:43:33 +0100 | Square2 | (~Square@user/square) Square |
| 2026-01-18 08:44:00 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-01-18 08:45:19 +0100 | attlin | (~user@user/attlin) (Ping timeout: 260 seconds) |
| 2026-01-18 08:52:49 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 08:57:35 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 08:58:31 +0100 | attlin | (~user@user/attlin) attlin |
| 2026-01-18 08:59:13 +0100 | xff0x | (~xff0x@2405:6580:b080:900:33be:7383:eef7:7461) |
| 2026-01-18 09:00:02 +0100 | tt1231607 | (~tt1231@2603:6010:8700:4a81:a4f6:acff:fe95:3803) (Quit: The Lounge - https://thelounge.chat) |
| 2026-01-18 09:05:23 +0100 | tt1231607 | (~tt1231@2603:6010:8700:4a81:a4f6:acff:fe95:3803) tt1231 |
| 2026-01-18 09:08:36 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 09:11:55 +0100 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 2026-01-18 09:13:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-01-18 09:22:34 +0100 | xff0x | (~xff0x@2405:6580:b080:900:33be:7383:eef7:7461) (Ping timeout: 255 seconds) |
| 2026-01-18 09:23:07 +0100 | st_aldini | (~Thunderbi@2605:a601:a07c:7426:52e7:74e7:d63d:c18b) (Ping timeout: 264 seconds) |
| 2026-01-18 09:23:26 +0100 | xff0x | (~xff0x@2405:6580:b080:900:a8dd:12e:d0f2:f716) |
| 2026-01-18 09:24:18 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 09:25:18 +0100 | emmanuelux | (~em@user/emmanuelux) (Quit: bye) |
| 2026-01-18 09:26:18 +0100 | emmanuelux | (~em@user/emmanuelux) emmanuelux |
| 2026-01-18 09:28:35 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 09:30:13 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 09:34:40 +0100 | comonad | (~comonad@p200300d02722ae00dce4ce9451b59974.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 2026-01-18 09:35:08 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-01-18 09:38:14 +0100 | karenw | (~karenw@user/karenw) karenw |
| 2026-01-18 09:44:46 +0100 | xff0x | (~xff0x@2405:6580:b080:900:a8dd:12e:d0f2:f716) (Ping timeout: 256 seconds) |
| 2026-01-18 09:45:56 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 09:48:09 +0100 | Enrico63 | (~Enrico63@2001:b07:646b:5fed:9efc:e8ff:fe24:3213) Enrico63 |
| 2026-01-18 09:50:07 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 09:51:04 +0100 | Enrico63 | (~Enrico63@2001:b07:646b:5fed:9efc:e8ff:fe24:3213) (Client Quit) |
| 2026-01-18 09:51:37 +0100 | xff0x | (~xff0x@2405:6580:b080:900:25c8:1714:302a:7a94) |
| 2026-01-18 09:54:46 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 09:59:08 +0100 | housemate | (~housemate@203.56.146.214) (Quit: https://ineedsomeacidtocalmmedown.space/) |
| 2026-01-18 10:00:51 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-01-18 10:02:13 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...) |
| 2026-01-18 10:02:17 +0100 | tromp | (~textual@2001:1c00:3487:1b00:f96f:f7c1:9b58:4be8) |
| 2026-01-18 10:02:18 +0100 | dpk | (~dpk@jains.nonceword.org) (Ping timeout: 260 seconds) |
| 2026-01-18 10:04:47 +0100 | dpk | (~dpk@jains.nonceword.org) |
| 2026-01-18 10:07:01 +0100 | driib3180 | (~driib@vmi931078.contaboserver.net) (Quit: Ping timeout (120 seconds)) |
| 2026-01-18 10:07:47 +0100 | driib3180 | (~driib@vmi931078.contaboserver.net) driib |
| 2026-01-18 10:11:52 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 10:12:29 +0100 | housemate | (~housemate@203.56.146.214) housemate |
| 2026-01-18 10:16:31 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 10:19:06 +0100 | annamalai | (~annamalai@117.231.194.195) (Ping timeout: 244 seconds) |
| 2026-01-18 10:19:31 +0100 | annamalai | (~annamalai@117.231.194.136) annamalai |
| 2026-01-18 10:22:07 +0100 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 265 seconds) |
| 2026-01-18 10:26:28 +0100 | Square2 | (~Square@user/square) (Ping timeout: 265 seconds) |
| 2026-01-18 10:27:38 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 10:28:27 +0100 | trickard_ | trickard |
| 2026-01-18 10:31:43 +0100 | qqq | (~qqq@185.54.21.105) (Quit: Lost terminal) |
| 2026-01-18 10:32:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 10:41:09 +0100 | trickard | (~trickard@cpe-82-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2026-01-18 10:41:23 +0100 | trickard_ | (~trickard@cpe-82-98-47-163.wireline.com.au) |
| 2026-01-18 10:41:31 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2026-01-18 10:42:03 +0100 | tromp | (~textual@2001:1c00:3487:1b00:f96f:f7c1:9b58:4be8) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2026-01-18 10:43:25 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 10:45:16 +0100 | trickard_ | trickard |
| 2026-01-18 10:46:55 +0100 | annamalai | (~annamalai@117.231.194.136) (Ping timeout: 240 seconds) |
| 2026-01-18 10:47:18 +0100 | annamalai | (~annamalai@117.231.195.7) annamalai |
| 2026-01-18 10:48:24 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2026-01-18 10:49:15 +0100 | driib3180 | (~driib@vmi931078.contaboserver.net) (Ping timeout: 240 seconds) |
| 2026-01-18 10:54:49 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 10:58:28 +0100 | xff0x | (~xff0x@2405:6580:b080:900:25c8:1714:302a:7a94) (Ping timeout: 244 seconds) |
| 2026-01-18 10:58:35 +0100 | annamalai | (~annamalai@117.231.195.7) (Ping timeout: 240 seconds) |
| 2026-01-18 10:58:49 +0100 | xff0x | (~xff0x@2405:6580:b080:900:e686:993d:24d8:5732) |
| 2026-01-18 10:59:33 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-01-18 11:00:06 +0100 | st_aldini | (~Thunderbi@136.48.46.187) st_aldini |
| 2026-01-18 11:00:59 +0100 | housemate | (~housemate@203.56.146.214) (Quit: https://ineedsomeacidtocalmmedown.space/) |
| 2026-01-18 11:02:18 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2026-01-18 11:05:20 +0100 | housemate | (~housemate@203.56.146.214) housemate |
| 2026-01-18 11:10:36 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 11:11:28 +0100 | ThePenguin | (~ThePengui@cust-95-80-28-221.csbnet.se) (Ping timeout: 246 seconds) |
| 2026-01-18 11:15:37 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-01-18 11:16:37 +0100 | annamalai | (~annamalai@117.231.194.200) annamalai |
| 2026-01-18 11:17:32 +0100 | Tuplanolla | (~Tuplanoll@85-156-32-207.elisa-laajakaista.fi) Tuplanolla |
| 2026-01-18 11:20:33 +0100 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
| 2026-01-18 11:26:13 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 11:30:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 11:33:01 +0100 | annamalai | (~annamalai@117.231.194.200) (Ping timeout: 264 seconds) |
| 2026-01-18 11:33:15 +0100 | annamalai | (~annamalai@157.49.202.195) annamalai |
| 2026-01-18 11:38:28 +0100 | driib3180 | (~driib@vmi931078.contaboserver.net) driib |
| 2026-01-18 11:39:21 +0100 | ThePenguin | (~ThePengui@cust-95-80-28-221.csbnet.se) ThePenguin |
| 2026-01-18 11:42:00 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 11:48:35 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-01-18 11:55:10 +0100 | __monty__ | (~toonn@user/toonn) toonn |
| 2026-01-18 11:55:49 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 11:57:55 +0100 | tromp | (~textual@2001:1c00:3487:1b00:f96f:f7c1:9b58:4be8) |
| 2026-01-18 12:00:09 +0100 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
| 2026-01-18 12:00:35 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 12:00:36 +0100 | gmg | (~user@user/gehmehgeh) gehmehgeh |
| 2026-01-18 12:08:11 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...) |
| 2026-01-18 12:09:30 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2026-01-18 12:09:45 +0100 | gmg | (~user@user/gehmehgeh) (Ping timeout: 252 seconds) |
| 2026-01-18 12:11:36 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 12:12:07 +0100 | gmg | (~user@user/gehmehgeh) gehmehgeh |
| 2026-01-18 12:16:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 12:27:23 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 12:28:20 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...) |
| 2026-01-18 12:31:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 12:43:11 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 12:43:44 +0100 | Digitteknohippie | (~user@user/digit) Digit |
| 2026-01-18 12:43:49 +0100 | Digit | (~user@user/digit) (Ping timeout: 264 seconds) |
| 2026-01-18 12:47:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 12:56:05 +0100 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in) |
| 2026-01-18 12:56:23 +0100 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) gabiruh |
| 2026-01-18 12:56:39 +0100 | housemate | (~housemate@203.56.146.214) (Quit: https://ineedsomeacidtocalmmedown.space/) |
| 2026-01-18 12:56:49 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 12:57:38 +0100 | annamalai | (~annamalai@157.49.202.195) (Remote host closed the connection) |
| 2026-01-18 13:01:35 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 13:03:00 +0100 | Digitteknohippie | Digit |
| 2026-01-18 13:12:36 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 13:19:49 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-01-18 13:27:06 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
| 2026-01-18 13:29:07 +0100 | haritz | (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
| 2026-01-18 13:30:39 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 13:34:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 13:46:03 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 13:46:55 +0100 | housemate | (~housemate@202.7.248.67) housemate |
| 2026-01-18 13:50:45 +0100 | acidjnk | (~acidjnk@p200300d6e717195811a2eb9a91fd28d7.dip0.t-ipconnect.de) acidjnk |
| 2026-01-18 13:50:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 13:57:49 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 14:00:54 +0100 | housemate | (~housemate@202.7.248.67) (Quit: https://ineedsomeacidtocalmmedown.space/) |
| 2026-01-18 14:02:35 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 14:13:35 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 14:16:33 +0100 | Pozyomka | (~pyon@user/pyon) (Quit: brb) |
| 2026-01-18 14:17:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 14:18:35 +0100 | Pozyomka | (~pyon@user/pyon) pyon |
| 2026-01-18 14:29:06 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 14:31:04 +0100 | qqq | (~qqq@185.54.21.105) |
| 2026-01-18 14:33:46 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-01-18 14:44:52 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 14:47:41 +0100 | housemate | (~housemate@202.7.248.67) housemate |
| 2026-01-18 14:49:19 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 14:52:52 +0100 | yangby | (~secret@115.205.110.194) (Quit: Go out for a walk and buy a drink.) |
| 2026-01-18 14:54:37 +0100 | kitties | Catty |
| 2026-01-18 14:58:49 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 15:05:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 15:06:47 +0100 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in) |
| 2026-01-18 15:07:05 +0100 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) gabiruh |
| 2026-01-18 15:16:51 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 15:21:19 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 15:32:24 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 15:36:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 15:40:13 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds) |
| 2026-01-18 15:43:14 +0100 | housemate | (~housemate@202.7.248.67) (Quit: https://ineedsomeacidtocalmmedown.space/) |
| 2026-01-18 15:48:10 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 15:53:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-01-18 15:55:26 +0100 | housemate | (~housemate@202.7.248.67) housemate |
| 2026-01-18 15:56:54 +0100 | marinelli | (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli) |
| 2026-01-18 15:59:17 +0100 | tromp | (~textual@2001:1c00:3487:1b00:f96f:f7c1:9b58:4be8) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2026-01-18 15:59:49 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 16:00:37 +0100 | Zemy_ | (~Zemy@2600:100c:b0ae:c5b:44cb:e6ff:fe44:545d) |
| 2026-01-18 16:03:01 +0100 | Zemy | (~Zemy@72.178.108.235) (Ping timeout: 264 seconds) |
| 2026-01-18 16:04:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-01-18 16:09:00 +0100 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in) |
| 2026-01-18 16:09:27 +0100 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) gabiruh |
| 2026-01-18 16:11:04 +0100 | Zemy | (~Zemy@12.50.240.58) |
| 2026-01-18 16:12:38 +0100 | <dutchie> | optic libraries: is there a good discussion of pros/cons for lens/microlens/optics? which should I use if I'm writing an application and am not hugely concerned about dependencies? optics for the best error messages? |
| 2026-01-18 16:14:29 +0100 | Zemy_ | (~Zemy@2600:100c:b0ae:c5b:44cb:e6ff:fe44:545d) (Ping timeout: 260 seconds) |
| 2026-01-18 16:15:07 +0100 | machinedgod | (~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod |
| 2026-01-18 16:15:17 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 16:15:27 +0100 | marinelli | (~weechat@gateway/tor-sasl/marinelli) marinelli |
| 2026-01-18 16:16:48 +0100 | emmanuelux | (~em@user/emmanuelux) (Quit: bye) |
| 2026-01-18 16:18:48 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
| 2026-01-18 16:19:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 16:20:12 +0100 | <thenightmail> | is there a list where people show math functions and the elegant way to write them in haskell? I am learning, and I tend to over use parenthesis |
| 2026-01-18 16:20:37 +0100 | <thenightmail> | heck, probably there is a program that tells you if you are over using parenthesis ... |
| 2026-01-18 16:21:08 +0100 | tromp | (~textual@2001:1c00:3487:1b00:f96f:f7c1:9b58:4be8) |
| 2026-01-18 16:22:12 +0100 | Square2 | (~Square@user/square) Square |
| 2026-01-18 16:27:38 +0100 | <dutchie> | thenightmail: hlint will do it |
| 2026-01-18 16:30:26 +0100 | weary-traveler | (~user@user/user363627) user363627 |
| 2026-01-18 16:30:36 +0100 | Milan_Vanca | (~milan@user/Milan-Vanca:32634) Milan_Vanca |
| 2026-01-18 16:31:01 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 16:34:42 +0100 | <haskellbridge> | <sm> yea I would pick optics if you have no reason not to |
| 2026-01-18 16:35:43 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 16:37:27 +0100 | <thenightmail> | mm, hlint seems like something I want to setup. I've got to look into how people have their emacs setup for haskell I guess. so far I've just got haskell-mode installed |
| 2026-01-18 16:37:44 +0100 | Zemy | (~Zemy@12.50.240.58) (Read error: Connection reset by peer) |
| 2026-01-18 16:37:46 +0100 | Zemy_ | (~Zemy@2600:100c:b0ae:c5b:f45b:d5ff:fe1f:d2ed) |
| 2026-01-18 16:39:19 +0100 | Zemy | (~Zemy@12.50.240.58) |
| 2026-01-18 16:40:07 +0100 | qqq | (~qqq@185.54.21.105) (Quit: Lost terminal) |
| 2026-01-18 16:42:19 +0100 | Zemy_ | (~Zemy@2600:100c:b0ae:c5b:f45b:d5ff:fe1f:d2ed) (Ping timeout: 264 seconds) |
| 2026-01-18 16:44:20 +0100 | Zemy_ | (~Zemy@mobile-107-80-206-99.mycingular.net) |
| 2026-01-18 16:45:43 +0100 | Zemy | (~Zemy@12.50.240.58) (Ping timeout: 240 seconds) |
| 2026-01-18 16:47:40 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 16:48:35 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2026-01-18 16:50:15 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 2026-01-18 16:50:31 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2026-01-18 16:52:39 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-01-18 16:55:38 +0100 | <dutchie> | eglot + haskell-language-server is a reasonably good way to go |
| 2026-01-18 17:00:49 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 17:05:45 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 2026-01-18 17:12:22 +0100 | Zemy | (~Zemy@2600:100c:b0ae:c5b:30da:bdff:fef3:86cd) |
| 2026-01-18 17:14:16 +0100 | <thenightmail> | hmm, hslint didn't seem to complain about my parenthesis. guess I'm doing things right. also found stylish-haskell and will try to get that going too |
| 2026-01-18 17:14:55 +0100 | Zemy_ | (~Zemy@mobile-107-80-206-99.mycingular.net) (Ping timeout: 240 seconds) |
| 2026-01-18 17:15:10 +0100 | <thenightmail> | I'm using ghcup and that seems to be the way. installing these things with cabal install <package> |
| 2026-01-18 17:15:14 +0100 | <haskellbridge> | <sm> hlint has a ton of settings you can configure |
| 2026-01-18 17:16:36 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 17:17:31 +0100 | Square2 | (~Square@user/square) (Quit: Leaving) |
| 2026-01-18 17:18:02 +0100 | Square | (~Square@user/square) Square |
| 2026-01-18 17:18:05 +0100 | Zemy_ | (~Zemy@72.178.108.235) |
| 2026-01-18 17:21:34 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2026-01-18 17:21:34 +0100 | Zemy | (~Zemy@2600:100c:b0ae:c5b:30da:bdff:fef3:86cd) (Ping timeout: 260 seconds) |
| 2026-01-18 17:26:34 +0100 | __monty__ | (~toonn@user/toonn) toonn |
| 2026-01-18 17:32:23 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 17:36:49 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-01-18 17:42:56 +0100 | jmcantrell_ | (~weechat@user/jmcantrell) jmcantrell |
| 2026-01-18 17:43:09 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 17:46:11 +0100 | gabriel_sevecek | (~gabriel@188-167-229-200.dynamic.chello.sk) (Quit: WeeChat 4.8.1) |
| 2026-01-18 17:47:35 +0100 | gabriel_sevecek | (~gabriel@188-167-229-200.dynamic.chello.sk) gabriel_sevecek |
| 2026-01-18 17:51:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 17:52:50 +0100 | comonad | (~comonad@p200300d02722ae00dce4ce9451b59974.dip0.t-ipconnect.de) |
| 2026-01-18 18:01:49 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 18:09:01 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-01-18 18:19:52 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 18:25:13 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-01-18 18:31:23 +0100 | superbil | (~superbil@114-32-231-70.hinet-ip.hinet.net) (Quit: WeeChat 4.7.1) |
| 2026-01-18 18:35:39 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 18:35:52 +0100 | emmanuelux | (~em@user/emmanuelux) emmanuelux |
| 2026-01-18 18:40:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 18:47:54 +0100 | Milan_Vanca | (~milan@user/Milan-Vanca:32634) (Quit: WeeChat 4.7.2) |
| 2026-01-18 18:50:10 +0100 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
| 2026-01-18 18:50:11 +0100 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh |
| 2026-01-18 18:51:27 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 18:56:43 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-01-18 19:00:39 +0100 | st_aldini1 | (~Thunderbi@2605:a601:a07c:7426:52e7:74e7:d63d:c18b) st_aldini |
| 2026-01-18 19:03:33 +0100 | st_aldini | (~Thunderbi@136.48.46.187) (Ping timeout: 252 seconds) |
| 2026-01-18 19:03:33 +0100 | st_aldini1 | st_aldini |
| 2026-01-18 19:03:59 +0100 | <haskellbridge> | <thirdofmay18081814goya> is there a reference implementation of typeclasses somewhere? |
| 2026-01-18 19:09:47 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 19:12:25 +0100 | <haskellbridge> | <sm> the typeclasses machinery ? Just in GHC I'd guess. |
| 2026-01-18 19:14:44 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2026-01-18 19:19:09 +0100 | Milan_Vanca | (~milan@user/Milan-Vanca:32634) Milan_Vanca |
| 2026-01-18 19:19:21 +0100 | <haskellbridge> | <thirdofmay18081814goya> hm hopefully it's readable ty |
| 2026-01-18 19:20:16 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 19:21:39 +0100 | st_aldini1 | (~Thunderbi@2605:a601:a07c:7426:e89f:cd5f:b143:6c97) st_aldini |
| 2026-01-18 19:22:02 +0100 | michalz | (~michalz@185.246.207.221) |
| 2026-01-18 19:24:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 19:25:33 +0100 | st_aldini | (~Thunderbi@2605:a601:a07c:7426:52e7:74e7:d63d:c18b) (Ping timeout: 252 seconds) |
| 2026-01-18 19:25:33 +0100 | st_aldini1 | st_aldini |
| 2026-01-18 19:25:52 +0100 | trickard | (~trickard@cpe-82-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2026-01-18 19:26:06 +0100 | trickard_ | (~trickard@cpe-82-98-47-163.wireline.com.au) |
| 2026-01-18 19:32:19 +0100 | <monochrom> | Or Hugs. Or MicroHS. :) |
| 2026-01-18 19:32:52 +0100 | haritz | (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) |
| 2026-01-18 19:32:53 +0100 | haritz | (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host) |
| 2026-01-18 19:32:53 +0100 | haritz | (~hrtz@user/haritz) haritz |
| 2026-01-18 19:34:34 +0100 | Square | (~Square@user/square) (Ping timeout: 260 seconds) |
| 2026-01-18 19:35:25 +0100 | <monochrom> | If you just look for type checking, there is Typing Haskell in Haskell. If you also need execution or code generation, I bet MicroHS is the best starting point, simply because it is written from scratch most recently therefore maximum benefit of hindsight. |
| 2026-01-18 19:35:39 +0100 | ystael | (~ystael@user/ystael) (Ping timeout: 244 seconds) |
| 2026-01-18 19:41:07 +0100 | acidjnk | (~acidjnk@p200300d6e717195811a2eb9a91fd28d7.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 2026-01-18 19:46:05 +0100 | <geekosaur> | https://github.com/Superstar64/Hazy |
| 2026-01-18 19:46:17 +0100 | <geekosaur> | (in development) |
| 2026-01-18 19:47:42 +0100 | michalz_ | (~michalz@185.246.207.221) |
| 2026-01-18 19:49:55 +0100 | michalz | (~michalz@185.246.207.221) (Ping timeout: 240 seconds) |
| 2026-01-18 19:50:30 +0100 | <haskellbridge> | <thirdofmay18081814goya> neat, ty both for references! and wow MicroHS really is small |
| 2026-01-18 19:53:15 +0100 | machinedgod | (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 240 seconds) |
| 2026-01-18 19:54:04 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 19:54:27 +0100 | trickard_ | trickard |
| 2026-01-18 19:59:05 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 2026-01-18 20:09:52 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 20:10:57 +0100 | DetourNe- | (~DetourNet@user/DetourNetworkUK) DetourNetworkUK |
| 2026-01-18 20:11:16 +0100 | DetourNetworkUK | (DetourNetw@user/DetourNetworkUK) (Read error: Connection reset by peer) |
| 2026-01-18 20:13:14 +0100 | DetourNe- | DetourNetworkUK |
| 2026-01-18 20:14:31 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 20:18:18 +0100 | target_i | (~target_i@user/target-i/x-6023099) target_i |
| 2026-01-18 20:22:31 +0100 | target_i | (~target_i@user/target-i/x-6023099) (Ping timeout: 240 seconds) |
| 2026-01-18 20:23:39 +0100 | target_i | (~target_i@user/target-i/x-6023099) target_i |
| 2026-01-18 20:24:22 +0100 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2026-01-18 20:24:30 +0100 | jreicher | (~joelr@user/jreicher) (Quit: In transit) |
| 2026-01-18 20:25:35 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 20:29:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 20:31:14 +0100 | acidjnk | (~acidjnk@p200300d6e717195811a2eb9a91fd28d7.dip0.t-ipconnect.de) acidjnk |
| 2026-01-18 20:38:35 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2026-01-18 20:39:49 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds) |
| 2026-01-18 20:41:03 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 20:41:23 +0100 | Lord_of_Life_ | Lord_of_Life |
| 2026-01-18 20:45:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 20:51:16 +0100 | superbil | (~superbil@114-32-231-70.hinet-ip.hinet.net) superbil |
| 2026-01-18 20:56:30 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 21:01:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 21:04:24 +0100 | Lycurgus | (~juan@user/Lycurgus) Lycurgus |
| 2026-01-18 21:12:16 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 21:13:15 +0100 | trickard | (~trickard@cpe-82-98-47-163.wireline.com.au) (Ping timeout: 240 seconds) |
| 2026-01-18 21:13:58 +0100 | trickard_ | (~trickard@cpe-82-98-47-163.wireline.com.au) |
| 2026-01-18 21:18:13 +0100 | pavonia | (~user@user/siracusa) siracusa |
| 2026-01-18 21:18:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-18 21:23:55 +0100 | Milan_Vanca | (~milan@user/Milan-Vanca:32634) (Quit: WeeChat 4.7.2) |
| 2026-01-18 21:25:45 +0100 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2026-01-18 21:25:59 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 2026-01-18 21:26:47 +0100 | trickard_ | (~trickard@cpe-82-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2026-01-18 21:27:00 +0100 | trickard_ | (~trickard@cpe-82-98-47-163.wireline.com.au) |
| 2026-01-18 21:30:18 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 21:35:06 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2026-01-18 21:35:19 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2026-01-18 21:37:20 +0100 | <thenightmail> | so I'm taking physics 2 and discrete math this semester. I plan on using haskell for checking work / implementing some stuff. Is there any obvious libraries I ought to know of or is this stuff built into the language? I'll get the syllabus in a couple of days to know for sure what I need, but it seems like these entire courses are trivialized by using haskell. |
| 2026-01-18 21:38:45 +0100 | <thenightmail> | specifically with physics I found the learn-physics library which I think goes along with the book Learn Physics with Functional Programming, guess I'm looking for something of the sorts for discrete mathematics, but it is probably just built into the language from what I've seen |
| 2026-01-18 21:40:55 +0100 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 240 seconds) |
| 2026-01-18 21:41:28 +0100 | <thenightmail> | there is the book Discrete Mathematics Using a Computer which might be what I'm looking for. hmm |
| 2026-01-18 21:46:05 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-18 21:50:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |