     end
   end
 
-  defp cycle_timing(result, %{profile: :time} = state) do
-    %{cycle_start: cycle_start, module_counter: module_counter} = state
+  defp cycle_timing(_result, %{profile: :none} = state) do
+    state
+  end
+
+  defp cycle_timing(result, %{profile: {:time, cycle_start, module_counter}} = state) do
     num_modules = count_modules(result)
     diff_modules = num_modules - module_counter
     now = System.monotonic_time()

      "[profile] Finished compilation cycle of #{diff_modules} modules in #{time}ms"
    )

    %{state | cycle_start: now, module_counter: num_modules}
  end

  defp cycle_timing(_result, %{profile: nil} = state) do
    state
  end

  defp count_modules(result) do


  # No more queue, nothing waiting, this cycle is done
  defp spawn_workers([], 0, [], [], result, warnings, state) do
    cycle_return = each_cycle_return(state.each_cycle.())
    state = cycle_timing(result, state)

    case cycle_return do
      {:runtime, dependent_modules} ->
        verify_modules(result, warnings, dependent_modules, state)

