public static Tile Pop() { return(new Tile(typeof(PopNode), new [] { makeTile <RegisterNode> () }, (regNode, node) => { var root = node as PopNode; var reg = root.Value as RegisterNode; return new[] { InstructionFactory.Pop(reg) }; } )); }