     }
 
     /// Executes a move without checking the legality of the move.
-    private func _execute(_ move: Move, promotion: @noescape () -> Piece.Kind) throws {
+    private func _execute(uncheckedMove move: Move, promotion: @noescape () -> Piece.Kind) throws {
         let piece = board[move.start]!
         var endPiece = piece
         var capture = board[move.end]

    #endif

    /// Executes a move without checking the legality of the move.
    private func _execute(_ move: Move) throws {
        try _execute(move, promotion: { ._queen })
    }

    #if swift(>=3)

    }

    /// Executes a move without checking the legality of the move.
    private func _execute(uncheckedMove move: Move, @noescape promotion: () -> Piece.Kind) throws {
        let piece = board[move.start]!
        var endPiece = piece
        var capture = board[move.end]
