Explanation. The definition is
f(x,y) = (y, head(x))Because of expression head(x), x must be a list. Let's say that x has type [α]. Expression head(x) has type α.
There is no restriction on y, so say y has type β. Then f takes an ordered pair of type ([α], β) and yields an ordered pair of type (β, α).