cherry-pick array expression classes from feature-arrays branch