Hmm. To be honest, following your criteria, I would say that BASIC is not a suitable language.
You've pretty much described C, here's why:
A standard library (well, collection of libraries), including (no pun intended) a bunch of high powered math functions.
Variable confusion is much reduced from 'clever' BASIC's. You can cast from one variable type to another, but doing so creates visibility of the action.
C will cast between certain intrinsic types, but the rules for this are well defined and if not desirable, you can have the compiler generate warnings.
**EDIT** Pascal would actually be a fairly good middle-ground between BASIC and C.
You've pretty much described C, here's why:
A standard library (well, collection of libraries), including (no pun intended) a bunch of high powered math functions.
Variable confusion is much reduced from 'clever' BASIC's. You can cast from one variable type to another, but doing so creates visibility of the action.
C will cast between certain intrinsic types, but the rules for this are well defined and if not desirable, you can have the compiler generate warnings.
**EDIT** Pascal would actually be a fairly good middle-ground between BASIC and C.