public function bind(callable $codeBlock)
    {
        if ($this->value === null) {
            return new None;
        } else {
            return static::unit(call_user_func($codeBlock, $this->value));
        }
    }