¿Cómo detectar si un dispositivo tiene soporte para mouse?

Actualmente utilizo la siguiente prueba (sacada de Modernizr) para detectar el soporte táctil:

function is_touch_device() {
    var bool;
    if(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {
        bool = true;
    } else {
        injectElementWithStyles(['@media (',prefixes.join('touch-enabled),('),mod,')','{#modernizr{top:9px;position:absolute}}'].join(''), function(node) {
            bool = node.offsetTop === 9;
        });
    }
    return bool;
}

Sin embargo, algunos dispositivos son tanto táctiles como de ratón, por lo que quiero una función separada para detectar si un dispositivo es compatible con el mouse. ¿Qué es una buena manera de hacer esta comprobación?

En última instancia mi intención es poder hacer esto:

if(is_touch_device())

if(has_mouse_support())

if(is_touch_device() && has_mouse_support())

Respuestas a la pregunta(5)

Su respuesta a la pregunta