Fix cast
Guavafy our providers
Type learns about array depth
DeepArray implies CanBeArray
* Test DeepArray use cases.
* Move providers to TypeProviders
remove debugging code
More tests