Wrapping inferred Selected itself in a further Immutable is unnecessary and problematic.
If the return type of the Selector is Immutable when passed an Immutable<State>, then it will be inferred as such. In practice wrapping Selected in Immutable ends up with cases where some T or Immutable<T> ends up being assigned to Immutable<Immutable<T>> which throws errors.
Wrapping inferred
Selected
itself in a furtherImmutable
is unnecessary and problematic.If the return type of the
Selector
isImmutable
when passed anImmutable<State>
, then it will be inferred as such. In practice wrappingSelected
inImmutable
ends up with cases where someT
orImmutable<T>
ends up being assigned toImmutable<Immutable<T>>
which throws errors.