obj L = l:L and a:A; obj A = integer; var l:L; op O(l:L) = ( l.a = 10; l.l.l.l.l.a = 10; ); op O2(i:integer) = ( O(1); -- ERROR: the integer 1 is not compat with tuple of L and A O({nil,1}); O({{nil,1},2}); O({{{nil,1},2},3}); );