public static List <CILType> GetTypes(ParseTreeNode node)
        {
            var result = new List <CILType>();

            var sigArgs1ParseTreeNode = node;
            var sigArgParseTreeNode   = sigArgs1ParseTreeNode.GetFirstChildWithGrammarName(GrammarNames.sigArg);

            while (sigArgParseTreeNode != null)
            {
                var sigArgType = SigArgParseTreeNodeHelper.GetType(sigArgParseTreeNode);
                result.Add(sigArgType);

                sigArgs1ParseTreeNode = sigArgs1ParseTreeNode?.GetFirstChildWithGrammarName(GrammarNames.sigArgs1);
                sigArgParseTreeNode   = sigArgs1ParseTreeNode?.GetFirstChildWithGrammarName(GrammarNames.sigArg);
            }

            result.Reverse();

            return(result);
        }