process (TypeChecker)

    # File lib/type_checker.rb, line 92
      def self.process(klass, method=nil)
        processor = self.new
        rewriter = Rewriter.new
        sexp = ParseTree.new.parse_tree(klass, method)
        sexp = [sexp] unless Array === sexp.first

        result = []
        sexp.each do |exp|
          # TODO: we need a composite processor to chain these cleanly
          sexp = rewriter.process(exp)
          result << processor.process(sexp)
        end

        result
      end