subint Left {0..2}; subint Right {-1..1}; subint Total {-1..3}; interface ILeft { in Left e(); behaviour { on e: { [true] reply(0); [true] reply(1); [true] reply(2); } } } interface IRight { in Right e(); behaviour { on e: { [true] reply(-1); [true] reply(0); [true] reply(1); } } } interface ITotal { in Total e(); behaviour { on e: { [true] reply(-1); [true] reply(0); [true] reply(1); [true] reply(2); [true] reply(3); } } } component addint { provides ITotal total; requires ILeft left; requires IRight right; behaviour { on total.e(): { Left l = left.e(); Right r = 0; r = right.e(); reply(l+r); } } }