| 2025-12-01 00:07:16 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 00:10:50 +0100 | Googulator91 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-01 00:10:50 +0100 | Googulator60 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-01 00:13:44 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-01 00:15:02 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 244 seconds) |
| 2025-12-01 00:17:01 +0100 | ttybitnik | (~ttybitnik@user/wolper) (Quit: Fading out...) |
| 2025-12-01 00:25:17 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 00:27:17 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 2025-12-01 00:29:34 +0100 | Tuplanolla | (~Tuplanoll@91-152-225-194.elisa-laajakaista.fi) (Quit: Leaving.) |
| 2025-12-01 00:29:35 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-01 00:30:40 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 272 seconds) |
| 2025-12-01 00:32:31 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
| 2025-12-01 00:34:55 +0100 | peterbecich | (~Thunderbi@172.222.148.214) (Ping timeout: 245 seconds) |
| 2025-12-01 00:40:39 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 00:44:54 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-01 00:50:48 +0100 | img | (~img@user/img) (Quit: ZNC 1.10.1 - https://znc.in) |
| 2025-12-01 00:52:04 +0100 | img | (~img@user/img) img |
| 2025-12-01 00:52:07 +0100 | <iqubic> | Is it just me, or are people being slow to look at GitHub issues for the Emacs Haskell-Mode repo? |
| 2025-12-01 00:52:15 +0100 | <iqubic> | https://github.com/haskell/haskell-mode/issues/1884 |
| 2025-12-01 00:56:03 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 00:57:00 +0100 | <iqubic> | Also, has the Haskell LSP changed how it classifies module names in imports? Something about my setup changed and I can't seem to figure out why. See the GH issue for more info. |
| 2025-12-01 01:01:13 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-01 01:10:24 +0100 | Googulator91 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-01 01:10:35 +0100 | Googulator91 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-01 01:11:20 +0100 | <haskellbridge> | <zoil> https://kf8nh.com/_heisenbridge/media/matrix.org/KqFuFIwAGSfriqoeASQNmzLj/Cb2ngaXEBrk/image.png |
| 2025-12-01 01:11:25 +0100 | <geekosaur> | the easy way to test that is to downgrade to 2.11.0.0 and aee if it changes |
| 2025-12-01 01:11:47 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 01:11:50 +0100 | <haskellbridge> | <zoil> help! it rejects the instance if it is recursive |
| 2025-12-01 01:11:54 +0100 | <haskellbridge> | <zoil> it demands it as a constraint |
| 2025-12-01 01:12:06 +0100 | <iqubic> | How do I tell Nix to downgrade my Haskell Language Server? |
| 2025-12-01 01:12:41 +0100 | <haskellbridge> | <zoil> can everyone see the image or should i upload a paste? |
| 2025-12-01 01:13:51 +0100 | <iqubic> | No. No one on the IRC can see your image. |
| 2025-12-01 01:13:56 +0100 | <haskellbridge> | <zoil> derp |
| 2025-12-01 01:14:03 +0100 | <iqubic> | Or actually, yes we can. |
| 2025-12-01 01:14:07 +0100 | <geekosaur> | we get the image (as a link on the IRC side), but a paste is usually better especially if it's to a pastebin where someone can fork it and show you a modified version to test or etc. |
| 2025-12-01 01:14:07 +0100 | <iqubic> | I'm dumb. |
| 2025-12-01 01:14:20 +0100 | <iqubic> | Yeah... It's an image of text. |
| 2025-12-01 01:14:22 +0100 | <geekosaur> | we generally recommend https://paste.tomsmeding.com |
| 2025-12-01 01:15:29 +0100 | <geekosaur> | or download it and try things locally |
| 2025-12-01 01:16:07 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-01 01:16:35 +0100 | mreh | (~matthew@host86-146-25-125.range86-146.btcentralplus.com) (Ping timeout: 245 seconds) |
| 2025-12-01 01:17:14 +0100 | <EvanR> | this is like someone taking a phone picture of an image of text someone posted |
| 2025-12-01 01:18:05 +0100 | <EvanR> | who let these hairless apes on the internet |
| 2025-12-01 01:19:53 +0100 | <haskellbridge> | <zoil> https://paste.tomsmeding.com/prZTHuAw\ |
| 2025-12-01 01:20:35 +0100 | <haskellbridge> | <zoil> well, the image combines both the error and the sourcecode neatly... |
| 2025-12-01 01:21:44 +0100 | <geekosaur> | both the pastebin I suggested and gist (and some others) let you include multiple "files"/pastes |
| 2025-12-01 01:22:31 +0100 | <jackdk> | The pastebin makes it easier for people to noodle around with the code if they have to, run their screenreader over it (if required), copy it into their editor (where they have proper syntax highlighting) etc. It's just so much easier to work with than the screenshot tool, though I appreciate the effort in slicing out the relevant parts of the error and the source. |
| 2025-12-01 01:22:59 +0100 | <haskellbridge> | <zoil> ok |
| 2025-12-01 01:23:13 +0100 | <haskellbridge> | <zoil> well the paste isnt going to compile, but its readable |
| 2025-12-01 01:24:00 +0100 | <haskellbridge> | <zoil> tldr: if you define an instance recursively it isnt "exhaustive" in some sense, and it asks for the constraint to be supplied and the deriving statement doesnt work |
| 2025-12-01 01:24:25 +0100 | <haskellbridge> | <zoil> it needs the standalone deriving statement so there is a place to put the constraint. but then this constraint appears everywhere |
| 2025-12-01 01:24:37 +0100 | <haskellbridge> | <zoil> iv run into this a bunch of times when having to write recursive instances |
| 2025-12-01 01:24:48 +0100 | <haskellbridge> | <zoil> like, FromNat n appears everywhere |
| 2025-12-01 01:24:53 +0100 | <haskellbridge> | <zoil> or like, Length xs |
| 2025-12-01 01:26:12 +0100 | <haskellbridge> | <zoil> i need to assert to the compiler "this instance is complete!" |
| 2025-12-01 01:27:25 +0100 | <haskellbridge> | <zoil> idk some kind of "exhaustiveness checks for matching cases of sum datatypes in instance declarations" proposal or smt |
| 2025-12-01 01:28:20 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 01:28:31 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 2025-12-01 01:28:56 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
| 2025-12-01 01:30:02 +0100 | <haskellbridge> | <zoil> but to do so, this is the placement of the constraint! i mean, thats literally how to convey that the instance is required to exist. i just dont know how to assert that it _does_ exist. which is normally automatic, but this exhaustiveness business seems to induce |
| 2025-12-01 01:30:41 +0100 | <haskellbridge> | <zoil> any ideas? |
| 2025-12-01 01:31:05 +0100 | <monochrom> | "It wouldn't compile anyway" is not a good reason to post a screenshot instead of actually downloading editable code. |
| 2025-12-01 01:31:29 +0100 | <monochrom> | Because, with luck, someone could have made an easy change and make it compilable. |
| 2025-12-01 01:31:57 +0100 | <haskellbridge> | <zoil> im not sure what your asking of me? |
| 2025-12-01 01:32:52 +0100 | <haskellbridge> | <zoil> im kind of in the middle of something, otherwise id happily write up a least sufficient example |
| 2025-12-01 01:32:57 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-01 01:33:21 +0100 | <haskellbridge> | <zoil> i figured people would be able to read the paste or image and that would suffice, i dont have time to make a full proposal |
| 2025-12-01 01:33:28 +0100 | <haskellbridge> | <zoil> is it a known issue? |
| 2025-12-01 01:33:41 +0100 | <haskellbridge> | <zoil> im sure people have encountered this before... |
| 2025-12-01 01:34:22 +0100 | <jreicher> | hololeap: Maybe https://en.wikipedia.org/wiki/Witness_(mathematics) will interest you? |
| 2025-12-01 01:35:49 +0100 | <haskellbridge> | <zoil> you would have to say exactly in what way |
| 2025-12-01 01:36:04 +0100 | <haskellbridge> | <zoil> i cant see from skimming how its relavent |
| 2025-12-01 01:36:22 +0100 | <haskellbridge> | <zoil> there is an Exists symbol and my eyes kind of bounce off it... |
| 2025-12-01 01:36:31 +0100 | X-Scale | (~ARM@6.67.114.89.rev.vodafone.pt) (Ping timeout: 240 seconds) |
| 2025-12-01 01:36:40 +0100 | <haskellbridge> | <zoil> we had all kinds of discussions back in the day about existential quantification |
| 2025-12-01 01:36:49 +0100 | <haskellbridge> | <iqubic (she/her)> Well, if someone wants to take your code and try it out on their own and make changes to it, their first step would be "type it all out in their own text editor". However, the code already exists on your computer, so you can share the textual version on https://paste.tomsmeding.com easily by copy and paste. Then all we'd have to do is copy and paste it into our text editor and then we could easily make changes to it. |
| 2025-12-01 01:36:54 +0100 | <haskellbridge> | <zoil> theres even an extension no? |
| 2025-12-01 01:37:25 +0100 | <iqubic> | Also, yes, I do have this channel open in two different forms. Emacs and Firefox. |
| 2025-12-01 01:37:27 +0100 | <haskellbridge> | <zoil> iqubic: again, im not sure what your asking. iv stated i dont have the wherewithall to write up a proposal |
| 2025-12-01 01:37:29 +0100 | <EvanR> | you're all spoiled now a days. We should return to a time when men were men and copied code char by char out of a magazine |
| 2025-12-01 01:37:54 +0100 | <haskellbridge> | <zoil> im sure the image and paste are sufficient, im not sure whats the problem. |
| 2025-12-01 01:38:06 +0100 | <glguy> | zoil: You can just merge the two instances into one, can't you? |
| 2025-12-01 01:38:18 +0100 | <monochrom> | True, I was one of those readers of those magazines, and typed in the code myself. |
| 2025-12-01 01:38:25 +0100 | <haskellbridge> | <zoil> glguy: i think not |
| 2025-12-01 01:38:28 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2025-12-01 01:38:37 +0100 | <haskellbridge> | <zoil> it requires both to match |
| 2025-12-01 01:38:41 +0100 | <glguy> | zoil: then that's why the compiler can't do it fo ryou |
| 2025-12-01 01:39:06 +0100 | <haskellbridge> | <zoil> but i want to say to it "i have done the exhaustiveness check, its all there, dont worry" |
| 2025-12-01 01:39:14 +0100 | <glguy> | that won't help it know which one to use |
| 2025-12-01 01:39:15 +0100 | <monochrom> | The magazine publisher also offered to sell floppy diskettes containing the code. I was able to buy some of that when I had some petty cash. |
| 2025-12-01 01:39:20 +0100 | <iqubic> | The compiler is not smart. It just does simple rewriting and instance creation. |
| 2025-12-01 01:39:34 +0100 | <EvanR> | monochrom, smh... you BOUGHT the code? smh |
| 2025-12-01 01:39:42 +0100 | <iqubic> | If you can't tell which instance to choose, then how the heck do you expect the compiler to do it for you? |
| 2025-12-01 01:39:48 +0100 | <monochrom> | copies! just copies. |
| 2025-12-01 01:39:58 +0100 | <EvanR> | that's like buying food |
| 2025-12-01 01:40:18 +0100 | <monochrom> | It was also the latter days when those programs became very long. |
| 2025-12-01 01:40:18 +0100 | <haskellbridge> | <zoil> wait wait, im trying to seperate the people talking about floppy disks from the people staying ontopic, i think it might be a mod, im not sure. |
| 2025-12-01 01:40:26 +0100 | <haskellbridge> | <zoil> THANKS! |
| 2025-12-01 01:40:38 +0100 | <EvanR> | yes I had this flight simulator program which was several pages |
| 2025-12-01 01:40:43 +0100 | <EvanR> | cool program |
| 2025-12-01 01:40:46 +0100 | <haskellbridge> | <zoil> _facepalm_ |
| 2025-12-01 01:40:47 +0100 | <glguy> | zoil: you can probably combine the Show case just fine, it's the Read one that you'll struggle with |
| 2025-12-01 01:41:00 +0100 | <haskellbridge> | <zoil> how so? |
| 2025-12-01 01:41:20 +0100 | <haskellbridge> | <zoil> it needs to diferentiate between if its the basecase (S Z) or the recursive case (S (S n)) |
| 2025-12-01 01:41:28 +0100 | <glguy> | because show gets an argument that let's it learn what the type is |
| 2025-12-01 01:41:37 +0100 | <haskellbridge> | <zoil> (im going to start counting from one for nonempty containers in future versions...) |
| 2025-12-01 01:42:08 +0100 | <haskellbridge> | <zoil> it throws an error for both the read and show case |
| 2025-12-01 01:42:39 +0100 | <haskellbridge> | <zoil> also, the type ambiguity doesnt inhibit the read instance |
| 2025-12-01 01:43:35 +0100 | <haskellbridge> | <zoil> i would think basically, that if i gave it a newtype, that this would serve as such an assertion |
| 2025-12-01 01:43:42 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 01:43:46 +0100 | <haskellbridge> | <zoil> but it just looks underneath and still demands the underlying constraint |
| 2025-12-01 01:44:08 +0100 | <Leary> | zoil: This kind of exhaustiveness doesn't exist at the type level in GHC for the same reason we don't have "eta-rules" <https://gitlab.haskell.org/ghc/ghc/-/issues/7259>; it isn't sound. You want to say that `xs :: NonEmpty _` implies `xs ~ Cons _ _` or `Last _`, but that isn't true until you successfully pattern match on `Transfers xs`. |
| 2025-12-01 01:44:53 +0100 | <haskellbridge> | <zoil> thanks! i thought it would be a known issue |
| 2025-12-01 01:45:44 +0100 | <Leary> | There is a kind-of workaround for `Read`-like cases by taking a singleton as a constraint and matching on it, but then you have to supply that singleton constraint everywhere instead. |
| 2025-12-01 01:46:11 +0100 | <glguy> | zoil: merging Show would be like: https://paste.tomsmeding.com/UEfrQUiN |
| 2025-12-01 01:47:07 +0100 | <haskellbridge> | <zoil> oh wow! thats awesome, i never thought thats what you meant when you said it could go in one instance |
| 2025-12-01 01:47:14 +0100 | <haskellbridge> | <zoil> so you just put a type family for the constraint |
| 2025-12-01 01:47:15 +0100 | <haskellbridge> | <zoil> thats cool |
| 2025-12-01 01:47:23 +0100 | <haskellbridge> | <zoil> and your saying thats not possible for the readd instance? |
| 2025-12-01 01:47:34 +0100 | <glguy> | right |
| 2025-12-01 01:47:58 +0100 | <haskellbridge> | <zoil> forgive me, i dont imidiately see the difference |
| 2025-12-01 01:48:06 +0100 | <glguy> | One has a https://en.wikipedia.org/wiki/Witness_(mathematics) |
| 2025-12-01 01:48:15 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-01 01:48:25 +0100 | <glguy> | the argument to show witnesses what type show is being instantiated at |
| 2025-12-01 01:48:32 +0100 | <haskellbridge> | <zoil> but i can supply a type application? |
| 2025-12-01 01:48:48 +0100 | <glguy> | No, that's not enough |
| 2025-12-01 01:48:57 +0100 | <haskellbridge> | <zoil> read @(Cons Int (Last Bool)) |
| 2025-12-01 01:49:16 +0100 | <glguy> | That that's not usable information in the implementation of read itself on this type |
| 2025-12-01 01:49:26 +0100 | <haskellbridge> | <zoil> * @(HList (Cons |
| 2025-12-01 01:49:54 +0100 | <glguy> | the argument to show is a value that's going to exist at runtime |
| 2025-12-01 01:50:33 +0100 | <haskellbridge> | <zoil> well i could provide a proxy... |
| 2025-12-01 01:51:12 +0100 | <haskellbridge> | <zoil> btw, does your show instance pick up the requirement for the constraint to be specified each time, like if it was recursive in different classes? |
| 2025-12-01 01:51:18 +0100 | <haskellbridge> | <zoil> because of the type family? |
| 2025-12-01 01:51:27 +0100 | <glguy> | You couldn't but that won't help if it's as simple as a Data.Proxy.Proxy (which contains no type information at runtime) |
| 2025-12-01 01:51:29 +0100 | <haskellbridge> | <zoil> or does it just work the way id like it too! :_D |
| 2025-12-01 01:51:47 +0100 | <haskellbridge> | <zoil> no type information at runtime! oh no! |
| 2025-12-01 01:51:56 +0100 | <glguy> | You'd have to make a new GADTs so that at runtime you can learn which type is needed via case |
| 2025-12-01 01:52:00 +0100 | <haskellbridge> | <zoil> that sounds like the kind of thing the compiler is fussy about |
| 2025-12-01 01:52:08 +0100 | <Leary> | zoil: You would need e.g. `data WhichNE xs where { IsCons :: WhichNE (Cons x xs); IsLast :: WhichNE (Last x) }; class KnownNE ne where { knownNE :: WhichNE ne }; <both instances>; instance KnownNE xs => Read (Transfers xs) where { read s = case knownNE of { ... } }`. |
| 2025-12-01 01:52:21 +0100 | <glguy> | It's not that it's fussy; it's just that it if the information has been erased, you can't use it |
| 2025-12-01 01:52:35 +0100 | <haskellbridge> | <zoil> glguy: I could do that! i just dont want constraints all over the place from recusrive classes that cant be asserted to be exhaustive |
| 2025-12-01 01:53:03 +0100 | <haskellbridge> | <zoil> i dont see why it would erase type information from a proxy, thats all they are for! crazy compiler |
| 2025-12-01 01:53:07 +0100 | <glguy> | read doesn't have a place to put the runtime type witness, it's type is fixed by the type class definition |
| 2025-12-01 01:53:19 +0100 | <glguy> | proxies are not for runtime type information |
| 2025-12-01 01:53:41 +0100 | <glguy> | singletons are |
| 2025-12-01 01:54:47 +0100 | <haskellbridge> | <zoil> thats what learys answer looks like its managing to acheive |
| 2025-12-01 01:54:48 +0100 | glguy | ponders if that's exactly right, but anyway, the way to get type information from a value is using a GADT |
| 2025-12-01 01:55:33 +0100 | <haskellbridge> | <zoil> i mean, this is all super interesting, and i think it might even work, but im hardly going to be able to do it |
| 2025-12-01 01:55:43 +0100 | <glguy> | yeah, it's better to just not overcomplicate your program |
| 2025-12-01 01:55:46 +0100 | <haskellbridge> | <zoil> but, iiuc your saying its theoretically possivle |
| 2025-12-01 01:55:51 +0100 | <haskellbridge> | <zoil> possible* |
| 2025-12-01 01:56:07 +0100 | <haskellbridge> | <zoil> id rather do it right at the onset, than have these constraints following me around |
| 2025-12-01 01:56:28 +0100 | <glguy> | this route leads to brittle programs that are hard to update and refactor |
| 2025-12-01 01:56:37 +0100 | <haskellbridge> | <zoil> basically, anything that requires more than one instance, like some kind of recusion matching on the tail or something, and then im in constraints hell |
| 2025-12-01 01:56:49 +0100 | <glguy> | and a mess of complicated error messages and special utility functions to manage it all |
| 2025-12-01 01:57:15 +0100 | <haskellbridge> | <zoil> https://kf8nh.com/_heisenbridge/media/matrix.org/hTIHFOzGuFAqswyfkLuIVoBL/yfXyRcmB1_8/image.png |
| 2025-12-01 01:57:50 +0100 | <haskellbridge> | <zoil> id rather just be able to read off constraints that arent insane |
| 2025-12-01 01:58:04 +0100 | <haskellbridge> | <zoil> like, the stateful constraints make sense, but the length constraint is just garbage |
| 2025-12-01 01:59:16 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 02:00:32 +0100 | <haskellbridge> | <zoil> maybe it would be worth trying the length version, thats really common |
| 2025-12-01 02:01:00 +0100 | X-Scale | (~ARM@6.67.114.89.rev.vodafone.pt) X-Scale |
| 2025-12-01 02:01:12 +0100 | peterbecich | (~Thunderbi@172.222.148.214) peterbecich |
| 2025-12-01 02:01:31 +0100 | <haskellbridge> | <zoil> https://paste.tomsmeding.com/gHFMMx2t |
| 2025-12-01 02:03:32 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-01 02:04:44 +0100 | <haskellbridge> | <zoil> i have to go actually |
| 2025-12-01 02:05:00 +0100 | <haskellbridge> | <zoil> so anyway, possibly singlestons help but in a way that ill probably never understand |
| 2025-12-01 02:05:04 +0100 | <haskellbridge> | <zoil> _le sigh_ |
| 2025-12-01 02:10:27 +0100 | <haskellbridge> | <zoil> monochrom: you cat get back to talking about the 1950's now |
| 2025-12-01 02:11:53 +0100 | trickard | (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-01 02:12:07 +0100 | trickard_ | (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 2025-12-01 02:12:47 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 2025-12-01 02:14:39 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 02:16:56 +0100 | sindu | (~sindu@2.148.32.207.tmi.telenormobil.no) (Ping timeout: 240 seconds) |
| 2025-12-01 02:18:55 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-01 02:18:57 +0100 | Pozyomka | (~pyon@user/pyon) (Quit: brb) |
| 2025-12-01 02:19:10 +0100 | Pozyomka | (~pyon@user/pyon) pyon |
| 2025-12-01 02:19:10 +0100 | <EvanR> | lol |
| 2025-12-01 02:19:49 +0100 | <EvanR> | the 1950s when you had like cathode ray tubes and such |
| 2025-12-01 02:22:08 +0100 | omidmash3 | (~omidmash@user/omidmash) omidmash |
| 2025-12-01 02:24:12 +0100 | omidmash | (~omidmash@user/omidmash) (Ping timeout: 244 seconds) |
| 2025-12-01 02:24:12 +0100 | omidmash3 | omidmash |
| 2025-12-01 02:30:01 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 02:30:30 +0100 | jmcantrell_ | (~weechat@user/jmcantrell) jmcantrell |
| 2025-12-01 02:34:26 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-01 02:35:44 +0100 | <geekosaur> | some of us were still using them in the early 2000s |
| 2025-12-01 02:35:55 +0100 | <geekosaur> | degaussing my monitor every month was fun |
| 2025-12-01 02:41:59 +0100 | <monochrom> | The most bonkers was when CRT was memory rather than display. >:) |
| 2025-12-01 02:43:03 +0100 | <haskellbridge> | <iqubic (she/her)> WHAT?!?!?! |
| 2025-12-01 02:43:30 +0100 | <glguy> | HE SAID: "THE MOST BONKERS WAS WHEN... |
| 2025-12-01 02:43:30 +0100 | <monochrom> | (In general, any output device combined with a sensor could be memory: To store 1, output 1 and have the sensor read back that 1, repeat.) |
| 2025-12-01 02:43:59 +0100 | <monochrom> | (The two popular choices were mercury tube and CRT.) |
| 2025-12-01 02:45:08 +0100 | <monochrom> | (More precisely, there must also be a non-zero time delay between sending output and reading back input. Today, you use logic gates to make flip flops, same difference.) |
| 2025-12-01 02:45:24 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 02:50:25 +0100 | jmcantrell_ | (~weechat@user/jmcantrell) (Ping timeout: 264 seconds) |
| 2025-12-01 02:51:55 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-01 02:52:03 +0100 | <monochrom> | I hadn't thought of it that way until I read both a Turing biography (so there was his team using CRTs and mercury tubes for early computers) and Harper's PFPL in which he pointed out "state comes from self-reference" and exemplified with using recursion to make an RS latch. |
| 2025-12-01 02:53:45 +0100 | Pozyomka | (~pyon@user/pyon) (Read error: Connection reset by peer) |
| 2025-12-01 02:54:18 +0100 | Guest62 | (~Guest62@38.49.92.193) |
| 2025-12-01 02:55:01 +0100 | <Guest62> | I'm profiling my haskell functions (pitting them against each other to compare their memory usages). Could someone help me understand how profiling works? I have basically never done this before. |
| 2025-12-01 02:55:44 +0100 | <glguy> | Have you seen this already? https://ghc.gitlab.haskell.org/ghc/doc/users_guide/profiling.html |
| 2025-12-01 02:58:01 +0100 | catties | Catty |
| 2025-12-01 02:58:11 +0100 | <Guest62> | uh yes. I think I need heap profiling. I think my primary question is "Does the total memory allocated section count reuse of memory as a separate additional allocation?" and how to not make it do that if it does. |
| 2025-12-01 02:58:45 +0100 | <jreicher> | monochrom: delay line memory was always my favourite. |
| 2025-12-01 02:58:55 +0100 | peterbecich | (~Thunderbi@172.222.148.214) (Ping timeout: 240 seconds) |
| 2025-12-01 02:59:00 +0100 | iqubic | (~sophia@2601:602:9203:1660:c137:59bd:3f5b:b4a7) (Remote host closed the connection) |
| 2025-12-01 03:00:45 +0100 | <monochrom> | I mean, I worked like that when I was a child, too. Whenever required to memorize a story or a poem, I read aloud and listened to myself, repeat. |
| 2025-12-01 03:01:11 +0100 | iqubic | (~sophia@2601:602:9203:1660:c137:59bd:3f5b:b4a7) iqubic |
| 2025-12-01 03:01:13 +0100 | <EvanR> | this would be like, read the poem aloud really loud in the grand canyon, then wait |
| 2025-12-01 03:01:22 +0100 | monochrom | is an echo relay memory and a large language model. |
| 2025-12-01 03:01:33 +0100 | <jreicher> | DRAM's pretty crazy too actually. As funky as flip-flops are, they are probably the most straightforward of all the techs. |
| 2025-12-01 03:01:47 +0100 | wickedjargon | (~user@64.114.24.74) |
| 2025-12-01 03:02:03 +0100 | wickedjargon | (~user@64.114.24.74) (Remote host closed the connection) |
| 2025-12-01 03:03:26 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 03:08:24 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-12-01 03:18:49 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 03:21:07 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Remote host closed the connection) |
| 2025-12-01 03:21:46 +0100 | <Guest62> | okay, I was able to learn heap profiling, but my graphs seem empty.... |
| 2025-12-01 03:22:55 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-01 03:24:55 +0100 | <EvanR> | what is the program |
| 2025-12-01 03:25:35 +0100 | haskellbridge | (~hackager@96.28.224.214) (Ping timeout: 240 seconds) |
| 2025-12-01 03:25:57 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2025-12-01 03:26:33 +0100 | haskellbridge | (~hackager@96.28.224.214) hackager |
| 2025-12-01 03:26:33 +0100 | ChanServ | +v haskellbridge |
| 2025-12-01 03:27:28 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 2025-12-01 03:27:41 +0100 | jrm | (~jrm@user/jrm) (Read error: Connection reset by peer) |
| 2025-12-01 03:27:55 +0100 | jrm | (~jrm@user/jrm) jrm |
| 2025-12-01 03:28:10 +0100 | firesquidwao | (~a@2600:3c06::f03c:93ff:fea6:ef0e) |
| 2025-12-01 03:28:40 +0100 | Pozyomka | (~pyon@user/pyon) pyon |
| 2025-12-01 03:28:48 +0100 | tuxpaint | (~a@put.gay) (Read error: Connection reset by peer) |
| 2025-12-01 03:31:54 +0100 | Googulator91 | Googulator |
| 2025-12-01 03:32:01 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2025-12-01 03:34:12 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 03:38:35 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-01 03:41:57 +0100 | <Guest62> | It is essentially comparing an equation solver using ST Monad to one without |
| 2025-12-01 03:49:34 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 03:52:55 +0100 | peterbecich | (~Thunderbi@172.222.148.214) peterbecich |
| 2025-12-01 03:53:25 +0100 | inline__ | (~inlinE@2001-4dd3-7fc8-0-8721-eee6-e05a-14dd.ipv6dyn.netcologne.de) Inline |
| 2025-12-01 03:54:29 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-12-01 03:55:39 +0100 | Inline | (~inlinE@2001-4dd7-868d-0-2e24-c46e-4393-27fd.ipv6dyn.netcologne.de) (Ping timeout: 244 seconds) |
| 2025-12-01 03:55:50 +0100 | <Guest62> | Okay I now have data but I still can't make sense of this data :( |
| 2025-12-01 04:00:38 +0100 | Googulator | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-01 04:00:51 +0100 | Googulator | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-01 04:01:43 +0100 | Guest62 | (~Guest62@38.49.92.193) (Quit: Client closed) |
| 2025-12-01 04:04:41 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
| 2025-12-01 04:05:04 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 04:05:20 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) chiselfuse |
| 2025-12-01 04:09:19 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-01 04:21:49 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 04:24:15 +0100 | trickard_ | trickard |
| 2025-12-01 04:26:39 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-01 04:31:06 +0100 | td_ | (~td@i5387091E.versanet.de) (Ping timeout: 256 seconds) |
| 2025-12-01 04:31:07 +0100 | Googulator26 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-01 04:31:27 +0100 | Googulator | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-01 04:32:55 +0100 | td_ | (~td@i53870926.versanet.de) td_ |
| 2025-12-01 04:34:18 +0100 | Sgeo_ | (~Sgeo@user/sgeo) Sgeo |
| 2025-12-01 04:36:01 +0100 | shr\ke | (~shrike@user/shrke:31298) (Ping timeout: 264 seconds) |
| 2025-12-01 04:36:01 +0100 | oppili | (~oppili@user/nerdypepper) (Ping timeout: 264 seconds) |
| 2025-12-01 04:36:15 +0100 | srk_ | (~sorki@user/srk) srk |
| 2025-12-01 04:36:23 +0100 | dysfigured | (~dfg@50.116.28.89) |
| 2025-12-01 04:36:37 +0100 | nitrix_ | (~nitrix@user/meow/nitrix) nitrix |
| 2025-12-01 04:36:37 +0100 | srk | (~sorki@user/srk) (Ping timeout: 264 seconds) |
| 2025-12-01 04:36:40 +0100 | sajith_ | (~sajith@user/sajith) sajith |
| 2025-12-01 04:36:46 +0100 | natto17 | (~natto@129.154.243.159) natto |
| 2025-12-01 04:36:47 +0100 | mstruebing_ | (~mstruebin@ns343649.ip-188-165-193.eu) |
| 2025-12-01 04:37:01 +0100 | Googulator26 | Googulator |
| 2025-12-01 04:37:09 +0100 | opencircuit | (~quassel@user/opencircuit) (Read error: Connection reset by peer) |
| 2025-12-01 04:37:11 +0100 | Athas_ | (athas@sigkill.dk) |
| 2025-12-01 04:37:12 +0100 | oppili | (~oppili@lewi-27-b2-v4wan-165682-cust505.vm4.cable.virginm.net) |
| 2025-12-01 04:37:12 +0100 | oppili | (~oppili@lewi-27-b2-v4wan-165682-cust505.vm4.cable.virginm.net) (Changing host) |
| 2025-12-01 04:37:12 +0100 | oppili | (~oppili@user/nerdypepper) nerdy |
| 2025-12-01 04:37:13 +0100 | simplystuart | (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 264 seconds) |
| 2025-12-01 04:37:13 +0100 | tomboy64 | (~tomboy64@user/tomboy64) (Ping timeout: 264 seconds) |
| 2025-12-01 04:37:13 +0100 | machinedgod | (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 264 seconds) |
| 2025-12-01 04:37:13 +0100 | nitrix | (~nitrix@user/meow/nitrix) (Ping timeout: 264 seconds) |
| 2025-12-01 04:37:13 +0100 | Miroboru | (~myrvoll@84.215.250.50) (Ping timeout: 264 seconds) |
| 2025-12-01 04:37:13 +0100 | natto- | (~natto@129.154.243.159) (Ping timeout: 264 seconds) |
| 2025-12-01 04:37:14 +0100 | juri_ | (~juri@implicitcad.org) (Ping timeout: 264 seconds) |
| 2025-12-01 04:37:14 +0100 | sajith | (~sajith@user/sajith) (Ping timeout: 264 seconds) |
| 2025-12-01 04:37:14 +0100 | dfg | (~dfg@user/dfg) (Ping timeout: 264 seconds) |
| 2025-12-01 04:37:14 +0100 | antti_ | (~antti@82-181-183-83.bb.dnainternet.fi) (Ping timeout: 264 seconds) |
| 2025-12-01 04:37:23 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 04:37:24 +0100 | cstml3 | (~cstml@user/cstml) cstml |
| 2025-12-01 04:37:37 +0100 | simplystuart | (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) |
| 2025-12-01 04:37:39 +0100 | benkard | (~mulk@pd9514972.dip0.t-ipconnect.de) mulk |
| 2025-12-01 04:37:46 +0100 | shr\ke | (~shrike@user/paxhumana) paxhumana |
| 2025-12-01 04:37:46 +0100 | shr\ke | (~shrike@user/paxhumana) (Changing host) |
| 2025-12-01 04:37:46 +0100 | shr\ke | (~shrike@user/shrke:31298) shr\ke |
| 2025-12-01 04:37:49 +0100 | Sgeo | (~Sgeo@user/sgeo) (Ping timeout: 264 seconds) |
| 2025-12-01 04:37:49 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) (Ping timeout: 264 seconds) |
| 2025-12-01 04:37:49 +0100 | cstml | (~cstml@user/cstml) (Ping timeout: 264 seconds) |
| 2025-12-01 04:37:49 +0100 | mulk | (~mulk@pd9514972.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 2025-12-01 04:37:49 +0100 | typedfern_ | (~Typedfern@15.red-83-37-26.dynamicip.rima-tde.net) (Ping timeout: 264 seconds) |
| 2025-12-01 04:37:49 +0100 | Ranhir | (~Ranhir@157.97.53.139) (Ping timeout: 264 seconds) |
| 2025-12-01 04:37:49 +0100 | tessier_ | (~tessier@184.72.149.67) (Ping timeout: 264 seconds) |
| 2025-12-01 04:37:49 +0100 | Wanderer | (~wanderer@user/wanderer) (Ping timeout: 264 seconds) |
| 2025-12-01 04:37:49 +0100 | mstruebing | (~mstruebin@ns343649.ip-188-165-193.eu) (Ping timeout: 264 seconds) |
| 2025-12-01 04:37:49 +0100 | Athas | (athas@sigkill.dk) (Ping timeout: 264 seconds) |
| 2025-12-01 04:37:49 +0100 | benkard | mulk |
| 2025-12-01 04:38:03 +0100 | opencircuit | (~quassel@user/opencircuit) opencircuit |
| 2025-12-01 04:38:23 +0100 | nitrix_ | nitrix |
| 2025-12-01 04:38:30 +0100 | Wanderer | (~wanderer@user/wanderer) Wanderer |
| 2025-12-01 04:38:39 +0100 | juri_ | (~juri@implicitcad.org) juri_ |
| 2025-12-01 04:38:45 +0100 | machinedgod | (~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod |
| 2025-12-01 04:38:54 +0100 | antti_ | (~antti@82-181-183-83.bb.dnainternet.fi) |
| 2025-12-01 04:39:02 +0100 | Miroboru | (~myrvoll@84.215.250.50) Miroboru |
| 2025-12-01 04:39:02 +0100 | srk_ | srk |
| 2025-12-01 04:39:24 +0100 | tessier | (~tessier@ec2-184-72-149-67.compute-1.amazonaws.com) tessier |
| 2025-12-01 04:41:35 +0100 | <iqubic> | Is it possible to dynamically see what type of token HLS thinks different things in my code are? |
| 2025-12-01 04:41:51 +0100 | oppili- | (~oppili@lewi-27-b2-v4wan-165682-cust505.vm4.cable.virginm.net) |
| 2025-12-01 04:41:52 +0100 | benkard | (~mulk@pd9514972.dip0.t-ipconnect.de) mulk |
| 2025-12-01 04:42:01 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-01 04:42:01 +0100 | oppili | (~oppili@user/nerdypepper) (Ping timeout: 264 seconds) |
| 2025-12-01 04:42:01 +0100 | natto17 | (~natto@129.154.243.159) (Ping timeout: 264 seconds) |
| 2025-12-01 04:42:37 +0100 | opencircuit | (~quassel@user/opencircuit) (Ping timeout: 264 seconds) |
| 2025-12-01 04:42:37 +0100 | mulk | (~mulk@pd9514972.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 2025-12-01 04:42:37 +0100 | benkard | mulk |
| 2025-12-01 04:42:45 +0100 | opencircuit_ | (~quassel@user/opencircuit) opencircuit |
| 2025-12-01 04:43:51 +0100 | natto17 | (~natto@129.154.243.159) natto |
| 2025-12-01 04:44:25 +0100 | Miroboru | (~myrvoll@84.215.250.50) (Ping timeout: 264 seconds) |
| 2025-12-01 04:45:01 +0100 | antti_ | (~antti@82-181-183-83.bb.dnainternet.fi) (Ping timeout: 264 seconds) |
| 2025-12-01 04:45:01 +0100 | juri_ | (~juri@implicitcad.org) (Ping timeout: 264 seconds) |
| 2025-12-01 04:45:17 +0100 | Miroboru | (~myrvoll@84.215.250.50) Miroboru |
| 2025-12-01 04:45:33 +0100 | juri_ | (~juri@implicitcad.org) juri_ |
| 2025-12-01 04:46:32 +0100 | antti_ | (~antti@82-181-183-83.bb.dnainternet.fi) |
| 2025-12-01 04:47:54 +0100 | natto- | (~natto@129.154.243.159) natto |
| 2025-12-01 04:48:37 +0100 | natto17 | (~natto@129.154.243.159) (Ping timeout: 264 seconds) |
| 2025-12-01 04:50:29 +0100 | tomboy64 | (~tomboy64@user/tomboy64) tomboy64 |
| 2025-12-01 04:50:35 +0100 | Ranhir | (~Ranhir@157.97.53.139) Ranhir |
| 2025-12-01 04:50:36 +0100 | typedfern_ | (~Typedfern@15.red-83-37-26.dynamicip.rima-tde.net) typedfern |
| 2025-12-01 04:51:37 +0100 | antti_ | (~antti@82-181-183-83.bb.dnainternet.fi) (Ping timeout: 264 seconds) |
| 2025-12-01 04:51:37 +0100 | juri_ | (~juri@implicitcad.org) (Ping timeout: 264 seconds) |
| 2025-12-01 04:52:08 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 04:52:28 +0100 | juri_ | (~juri@implicitcad.org) juri_ |
| 2025-12-01 04:53:10 +0100 | antti_ | (~antti@82-181-183-83.bb.dnainternet.fi) |
| 2025-12-01 04:56:37 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2025-12-01 04:57:15 +0100 | <geekosaur> | probably if you run it in debug mode and monitor its debug output |
| 2025-12-01 04:58:44 +0100 | Sgeo_ | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2025-12-01 05:00:39 +0100 | Googulator31 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-01 05:00:43 +0100 | Googulator | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-01 05:07:37 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 05:08:35 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |
| 2025-12-01 05:12:01 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-01 05:19:30 +0100 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
| 2025-12-01 05:20:14 +0100 | Square | (~Square@user/square) Square |
| 2025-12-01 05:23:00 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 05:28:15 +0100 | peterbecich | (~Thunderbi@172.222.148.214) (Ping timeout: 240 seconds) |
| 2025-12-01 05:30:08 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-12-01 05:35:40 +0100 | Googulator31 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-01 05:35:45 +0100 | Googulator39 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-01 05:41:04 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 05:45:45 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2025-12-01 05:53:35 +0100 | machinedgod | (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 240 seconds) |
| 2025-12-01 05:55:17 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 05:59:39 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-12-01 06:05:43 +0100 | Googulator77 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-01 06:05:45 +0100 | Googulator39 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-01 06:06:23 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 06:10:12 +0100 | peterbecich | (~Thunderbi@172.222.148.214) peterbecich |
| 2025-12-01 06:10:31 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-01 06:21:45 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 06:24:29 +0100 | trickard | (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-01 06:24:43 +0100 | trickard_ | (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 2025-12-01 06:26:03 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-12-01 06:30:56 +0100 | X-Scale | (~ARM@6.67.114.89.rev.vodafone.pt) (Ping timeout: 240 seconds) |
| 2025-12-01 06:35:37 +0100 | Googulator94 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-01 06:35:43 +0100 | Googulator77 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-01 06:37:07 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 06:41:24 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-01 06:43:54 +0100 | Square2 | (~Square4@user/square) Square |
| 2025-12-01 06:52:30 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 06:57:08 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2025-12-01 07:00:33 +0100 | Square | (~Square@user/square) (Ping timeout: 260 seconds) |
| 2025-12-01 07:04:21 +0100 | jreicher | (~user@user/jreicher) (Quit: In transit) |
| 2025-12-01 07:05:43 +0100 | haritz | (~hrtz@user/haritz) (Remote host closed the connection) |
| 2025-12-01 07:06:27 +0100 | takuan | (~takuan@d8D86B9E9.access.telenet.be) |
| 2025-12-01 07:07:54 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 07:12:48 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-12-01 07:15:19 +0100 | larsivi | (~larsivi@user/larsivi) (Ping timeout: 264 seconds) |
| 2025-12-01 07:23:26 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 07:28:00 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-01 07:31:14 +0100 | dhil | (~dhil@5.151.29.137) dhil |
| 2025-12-01 07:32:16 +0100 | driib3180 | (~driib@vmi931078.contaboserver.net) (Ping timeout: 246 seconds) |
| 2025-12-01 08:03:33 +0100 | peterbecich | (~Thunderbi@172.222.148.214) (Ping timeout: 244 seconds) |
| 2025-12-01 08:07:15 +0100 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 2025-12-01 08:07:22 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 08:11:49 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-01 08:12:46 +0100 | jreicher | (~user@user/jreicher) jreicher |
| 2025-12-01 08:21:16 +0100 | annamalai | (~annamalai@2409:4042:4dc7:b66e::9eca:ef08) (Ping timeout: 246 seconds) |
| 2025-12-01 08:21:18 +0100 | bggd | (~bgg@2a01:e0a:fd5:f510:9b09:80f:2f26:e3ad) |
| 2025-12-01 08:22:46 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 08:27:44 +0100 | annamalai | (~annamalai@2409:4042:4dc2:f11::9e8a:e814) annamalai |
| 2025-12-01 08:28:57 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
| 2025-12-01 08:29:49 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-12-01 08:32:03 +0100 | tromp | (~textual@2001:1c00:3487:1b00:9c00:2cdd:fe3f:e613) |
| 2025-12-01 08:34:20 +0100 | Athas_ | Athas |
| 2025-12-01 08:40:49 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 08:40:59 +0100 | trickard_ | (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-01 08:41:13 +0100 | trickard_ | (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 2025-12-01 08:44:10 +0100 | chele | (~chele@user/chele) chele |
| 2025-12-01 08:45:34 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-12-01 08:46:51 +0100 | lucabtz | (~lucabtz@user/lucabtz) lucabtz |
| 2025-12-01 08:51:14 +0100 | <lucabtz> | hello, in https://hackage-content.haskell.org/package/adjunctions-4.4.3/docs/Data-Functor-Adjunction.html shouldn't it be saying "Any implementation is required to ensure that leftAdjunct and rightAdjunct witness an isomorphism from Hom(f a, b) to Hom(a, g b)" (replacing Nat with Hom)? |
| 2025-12-01 08:56:06 +0100 | absence | (torgeihe@hildring.pvv.ntnu.no) |
| 2025-12-01 08:56:18 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 09:00:32 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-01 09:01:03 +0100 | trickard_ | (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-01 09:01:16 +0100 | trickard_ | (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 2025-12-01 09:09:07 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
| 2025-12-01 09:09:41 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) chiselfuse |
| 2025-12-01 09:13:42 +0100 | Googulator20 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-01 09:13:50 +0100 | Googulator94 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-01 09:18:07 +0100 | kuribas | (~user@2a02-1810-2825-6000-91ce-6f5d-5219-16e3.ip6.access.telenet.be) kuribas |
| 2025-12-01 09:24:31 +0100 | tromp | (~textual@2001:1c00:3487:1b00:9c00:2cdd:fe3f:e613) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-12-01 09:30:37 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2025-12-01 09:30:37 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2025-12-01 09:34:57 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 250 seconds) |
| 2025-12-01 09:44:54 +0100 | tromp | (~textual@2001:1c00:3487:1b00:9c00:2cdd:fe3f:e613) |
| 2025-12-01 09:51:45 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) (Remote host closed the connection) |
| 2025-12-01 09:51:49 +0100 | <lucabtz> | also ive been having this issue with the haskell language server on windows + vscode https://paste.tomsmeding.com/WH7UrKNr |
| 2025-12-01 09:52:03 +0100 | <lucabtz> | may ask also on #haskell-language-server if more appropriate |
| 2025-12-01 09:52:55 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) emmanuelux |
| 2025-12-01 09:53:04 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 272 seconds) |
| 2025-12-01 09:54:44 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-12-01 09:57:31 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
| 2025-12-01 09:59:39 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 260 seconds) |
| 2025-12-01 10:00:22 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-01 10:06:58 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) (Remote host closed the connection) |
| 2025-12-01 10:07:42 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 256 seconds) |
| 2025-12-01 10:24:40 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 255 seconds) |
| 2025-12-01 10:27:26 +0100 | mreh | (~matthew@host86-146-25-125.range86-146.btcentralplus.com) |
| 2025-12-01 10:27:50 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2025-12-01 10:30:13 +0100 | <kuribas> | Is there evidence that static functional typing leads to less defects and faster development time? |
| 2025-12-01 10:30:53 +0100 | inline__ | Inline |
| 2025-12-01 10:31:07 +0100 | <kuribas> | I believe I am twice as efficient in haskell as in python/clojure/whatever. |
| 2025-12-01 10:31:11 +0100 | <kuribas> | But it's hard to convince others. |
| 2025-12-01 10:32:55 +0100 | <kuribas> | And for some tasks there is less advantages, like low level programming, complicated algorithms, ... |
| 2025-12-01 10:35:50 +0100 | Googulator47 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-01 10:35:50 +0100 | Googulator20 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-01 10:36:18 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-01 10:40:37 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 244 seconds) |
| 2025-12-01 10:43:08 +0100 | <lortabac> | kuribas: that's very hard to determine in general |
| 2025-12-01 10:43:55 +0100 | <lortabac> | for lots of tasks I'd probably be less efficient in Haskell due to a lack of libraries |
| 2025-12-01 10:44:40 +0100 | <lortabac> | which of course isn't due to the programming paradigm but is still a factor |
| 2025-12-01 10:44:55 +0100 | <kuribas> | Even worse in idris2. |
| 2025-12-01 10:45:34 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-01 10:46:39 +0100 | <kuribas> | But for our usecases haskell would do just as well. |
| 2025-12-01 10:46:46 +0100 | <kuribas> | Except maybe missing dataframe libraries. |
| 2025-12-01 10:46:58 +0100 | <lortabac> | in order to get some evidence you may measure performance on a specific task |
| 2025-12-01 10:47:31 +0100 | <lortabac> | but I think it would be very hard to get the full picture |
| 2025-12-01 10:47:34 +0100 | <Hecate> | kuribas: I feel like we're having this discussion every year haha |
| 2025-12-01 10:47:53 +0100 | <lortabac> | you need to take into account how the code evolves over time etc. |
| 2025-12-01 10:48:53 +0100 | <kuribas> | Yeah, I did some database queries in python using pypika, which isn't typed, and I didn't have a lot of problems with it. |
| 2025-12-01 10:49:12 +0100 | <kuribas> | But refactoring would be a pita, where it would be trivial in haskell. |
| 2025-12-01 10:49:22 +0100 | <kuribas> | Changing to another schema. |
| 2025-12-01 10:49:57 +0100 | michalz | (~michalz@185.246.207.193) |
| 2025-12-01 10:50:35 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 265 seconds) |
| 2025-12-01 10:51:08 +0100 | <kuribas> | I spend a whole day once refactoring clojure database queries, because the schema changed. |
| 2025-12-01 10:55:02 +0100 | semifunctor | (~omnifunct@user/semifunctor) (Leaving) |
| 2025-12-01 10:56:23 +0100 | poscat | (~poscat@user/poscat) (Remote host closed the connection) |
| 2025-12-01 10:57:15 +0100 | trickard_ | (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-01 10:57:29 +0100 | trickard_ | (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 2025-12-01 10:59:16 +0100 | trickard_ | trickard |
| 2025-12-01 10:59:30 +0100 | poscat | (~poscat@user/poscat) poscat |
| 2025-12-01 11:01:12 +0100 | Katarushisu | (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) Katarushisu |
| 2025-12-01 11:01:15 +0100 | <kuribas> | I suppose there are always trade-offs. |
| 2025-12-01 11:02:22 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-01 11:05:15 +0100 | karenw | (~karenw@user/karenw) karenw |
| 2025-12-01 11:05:46 +0100 | Googulator47 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-01 11:05:49 +0100 | Googulator50 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-01 11:06:31 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 240 seconds) |
| 2025-12-01 11:09:22 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-01 11:10:24 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) (Ping timeout: 252 seconds) |
| 2025-12-01 11:11:13 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |
| 2025-12-01 11:12:19 +0100 | Ging_ | (46fea76d80@2001:bc8:1210:2cd8::470) (Ping timeout: 264 seconds) |
| 2025-12-01 11:12:56 +0100 | Ging_ | (46fea76d80@2001:bc8:1210:2cd8::470) |
| 2025-12-01 11:12:59 +0100 | FANTOM | (~fantom@212.228.181.156) (Ping timeout: 240 seconds) |
| 2025-12-01 11:13:21 +0100 | <kuribas> | Something I never felt is that exploring is easier in a dynamic language. |
| 2025-12-01 11:14:38 +0100 | yin | (~zero@user/zero) (Max SendQ exceeded) |
| 2025-12-01 11:14:39 +0100 | srk | (~sorki@user/srk) (Max SendQ exceeded) |
| 2025-12-01 11:14:56 +0100 | pavonia | (~user@user/siracusa) (Ping timeout: 240 seconds) |
| 2025-12-01 11:15:20 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) (Ping timeout: 244 seconds) |
| 2025-12-01 11:15:26 +0100 | yin | (~zero@user/zero) zero |
| 2025-12-01 11:16:10 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |
| 2025-12-01 11:16:16 +0100 | srk | (~sorki@user/srk) srk |
| 2025-12-01 11:17:25 +0100 | FANTOM | (~fantom@212.228.181.156) |
| 2025-12-01 11:17:26 +0100 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection) |
| 2025-12-01 11:17:33 +0100 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) statusbot |
| 2025-12-01 11:19:43 +0100 | euphores | (~SASL_euph@user/euphores) (Ping timeout: 240 seconds) |
| 2025-12-01 11:20:58 +0100 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection) |
| 2025-12-01 11:21:28 +0100 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) statusbot |
| 2025-12-01 11:22:36 +0100 | FANTOM | (~fantom@212.228.181.156) (Max SendQ exceeded) |
| 2025-12-01 11:22:47 +0100 | <jreicher> | What do you mean by a "dynamic language" (it's an ambiguous term in my experience) |
| 2025-12-01 11:22:51 +0100 | EvanR | (~EvanR@user/evanr) (Remote host closed the connection) |
| 2025-12-01 11:22:51 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
| 2025-12-01 11:22:57 +0100 | fgarcia | (~lei@user/fgarcia) (Max SendQ exceeded) |
| 2025-12-01 11:23:01 +0100 | chele | (~chele@user/chele) chele |
| 2025-12-01 11:23:29 +0100 | EvanR | (~EvanR@user/evanr) EvanR |
| 2025-12-01 11:24:30 +0100 | euphores | (~SASL_euph@user/euphores) euphores |
| 2025-12-01 11:25:44 +0100 | markasoftware | (~quassel@107.161.26.124) (Ping timeout: 240 seconds) |
| 2025-12-01 11:26:21 +0100 | fgarcia | (~lei@user/fgarcia) fgarcia |
| 2025-12-01 11:26:40 +0100 | FANTOM | (~fantom@212.228.181.156) |
| 2025-12-01 11:26:40 +0100 | fgarcia | (~lei@user/fgarcia) (Max SendQ exceeded) |
| 2025-12-01 11:27:24 +0100 | absentia | (~henricus@user/absentia) (Remote host closed the connection) |
| 2025-12-01 11:27:42 +0100 | absentia | (~henricus@user/institor) institor |
| 2025-12-01 11:29:52 +0100 | <kuribas> | jreicher: dynamically typed |
| 2025-12-01 11:30:08 +0100 | <jreicher> | No such thing. :D |
| 2025-12-01 11:33:08 +0100 | fgarcia | (~lei@user/fgarcia) fgarcia |
| 2025-12-01 11:34:32 +0100 | fgarcia | (~lei@user/fgarcia) (Max SendQ exceeded) |
| 2025-12-01 11:34:45 +0100 | pavonia | (~user@user/siracusa) siracusa |
| 2025-12-01 11:34:55 +0100 | markasoftware | (~quassel@2604:180:f2::217) markasoftware |
| 2025-12-01 11:35:10 +0100 | fgarcia | (~lei@user/fgarcia) fgarcia |
| 2025-12-01 11:35:29 +0100 | fgarcia | (~lei@user/fgarcia) (Max SendQ exceeded) |
| 2025-12-01 11:35:41 +0100 | Googulator50 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-01 11:35:49 +0100 | Googulator50 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-01 11:41:49 +0100 | fgarcia | (~lei@user/fgarcia) fgarcia |
| 2025-12-01 11:42:25 +0100 | X-Scale | (~ARM@6.67.114.89.rev.vodafone.pt) X-Scale |
| 2025-12-01 11:42:26 +0100 | fgarcia | (~lei@user/fgarcia) (Max SendQ exceeded) |
| 2025-12-01 11:46:34 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Remote host closed the connection) |
| 2025-12-01 11:48:15 +0100 | fgarcia | (~lei@user/fgarcia) fgarcia |
| 2025-12-01 11:48:36 +0100 | fgarcia | (~lei@user/fgarcia) (Max SendQ exceeded) |
| 2025-12-01 11:49:11 +0100 | fgarcia | (~lei@user/fgarcia) fgarcia |
| 2025-12-01 11:49:42 +0100 | fgarcia | (~lei@user/fgarcia) (Max SendQ exceeded) |
| 2025-12-01 11:53:53 +0100 | oxapentane | (~oxapentan@user/oxapentane) (Remote host closed the connection) |
| 2025-12-01 11:54:26 +0100 | oxapentane | (~oxapentan@user/oxapentane) oxapentane |
| 2025-12-01 11:55:39 +0100 | fgarcia | (~lei@user/fgarcia) fgarcia |
| 2025-12-01 11:56:00 +0100 | fgarcia | (~lei@user/fgarcia) (Max SendQ exceeded) |
| 2025-12-01 11:58:32 +0100 | timide | (~timide@user/timide) timide |
| 2025-12-01 12:02:06 +0100 | fgarcia | (~lei@user/fgarcia) fgarcia |
| 2025-12-01 12:02:34 +0100 | fgarcia | (~lei@user/fgarcia) (Max SendQ exceeded) |
| 2025-12-01 12:03:20 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 240 seconds) |
| 2025-12-01 12:05:50 +0100 | Googulator50 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-01 12:05:51 +0100 | Googulator24 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-01 12:06:33 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer) |
| 2025-12-01 12:09:13 +0100 | qqe | (~qqq@185.54.20.98) |
| 2025-12-01 12:09:44 +0100 | <kuribas> | What do you mean? |
| 2025-12-01 12:09:57 +0100 | <kuribas> | You don't like the term? |
| 2025-12-01 12:10:32 +0100 | <kuribas> | It generally means lack of static typing, or at least static types that are completely optional. |
| 2025-12-01 12:10:48 +0100 | <kuribas> | I also think the term is pretty bad. |
| 2025-12-01 12:15:13 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-01 12:17:32 +0100 | gustrb | (~gustrb@user/gustrb) (Quit: gustrb) |
| 2025-12-01 12:17:55 +0100 | qqe | (~qqq@185.54.20.98) (Ping timeout: 240 seconds) |
| 2025-12-01 12:19:21 +0100 | qqe | (~qqq@185.54.20.98) |
| 2025-12-01 12:19:55 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 240 seconds) |
| 2025-12-01 12:23:51 +0100 | fp1 | (~Thunderbi@2001:708:20:1406::1370) fp |
| 2025-12-01 12:24:34 +0100 | <jreicher> | No. I mean that the entire point of types is to facilitate a check that picks up errors before they happen at runtime. If you're doing that at runtime, then you're not doing any better than an untyped system. |
| 2025-12-01 12:24:53 +0100 | qqe | (~qqq@185.54.20.98) (Ping timeout: 260 seconds) |
| 2025-12-01 12:25:24 +0100 | qqe | (~qqq@213.87.150.45) |
| 2025-12-01 12:31:22 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-01 12:36:10 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 245 seconds) |
| 2025-12-01 12:37:09 +0100 | traxex | (traxex@user/traxex) (Ping timeout: 260 seconds) |
| 2025-12-01 12:42:55 +0100 | trickard | (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-01 12:43:09 +0100 | trickard_ | (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 2025-12-01 12:45:35 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-01 12:46:12 +0100 | qqe | (~qqq@213.87.150.45) (Read error: Connection reset by peer) |
| 2025-12-01 12:49:55 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 240 seconds) |
| 2025-12-01 12:55:03 +0100 | fp1 | (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 244 seconds) |
| 2025-12-01 12:56:05 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-01 13:01:06 +0100 | comerijn | (~merijn@77.242.116.146) merijn |
| 2025-12-01 13:02:03 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 265 seconds) |
| 2025-12-01 13:02:40 +0100 | larsivi | (~larsivi@2001:2020:8341:7f8b:6585:e3fb:fff4:fe3f) |
| 2025-12-01 13:03:24 +0100 | <lortabac> | the point of types is also to provide a meaning to the raw bytes |
| 2025-12-01 13:04:29 +0100 | <lortabac> | if you don't check them at runtime you end up with segmentation faults |
| 2025-12-01 13:06:06 +0100 | <mniip> | unityped perhaps? |
| 2025-12-01 13:06:39 +0100 | <lortabac> | a completely untyped system would probably be unusable |
| 2025-12-01 13:09:40 +0100 | <lortabac> | isn't unityped what dynamically-typed languages usually are? That is what they were criticising |
| 2025-12-01 13:10:45 +0100 | <lortabac> | for context, I was replying to "if you are doing [checks] at runtime, then you are not doing any better than an untyped system" |
| 2025-12-01 13:11:29 +0100 | <dminuoso> | I think the unityped/dynamically-typed differentiation is a kind of disjoint argument because they arise from fundamental different assumptions. At the core, both "type systems in the type theoretic sense" and "runtime tag checking" are both intended to prevent certain abnormal behaviors during runtime. |
| 2025-12-01 13:12:05 +0100 | <dminuoso> | The presence of a static type system does not invalidate runtime assertions or checks either. |
| 2025-12-01 13:13:38 +0100 | <lortabac> | "unityped" is "dynamically typed" from the point of view of static type checking |
| 2025-12-01 13:13:58 +0100 | <dminuoso> | Sure, but that differentiation is only useful in the context of a type theory class at uni. |
| 2025-12-01 13:13:58 +0100 | <lortabac> | statically they are all the same type |
| 2025-12-01 13:14:12 +0100 | <mniip> | don't you love when the static typechecker disagrees with the runtime typechecker |
| 2025-12-01 13:14:16 +0100 | <mniip> | many such cases in python |
| 2025-12-01 13:14:19 +0100 | tromp | (~textual@2001:1c00:3487:1b00:9c00:2cdd:fe3f:e613) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-12-01 13:14:22 +0100 | <lortabac> | :) |
| 2025-12-01 13:15:22 +0100 | <dminuoso> | One of the established rough description is that the type systems intention is to filter out as many bad programs, while filtering out as few good programs as possible. The false positive/negative rate is not perfect in any language. |
| 2025-12-01 13:16:03 +0100 | <dminuoso> | As long as the type checker in python saves me more time on average than it wastes on account being wrong, its useful. |
| 2025-12-01 13:33:23 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
| 2025-12-01 13:38:24 +0100 | tromp | (~textual@2001:1c00:3487:1b00:9c00:2cdd:fe3f:e613) |
| 2025-12-01 13:39:29 +0100 | <kuribas> | jreicher: So you don't like the term... |
| 2025-12-01 13:39:53 +0100 | <kuribas> | jreicher: But dynamic language proponents don't think of types in terms of type theory. |
| 2025-12-01 13:40:15 +0100 | <kuribas> | For example a type may be a class, which is a runtime entity. |
| 2025-12-01 13:43:10 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
| 2025-12-01 13:54:44 +0100 | yin | (~zero@user/zero) (Ping timeout: 260 seconds) |
| 2025-12-01 13:54:58 +0100 | yin | (~zero@user/zero) zero |
| 2025-12-01 13:55:54 +0100 | trickard_ | (~trickard@cpe-85-98-47-163.wireline.com.au) (Ping timeout: 260 seconds) |
| 2025-12-01 13:58:07 +0100 | ttybitnik | (~ttybitnik@user/wolper) ttybitnik |
| 2025-12-01 13:58:47 +0100 | trickard_ | (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 2025-12-01 14:05:10 +0100 | Googulator24 | Googulator |
| 2025-12-01 14:10:04 +0100 | fp1 | (~Thunderbi@2001:708:20:1406::10c5) fp |
| 2025-12-01 14:13:56 +0100 | Googulator | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-01 14:14:16 +0100 | Googulator | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-01 14:18:37 +0100 | fp1 | (~Thunderbi@2001:708:20:1406::10c5) (Ping timeout: 246 seconds) |
| 2025-12-01 14:19:16 +0100 | karenw | (~karenw@user/karenw) (Ping timeout: 244 seconds) |
| 2025-12-01 14:22:08 +0100 | X-Scale | (~ARM@6.67.114.89.rev.vodafone.pt) (Ping timeout: 240 seconds) |
| 2025-12-01 14:25:04 +0100 | larsivi | (~larsivi@2001:2020:8341:7f8b:6585:e3fb:fff4:fe3f) (Ping timeout: 260 seconds) |
| 2025-12-01 14:25:46 +0100 | fp1 | (~Thunderbi@2001:708:20:1406::1370) fp |
| 2025-12-01 14:34:37 +0100 | trickard_ | (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-01 14:35:30 +0100 | Googulator | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-01 14:35:42 +0100 | Googulator | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-01 14:37:08 +0100 | trickard_ | (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 2025-12-01 14:37:39 +0100 | X-Scale | (~ARM@6.67.114.89.rev.vodafone.pt) X-Scale |
| 2025-12-01 14:38:43 +0100 | fp1 | (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 265 seconds) |
| 2025-12-01 14:42:31 +0100 | turlando_ | (~turlando@user/turlando) (Ping timeout: 244 seconds) |
| 2025-12-01 14:42:45 +0100 | turlando | (~turlando@user/turlando) turlando |
| 2025-12-01 14:45:48 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
| 2025-12-01 14:47:10 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 244 seconds) |
| 2025-12-01 14:47:45 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
| 2025-12-01 14:50:05 +0100 | haritz | (~hrtz@140.228.70.141) |
| 2025-12-01 14:50:05 +0100 | haritz | (~hrtz@140.228.70.141) (Changing host) |
| 2025-12-01 14:50:05 +0100 | haritz | (~hrtz@user/haritz) haritz |
| 2025-12-01 14:54:10 +0100 | __monty__ | (~toonn@user/toonn) toonn |
| 2025-12-01 14:54:11 +0100 | __monty__ | (~toonn@user/toonn) (Client Quit) |
| 2025-12-01 14:54:49 +0100 | comerijn | (~merijn@77.242.116.146) (Ping timeout: 260 seconds) |
| 2025-12-01 14:57:36 +0100 | __monty__ | (~toonn@user/toonn) toonn |
| 2025-12-01 15:06:14 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-01 15:10:18 +0100 | vgtw_ | (~vgtw@user/vgtw) (Ping timeout: 256 seconds) |
| 2025-12-01 15:10:45 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 245 seconds) |
| 2025-12-01 15:13:05 +0100 | vgtw | (~vgtw@user/vgtw) vgtw |
| 2025-12-01 15:13:45 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-01 15:16:20 +0100 | infinity0 | (~infinity0@pwned.gg) (Quit: WeeChat 4.6.3) |
| 2025-12-01 15:17:00 +0100 | infinity0 | (~infinity0@pwned.gg) infinity0 |
| 2025-12-01 15:20:44 +0100 | spew | (~spew@user/spew) spew |
| 2025-12-01 15:31:39 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 2025-12-01 15:35:09 +0100 | ephemient | (uid407513@user/ephemient) ephemient |
| 2025-12-01 15:36:16 +0100 | fgarcia | (~lei@user/fgarcia) fgarcia |
| 2025-12-01 15:39:06 +0100 | sindu | (~sindu@2.148.32.207.tmi.telenormobil.no) |
| 2025-12-01 15:45:01 +0100 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
| 2025-12-01 15:49:04 +0100 | spew | (~spew@user/spew) (Quit: WeeChat 4.7.2) |
| 2025-12-01 15:49:14 +0100 | trickard_ | (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-01 15:49:28 +0100 | trickard_ | (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 2025-12-01 15:51:17 +0100 | Inline | (~inlinE@2001-4dd3-7fc8-0-8721-eee6-e05a-14dd.ipv6dyn.netcologne.de) (Remote host closed the connection) |
| 2025-12-01 15:54:51 +0100 | Square | (~Square@user/square) Square |
| 2025-12-01 15:56:46 +0100 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
| 2025-12-01 15:57:26 +0100 | gmg | (~user@user/gehmehgeh) gehmehgeh |
| 2025-12-01 15:58:31 +0100 | Square2 | (~Square4@user/square) (Ping timeout: 240 seconds) |
| 2025-12-01 16:02:03 +0100 | Inline | (~inlinE@2001-4dd3-7fc8-0-2be-fec0-ba58-7d11.ipv6dyn.netcologne.de) Inline |
| 2025-12-01 16:11:26 +0100 | jzargo | (~jzargo@user/jzargo) (Read error: Connection reset by peer) |
| 2025-12-01 16:11:47 +0100 | spew | (~spew@user/spew) spew |
| 2025-12-01 16:16:18 +0100 | jzargo | (~jzargo@user/jzargo) jzargo |
| 2025-12-01 16:16:37 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
| 2025-12-01 16:20:29 +0100 | tromp | (~textual@2001:1c00:3487:1b00:9c00:2cdd:fe3f:e613) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-12-01 16:26:36 +0100 | tromp | (~textual@2001:1c00:3487:1b00:9c00:2cdd:fe3f:e613) |
| 2025-12-01 16:29:06 +0100 | ttybitnik | (~ttybitnik@user/wolper) (Quit: Fading out...) |
| 2025-12-01 16:32:46 +0100 | trickard_ | (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-01 16:33:00 +0100 | trickard_ | (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 2025-12-01 16:41:09 +0100 | <lucabtz> | https://paste.tomsmeding.com/HQQ4rMFc which indentation style do you prefer where? |
| 2025-12-01 16:41:16 +0100 | <lucabtz> | s/where/here |
| 2025-12-01 16:43:35 +0100 | <Leary> | They're both fugly. |
| 2025-12-01 16:43:50 +0100 | <lucabtz> | which do you use? |
| 2025-12-01 16:43:57 +0100 | <Leary> | How about: https://paste.tomsmeding.com/L3gjxpuS |
| 2025-12-01 16:45:23 +0100 | <lucabtz> | yeah i like that |
| 2025-12-01 16:45:29 +0100 | <lucabtz> | i need to pick up a style |
| 2025-12-01 16:47:54 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 272 seconds) |
| 2025-12-01 16:47:54 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 272 seconds) |
| 2025-12-01 16:48:21 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) chexum |
| 2025-12-01 16:49:53 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
| 2025-12-01 16:58:15 +0100 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 2025-12-01 16:59:34 +0100 | <kuribas> | Can I turn off these stupid stan warning in lsp? |
| 2025-12-01 16:59:58 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 246 seconds) |
| 2025-12-01 17:00:37 +0100 | <tomsmeding> | kuribas: you somehow have to set haskell.plugin.stan.globalOn = false in the configuration for HLS in your LSP client |
| 2025-12-01 17:00:46 +0100 | <tomsmeding> | how you do this differs per editor |
| 2025-12-01 17:01:19 +0100 | <haskellbridge> | <loonycyborg> Upgrade to GHC 9.12. It doesn't support that plugin :P |
| 2025-12-01 17:01:50 +0100 | traxex | (traxex@user/traxex) traxex |
| 2025-12-01 17:02:32 +0100 | __monty__ | (~toonn@user/toonn) (Ping timeout: 240 seconds) |
| 2025-12-01 17:04:27 +0100 | larsivi | (~larsivi@2a01:563:99:a400:1cc0:4d50:b9e7:edd1) |
| 2025-12-01 17:05:25 +0100 | <tomsmeding> | kuribas: https://haskell-language-server.readthedocs.io/en/stable/configuration.html |
| 2025-12-01 17:06:24 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-01 17:07:29 +0100 | <fgarcia> | i like the suggested one at the top. with that it helps me know what to expect from what was written near instantly |
| 2025-12-01 17:08:29 +0100 | <merijn> | awkward line wrapping and indentation is one of the main reasons I argue for never using let-in unless you have to :p |
| 2025-12-01 17:09:11 +0100 | <tomsmeding> | I'm confused, what's wrong with https://paste.tomsmeding.com/Zcd4imHd ? |
| 2025-12-01 17:09:54 +0100 | <merijn> | tomsmeding: That's only nice if you have 1 or 2 short bindings (but then you might as well do it on one line) |
| 2025-12-01 17:10:08 +0100 | <tomsmeding> | I dislike 'where' for not being an expression, so you can only put it at very specific places in the grammar |
| 2025-12-01 17:10:20 +0100 | <merijn> | tomsmeding: See, I consider that a feature :p |
| 2025-12-01 17:11:12 +0100 | Googulator76 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-01 17:11:26 +0100 | Googulator | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-01 17:11:51 +0100 | <fgarcia> | here i would expect that code to run inside main. most functions are able to be written with 'where'. to me it signals, even if not true, that it is expected stateful effects will happen when using 'let' |
| 2025-12-01 17:12:47 +0100 | <merijn> | I mean, you're almost never in a context where you can't use where, so I don't really see that as much of a limitation |
| 2025-12-01 17:14:04 +0100 | <tomsmeding> | merijn: ok I selected a very untyped function to not land in your "almost never" niche of "typed code with too many existentials" (which is 50% of my codebase): the printStats function here https://git.tomsmeding.com/chad-fast/tree/test-framework/Test/Framework.hs#n464 |
| 2025-12-01 17:14:22 +0100 | <tomsmeding> | yes, you can write this as a 'where', but then it's scoped over the whole functoin, not just this guard branch |
| 2025-12-01 17:18:40 +0100 | <lucabtz> | tomsmeding if there is a single binding your style looks good, but when you have multiple bindings with Leary's way it is simpler to align them |
| 2025-12-01 17:19:14 +0100 | <lucabtz> | however conveniently "let " is four characters and if you use 4 spaces indentation it is actually simple to align them your way too |
| 2025-12-01 17:19:26 +0100 | <tomsmeding> | on the contrary! The body of the let-binding is _not_ part of the list of bindings, so my opinion is that by aligning them, you're incorrectly suggesting a relationship that's not there |
| 2025-12-01 17:19:37 +0100 | <merijn> | tomsmeding: That's solved easily by using more where |
| 2025-12-01 17:19:59 +0100 | <merijn> | defining a name implementation per case, with their own where :p |
| 2025-12-01 17:20:17 +0100 | <merijn> | lucabtz: The problem is the in :p |
| 2025-12-01 17:20:21 +0100 | <tomsmeding> | hence my preference for using "in x", not "in x" or " in x" as some people do; I would accept "in x" if your argument is "I want the body to be indented at a multiple of 2 spaces" |
| 2025-12-01 17:20:50 +0100 | <tomsmeding> | merijn: more top-level functions you mean? |
| 2025-12-01 17:20:56 +0100 | <tomsmeding> | right, that's possible |
| 2025-12-01 17:21:15 +0100 | <lucabtz> | i didnt mean to align the body with the bindings, just the bidings need to be aligned |
| 2025-12-01 17:21:21 +0100 | <tomsmeding> | oh for sure |
| 2025-12-01 17:21:28 +0100 | <tomsmeding> | but 'let' already syntactically requires the bindings to be aligned |
| 2025-12-01 17:21:41 +0100 | <lucabtz> | if you have a new-line and indentation it works with any kind of indentation you have |
| 2025-12-01 17:21:42 +0100 | <merijn> | tomsmeding: No, not top level nested in the where of printStats |
| 2025-12-01 17:22:02 +0100 | <tomsmeding> | merijn: ah |
| 2025-12-01 17:22:02 +0100 | <merijn> | tomsmeding: Also, that example is trivially simplified by using do and it's let sugar, letting you skip the in entirely :p |
| 2025-12-01 17:22:12 +0100 | <tomsmeding> | and that is better how? :P |
| 2025-12-01 17:22:20 +0100 | <lucabtz> | if you put let x = y \n then in the new line the alignment works well only if you tab with four spaces |
| 2025-12-01 17:22:21 +0100 | <tomsmeding> | I disagree with "simplified" |
| 2025-12-01 17:22:26 +0100 | <tomsmeding> | it suggests a monad where there is none |
| 2025-12-01 17:22:37 +0100 | <tomsmeding> | lucabtz: yep, true |
| 2025-12-01 17:22:39 +0100 | <merijn> | tomsmeding: Your return type is IO? |
| 2025-12-01 17:22:46 +0100 | <tomsmeding> | oh |
| 2025-12-01 17:22:51 +0100 | <merijn> | #rekt |
| 2025-12-01 17:22:52 +0100 | <tomsmeding> | I guess, yes, in this case |
| 2025-12-01 17:22:54 +0100 | <tomsmeding> | :p |
| 2025-12-01 17:23:11 +0100 | <tomsmeding> | #rekt takes me back to high school |
| 2025-12-01 17:23:15 +0100 | <lucabtz> | so for one binding that option works well, but for multiple ones idk |
| 2025-12-01 17:23:35 +0100 | <merijn> | tomsmeding: tbh, I'd probably rewrite that to use `concat` to simplify line-wrapping the string too |
| 2025-12-01 17:23:35 +0100 | <tomsmeding> | lucabtz: what's your preferred indentation size? |
| 2025-12-01 17:23:52 +0100 | <tomsmeding> | yeah also possible |
| 2025-12-01 17:24:27 +0100 | <lucabtz> | it is 4 but i dont like that the style imposes 4 to be used |
| 2025-12-01 17:24:32 +0100 | <tomsmeding> | I see |
| 2025-12-01 17:24:55 +0100 | <tomsmeding> | I don't have that opinion but I respect you having it :p |
| 2025-12-01 17:25:12 +0100 | <lucabtz> | :p |
| 2025-12-01 17:25:29 +0100 | <tomsmeding> | another reason to not use my style: if you program with a proportional font |
| 2025-12-01 17:25:33 +0100 | <tomsmeding> | a colleague of mine does that |
| 2025-12-01 17:25:54 +0100 | <tomsmeding> | programming haskell with a proportional font is mostly feasible only if you only read your own code though :p |
| 2025-12-01 17:26:07 +0100 | <lucabtz> | though if you have only one binding i think your style is more readable |
| 2025-12-01 17:26:45 +0100 | <merijn> | Proportional font should be a crime |
| 2025-12-01 17:26:46 +0100 | machinedgod | (~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod |
| 2025-12-01 17:27:00 +0100 | <lucabtz> | there is no [a] -> Int -> Maybe a safe list indexing in base? |
| 2025-12-01 17:27:14 +0100 | <tomsmeding> | no |
| 2025-12-01 17:27:22 +0100 | <lucabtz> | sad |
| 2025-12-01 17:27:32 +0100 | <lucabtz> | i found atZ using hoogle though |
| 2025-12-01 17:27:36 +0100 | <tomsmeding> | there is atMay here https://hackage.haskell.org/package/safe-0.3.21/docs/Safe.html |
| 2025-12-01 17:28:08 +0100 | <lucabtz> | https://hackage.haskell.org/package/errors-2.3.0/docs/Control-Error-Safe.html#v:atZ this looks more general |
| 2025-12-01 17:28:11 +0100 | <merijn> | lucabtz: "\l n -> listToMaybe $ drop n l" :p |
| 2025-12-01 17:28:16 +0100 | <Leary> | @hoogle [a] -> Int -> Maybe a |
| 2025-12-01 17:28:17 +0100 | <lambdabot> | Data.List (!?) :: [a] -> Int -> Maybe a |
| 2025-12-01 17:28:17 +0100 | <lambdabot> | GHC.List (!?) :: [a] -> Int -> Maybe a |
| 2025-12-01 17:28:17 +0100 | <lambdabot> | Safe atMay :: [a] -> Int -> Maybe a |
| 2025-12-01 17:28:37 +0100 | <tomsmeding> | oh? |
| 2025-12-01 17:28:42 +0100 | <tomsmeding> | % :i !? |
| 2025-12-01 17:28:42 +0100 | <yahb2> | <interactive>:1:1: error: [GHC-76037] Not in scope: ‘!?’ |
| 2025-12-01 17:28:42 +0100 | trickard_ | (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-01 17:28:45 +0100 | <tomsmeding> | % :i Data.List.!? |
| 2025-12-01 17:28:45 +0100 | <yahb2> | (GHC.Internal.List.!?) :: [a] -> Int -> Maybe a ; -- Defined in ‘GHC.Internal.List’ ; infixl 9 GHC.Internal.List.!? |
| 2025-12-01 17:28:47 +0100 | <tomsmeding> | TIL |
| 2025-12-01 17:28:56 +0100 | trickard_ | (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 2025-12-01 17:29:00 +0100 | <tomsmeding> | lucabtz: ^ |
| 2025-12-01 17:29:24 +0100 | <lucabtz> | cool |
| 2025-12-01 17:29:31 +0100 | <lucabtz> | hoogle didnt find it :( |
| 2025-12-01 17:29:46 +0100 | <tomsmeding> | https://hoogle.haskell.org/?hoogle=%5Ba%5D+-%3E+Int+-%3E+Maybe+a&scope=set%3Astackage |
| 2025-12-01 17:29:52 +0100 | <tomsmeding> | works for me (tm) |
| 2025-12-01 17:29:55 +0100 | <lucabtz> | yeah |
| 2025-12-01 17:29:56 +0100 | <fgarcia> | you didn't ask but i recommend the font 'Luculent'. it is lovely. i think people who write haskell will appreciate it |
| 2025-12-01 17:29:58 +0100 | <lucabtz> | also for me now |
| 2025-12-01 17:30:24 +0100 | <lucabtz> | didnt work earlier, im sure i typed [a] -> a -> Maybe a |
| 2025-12-01 17:30:30 +0100 | <lucabtz> | i must be hallucinating |
| 2025-12-01 17:30:32 +0100 | <tomsmeding> | fgarcia: font exchange time: mononoki |
| 2025-12-01 17:31:05 +0100 | <tomsmeding> | that bold here looks very ugly, but the regular is decent https://online-fonts.com/fonts/luculent |
| 2025-12-01 17:31:54 +0100 | <fgarcia> | tomsmeding: ooo thank you! |
| 2025-12-01 17:32:42 +0100 | <fgarcia> | that is a cool site. finally a specimen i can look at! |
| 2025-12-01 17:33:07 +0100 | <tomsmeding> | (just found it by searching for "luculent font" :p) |
| 2025-12-01 17:34:49 +0100 | <fgarcia> | oh i should probably link the creator's site http://eastfarthing.com/luculent/ |
| 2025-12-01 17:35:14 +0100 | <tomsmeding> | nope, that's not for me :p |
| 2025-12-01 17:35:39 +0100 | <lucabtz> | gtg thank you! |
| 2025-12-01 17:35:59 +0100 | lucabtz | (~lucabtz@user/lucabtz) (Remote host closed the connection) |
| 2025-12-01 17:36:36 +0100 | spew | (~spew@user/spew) (Remote host closed the connection) |
| 2025-12-01 17:46:54 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |
| 2025-12-01 17:51:55 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 240 seconds) |
| 2025-12-01 17:54:39 +0100 | karenw | (~karenw@user/karenw) karenw |
| 2025-12-01 17:56:12 +0100 | Pixi` | Pixi |
| 2025-12-01 18:00:26 +0100 | trickard_ | trickard |
| 2025-12-01 18:08:11 +0100 | __monty__ | (~toonn@user/toonn) toonn |
| 2025-12-01 18:09:19 +0100 | tromp | (~textual@2001:1c00:3487:1b00:9c00:2cdd:fe3f:e613) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-12-01 18:14:15 +0100 | Square | (~Square@user/square) (Ping timeout: 240 seconds) |
| 2025-12-01 18:14:42 +0100 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
| 2025-12-01 18:15:39 +0100 | Googulator76 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-01 18:15:44 +0100 | gmg | (~user@user/gehmehgeh) gehmehgeh |
| 2025-12-01 18:15:47 +0100 | Googulator76 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-01 18:16:37 +0100 | <ski> | tomsmeding : `where' also does attach to `case'-`of' branches |
| 2025-12-01 18:18:03 +0100 | | https://www.reddit.com/r/haskell | Admin: #haskell-ops | Offtopic: #haskell-offtopic | https://downloads.haskell.org | https://play.haskell.org/ | Paste code/errors: https://paste.tomsmeding.com | Logs: https://ircbrowse.tomsmeding.com/browse/lchaskell | Adventofcode Leaderboard: 43100-84040706 |
| 2025-12-01 18:19:41 +0100 | <glguy> | 38 people from previous years #haskell leaderboard have started adventofcode - there are 8 slots open at the time of this message. I'll try and clean up stale entries if it happens to fill |
| 2025-12-01 18:20:54 +0100 | tromp | (~textual@2001:1c00:3487:1b00:9c00:2cdd:fe3f:e613) |
| 2025-12-01 18:23:49 +0100 | <__monty__> | Potentially relevant factor is that it's only 12 days this year! |
| 2025-12-01 18:24:06 +0100 | <__monty__> | glguy: Such an elegant part 2. |
| 2025-12-01 18:24:45 +0100 | <glguy> | oh, thanks! |
| 2025-12-01 18:30:33 +0100 | target_i | (~target_i@user/target-i/x-6023099) target_i |
| 2025-12-01 18:31:37 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 2025-12-01 18:32:04 +0100 | Tuplanolla | (~Tuplanoll@91-152-225-194.elisa-laajakaista.fi) Tuplanolla |
| 2025-12-01 18:41:37 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
| 2025-12-01 18:42:11 +0100 | <iqubic> | Yeah, I just did a dumb replicate solution. |
| 2025-12-01 18:44:37 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
| 2025-12-01 18:54:23 +0100 | tromp | (~textual@2001:1c00:3487:1b00:9c00:2cdd:fe3f:e613) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-12-01 18:57:45 +0100 | tomboy64 | (~tomboy64@user/tomboy64) (Read error: Connection reset by peer) |
| 2025-12-01 18:57:51 +0100 | tomboy65 | (~tomboy64@user/tomboy64) tomboy64 |
| 2025-12-01 19:03:46 +0100 | sindu | (~sindu@2.148.32.207.tmi.telenormobil.no) (Ping timeout: 256 seconds) |
| 2025-12-01 19:05:28 +0100 | sindu | (~sindu@2.148.32.207.tmi.telenormobil.no) |
| 2025-12-01 19:05:43 +0100 | <__monty__> | Wouldn't call that dumb. Can't figure out how you dealt with direction changes, and going left from the start. |
| 2025-12-01 19:06:46 +0100 | finsternis | (~X@23.226.237.192) (Remote host closed the connection) |
| 2025-12-01 19:07:36 +0100 | <tomsmeding> | glguy: if I'm still on there and you need space, feel free to remove me, too busy this year |
| 2025-12-01 19:08:47 +0100 | <tomsmeding> | ski: `let' also works in function applications :p |
| 2025-12-01 19:12:25 +0100 | <ski> | tomsmeding : yea, just saying it would be possible to use `where', and have the scope restricted to that branch |
| 2025-12-01 19:13:21 +0100 | <tomsmeding> | sure. It's more that with 'where' I have to think -- sometimes it works, sometimes it doesn't, sometimes I can write the code differently to make it work |
| 2025-12-01 19:13:26 +0100 | <tomsmeding> | 'let' just works |
| 2025-12-01 19:14:07 +0100 | <tomsmeding> | I use 'where' essentially only for local function definitions (where it actually makes sense to have the definitions _below_ the code using them), and occasionally if those local definitions and the main function need to share some variable definitions |
| 2025-12-01 19:15:34 +0100 | spew | (~spew@user/spew) spew |
| 2025-12-01 19:15:34 +0100 | Googulator76 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-01 19:15:37 +0100 | RMSBach | (~RMSBach@2603:6013:9b00:a7c8:e7e5:f272:eb86:ddf) RMSBach |
| 2025-12-01 19:15:46 +0100 | Googulator76 | (~Googulato@84-236-53-137.pool.digikabel.hu) |
| 2025-12-01 19:20:09 +0100 | tromp | (~textual@2001:1c00:3487:1b00:9c00:2cdd:fe3f:e613) |
| 2025-12-01 19:41:53 +0100 | ski | nods |
| 2025-12-01 19:43:29 +0100 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
| 2025-12-01 19:46:01 +0100 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 2025-12-01 19:47:37 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 246 seconds) |
| 2025-12-01 19:50:31 +0100 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
| 2025-12-01 19:51:07 +0100 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
| 2025-12-01 19:54:55 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 245 seconds) |
| 2025-12-01 19:54:55 +0100 | ljdarj1 | ljdarj |
| 2025-12-01 19:58:48 +0100 | peterbecich | (~Thunderbi@172.222.148.214) peterbecich |
| 2025-12-01 20:05:51 +0100 | larsivi | (~larsivi@2a01:563:99:a400:1cc0:4d50:b9e7:edd1) (Quit: WeeChat 4.7.2) |
| 2025-12-01 20:06:58 +0100 | Ranhir | (~Ranhir@157.97.53.139) (Ping timeout: 255 seconds) |
| 2025-12-01 20:07:15 +0100 | peterbecich | (~Thunderbi@172.222.148.214) (Ping timeout: 240 seconds) |
| 2025-12-01 20:15:42 +0100 | Googulator60 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-01 20:17:11 +0100 | skum | (~skum@user/skum) (Quit: WeeChat 4.7.2) |
| 2025-12-01 20:17:37 +0100 | Googulator76 | (~Googulato@84-236-53-137.pool.digikabel.hu) (Quit: Client closed) |
| 2025-12-01 20:20:07 +0100 | ttybitnik | (~ttybitnik@user/wolper) ttybitnik |
| 2025-12-01 20:29:35 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds) |
| 2025-12-01 20:30:08 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2025-12-01 20:33:45 +0100 | Ranhir | (~Ranhir@157.97.53.139) Ranhir |
| 2025-12-01 20:36:35 +0100 | Digitteknohippie | (~user@user/digit) Digit |
| 2025-12-01 20:36:55 +0100 | Digit | (~user@user/digit) (Ping timeout: 264 seconds) |
| 2025-12-01 20:47:13 +0100 | pavonia | (~user@user/siracusa) siracusa |
| 2025-12-01 20:49:30 +0100 | <haskellbridge> | <sm> I find that bothersome too, I wish where worked everywhere |
| 2025-12-01 20:50:16 +0100 | <haskellbridge> | <sm> when using it, the code feels/appears more modular than when using let |
| 2025-12-01 20:56:11 +0100 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
| 2025-12-01 20:56:33 +0100 | peterbecich | (~Thunderbi@172.222.148.214) peterbecich |
| 2025-12-01 20:56:57 +0100 | <[exa]> | I had "substitution brackets" abused for doing `where` in one testing language to kinda streamline the parsing, was cool. You could write [ x := this that ] anywhere. |
| 2025-12-01 20:57:11 +0100 | <[exa]> | (Then I killed the project and continued elsewhere) |
| 2025-12-01 20:57:53 +0100 | <[exa]> | anyway |
| 2025-12-01 20:58:15 +0100 | <EvanR> | whereanywhere |
| 2025-12-01 20:58:41 +0100 | <monochrom> | I like substitution brackets. But only the [var:=expr] kind, not the [x/y] or [y/x] kind. |
| 2025-12-01 20:58:58 +0100 | <[exa]> | is there anyone who's using vim heavily and would volunteer/have time for maintaining the haskell syntax in there? ref https://github.com/vim/vim/pull/18776#issuecomment-3564110323 |
| 2025-12-01 20:59:47 +0100 | <[exa]> | monochrom: the slashes are confusing me, if there's just 2 variables I never know which of them gets replaced |
| 2025-12-01 20:59:54 +0100 | <monochrom> | Hey thanks for the idea! I have been looking for interesting syntax for parser homework. :) |
| 2025-12-01 20:59:55 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 245 seconds) |
| 2025-12-01 21:00:11 +0100 | <monochrom> | Yeah my reason too. |
| 2025-12-01 21:00:12 +0100 | ljdarj1 | (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds) |
| 2025-12-01 21:00:21 +0100 | <[exa]> | lol makes me wonder why this didn't get to my homeworks |
| 2025-12-01 21:00:23 +0100 | <[exa]> | good point |
| 2025-12-01 21:00:25 +0100 | <[exa]> | :D |
| 2025-12-01 21:02:36 +0100 | <EvanR> | [x/y] makes no sense to me |
| 2025-12-01 21:02:53 +0100 | <EvanR> | I can never remember what is being replaced with what |
| 2025-12-01 21:03:12 +0100 | <chromoblob> | me too |
| 2025-12-01 21:03:18 +0100 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
| 2025-12-01 21:03:29 +0100 | <[exa]> | and then you read a paper and they do [x\y] to disambiguate for good |
| 2025-12-01 21:03:45 +0100 | <monochrom> | Last time I was very inspired by Python "<expr1> if <exprBool> else <expr0>". (I was primed; I was first inspired by Hoare's "<expr1> ◁ <exprBool> ▷ <expr0>".) |
| 2025-12-01 21:03:55 +0100 | trickard | (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-01 21:04:08 +0100 | trickard_ | (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 2025-12-01 21:04:27 +0100 | iqubic | (~sophia@2601:602:9203:1660:c137:59bd:3f5b:b4a7) (Remote host closed the connection) |
| 2025-12-01 21:04:51 +0100 | <mauke> | monochrom: have you already done here-docs? |
| 2025-12-01 21:05:07 +0100 | <monochrom> | Python does not allow <exprBool> to be its own "if-else" but it is easy to see there would be no ambiguity, so I allow it in my homework! |
| 2025-12-01 21:05:20 +0100 | <monochrom> | No. |
| 2025-12-01 21:07:26 +0100 | <mauke> | that's one of the more interesting wrinkles I know of that are in real use |
| 2025-12-01 21:07:50 +0100 | <[exa]> | oh I wish editors had proper support for hiding these (and popping them out) |
| 2025-12-01 21:08:21 +0100 | <tomsmeding> | EvanR [exa]: the way I remember the meaning of [x/y] is "multiply by x, then divide by y"; if you have 2*3*4*5 and you do *17/5 you replace the 5 with 17, so E[x/y] means replace y with x |
| 2025-12-01 21:08:37 +0100 | <tomsmeding> | it doesn't quite work because it replaces _all_ occurrences, not just one |
| 2025-12-01 21:09:06 +0100 | kuribas | (~user@2a02-1810-2825-6000-91ce-6f5d-5219-16e3.ip6.access.telenet.be) (Remote host closed the connection) |
| 2025-12-01 21:09:22 +0100 | <mauke> | tomsmeding: yeah, that's just (morally) wrong |
| 2025-12-01 21:09:32 +0100 | <EvanR> | lol |
| 2025-12-01 21:09:45 +0100 | <chromoblob> | i made that mnemonic too, but then i saw [x/y] defined to mean the opposite, replace x with y |
| 2025-12-01 21:09:59 +0100 | <EvanR> | maybe if you insist that it's a string of multiplied primes |
| 2025-12-01 21:10:00 +0100 | <[exa]> | I'm grateful for the mnemonic |
| 2025-12-01 21:10:02 +0100 | <[exa]> | but aaaaaaaaaaaaaa |
| 2025-12-01 21:10:06 +0100 | <EvanR> | at most one each |
| 2025-12-01 21:10:11 +0100 | <mauke> | the correct syntax should be ${foo/x/y} |
| 2025-12-01 21:10:18 +0100 | <tomsmeding> | > The header of the syntax file lists the Haskell-Cafe ML as the maintainer. This is so unusual for a distributed syntax file that it might be the only example. |
| 2025-12-01 21:10:20 +0100 | <tomsmeding> | lol! |
| 2025-12-01 21:10:28 +0100 | <[exa]> | EvanR: [goedel voice:] ofcourse it's a string of multiplied primes! |
| 2025-12-01 21:10:55 +0100 | <EvanR> | well 4 is not prime |
| 2025-12-01 21:11:01 +0100 | <tomsmeding> | yes I'm not saying it's good notation or that the mnemonic is perfect, but it works for me :p |
| 2025-12-01 21:11:20 +0100 | <monochrom> | [x/y/g] >:) |
| 2025-12-01 21:11:29 +0100 | <tomsmeding> | and authors that use it the other way round should just be shooed back to their writing desk and replace / with := |
| 2025-12-01 21:11:51 +0100 | spew | (~spew@user/spew) (Quit: spew) |
| 2025-12-01 21:12:18 +0100 | <tomsmeding> | I read it as "E with x for y" |
| 2025-12-01 21:12:26 +0100 | <[exa]> | tomsmeding: isn't that quite inconvenient to read if your replacement is a long term |
| 2025-12-01 21:12:43 +0100 | <[exa]> | (probably not a concern for symbolic logic papers tho) |
| 2025-12-01 21:12:46 +0100 | <tomsmeding> | if the term to replace is long, you mean? |
| 2025-12-01 21:13:14 +0100 | <[exa]> | yes, [blab-las+dweur*yiwuerywer/y] looks unhappy |
| 2025-12-01 21:13:32 +0100 | <tomsmeding> | oh right |
| 2025-12-01 21:13:33 +0100 | <EvanR> | that they never actually write concrete examples is why it's hard to remember |
| 2025-12-01 21:13:40 +0100 | <EvanR> | it's like... x and y |
| 2025-12-01 21:13:45 +0100 | <tomsmeding> | EvanR: no it's because the notation is bad |
| 2025-12-01 21:13:49 +0100 | <EvanR> | also that |
| 2025-12-01 21:14:08 +0100 | <[exa]> | tomsmeding: anyway yeah that PR was full of surprise |
| 2025-12-01 21:14:37 +0100 | <tomsmeding> | like, yes I use vim heavily and I write lots of haskell, but no I would not particularly like to be listed as maintainer of the haskell syntax file lol |
| 2025-12-01 21:14:45 +0100 | <tomsmeding> | if I was, I'm not sure I would have passed that change |
| 2025-12-01 21:14:56 +0100 | <tomsmeding> | people who write fmap ` fmap ` fmap can just do that in some other editor |
| 2025-12-01 21:15:24 +0100 | <tomsmeding> | also, if I'd be listed, I would feel the responsibility to make sure that the syntax file is actually correct |
| 2025-12-01 21:15:30 +0100 | <tomsmeding> | which I do _not_ want to do because that's a hell of a job |
| 2025-12-01 21:15:36 +0100 | <tomsmeding> | and probably impossible |
| 2025-12-01 21:15:46 +0100 | <tomsmeding> | it's best-effort anyway |
| 2025-12-01 21:17:14 +0100 | <chromoblob> | >:( |
| 2025-12-01 21:17:47 +0100 | <ski> | EvanR : the idea with `[x/y]' is that `y' is "divided away" and `x' is "multiplied in", in its place(s) |
| 2025-12-01 21:18:10 +0100 | <EvanR> | yes I saw that just now |
| 2025-12-01 21:18:24 +0100 | <ski> | ah, tomsmeding said |
| 2025-12-01 21:18:30 +0100 | <EvanR> | "interesting" |
| 2025-12-01 21:18:35 +0100 | <mauke> | then they should have written [/y*x] |
| 2025-12-01 21:18:49 +0100 | <tomsmeding> | no, clearly that's dividing by _both_ y and x |
| 2025-12-01 21:18:53 +0100 | <EvanR> | lol |
| 2025-12-01 21:19:00 +0100 | <tomsmeding> | (/s) |
| 2025-12-01 21:19:10 +0100 | <EvanR> | use reverse polish obv |
| 2025-12-01 21:19:24 +0100 | <tomsmeding> | [x*y/]? |
| 2025-12-01 21:19:25 +0100 | <EvanR> | [y / x *] |
| 2025-12-01 21:19:32 +0100 | <tomsmeding> | ah right |
| 2025-12-01 21:19:56 +0100 | <EvanR> | now we have the other notation almost |
| 2025-12-01 21:20:19 +0100 | <ski> | [y x * /] |
| 2025-12-01 21:22:23 +0100 | <ski> | the phrase "substitute `x' for `y' in `...'" always sounded a bit awkward, to me |
| 2025-12-01 21:23:39 +0100 | <[exa]> | [x/y] ~~flip~~> ]y/x[ ...intuitive! |
| 2025-12-01 21:24:47 +0100 | skum | (~skum@user/skum) skum |
| 2025-12-01 21:27:19 +0100 | dhil | (~dhil@5.151.29.137) (Ping timeout: 240 seconds) |
| 2025-12-01 21:29:42 +0100 | <tomsmeding> | makes me think of the notation for (half)-open intervals [x,y[, as opposed to the (to me) more usual [x,y) |
| 2025-12-01 21:29:58 +0100 | <EvanR> | [x,y[ looks insane |
| 2025-12-01 21:29:58 +0100 | <ski> | both look quite ugly, to me |
| 2025-12-01 21:29:59 +0100 | <RMSBach> | That phrase sounds pretty normal to me. It is at least more immediately obvious than the notation under discussion. |
| 2025-12-01 21:30:38 +0100 | <tomsmeding> | EvanR: actually a graphing library gave me that at some point, and I spent multiple minutes thinking that there must be a bug in the legend creation before I figured out what they were trying to tell me |
| 2025-12-01 21:31:21 +0100 | <[exa]> | if someone's syntax looks like a stupid joke in #haskell, you know there's an issue |
| 2025-12-01 21:31:29 +0100 | peterbecich | (~Thunderbi@172.222.148.214) (Ping timeout: 260 seconds) |
| 2025-12-01 21:31:40 +0100 | <ski> | for a long time i had to second-think, reminding myself that `y' was being replaced by `x', rather than the other way around, in that "substitute .. for .. in .." phrase |
| 2025-12-01 21:32:27 +0100 | <[exa]> | what's the better way to write [x,y) interval btw? (I thought that one is pretty much standard) |
| 2025-12-01 21:32:47 +0100 | <ski> | (my immediate reading, when first encountering it, was the opposite reading of the intended one) |
| 2025-12-01 21:33:04 +0100 | <EvanR> | substitute x, does this phrase mean x is going in, or being replaced |
| 2025-12-01 21:33:14 +0100 | <EvanR> | maybe the issue is with english |
| 2025-12-01 21:33:28 +0100 | <ski> | mm |
| 2025-12-01 21:33:42 +0100 | <RMSBach> | <ski> I won't fault anyone for needing a moment to think about it, but it follows standard English, ex "substitute cornstarch for AP flower if necessary" |
| 2025-12-01 21:35:09 +0100 | <ski> | [exa] : mayhaps ⌜{x ≤ < y}⌝, or something along those lines .. |
| 2025-12-01 21:35:42 +0100 | <RMSBach> | I will admit that if we change the preposition to "with" then the order of the nominal phrases can be switched at least colloquially. |
| 2025-12-01 21:36:22 +0100 | <[exa]> | ski: yeah I sometimes use that too if I've got the middle value to write |
| 2025-12-01 21:37:08 +0100 | <[exa]> | RMSBach: tbh for non-english people the meaning of `for` is completely inexplicable in the phrase |
| 2025-12-01 21:39:49 +0100 | <RMSBach> | exa: Prepositions are often confusing without full command of a foreign language. `por` and `para` present problems for English speakers learning English. But point taken. |
| 2025-12-01 21:40:00 +0100 | <ski> | RMSBach : yea, i'm not really much familiar with the phrase, in a colloquial sense, either |
| 2025-12-01 21:40:27 +0100 | <ski> | (also, if you respond like that, it looks like you're quoting me, which looks confusing) |
| 2025-12-01 21:41:08 +0100 | <ski> | [exa] : which middle value ? |
| 2025-12-01 21:41:43 +0100 | <RMSBach> | I vote for `[y:=x]` fwiw] |
| 2025-12-01 21:43:48 +0100 | <RMSBach> | I think the majority of lambda calculus materials I have read used that notation for beta reduction |
| 2025-12-01 21:44:02 +0100 | <ski> | there's also `[y |-> x]' |
| 2025-12-01 21:44:54 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 21:45:17 +0100 | <EvanR> | x gets replaced with y, got it |
| 2025-12-01 21:45:33 +0100 | <ski> | (the idea being that you have a mapping from variables to terms, and then you (monadically) extend that to also apply to arbitrary term inputs) |
| 2025-12-01 21:45:35 +0100 | <EvanR> | or is it y transforms to x |
| 2025-12-01 21:45:54 +0100 | <ski> | the latter (is what i would say) |
| 2025-12-01 21:46:02 +0100 | <RMSBach> | That's how I read it too |
| 2025-12-01 21:46:37 +0100 | <EvanR> | visually a think of substitution as some term coming in and overwriting the x |
| 2025-12-01 21:46:38 +0100 | <RMSBach> | I guess interpretation flies in the face of the intelligibility of the mark even when we escape natural language |
| 2025-12-01 21:47:11 +0100 | <ski> | but i'm sure someone would hold the other interpretation, just to confuse things |
| 2025-12-01 21:52:01 +0100 | ouilemur | (~jgmerritt@user/ouilemur) (Quit: WeeChat 4.7.0) |
| 2025-12-01 21:53:20 +0100 | <haskellbridge> | <doc> well now I'm confused too.. is [y:=x] and [y |-> x] "x is replaced by y" or "y is replaced by x", because the former can be interpreted as "y gets plugged into wherever x occurs", and the latter is "y gets expanded into x" |
| 2025-12-01 21:53:33 +0100 | <merijn> | What does ghcup base it's recommend versions on? |
| 2025-12-01 21:53:35 +0100 | karenw | (~karenw@user/karenw) (Ping timeout: 240 seconds) |
| 2025-12-01 21:54:26 +0100 | <mauke> | vibes? |
| 2025-12-01 21:55:01 +0100 | <ski> | [r] x = t if r(x) defined and t = r(x) |
| 2025-12-01 21:55:08 +0100 | <ski> | [r] x = x if r(x) undefined |
| 2025-12-01 21:55:17 +0100 | <ski> | [r] (t u) = ([r] t) ([r] u) |
| 2025-12-01 21:55:18 +0100 | <geekosaur> | mostly on widest compatibility/lack of bugs |
| 2025-12-01 21:55:19 +0100 | <ski> | ... |
| 2025-12-01 21:55:51 +0100 | <geekosaur> | for example, cabal was for a long time held back to an old version due to a windows bug that only got fixed when a windows dev found some time to work on it |
| 2025-12-01 21:56:16 +0100 | <geekosaur> | ghcc was held back to 9.4 until 9.6.7 fixed a key bug |
| 2025-12-01 21:56:50 +0100 | <ski> | this is similar to defining a linear transformation, from a based vector space, by specifying where it maps the basis vectors, and then extending it by linearity |
| 2025-12-01 21:57:08 +0100 | <fgarcia> | would it be possible to use those terms in functions? then f(y) could be written as a substitution for f(x) |
| 2025-12-01 21:57:51 +0100 | <EvanR> | ski, I'm not understanding your definitions above. What's r(x) |
| 2025-12-01 21:59:08 +0100 | <ski> | doc : for `[y:=x]', it's "y is replaced by x" (i've not seen anyone use the opposite interpretation here, thankfully). for `[y |-> x]', it also (imho) ought to be "y is replaced by x", but i'm pretty sure i've seen at least somewhere the opposite interpretation |
| 2025-12-01 21:59:37 +0100 | <geekosaur> | *ghc |
| 2025-12-01 22:00:18 +0100 | <ski> | doc : think of `[y:=x]' as `x' is assigned into mutable slot `y', or as `y' is now defined as being `x' |
| 2025-12-01 22:01:25 +0100 | <haskellbridge> | <doc> okay that's a relief, all this is what i'd say too, but realized that the other direction (esp with |->) also has some sort of rationale |
| 2025-12-01 22:02:10 +0100 | <tomsmeding> | [exa]: [x,y) is the standard one, it's [x,y[ that I was complaining about |
| 2025-12-01 22:04:17 +0100 | <ski> | EvanR : `r' is a substitution, a (value) environment, a (partial) function from variables to terms. so, if `r' is the (partial) function `y |-> x' (think `\Y -> X', in Haskell notation), and `t' is `f y x', then `[r] t' is `[y |-> x] (f y x)' (`subst (\Y -> X) (App (App F Y) X)') becomes `f x x' (`App (App F X) X') |
| 2025-12-01 22:05:02 +0100 | <tomsmeding> | merijn: the opinion of maerwald, which is iirc based on various things including known bugs and HLS support; I recall him saying at some point that he was refusing to move the 'recommended' flag to push GHC developers to fix some installation issue on FreeBSD (iirc) |
| 2025-12-01 22:06:17 +0100 | <ski> | (of course, for Haskell, the "if ... undefined" would have to be modelled by `Maybe', or (making all substitutions total) by constructing the `y |-> x' substitution by overriding from the identity substitution) |
| 2025-12-01 22:06:44 +0100 | <ski> | fgarcia : how do you mean ? |
| 2025-12-01 22:08:34 +0100 | <ski> | tomsmeding : i believe `[x,y)' is in english-influenced, and `[x,y[' in german-influenced. not sure about french nor russian |
| 2025-12-01 22:08:57 +0100 | <tomsmeding> | possibly, yes |
| 2025-12-01 22:09:06 +0100 | <tomsmeding> | though here in the netherlands we do [x,y) too |
| 2025-12-01 22:09:39 +0100 | <ski> | (here it's `[x,y[') |
| 2025-12-01 22:09:54 +0100 | <tomsmeding> | "here" is sweden? |
| 2025-12-01 22:10:09 +0100 | <ski> | aye |
| 2025-12-01 22:10:28 +0100 | Googulator60 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-01 22:10:44 +0100 | Googulator60 | (~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) |
| 2025-12-01 22:11:44 +0100 | <merijn> | hmmm |
| 2025-12-01 22:11:56 +0100 | <merijn> | cabal 3.16 seems to have a stupid bug >.> |
| 2025-12-01 22:11:59 +0100 | <merijn> | "[Info] . already exists. Backing up old version in ..save0" |
| 2025-12-01 22:12:03 +0100 | <merijn> | yeah...no shit |
| 2025-12-01 22:12:11 +0100 | <tomsmeding> | ski: Wikipedia claims that ]a,b[ was introduced by Bourbaki https://en.wikipedia.org/wiki/Interval_(mathematics)#Notations_for_intervals |
| 2025-12-01 22:12:23 +0100 | <ski> | ah, interesting |
| 2025-12-01 22:12:24 +0100 | <tomsmeding> | merijn: what are you trying to do |
| 2025-12-01 22:12:31 +0100 | <merijn> | tomsmeding: Just "cabal init" |
| 2025-12-01 22:12:34 +0100 | <tomsmeding> | lol |
| 2025-12-01 22:12:48 +0100 | <merijn> | tomsmeding: To set up my AoC repo |
| 2025-12-01 22:13:25 +0100 | <tomsmeding> | merijn: I do not get that if I run 'cabal init' in an empty dir |
| 2025-12-01 22:13:48 +0100 | <merijn> | tomsmeding: Do you have it set to interactive? |
| 2025-12-01 22:14:00 +0100 | <tomsmeding> | I had to press enter like a 100 times, so I presume yes |
| 2025-12-01 22:14:21 +0100 | <merijn> | My directory just has a bunch of other directories in it from previous years |
| 2025-12-01 22:14:42 +0100 | <tomsmeding> | but doesn't `cabal init` start a new package in the _current_ directory? |
| 2025-12-01 22:14:51 +0100 | <merijn> | It should, yes |
| 2025-12-01 22:15:09 +0100 | <ski> | "Some authors such as Yves Tillé use ]a, b[ to denote the complement of the interval (a, b); namely, the set of all real numbers that are either less than or equal to a, or greater than or equal to b." |
| 2025-12-01 22:15:46 +0100 | <tomsmeding> | merijn: if I `mkdir a` `mkdir b` `cabal init` then I still don't get your message |
| 2025-12-01 22:16:01 +0100 | <tomsmeding> | ski: long live ambiguous notation in mathematics |
| 2025-12-01 22:16:18 +0100 | <merijn> | tomsmeding: I think it's because my cabal.config has "application-dir: ." (i.e. source should be in root of the directory, not a subdir) |
| 2025-12-01 22:16:27 +0100 | <tomsmeding> | ah |
| 2025-12-01 22:16:28 +0100 | <merijn> | And that breaking in recent cabal |
| 2025-12-01 22:16:38 +0100 | <tomsmeding> | possibly, yes, I haven't changed those defaults |
| 2025-12-01 22:16:48 +0100 | <tomsmeding> | bug report time? |
| 2025-12-01 22:17:44 +0100 | <jreicher> | lortabac: yeah I was always meaning what dminuoso ended up saying, but I was making a bit of a joke. When people talk about doing anything with types they really mean runtime tag checking, i.e. some kind of metadata-based control. And this is probably why you say it provides a meaning to raw bytes. You can smuggle some kind of pseudo-semantics into any kind of generic metadata. The joke I'm making is that this shouldn't be called a |
| 2025-12-01 22:17:44 +0100 | <jreicher> | "type". Of course I don't get to say how people use a word though. |
| 2025-12-01 22:18:00 +0100 | <jreicher> | ...anything with types at runtime... |
| 2025-12-01 22:18:59 +0100 | <tomsmeding> | it seems the theme of today is "words mean different things to different people" |
| 2025-12-01 22:19:15 +0100 | <jreicher> | OMG. That never happens. |