# File lib/support.rb, line 197
  def self.method_missing(type, *args)
    raise "Unknown type Type.#{type}" unless KNOWN_TYPES.has_key?(type)
    case type 
    when :unknown then
      return self.new(type)
    when :function then
      if args.size == 2 then
        $stderr.puts "\nWARNING: adding Type.unknown for #{caller[0]}" if $DEBUG
        args.unshift Type.unknown
      end
      return self.new(FunctionType.new(*args))
    else
      if type.to_s =~ /(.*)_list$/ then
        TYPES[type] = self.new($1.intern, true) unless TYPES.has_key?(type)
        return TYPES[type]
      else
        TYPES[type] = self.new(type) unless TYPES.has_key?(type)
        return TYPES[type]
      end
    end
  end