"I learned my lesson..."
I read the mailing list and don't see how that was a negative experience. Only one of the contributors had an unfavorable response.
Even if they don't implement your code as-is, it looks like you had a good idea including a good implementation that led to a lot of productive discussion.
Only one of the contributors had a strong objection and despite that, the conversation continued.
Don't take it personal if your code isn't directly incorporated into a project. Despite that, your contribution led to further discussion and helped better focus the intent of the project.
Working on an OSS project is very much about collaboration. Code contributions may not always be incorporated into the codebase, especially on projects like ocaml that have a specific focus and changes have far-reaching impacts on the userbase.
That's not a bad thing. You did well.
As a concrete example, I implemented break and continue for OCaml compiler because having for loop without break/continue seems to me obviously a bad idea. Although I learned a lot about OCaml compiler internals, this went nowhere. I learned my lesson, and now I will certainly "endlessly discuss" possibilities of break/continue first, without writing a single line of code. In my opinion, berating people for this is placing undue burden on contributors.
http://caml.inria.fr/pub/ml-archives/caml-list/2008/04/ce14d...