anchor.diff:  
   [[encoding-states]]
   == Encoding/Decoding States
  +Many of *Inform*'s implementations require that states be encoded as integers. Two
  +functions, <<inform_encode>> and <<inform_decode>> handle encoding and decoding states
  +to and from integers, respectively.
   
   ****
   [[inform_encode]]
  
positive.code: ----
  void inform_decode(int32_t encoding, int b, int *state, size_t n,
          inform_error *err);
  ----
  [horizontal]
  Headers::
  
negative.code: int32_t inform_encode(int const *state, size_t n, int b,
          inform_error *err);
  ----
  Encode a base-`b` state with `n`-digits as a 32-bit integer.
  
  *Examples:*
  
  Binary States:
  [source,c]
  ----
  inform_error err = INFORM_SUCCESS;
  int32_t code;
  
  code = inform_encode((int[]){1,0,0}, 3, 2, &err);
  assert(!err && code == 4);
  
  code = inform_encode((int[]){0,1,0}, 3, 2, &err);
  assert(!err && code == 2);
  
  code = inform_encode((int[]){1,0,1}, 3, 2, &err);
  assert(!err && code == 5);
  ----
  
  Base-4 States:
  [source,c]
  ----
  inform_error err = INFORM_SUCCESS;
  int32_t code;
  
  code = inform_encode((int[]){3,0,0}, 3, 4, &err);
  assert(!err && code == 48);
  
  code = inform_encode((int[]){0,3,0}, 3, 4, &err);
  assert(!err && code == 12);
  
  code = inform_encode((int[]){2,2,1}, 3, 4, &err);
  assert(!err && code == 41);
  ----
  
  [horizontal]
  Headers::
      `inform/utilities.h`,
  