anchor.diff:         => 1
     */
     mod = base: int: base - (int * (builtins.div base int));
  +
  +
  +  ## Comparisons
   
     /* C-style comparisons
   
  
positive.code:   warn = msg: builtins.trace "WARNING: ${msg}";
    info = msg: builtins.trace "INFO: ${msg}";
  
    # | Add metadata about expected function arguments to a function.
    # The metadata should match the format given by
    # builtins.functionArgs, i.e. a set from expected argument to a bool
    # representing whether that argument has a default or not.
    # setFunctionArgs : (a → b) → Map String Bool → (a → b)
    #
    # This function is necessary because you can't dynamically create a
    # function of the { a, b ? foo, ... }: format, but some facilities
    # like callPackage expect to be able to query expected arguments.
    setFunctionArgs = f: args:
      { # TODO: Should we add call-time "type" checking like built in?
        __functor = self: f;
        __functionArgs = args;
      };
  
    # | Extract the expected function arguments from a function.
    # This works both with nix-native { a, b ? foo, ... }: style
    # functions and functions with args set with 'setFunctionArgs'. It
    # has the same return type and semantics as builtins.functionArgs.
    # setFunctionArgs : (a → b) → Map String Bool.
    functionArgs = f: f.__functionArgs or (builtins.functionArgs f);
  
    isFunction = f: builtins.isFunction f ||
      (f ? __functor && isFunction (f.__functor f));
  }
  
negative.code:        cmp "fooa" "a" => -1
         # while
         compare "fooa" "a" => 1
    */
    splitByAndCompare = p: yes: no: a: b:
      if p a
      then if p b then yes a b else -1
      else if p b then 1 else no a b;
  
  
    /* Reads a JSON file. */
    importJSON = path:
      builtins.fromJSON (builtins.readFile path);
  
  
    ## Warnings and asserts
  
    /* See https://github.com/NixOS/nix/issues/749. Eventually we'd like these
       to expand to Nix builtins that carry metadata so that Nix can filter out
  