First of all, reading sources and seeing `proc twoForOneBackConcept(a: 
Countable): Countable` one understands the procedure's signature, what the 
procedure takes and what it returns, oppositely to just using `[T]`, which is, 
int this aspect, almost like in dynamically typed languages: all one can know 
in this example, that the procedure takes one argument and its result is of the 
same type. In general case one cannot even deduce easily that the type should 
support `inc` and `dec` by analyzing the procedure's body - the argument can be 
just passed to another procedure without invoking `inc` or `dec`. So the point 
is, that concepts make generic code more organized and comprehensible, and 
better (more near to the source of problem) error messages are rather an 
additional bonus.

Reply via email to