anchor.diff:  import '../utils/utils.dart';
   import 'recycle_context.dart';
   
  +/// Use [AdapterSource] instead of [List<ItemBean>]
  +// @deprecated
   class ItemBean {
     final String type;
     final Object data;
  
positive.code: Reducer<T> _dynamicReducer<T>(
    Reducer<T> reducer,
    Map<String, AbstractLogic<Object>> pool,
    AbstractConnector<T, List<ItemBean>> connector,
  ) {
    final Reducer<List<ItemBean>> dyReducer =
        (List<ItemBean> state, Action action) {
      List<ItemBean> copy;
      for (int i = 0; i < state.length; i++) {
        final ItemBean itemBean = state[i];
        final AbstractLogic<Object> result = pool[itemBean.type];
        if (result != null) {
          final Object newData = result.onReducer(itemBean.data, action);
          if (newData != itemBean.data) {
            copy ??= state.toList();
            copy[i] = itemBean.clone(data: newData);
          }
        }
      }
  
negative.code:           final ContextSys<Object> subCtx = recycleCtx.reuseOrCreate(
              Tuple2<Type, Object>(
                result.runtimeType,
                result.key(adapterSource.getData(index)),
              ),
              () => result.createContext(
                recycleCtx.store,
                recycleCtx.context,
                _subGetter(() => sourceConn.get(recycleCtx.state), index),
                bus: recycleCtx.bus,
                enhancer: recycleCtx.enhancer,
              ),
            );
            adapters.add(result.buildAdapter(subCtx));
          } else if (result is AbstractComponent<Object>) {
            adapters.add(ListAdapter((BuildContext buildContext, int _) {
              return result.buildComponent(
                recycleCtx.store,
                _subGetter(() => sourceConn.get(recycleCtx.state), index),
                bus: recycleCtx.bus,
                enhancer: recycleCtx.enhancer,
              );
  