anchor.diff:  % Copyright (c) 2011 Red Hat, Inc., and William C. Benton
   
   -module(wallaroo_binary).
  --export([from_term/1, bc_from_term/1]).
  +-export([from_term/1]).
   
   % XXX: the external term format and term_to_binary should be stable
   % across Erlang versions, i.e., some term T will always be encoded as
  
positive.code:     bc_from_list(Ls);
  bc_from_term_internal(Bin) when is_binary(Bin) ->
      Tag = 109, Size = size(Bin),
      <<Tag:8, Size:32, Bin/binary>>.
  
  bc_from_list(Ls) ->
      {Ct, Chars, Bin, IsStr, Tl} = bc_from_list_int(Ls, {0, <<>>, <<>>, true}),
  
negative.code: % Erlang releases are supposed to be forwards-compatible for two major
  % releases, and backwards-compatibility should only be broken at a new
  % major release.  In the unlikely event that the external term format
  % changes in the future, we will have to call out to bc_from_term
  % (which is compatible with term_to_binary for our purposes but surely 
  % much slower).  Because we use this function instead of a raw call to 
  % the term_to_binary NIF, we will be able to do this even if live updating.
  
  from_term(T) ->
      term_to_binary(T, [{minor_version,1}, {compressed, 0}]).
  
  
  % backwards-compatible from_term; doesn't handle funs, references, or pids
  bc_from_term(T) ->
      <<131, (bc_from_term_internal(T))/binary>>.
  bc_from_term_internal(Num) when is_integer(Num) andalso Num < 256 andalso Num >= 0 ->
  