type file { } (file result_A) process_A (file input_A) { app { blackbox_A "string_param_A" @filename(input_A) stdout=@filename(result_A); } } (file result_B) process_B (file input_B) { app { blackbox_B "string_param_B" @filename(input_B) stdout=@filename(result_B); } } (file result_C) process_C (file input_C) { app { blackbox_C "string_param_C" @filename(input_C) stdout=@filename(result_C); } } (file outputFromSplitter) splitter(file inputToSplitter) { outputFromSplitter = process_A(inputToSplitter); inputToSplitter = process_A(outputFromSplitter); outputFromSplitter = process_A(inputToSplitter); } file input_to_A ; file output_from_A ; file output_from_B ; file output_from_C ; input_to_A = splitter(input_to_A); output_from_A = process_A(input_to_A); output_from_B = process_B(output_from_A); output_from_C = process_C(output_from_B);