       ** (Redix.ConnectionError) :closed
 
   """
-  @spec command!(GenServer.server(), command, Keyword.t()) ::
-          Redix.Protocol.redis_value() | no_return
+  @spec command!(connection(), command(), keyword()) :: Redix.Protocol.redis_value() | no_return()
   def command!(conn, command, opts \\ []) do
     case command(conn, command, opts) do
       :ok -> :ok

      ** (Redix.ConnectionError) :closed

  """
  @spec pipeline!(GenServer.server(), [command], Keyword.t()) ::
          [Redix.Protocol.redis_value()] | no_return
  def pipeline!(conn, commands, opts \\ []) do
    case pipeline(conn, commands, opts) do
      {:ok, response} -> response

  # function in this module goes through Redix.Connection.pipeline/3 one way or
  # another.

  @type command() :: [binary()]
  @type connection() :: GenServer.server()

  @default_timeout 5000

