       -17412508655
 
   """
-  @spec to_unix(Calendar.datetime, System.time_unit) :: integer
+  @spec to_unix(Calendar.datetime(), System.time_unit()) :: integer
   def to_unix(datetime, unit \\ :second)
 
   def to_unix(%{utc_offset: utc_offset, std_offset: std_offset} = datetime, unit) do

      :gt

  """
  @spec compare(Calendar.datetime, Calendar.datetime) :: :lt | :eq | :gt
  def compare(%DateTime{utc_offset: utc_offset1, std_offset: std_offset1} = datetime1,
              %DateTime{utc_offset: utc_offset2, std_offset: std_offset2} = datetime2) do
    {days1, {parts1, ppd1}} =
      datetime1
      |> to_iso_days()

      {_, precision} = microsecond

      datetime =
        Calendar.ISO.naive_datetime_to_iso_days(
          year,
          month,
          day,
          hour,
          minute,
          second,
          microsecond
        )
        |> apply_tz_offset(offset)
        |> from_iso_days("Etc/UTC", "UTC", 0, 0, calendar, precision)

