move effect.dispatcher to effect._dispatcher, and promote the contents
to the "effect" package