:import std/Combinator .
:import std/String .
:import std/Math .
:import std/Set S
part1 ∑‣ ⧗ (List FrequencyDiff) → Frequency
part2 z [[[[rec]]]] S.empty (+0)
rec S.has? 1 2 1 go
go 3 (S.add 1 2) (1 + ^0) ~0
main [parts nums]
nums string→signed-number <$> (init (lines 0))
parts [(part1 0) : (part2 (cycle 0))]