public function bind(callable $codeBlock)
    {
        if ($this->value === null) {
            return new None;
        } else {
            return static::unit(call_user_func($codeBlock, $this->value));
        }
    }
public function bind(callable $codeBlock)
    {
        if ($this->value === null) {
            return new None;
        } else {
            return static::unit(call_user_func($codeBlock, $this->value));
        }
    }
public function bind ( callable $ codeBlock ) { if ( $ this -> value === null ) { return new None ; } else { return static :: unit ( call_user_func ( $ codeBlock , $ this -> value ) ) ; } }
Runs the given code-block on the monad's value, if the value isn't null.

@param callable $codeBlock Is expected to return the next value to be unitped.

@return Maybe Returns None if the next value is null.
Runs the given code - block on the monad s value if the value isn t null .