merge update to represent types as records
snag -> from clojure.core and adapt it..
patch so that deref statements nest correctly
add ecomp back in 'cause I evidently use it
use the point operator the way novak's sample code requires
get [ ] working for arbitrary indexings
working array subtype creator
tweak to return final (outermost) array type