carlos cdmp
interface Middleware<S, A, A2> where S : State, A : Action, A2 : Action { fun reduceAction(state: S, action: A): A2 }
val middleWareMap: Map<KClass<*>, Middleware<AppState, *, *>>