original.name="ConstrainedList_Valid_2" ====== >>> main.whiley type nat is (int x) where x >= 0 function abs(int[] items) -> nat[] requires |items| > 0: return abs(items, 0) function abs(int[] items, nat index) -> nat[] requires (index <= |items|) && all { i in 0 .. index | items[i] >= 0 }: if index == |items|: return (nat[]) items else: items[index] = abs(items[index]) return abs(items, index + 1) function abs(int x) -> nat: if x >= 0: return (nat) x else: return (nat) -x public export method test() : int[] xs = [1, -3, -5, 7, -9, 11] xs = abs(xs) assume xs == [1,3,5,7,9,11] ---