Added List support and avoid the type check loop for recursive function calls