There were a lot more changes than I initially thought, changing the abstract types had a lot of knock on effects. There's probably more Ts that can be taken out, but this seemed like a good place to stop, and the unit tests pass.
Remove T parameter from all abstract types: Shape, PhysicalMedium,
AbstractSource
Remove T from singleton types: EmptyShape
Remove T from RegularSource
Remove Ts from many functions due to taking out T from abstract types.
Diagonal dispatch was probably unnecessarily restrictive, and types
should have been inferred where necessary.
Progress towards fixing #33
There were a lot more changes than I initially thought, changing the abstract types had a lot of knock on effects. There's probably more
T
s that can be taken out, but this seemed like a good place to stop, and the unit tests pass.