c_type (RubyToAnsiC)

    # 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