5 ms·
I'll blow my own trumpet and promote my own Haskell capabilities library, Bluefin: https://hackage.haskell.org/package/bluefin https://hackage.haskell.org/packa
by tome 20d ago
I'll blow my own trumpet and promote my own Haskell capabilities library, Bluefin: https://hackage.haskell.org/package/bluefin https://hackage.haskell.org/package/bluefin
Bluefin is used in production, and as far as I know capability is not.
- ch4s3 20d agoThat looks really cool. Can you narrow Bluefin.IO to reads/writes separately? One of the things I've worked on is the ability to allow code to read files, even specific files, but deny writes.
- tome 20d agoYeah you can write a capability that encapsulates exactly whatever effects that you like!
- ch4s3 20d agoDid this start as an effect system and then capabilities shook out naturally?
- tome 20d agoYes! It started as an implementation of the effect system I always wanted: effects passed on the value level, rather than implicitly on the type level. Once I'd done that I realise that it was actually a capability system (and that was the better way of describing it, because more people already know what a "capability system" is).
- ch4s3 20d agoThat’s not surprising there’s a lot of mechanical overlap between the two. It’s a really interesting relationship.
- tome 18d agoYeah, I think they're basically identical concepts. I'm writing an article on that topic right now.
- ch4s3 18d agoI’d love to read it!
- tome 18d agoHere you go! It's a complete document, but I'll continue to edit it over the next few days before I announce it. I'd love to hear any thoughts you have. https://h2.jaguarpaw.co.uk/posts/bluefin-capability-system/ https://h2.jaguarpaw.co.uk/posts/bluefin-capability-system/