9 using namespace osl::move_classifier;
 
   14     see(See::see(*info.state, move, info.pin[info.state->turn()],
 
   15                  info.pin[
alt(info.state->turn())])),
 
   19     player(m.player()), stand_index_cache(-1)
 
   39   const Piece attack = info.
state->findCheapAttack(
alt(player), move.to());
 
   42         || ! info.
state->hasEffectByPiece(info.
state->pieceAt(move.from()),
 
   54     = info.
state->findCheapAttack(
alt(player), move.to());
 
   57     const Square king = info.
state->kingSquare(defense);
 
   72     = info.
state->findCheapAttack(
alt(player), move.to());
 
   75     return ! info.
state->hasEffectIf(attack.
ptypeO(), move.to(),
 
   87       && info.
state->countEffect(
alt(player), move.to()) == 1
 
   88       && info.
state->hasEffectByPiece(defender, move.to()))
 
  101       && ! info.
state->hasEffectIf(move.ptypeO(), move.to(), threat_at))