I'm wondering if returning `null` might not have some subtle "empty vs null" issues. In particular, it might come as a surprise that we don't have the invariant that `sameTail(s, extentsion(s))`.

Also, arguably, if we do this for strings, then genericity woud dictate we outright return `R.init` (which I don't think we should be doing).

Appart from this (mostly rhetoric) question, the pull looks fine to me. Maybe @jmdavis has an opinion on the matter?