Off hand I only see two solutions:
. spec'ing a function to allow registering translators for new
handle types and forcing the implementors of the i/o chapter to
always use the same choice -- pointers or ints -- as the core
MPI implementors
or
. having a different translation function for each object type.
You would then pass it an object of the requisite type and the
layered library would be responsible for its implementation.
I think the first choice is yukky. But, it feels too late to introduce
the number of functions implied by the second choice.
Comments?