Type inference failed:
fun <`T, R> foo ( a: A<`T, R> ) : A<`T, R>
cannot be applied to
( (x: Int) → Int )