Use a TypeFamily-based constraint rather than HasEffect for better inference