That there are two types of path separators is annoying. So much so that a person might spend six months doing little else than writing about the history of the Microcomputer. Such a person would find themself somewhat out of date when they decide to reconnect in order to find out if everything has been fixed yet.
But alas! We still can't determine if a relative path is absolute without mentioning caveats.
On the other hand, we're only likely to be faced with a path that isn't explicitly absolute when we are given a path that is, to which the first must be applied.
But our operator, apply_relative_path, makes the first-mentioned path the second parameter, for reasons which are possibly impossible to detail in a manner which leaves no room for argument. As there is no reason for it not to be a function, however, we conclude that it must be independent of the filesystem. And this, in turn, implies that a path starting with the single dot component, applied to a directory that does not have a trailing separator, must give us the parent of that directory. Corollaries are a bit old-fashioned; but I must use one or mock people who don't know what they are: when the second parameter does not start with a (single or double) dot component, the absolute path must be assumed to be a directory.
This is merely a hypothetical exercise: I have yet the need to implement such a routine; but it might be useful when we find ourselves looking at combinations of projects outside of a distribution.
I once heard a theory that has the implication that leaving home is a waste of time and money. But there's no returning: all we do is invoke memories when we think of the place; and call people who we think know who we are. And now we have us a big old stack, don't we?