Raised when a cycle is detected in the query dependency graph.
The cycle field contains the full cycle path as a list of query keys,
starting and ending with the same key. For example,
[{:typecheck, "a.ex"}, {:resolve, "b.ex"}, {:typecheck, "a.ex"}]
means typecheck called resolve which called typecheck again.
Summary
Types
@type t() :: %Roux.Cycle.Error{__exception__: true, cycle: [Roux.Memo.query_key()]}