Protocol combinators for modeling, testing, and execution of distributed systems. (15th February 2021)