read_length (hfile file, int64 position, p_minmax bounds)
{
  read (hfile file, int64 position, p_minmax bounds)
  {
    check (int x, p_minmax bounds)
    {
      select ()
      {
        case bounds->min < x < bounds->max: return;     
      }
      else
      {
        return << ERR_BOUNDS;
      }
    }

    int x = 0; check (x, bounds), { stdio:read (&x, -_, file, position) }; return x;
  }

  do ()  
  {
    return x, { x = read (file, position, bounds) };
  }
  else
  {
    return 0;
  }
}