Balrogs would be under the Maiar category, but most have no recorded name. I suppose the one from the trilogy could have been listed as "Durin's Bane."
I think the way F# implemented it is pretty good: if you want to use a keyword or whitespace in a variable or function name, it has to be enclosed in double backticks.
e.g:
[<Property>]
let ``Reverse of reverse of a list is the original list`` (xs:list<int>) =
List.rev(List.rev xs) = xs
I'm not sure if F#'s implementation is good enough. The specification [1] suggests that it doesn't do any additional normalization to the resulting identifier, so otherewise identical identifiers with a single space, a single tab and two spaces would be different. I would expect them to collapse into a single space character.
Mostly because it's rare to see identifiers with whitespace allowed after all. So this has to fulfill some specific needs.
The main use case here seems like self-describing properties that will be hardly referenced elsewhere. In principle this doesn't really need any new syntax, as you can put the description into the attribute (`[<Property>]` here) and the name itself can remain arbitrary or even be made anonymous. But we've got textual identifiers instead. So I guess that some code does refer to those textual identifiers, and if that's the case, being able to ignore invisible differences when comparing textual identifiers looks like a good idea as well.
You wouldn't necessarily need to track every change, you could just have 2 tables, one which contains the last "saved" version of the document, and one which contains the last modified version of the document. Upon opening after a crash, if there is a more recent modified version, the program will ask if you want to load that version.
For my preferred layout in QMK, I have Caps Lock mapped to Caps Lock only on tap, and Control on hold. I also have the right Alt key mapped to Backspace on tap, Alt on hold, to give me an additional backspace which I can hit with my thumb, keeping the rest of my fingers on the home row.
This issue is only cosmetic as the other commenter explained. vim won't insert the character until you indicate you're not invoking the keymap (either by waiting or by typing other characters).
If you want a plugin that makes it so that the j appears immediately regardless of whether you're trying to invoke the keymap or not, you can use something like https://github.com/nvim-zh/better-escape.vim
> remapping jk in insert mode results in lag after typing 'j'
It only creates lag if you actually want to type 'jk'. Otherwise, you keep typing like normal, and it doesn't matter. You should be able to config the delay, too. I use `fd`, and I can count the number I've noticed it.
I would say the core goal of most living organisms is to propagate, rather than survive, otherwise you would see males of some species like Praying Mantis avoiding mating to increase their longevity.
https://www.cbc.ca/news/canada/kfc-halal-menu-boycott-1.7258...