| 
					
				 | 
			
			
				@@ -1,15 +1,16 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import {cowValueModel} from './cow-value-model'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import {decow, deget} from './cow-value-model'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export const subReducer = (key, reducer, ...otherKeys) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const value = cowValueModel(key), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        otherParts = otherKeys.map(each => cowValueModel(each)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const selector = deget(key), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        modifier = decow(key), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        otherParts = otherKeys.map(deget); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return (state, action) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let newSubState = reducer(value(state), action, ...otherParts.map(value => value(state))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let newSubState = reducer(selector(state), action, ...otherParts.map(eachSelector => eachSelector(state))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (typeof newSubState === "undefined") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             throw new Error(`The '${key}' reducer must not return undefined.`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return value(state, newSubState); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return modifier(newSubState)(state); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -17,10 +18,10 @@ export const composeReducers = (...reducers) => (state, action) => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     reducers.reduce((x, r) => r(x, action), state); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export const subMiddleware = (keyOrSelectorFn, middleware) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const cow = typeof keyOrSelectorFn === "function" ? keyOrSelectorFn : cowValueModel(keyOrSelectorFn); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const selector = typeof keyOrSelectorFn === "function" ? keyOrSelectorFn : deget(keyOrSelectorFn); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return (store, ...rest) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const {getState} = store; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return middleware({...store, getState: () => cow(getState())}, ...rest); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return middleware({...store, getState: () => selector(getState())}, ...rest); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |