The attempts to cover untimed MoCs with the same atoms as timed ones proved to be a failure due to the fact that type families in Haskell are non-injective, and the untimed function arguments (FSVec) contain an additional type variable.
Although atom formalism should still be valid, and atom patterns are still the same for all MoCs, the chosen host language forces us to rely on naming conventions masked with module inclusion tricks (i.e. two different classes for timed/untimed atoms with the same method names), and not on the more powerful concept of type polymorphism.
The attempts to cover untimed MoCs with the same atoms as timed ones proved to be a failure due to the fact that type families in Haskell are non-injective, and the untimed function arguments (FSVec) contain an additional type variable.
Although atom formalism should still be valid, and atom patterns are still the same for all MoCs, the chosen host language forces us to rely on naming conventions masked with module inclusion tricks (i.e. two different classes for timed/untimed atoms with the same method names), and not on the more powerful concept of type polymorphism.