Extended types

I'm currently working on a plugin backend for neovim and I needed the extended data types.

Feel free to review, criticize and merge!