When writing integration code between vtk-m and other libraries you generally have a subset of data-types that you want to run worklets on.
The problem arises that general purpose field worklets generally define that they can run on 'all' datatypes, but as the integrator want to limit 'all' to a smaller subset.
If you only use vtkm::cont::ArrayHandle this is never a problem, but if you ever use vtkm::cont::DynamicArrayHandle this becomes an issue as you auto generate code paths that are never reachable ( and will cost you time and space ).
The solution was to allow integrators to define what the default tag is for FieldIn, FieldOut, etc.
Results: A single worklet with three dynamic Fields will generate a library of size 2.2MB when use the default of ListTagAll. If you change that tag to TypeListTagField the result is 800KB.