function dt(predicate, value, returnBoolean = false) {
  if (predicate) {
    const spec = toSpec(predicate);
    if (spec) {
      return spec.conform(value);
    }
    if (p.fn(predicate)) {
      if (returnBoolean) {
        return predicate(value);
      }
      return predicate(value) ? value : invalid;
    }
    throw new Error(
      `${getName(
        predicate
      )} is a ${typeof predicate}, not a function. Expected predicate`
    );
  }
  return value;
}
/**
 * Takes predicate and value. If predicate is convertable to a spec, conforms
 * value to spec. Else calls predicate.
 *
 * @param  {[type]}  predicate             [description]
 * @param  {[type]}  value                 [description]
 * @param  {Boolean} [returnBoolean=false] [description]
 * @return {[type]}                        [description]
 */
Takes predicate and value. If predicate is convertable to a spec, conforms
value to spec. Else calls predicate.


Takes predicate and value . If predicate is convertable to a spec conforms value to spec . Else calls predicate .
function dt(predicate, value, returnBoolean = false) {
  if (predicate) {
    const spec = toSpec(predicate);
    if (spec) {
      return spec.conform(value);
    }
    if (p.fn(predicate)) {
      if (returnBoolean) {
        return predicate(value);
      }
      return predicate(value) ? value : invalid;
    }
    throw new Error(
      `${getName(
        predicate
      )} is a ${typeof predicate}, not a function. Expected predicate`
    );
  }
  return value;
}
function dt ( predicate , value , returnBoolean = false ) { if ( predicate ) { const spec = toSpec ( predicate ) ; if ( spec ) { return spec . conform ( value ) ; } if ( p . fn ( predicate ) ) { if ( returnBoolean ) { return predicate ( value ) ; } return predicate ( value ) ? value : invalid ; } throw new Error ( ` ${ getName ( predicate ) } ${ typeof predicate } ` ) ; } return value ; }
Takes predicate and value.
Takes predicate and value .