Referência a métodos com diferentes parâmetros em Java8

Eu estou querendo saber como tudo isso com referências de método e interfaces funcionais funciona em nível inferior. O exemplo mais fácil é onde temos alguma lista

List<String> list = new ArrayList<>();
list.add("b");
list.add("a");
list.add("c"):

Agora queremos classificá-lo com a classe Collections, para que possamos chamar:

Collections.sort(list, String::compareToIgnoreCase);

Mas se definirmos o comparador personalizado, pode ser algo como:

Comparator<String> customComp = new MyCustomOrderComparator<>();
Collections.sort(list, customComp::compare);

O problema é que Collections.sort usa dois parâmetros: List e Comparator. Como o Comparator é uma interface funcional, ele pode ser substituído pela expressão lambda ou referência de método com a mesma assinatura (parâmetros e tipo de retorno). Então, como funciona, podemos passar também uma referência para compareTo, que requer apenas um parâmetro e as assinaturas desses métodos não correspondem? Como as referências de método são traduzidas no Java8?