recursions and inductions are with lambdas, solving the covariance issue