# default implementation for returning all avaialbe keys
function(obj_default_get_keys obj)
  map_keys("${obj}")
  ans(ownkeys)
  map_get_special("${obj}" "prototype")
  ans(prototype)
  if(NOT prototype)
    return_ref(ownkeys)
  endif()
  obj_keys("${prototype}")
  ans(parent_keys)
  set(keys ${ownkeys} ${parent_keys})
  list(LENGTH keys len)
  if(${len} GREATER 1)
    list(REMOVE_DUPLICATES keys)
  endif()
  return_ref(keys)
endfunction()