# File lib/ruby_to_ansi_c.rb, line 36
  def self.c_type(typ)
    base_type = 
      case typ.type.contents # HACK this is breaking demeter
      when :float then
        "double"
      when :long then
        "long"
      when :str then
        "str"
      when :symbol then
        "symbol"
      when :bool then # TODO: subject to change
        "bool"
      when :void then
        "void"
      when :homo then
        "void *" # HACK
      when :value, :unknown then
        "void *" # HACK
# HACK: uncomment this and fix the above when you want to have good tests
#      when :unknown then
#        raise "You should not have unknown types by now!"
      else
        raise "Bug! Unknown type #{typ.inspect} in c_type"
      end

    base_type += " *" if typ.list? unless typ.unknown?

    base_type
  end