Resolve external types correctly and robustly
Correct barefn handling, add & and *, and properly stringify numeric primitives