allow use different types of arguments in any position
add docblock and comments
fix comment
#5320 - turn protected members into privates before merge
Revert "#5320 - turn protected members into privates before merge"

This reverts commit a00d1c45445f2d2347b29bb0779346222c507e07.
#5320 - removed unused protected method, cleaned up infinite if/else chains that should never be merged
#5320 - adding missing docblock
#5320 - cs fixes in the `Operator` predicate
#5320 - Removed unused return value assignments
#5320 - fixed deprecation message
#5320 - fixed deprecation message
Merge branch 'feature/#5320-allow-different-types-of-arguments-in-any-position' into develop

Close #5320