type __ghdl_index_type is unsigned (32);
type __ghdl_bool_type is boolean {false, true};

public function main (a : __ghdl_index_type) return __ghdl_index_type
declare
  local var b : __ghdl_index_type;
begin
  case a is
    when 10 ... 15 =>
     case __ghdl_bool_type'(a > 10) is
       when __ghdl_bool_type'[true] =>
          b := 5;
       when __ghdl_bool_type'[false] =>
     end case;
    when default =>
     return 4;
  end case;
  return 5;
end;