src/Pool.php
public function getTypeProperty($type, $property, callable $callback)
    {
        $registered_type = $this->requireRegisteredType($type);

        if (!array_key_exists($property, $this->types[$registered_type])) {
            $this->types[$registered_type][$property] = call_user_func($callback, $registered_type, $property);
        }

        return $this->types[$registered_type][$property];
    }
public function getTypeProperty($type, $property, callable $callback)
    {
        $registered_type = $this->requireRegisteredType($type);

        if (!array_key_exists($property, $this->types[$registered_type])) {
            $this->types[$registered_type][$property] = call_user_func($callback, $registered_type, $property);
        }

        return $this->types[$registered_type][$property];
    }
Get a particular type property, and make it (using $callback) if it is not set already.

@param  string   $type
@param  string   $property
@param  callable $callback
@return mixed