Maybe my case is a bit special, in my current design, i have Neurons{T}, which describe the property of all kinds of neurons, with the assumption that different types of neurons are different for their output method, but react the same for any kind of input.(Neurons receive input from other neurons)
So for Neurons{:Inhibitory}, it’s output would inhibite the target neuron. Changing the voltage field of the target neuron.
But if I want to add Neurons{:Dopamine}, not only i need a specific output function dispatch on it, I also need add a new state for the Neurons{T} struct, because all neurons would be affected by dopamine the same way by changing the new state.
This is just an example, there will be a lot more state changing for neurons for different neuronal mechenism.