use unboxed vectors (minor improvement)
Add specializations