Broke constraints trying to add support for a wider variety of lvalue reference types (such as functions).