[Haskell-cafe] Naming scheme for partial functions

Michael Snoyman michael at snoyman.com
Thu Jan 30 17:33:21 UTC 2014


Greg Weber and I have been discussing some changes to mono-traversable[1].
One of the modules we provide is Data.NonNull, which provides total
versions of functions like `last`. A change we're looking at would require
having a partial version of `last` defined in a separate typeclass
(IsSequence), which would allowing for more optimized implementations of
the total `last` function for datatypes which support it (e.g., strict
ByteStrings).

But what should we name it? I'm sure everyone's familiar with the `unsafe`
naming convention, but that's not appropriate here: standard usage shows
`unsafe` meaning a function which can cause a segfault.

I initially named it `partialLast`, but partial can also imply partial
function application. Greg brought up the idea of suffixing the function
with something like `Throws` or `Errors`, which I think I'm a bit partial
to myself[2].

So my questions are:

* Is there some already used naming scheme out there for partial functions
which I've missed?
* Do people have any ideas to throw into the mix?

Michael

[1] https://github.com/snoyberg/mono-traversable/pull/21
[2] Pardon the pun.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20140130/d57da26c/attachment.html>


More information about the Haskell-Cafe mailing list