¡Buenas!
Esta solución para este desafío tira como que no usa la función cuantoLePuedeDar y sí la usa.
cuantoLePuedeDar auto1 auto2 = min (nivelNafta auto1) (tamanioTanque auto2 - nivelNafta auto2)
transferir :: Auto -> Auto -> (Auto,Auto)
transferir auto1 auto2 = (auto1 {nivelNafta = (nivelNafta auto1) - cuantoLePuedeDar auto1 auto2}, auto2 {nivelNafta = (nivelNafta auto2) + cuantoLePuedeDar auto1 auto2})


¿Tendrá algo que ver con que esté dentro de un constructor con record syntax?