Replying to @defnotbeka @CarlHedgren
🔥
Now I want a dialect of Haskell written this way. Gruntskell?
Create a Brobdingnagian monstrosity of 1.2m lines of Haskell. That way, the tooling you create to make working on it tolerable will be practically instant on codebases that don’t need 18 lanes for a 3 point turn.
(With love and appreciation, @mercury)
The account isn’t called @preciseandcarefulhaskelltips Emily
Replying to @CarlHedgren
Frankly in my day to day as a Haskell dev I don’t call it anything at all
“Semigroup” and “Monoid” are exclusionary terminology. Prefer “smashy-smashy” and “smashy-smashy-with-extra-nothing”.
It's spooky. It's esoteric. It's also the key to understanding the rise and relevance of functional programming. wired.trib.al/qNfcKv9
Replying to @kerckhove_ts
This does have the flavour of “an ethical engineer would never write a procedure ‘destroyBaghdad’ - it should take a city as a parameter”
Replying to @kerckhove_ts
True. And if we must be evil, we ought to at least be efficient.
Tired of probabilistic correctness guarantees?
instance Arbitrary UUID where
…
shrink uuid = case UUID.toWords uuid of
(a,b,c,d) -> [UUID.fromWords a' b' c' d' | a' <- sw a, b' <- sw b, c' <- sw c, d' <- sw d]
where sw w = take 10 $ iterate (`div` 2) w
The great thing about using Haskell with LLMs is that you can be absolutely precise about the nonsense you are ingesting and emitting.
@DRMacIver has pointed out that Hypothesis will report all the assertions that fail rather than just the first. A decadent affordance to be avoided by the faithful.
Yes, it will be extremely difficult to follow what's going on as the counterexample-finding algorithm dances between the different assertions. This is by design, and will help you back into the divine light of Writing Correct Code The First Time.
If you nevertheless insist on putting your inadequacies on display with a suite of property tests, at least be sure to prioritise efficiency over interpretability by making a single god-test that verifies everything possible about a function.










