Webmozart Asserts - assertions for input validation

Code
<?php

use Webmozart\Assert\Assert;

class 
Foo
{
    public function 
intOnly(int $value) : int
    
{
        
Assert::greaterThan($value0'%s is not greater than 0');
        
Assert::lessThan($value10'%s is not lower than 10');
        
        return 
$value;
    }
    
    public function 
exactlyTheAnswer($value) : int
    
{
        
Assert::eq($value42'%s is not the right answer.');
        return 
$value;
    }
    
    public function 
sum($collection) : int
    
{
        
Assert::isTraversable($collection'%s is not an array or traversable');
        
$result 0;
        foreach (
$collection as $value) {
            
Assert::integerish($value'%s? We want integer!');
            
$result += $value;
        }
        
        return 
$result;
    }
}

$foo = new Foo();

try {
    
$foo->intOnly(10);
} catch (
Exception $e) {
    
dump($e->getMessage());
}


try {
    
$foo->exactlyTheAnswer(7);
} catch (
Exception $e) {
    
dump($e->getMessage());
}



try {
    
$foo->sum([11'a']);
} catch (
Exception $e) {
    
dump($e->getMessage());
}

try {
    
$foo->sum(4);
} catch (
Exception $e) {
    
dump($e->getMessage());
}
Result
"10 is not lower than 10"

"7 is not the right answer."

"string? We want integer!"

"integer is not an array or traversable"
Used Versions
PHP 7.1, Zend 3.0, Symfony 3.2, Laravel 5.2, PHPUnit 5.6, Doctrine 2.6