public function bind(callable $codeBlock)
    {
        return static::unit(function ($result) use ($codeBlock) {
            $result = $this->run($result);
            if ($result instanceof Success) {
                return $codeBlock($result);
            } else {
                return $result;
            }
        });
    }