improve types for m+, m*, and m-