Using general doc block annotation can confuse the IDE of those who use the library without psalm.
/**
* @template A
* @template B
* @param callable(A):B $f
*/
function(callable $f) {
...
}
Without psalm, the IDE won't resolve correctly the type of $f.
Php doc block annotations should encode type in the best way they support.
Any finer type should be encoded using psalm specific annotations.