The template typename `OutputIteratorValueType` was unused. This made specifying it (as suggested by the docs) ineffective, and forbade to use PLY functions e.g. with `boost::function_output_iterator`, or any other output iterator whose `value_type` is `void`.