haskell-distributed/distributed-process-client-server

Compiler should enforce rules for prioritised processes

Closed this issue · 0 comments

Currently it's possible to pass a process definition containing handleExternal or handleControlChannel to pserve, but this will fail at runtime with something like ExitOther "IllegalControlChannel". It would be better if the compiler enforced this distinction, so instead of embedding ProcessDefinition inside of PrioritisedProcessDefinition, I think we should copy the fields across (and rename them) so we can avoid this. I might be necessary to move external handlers out of the apiHandlers group to achieve this, but I think that's a price worth paying for the additional type safety.