# piecename

If*F*is a set filter then

piecenameoperates as follows. First,F

*F*is evaluated in the current position to get a set of squares

*X*. If

*X*does not contain exactly one square, then the filter does not match.

Otherwise, the filter returns a one-character string denoting the name of the contents of the
square in *X*, a character in the string "RBNQKPrbnqkp" or the underscore `_`

.

For example, one way to check whether the previous move was a black underpromotion would be:

piecename from == "p" typename to in "rnb"

This is equivalent to

currentmove ――=♖♗♘

Note that unicode symbols are not returned by in `piecename`

.