<div dir="ltr">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).<div>


<br></div><div>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.</div>


<div><br></div><div>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].</div>


<div><br></div><div>So my questions are:</div><div><br></div><div>* Is there some already used naming scheme out there for partial functions which I've missed?</div><div>* Do people have any ideas to throw into the mix?</div>


<div><br></div><div>Michael<br><div><br></div><div>[1] <a href="https://github.com/snoyberg/mono-traversable/pull/21" target="_blank">https://github.com/snoyberg/mono-traversable/pull/21</a></div></div><div>[2] Pardon the pun.</div>

</div>