explore ensure()
explore function pointers