Looping over different types with common behavior

You could also use TypeSortedCollections.jl for this (I’m the author). It basically automates your createconcretecollection/sumconcretecollection approach:

julia> using TypeSortedCollections

julia> tsc = TypeSortedCollection(createabstractcollection());

julia> @btime mapreduce(value, +, 0, $tsc)
  1.204 ms (0 allocations: 0 bytes)
500001499788
2 Likes