Since sum, maximum, etc. lower to mapreduce, it might be a better idea to support mapreduce(f, op, ::AbstractFill) for op at least in (:max, :min :+, :|, :&) to support maximum, minimum, sum, any and all.
Examples:
Base.mapreduce(f, ::typeof(max), A::Fill) = f(A.value)
Base.mapreduce(f, ::typeof(+), A::Fill) = length(A)*f(A.value)