   This callback is optional. If one is not implemented, the server will fail
   if a continue instruction is used.
   """
-  @callback handle_continue(continue :: term, state :: term) ::
+  @callback handle_continue(continue_arg, state :: term) ::
               {:noreply, new_state}
-              | {:noreply, new_state, timeout | :hibernate | {:continue, term}}
+              | {:noreply, new_state, timeout | :hibernate | {:continue, continue_arg}}
               | {:stop, reason :: term, new_state}
-            when new_state: term
+            when new_state: term, continue_arg: term
 
   @doc """
   Invoked when the server is about to exit. It should do any cleanup required.

  process exits without replying as the caller will be blocking awaiting a
  reply.

  Returning `{:noreply, new_state, timeout | :hibernate | {:continue, continue}}`
  is similar to `{:noreply, new_state}` except a timeout, hibernation or continue
  occurs as with a `:reply` tuple.


  `GenServer` causes garbage collection and leaves a continuous heap that
  minimises the memory used by the process.

  Returning `{:reply, reply, new_state, {:continue, continue_arg}}` is similar to
  `{:reply, reply, new_state}` except that `c:handle_continue/2` will be invoked
  immediately after with `continue_arg` as the first argument and
  `state` as the second one.

  Hibernating should not be used aggressively as too much time could be spent
  garbage collecting. Normally it should only be used when a message is not
