pub fn add_argument<T, Def>(name: &String, value: &T, def: *mut Def)