code convention typedef extension