Use a type inference algorithm with subtyping and parametric polymorphism to describe workflows and tools in terms of type transformations.