This is the third of a series of articles on “Type Parameters and Type Members”. If you haven’t yet, you should start at the beginning, which introduces code we refer to throughout this article without further ado. As I mentioned in the previous article, the error of the mdropFirstE signature, taking MList and returning merely MList, was to fail to relate the input element type to the output element type. This mistake is an easy one to make when failure is the default behavior. By contr...