Add extensional definitions for some core types, while introducing Type class