'Non-unique determining parameter

The meaning of a determining parameter in an interface, as I understand it, is that the compiler can use that parameter to uniquely determine which implementation to use. However, I can create multiple implementations for a given determining parameter, which means the implementation's no longer unique. What does a determining parameter mean there?

For example in

interface Foo (a : Type) (b : Type) | b where

Foo Int String where
Foo Double String where


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source