Global singleton typeclasses
- In a lot of the prosa code we are making an implicit assumption that job parameters such as
job_arrival
or job_cost
etc are global singletons.
- These tyepclasses are always implicitly assumed in the context for example with :
Context
{JobArrival Job}`
- This design works if there is only one instance of
JobArrival
in the context. Suppose we have more than one instance in the context of any of these parameters then to ensure the right instance is passed we always have to pass it explicitly using @
- I have two issues with this: one, we should be more explicit about the fact that we expect these tyepclasses to be global singletons; maybe by adding a comment of suffixing the tyepclass with
GS
(the latter is the Iris way)
- Second, any analysis where you have two instances of such a typeclass in the context is a major pain to work with.
- This problem is going to get worse if we want to add more analyses where we have either: propagated job arrivals, inflated job or task costs, etc.