typedef demo