t() :: :waiting | :runnable | :running
new(any()) :: Croma.Result.t(t())
new!(any()) :: t()
valid?(any()) :: boolean()