added monad interface for OCPs w/ dir. coll. with example

This required lots of little changes. The biggest is OcpPhase now gets RankNTypes for the functions