Vertex truncation

I thought I'd open this one up to the floor because I'm can't decide what the most easy and useful parameters and return values should be. I'd rather the function didn't make any geometrical assumptions but rather stick to handling the topological changes. This results in a new face being created at the vertex whose vertices are all coincident. Usually the desire is to move these vertices to a specified parameter along the adjacent (original) halfedge. As such it must be easy to identify the necessary vertices that need adjusting after the topology has been altered. The vertices in question will be the start vertex of each of the outgoing halfedges of the truncated vertex.

The function currently takes the index of the vertex to be truncated as it's sole parameter and returns the index of the newly created vertex-face. Is this sensible?

I'm also toying with basing everything on halfedges (as with SplitVertex/MergeFace/etc.)...