newCandidates = map (\a -> (cost a, a)) $ map (\n -> makeAgendum n) nonloops
makeAgendum new = Agendum {current = new,
trail = (canonical candidate):previous,
newCandidates = map (\a -> (cost a, a)) $ map (\n -> makeAgendum n) nonloops
makeAgendum new = Agendum {current = new,
trail = (canonical candidate):previous,