Newest at the top
2025-03-05 19:15:24 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
2025-03-05 19:13:10 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla |
2025-03-05 19:12:21 +0100 | fp | (~Thunderbi@89-27-29-68.bb.dnainternet.fi) (Ping timeout: 265 seconds) |
2025-03-05 19:11:31 +0100 | srazkvt | (~sarah@user/srazkvt) (Quit: Konversation terminated!) |
2025-03-05 18:59:14 +0100 | <tomsmeding> | (a more charitable take is that this is an implementation paper that assumes you already know how slicing works in principle -- which is fair) |
2025-03-05 18:56:10 +0100 | <tomsmeding> | but I have a rough idea from the discussion here and that's good enough for me now |
2025-03-05 18:55:59 +0100 | <tomsmeding> | that paper looks more technical, especially in presentation (guys, you don't explain something by first giving 200 definitions), than I'm willing to read right now :) |
2025-03-05 18:55:25 +0100 | <tomsmeding> | right |
2025-03-05 18:55:17 +0100 | <dminuoso> | To the point that this could even be a guided process |
2025-03-05 18:55:04 +0100 | <dminuoso> | So if we take the usual approach of "add type signatures to constrain the type checker", the type error slicers would tell you *precisely* the places that actually would have any impact on that process. |
2025-03-05 18:54:20 +0100 | <davean> | You can pick a location you can make more minimal changes in terms of code to bring into alignment |
2025-03-05 18:53:57 +0100 | <dminuoso> | It may also relate to some SML implementations, I am not sure. |
2025-03-05 18:53:56 +0100 | <davean> | The error is them not matching |
2025-03-05 18:53:35 +0100 | <tomsmeding> | anyway this is arguing semantics |
2025-03-05 18:53:33 +0100 | <davean> | The actual error is both places |
2025-03-05 18:53:19 +0100 | <tomsmeding> | the claims that GHC makes are still correct, even if unhelpful |
2025-03-05 18:53:05 +0100 | <dminuoso> | tomsmeding: When GHC blows up in line #a while the actual error is line #b ... |
2025-03-05 18:52:46 +0100 | <dminuoso> | tomsmeding: Well, it depends on how you look at it. |
2025-03-05 18:52:35 +0100 | <davean> | Yah its on hackage. 'miss' I have plenty of complaints about it, and wanted to take it further but it did what I needed |
2025-03-05 18:52:01 +0100 | <srazkvt> | davean: oh interesting, is it public ? i'd like to have a look at it if so |
2025-03-05 18:51:54 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
2025-03-05 18:51:32 +0100 | <tomsmeding> | "incorrect type information" in the abstract sounds like a bug -- they're overselling a little bit there |
2025-03-05 18:51:01 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
2025-03-05 18:50:20 +0100 | <dminuoso> | tomsmeding: https://www.macs.hw.ac.uk/~fairouz/forest/papers/conference-publications/lsfa14.pdf is a nice practical read into the subject, along with some of the theory. |
2025-03-05 18:49:09 +0100 | acidjnk_new | (~acidjnk@p200300d6e7283f5311bd92edfda65283.dip0.t-ipconnect.de) |
2025-03-05 18:48:26 +0100 | <davean> | srazkvt: I wrote an implimentation of git in Haskell which is rather fast. For my use cases it beats the official git implimentation |
2025-03-05 18:48:26 +0100 | <tomsmeding> | *checking |
2025-03-05 18:48:21 +0100 | <tomsmeding> | Ah indeed, I was thinking of the constraint-solving approach to type checkinf |
2025-03-05 18:48:00 +0100 | <dminuoso> | If we assume the type checker to be following its judgements, then every part that was plugged into a premise of a judgement could be part of a type error slice. |
2025-03-05 18:47:28 +0100 | <dminuoso> | Oh okay. Then yeah, though "constraints" probably does not mean typeclass type of constraints here. |
2025-03-05 18:47:17 +0100 | son0p | (~ff@2800:e6:4000:d723:c181:4205:f2b1:437a) son0p |
2025-03-05 18:46:58 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-05 18:46:53 +0100 | <tomsmeding> | If the constraints were all consistent with each other, there would be no type error. |
2025-03-05 18:46:38 +0100 | <tomsmeding> | Well, there was a type error, right? |
2025-03-05 18:44:59 +0100 | <dminuoso> | What's the adjective "inconsistent" doing there? |
2025-03-05 18:44:28 +0100 | <tomsmeding> | dminuoso: subset of the constraints, that will necessarily form some kind of tree structure (I guess not just path), that exhibit the constradiction |
2025-03-05 18:43:53 +0100 | <dminuoso> | tomsmeding: Not sure what you mean by inconsistent path of constraints. |
2025-03-05 18:43:45 +0100 | <srazkvt> | nvm, 2021 |
2025-03-05 18:37:52 +0100 | <srazkvt> | i see gitlib hasn't had an update on hackage since 2023 |
2025-03-05 18:37:01 +0100 | <srazkvt> | say i want to build a small git forge in haskell, should i go with gitlib to have the entire thing in a single thing, or should i have the git handling seperated from web part, maybe in go or c ? |
2025-03-05 18:35:57 +0100 | zungi | (~tory@user/andrewchawk) andrewchawk |
2025-03-05 18:35:18 +0100 | <tomsmeding> | (part of the point of writing that `while`, and programming with it, is that you realise it's really not that different from the fancy combinators you've been avoiding) |
2025-03-05 18:34:52 +0100 | <kaol> | fix is lovely. |
2025-03-05 18:34:35 +0100 | <tomsmeding> | just avoid writing everything in IO |
2025-03-05 18:34:27 +0100 | <tomsmeding> | heck, if you want to write `while :: (a -> Bool) -> (a -> a) -> a -> a` that implements a poor man's while loop, please do! |
2025-03-05 18:33:45 +0100 | <tomsmeding> | that doesn't mean that you need to go all recursion schemes and "I don't use recursion, I must use foldr/scanr etc." |
2025-03-05 18:31:09 +0100 | <tomsmeding> | part of the fun is learning how to solve the same problem, but in a different way |
2025-03-05 18:30:51 +0100 | <tomsmeding> | you _can_, but you'll hate haskell because you don't get to see the kinds of code where it shines |
2025-03-05 18:30:29 +0100 | <tomsmeding> | yes |
2025-03-05 18:30:20 +0100 | <euouae> | oh like iterative and such? |