anchor.diff:                              _ ->
                                   case is_cell_under_attack(
                                          Board, crd_inc(KingStart, {1, 0}),
  -                                       Enemies) of
  +                                       Color) of
                                       true -> [];
                                       _ ->
                                           [crd_inc(KingStart, {2, 0})]
  
positive.code:     [possible_(B, F, C, ?bishop, History),
       possible_(B, F, C, ?rook, History)];
  possible_(B, F, C, ?knight, _History) ->
      [is_empty_or_enemy(B, C, crd_inc(F, {1, 2})),
       is_empty_or_enemy(B, C, crd_inc(F, {-1, 2})),
       is_empty_or_enemy(B, C, crd_inc(F, {1, -2})),
       is_empty_or_enemy(B, C, crd_inc(F, {-1, -2})),
       is_empty_or_enemy(B, C, crd_inc(F, {2, 1})),
       is_empty_or_enemy(B, C, crd_inc(F, {-2, 1})),
       is_empty_or_enemy(B, C, crd_inc(F, {2, -1})),
       is_empty_or_enemy(B, C, crd_inc(F, {-2, -1}))];
  possible_(B, F, C, ?king, History) ->
      [is_empty_or_enemy(B, C, crd_inc(F, {-1, -1})),
       is_empty_or_enemy(B, C, crd_inc(F, {-1, 0})),
  
negative.code:                 [_ | _] ->
                      %% is there is check?
                      case is_cell_under_attack(
                             Board, KingStart, Color) of
                          true -> [];
                          _ -> PossibleCastlings
                      end;
  