All files reducers.js

100% Statements 12/12
100% Branches 2/2
100% Functions 6/6
100% Lines 6/6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30                3x       3x       21x       9x       3x       3x  
// requires [spread](spread.html),[iterable](iterable.html),[cast](cast.html), and [group](group.html)
import { spread, } from './spread';
import { removify, } from './iterable';
import { asMap, asSet, } from './cast';
import { append, } from './group';
 
// **addBin** `:: [a] -> a -> [a]`  
// adds an element to a collection;
export const addBin = (c, el) => append(c)(el);
 
// **addBinSet** `:: a -> a -> Set[a]`  
// adds an element to a Set;
export const addBinSet = (c, el) => new Set(append(c)(el));
 
// **addBinMap** `:: a -> a -> Map[a]`  
// adds an element to a Map;
export const addBinMap = (c, el) => new Map(append(c)(el));
 
// **removeBin** `:: Iterable<a> -> a -> Iterable<a>`  
// removes an element from a collection;
export const removeBin = (c, el) => removify(c).delete(el) ? c : c;
 
// **removeBinArray** `:: Iterable<a> -> a -> [a]`  
// returns a [val, key] arrayimport spread from './spread';
export const removeBinArray = (c, el) => spread(removeBin(asSet(c), el));
 
// **removeBinTuple** `:: a -> a -> [a]`  
// returns a [val, key] arrayimport spread from './spread';
export const removeBinTuple = (c, [ k, v, ]) => removeBin(asMap(c), k);