let
fun unturn(x) = turn(turn(turn(x)))
fun pile(x, y) = unturn(sew(turn(y), turn(x)))
val row1 = sew(turn(b), unturn(b))
val row2 = sew(unturn(b), turn(a))
val row3 = sew(turn(a), unturn(a))
val top_left_cell = pile(row1,row2)
fun make_square(x) = pile(sew(x, turn(x)), sew(unturn(x), turn(turn(x))))
in
make_square(make_square(top_left_cell))
end