
function(anonymous_function)
  is_anonymous_function(${ARGN})
  ans(is_anonymous_function)
  if(NOT is_anonymous_function)
    return()
  elseif("${is_anonymous_function}" STREQUAL "code")
    arguments_cmake_code(0 ${ARGC})
    ans(code)
    anonymous_function_new("${code}")
    return_ans()
  elseif("${is_anonymous_function}" STREQUAL "instance")
    set(func ${ARGN})
    return_ref(func)
  endif()
  message(FATAL_ERROR "unreachable code")
endfunction()