original.name="ListAssign_Valid_4"
======
>>> main.whiley
final PieceKind PAWN = 0
final PieceKind KNIGHT = 1
final PieceKind BISHOP = 2
final PieceKind ROOK = 3
final PieceKind QUEEN = 4
final PieceKind KING = 5
type PieceKind is (int x) where PAWN <= x && x <= KING
type Piece is {bool colour, PieceKind kind}
final Piece WHITE_PAWN = {colour: true, kind: PAWN}
final Piece BLACK_PAWN = {colour: false, kind: PAWN}
type Board is {bool flag, Piece[] rows}
function f(Board board) -> Board
requires |board.rows| > 0:
//
board.rows[0] = BLACK_PAWN
return board
public export method test() :
Board r1 = {flag: false, rows: [WHITE_PAWN]}
assume f(r1) == {flag:false,rows:[{colour:false,kind:0}]}
---