Type-checking Liveness for Collaborative Processes with Bounded and Unbounded Recursion (Logical Methods in Computer Science, 2016)