Hi,
It seems like the "extensible" parts you want is something similar to most extensible effects stuff. Perhaps check out the "Member stuff" from the "Freer Monads, More Extensible Effects" paper and some EE libraries (freer-simple, fused-effects, polysemy)? Also, if you want runtime typeclasses reflection can help.
=======
Georgi