giving up on runtime type definitions