put type aliases in namespace 'types'

using-directive can export wild type aliases to other namespace
using C++11's type alias to define type aliases
rewrite definition for EEOF