defining var_t abstract type