Cyclic module usage error

Cycle depends on Cycle.Handle at compile time (struct usage requires keys to be known), but Cycle.Handle cannot be compliled without Cycle being compiled. So you’re in a cyclic dependency. You’ll either need to use different files or put Cycle.Handle’s definition before and outside of Cycle’s definition.