static void Main(string[] args) { while (true) { var features = new FeatureMap(); DisplayMenu(features.GetNames()); features.Apply(GetChoice) .AndThen(features.GetAction) .Match(s => () => Console.WriteLine(s), FunctionHelpers.Identity) .Invoke(); } }