   But **do**:
 
       parent = self()
-      Task.start_link fn ->
+
+      Task.start_link(fn ->
         do_something()
-        send parent, :work_is_done
+        send(parent, :work_is_done)
         ...
-      end
+      end)
 
       receive do
         :work_is_done -> :ok
       after
-        30_000 -> :timeout # Optional timeout
+        # Optional timeout
+        30_000 -> :timeout
       end
 
   For cases like the one above, `Task.async/1` and `Task.await/2` are


  ## Examples

      pid = spawn fn -> 1 + 2 end
      ref = Process.monitor(pid)
      Process.demonitor(ref)
      #=> true

  Similarly, if you are waiting for a process to terminate,
  monitor that process instead of sleeping. **Do not**:

      Task.start_link(fn ->
        ...
      end)

      # Wait until task terminates
      Process.sleep(2000)
