fix typedef dependency cycle
fix .gitignore