Revert "[hack] Remove definition of pipe operator"

Summary: This reverts commit 49bd72d384073cb397a56be00fac33cd139275fc.

We need to support OCaml 3+ in the OSS build, so I'll have to figure out a way
to conditionally compile this... will figure out how to do that at some point,
but let's revert this first.

Reviewed By: @paulbiss

Differential Revision: D1593981
Avoid creating empty intervals.

Summary: They cause flatten_ to get into an infinite loop...

Reviewed By: @elgenie

Differential Revision: D1589759