interface Knot becomes big and you want to improve its maintainability and extensibility you
may consider to decompose it. You start decomposition by grouping related functionality into,
in a certain sense, indecomposable pieces called Primes.interface Knot.class Effect without Action.class Effect without Action.Reducer, class Effect and Action.interface Knot instance.class Effect.class Effect.class Effect with a new State and an optional Action.class Effect with a new State and an optional Action.interface Knot.