def to_signed(cls, t):
        """ Return signed type or equivalent
        """
        assert isinstance(t, SymbolTYPE)
        t = t.final
        assert t.is_basic
        if cls.is_unsigned(t):
            return {cls.ubyte: cls.byte_,
                    cls.uinteger: cls.integer,
                    cls.ulong: cls.long_}[t]
        if cls.is_signed(t) or cls.is_decimal(t):
            return t
        return cls.unknown
Return signed type or equivalent