Sorry if I'm missing something here, but what do we call $M$ if the functor $H\_M:N\mapsto Hom(M,N)$ is exact? Is this in fact equivalent to being flat through some adjointness properties?



Tensor product is to flat as Hom is to ?
We call such modules projective. If you take $N\mapsto Hom(N,M)$ then you get injective modules. This is fairly basic, and covered in any homological algebra book, and mentioned on [wikipedia](http://en.wikipedia.org/wiki/Exact_functor).


