opaque でない構造体を typedef するのはあまりお勧めできない