Haskell šŸ’œ Vibes / Jappie

Despite my quip above. I’ve used LLMs with Haskell, Python, Rust, Typescript as well as other odds and ends so far.

The first time I tried those tools they were usable on python/typescript and worthless on Haskell. I’ve started another trial run a few months back and they seem to work decently on Haskell now.

I don’t know if Jappie used those tools to any meaningful degree in other languages. Because while I agree that encoding and expressing invariants in types is useful. In practice I can’t say I feel like this translates to generated Haskell code being particularly more reliable than generated python code, rust code or anything else.
At least if I take the same amount of effort in expressing invariants. It’s just that instead of adding (partial) type signatures I will add type hints, assertions or plain comments for python. It does make it a bit easier to reason about generated code if it includes type signatures afterwards. And I would rather manually patch up Haskell code than Python code if I have the choice. But that might just be me prefering Haskell in general.

Maybe I just haven’t tried to apply it to complex enough problems in python yet. But so far I can’t say I feel like those tools work better with Haskell. I might think the output, eventually, is better since it’s a Haskell program rather than a python program. But that feels somewhat orthogonal.


> That final 10% of the implementation is now my job, which is getting it correct. I have to ensure the software Claude produces works. I have to think in terms of verification.

Personally I often found that doing the ā€œeasyā€ part of the implementation also makes the verification much easier. I naturally think about the invariants, preconditions and postconditions of various parts of the code while writing it. And often without it adding much more effort to the implementation. And even when using LLMs I think one is much better off when thinking about how to ensure a program is - mostly - correct by construction from the start rather than trying to verify it behaves as expected afterwards. Last but not least because often when letting the LLM do much of the work it’s not even that clear what the expect behavior is, making it even trickier to ensure correctness!

Maybe it’s still faster overall. But I feel like whenever I used these tools for a non-trivial task where I actually cared about it being correct I didn’t get much of a productivity benefit. One of scripts? Random stuff I don’t care if it crash and burns? Sure. But taking any large AI generated diff and ensuring there aren’t bugs is hard work. And sometimes I found myself thinking it would have been easier if I had written it myself in these cases.

4 Likes

I feel like in theory this should matter more for non-oss. If there is no copyright I guess you can’t force people into GPL compliance which will matter for some projects. But for ā€œdo whatever you wantā€ open source licenses it basically doesn’t change anything. But perhaps I’m missing something.

1 Like

I don’t think it matters for anything with a permissive license, but OSS projects only have the license to rely on. Any corporate code, even if not copyrighted, would be guarded jealously so any means of accessing private code without authorization would be prosecuted regardless of the copyright status. Smaller companies may not have a good policy around LLM usage but I’d expect most larger companies to have someone thinking about what the minimum level of transformative change would be, whereas individual contributions to OSS repositories don’t have that level of support

1 Like

Some may enjoy The medium is the message - Wikipedia . I find it a helpful lens in viewing LLMs. It keeps coming to mind again and again, as people seem frequently surprised by the side-effects of adoption. The content (articles, code, images) produced by LLMs is not the higher order bit, but how they change the people and institutions that use them.

3 Likes

This is also hyping on Hacker News at the moment, I think it is relevant to this discussion:

(I have to state here that it is satire, because it is hard to see. It blatantly makes the licensing problem visible).

6 Likes