Pytanie jest następujące. Zasadniczo, gdy ktoś ma taki termin, możemy wyeliminować forall poprzez zastosowanie tego terminu do typu, na przykład.
Załóżmy teraz, że jest to strzałka i chcemy podać jej argument, wówczas musielibyśmy zastosować ten termin do odpowiedniego typu, aby mógł otrzymać taki argument. O to pytam, czy mogę zautomatyzować: Czy można zbudować funkcję biorąc dwa warunki i zwracając typ taki, że podaj typ, który należy zastąpić w takie, że może zaakceptować argument ?
Kilka przykładów:
.