re-use result type instead of isomorphic Cresult type

I think when Cresult was originally defined, result might not have been
polymorphic enough, but now it is.