(Ramda author here)
Both Bergi's comment and Nicholas Tower's answer are correct. This is simply a unique identifier to ensure that you don't actually pass something meaningful that might be mistaken by Ramda for a placeholder. The direct inspiration for the naming came from the transducer protocol, which in turn would have been inspired by the well-known symbol hack.
When this was chosen, we hoped that others doing functional libraries might use the same thing, for interoperability. While that never happened, it still seems a better choice than the alternatives: We couldn't choose to use a Symbol as we were supporting ES5 and even ES3. We could have chosen to use the library itself as a placeholder, the way lodash does, but that really only made sense because the standard naming for lodash (_
) looks like the placeholder from other languages. Or we could have just used an arbitrary object, but that would have required us to test by reference, which felt odd in a functional library. Or we could have just used undefined
as the signal, but that would not allow someone to actually use undefined
as a value.
So we ended up with a standard followed by no one else, but which is at least easy to use and somewhat familiar to Javascript users.