package acme // Solver decribes a solving interface type Solver interface { Solve() error Solved() error } var canSolve = make(map[ChallengeType]bool) func registerChallenge(c ChallengeType) { canSolve[c] = true } func Solve(s Solver) error { return s.Solve() }