mat_function(identity,matrix([a])) => Error: "argument must be a non-atomic expression"
Presumably mat_function(f,matrix([a])) == matrix([f(a)]).
Sorry, I should have mentioned this is using the (updated) diag.mac package in share.
Oh dear, that's my fault. I've just pushed a fix (54f9742), although I'm not convinced that Maxima isn't doing something weird. The behaviour that triggers the bug in diag.mac is that matrix() . matrix() yields 1, rather than a matrix.
matrix() . matrix()
The result still isn't brilliant, since it turns into matrix() . a, but at least it doesn't explode any more...