In the sense I'm using them, readability is the ability to scan as quickly as possible, precision is the ability for someone unfamiliar with the font to be able to reproduce what they see.
I find ligatures more readable because for example I read the => ligature faster than the two-character equivalent. I find it less precise because someone who sees the ligature may not be clear what it's supposed to be (when I first saw a ligature font, I thought it was a unicode character).
⇒, the Unicode symbol, is supported in PureScript and Agda out of the box and is supported in Haskell with UnicodeSyntax extension. Personally, I find the ligatures more confusing than support for the actual Unicode symbols (albeit they can be more cumbersome to type if your editor doesn’t help, i.e. ctrl+k "=>" in Vim). Every time someone uses Fira Code in a presentation someone in the audience always has to ask and now you have to go down a rabbit hole of explaining what ligatures even are.
> albeit they can be more cumbersome to type if your editor doesn’t help, i.e. ctrl+k "=>" in Vim
I wonder why physical keyboards lack unicode support. Virtual keyboards often have great support for this. Older keyboards could also input a lot of symbols:
Could be an issue with agreeing on a standard. But also, the average user would rather have emojis on a keyboard before various math symbols (and, outside work, I'd feel the same).
Readability of programming ligatures is very different for people who are familiar with the language/font, and people who aren't.
For instance, look at the list of ligatures for Fira Code[1] and without referencing the monospace counterparts on the right, tell me if you can tell how to reproduce each one without a lot of guesswork.