some documentation of include/types.hpp