Is it save to cast the pointer of ```&stdin_stream``` to ```uv_pipe_t*``` when ```uv_pipe_init``` initialize an ```uv_pipe_t``` object? Would it not be better to make ```stdin_stream``` of type ```uv_pipe_t```?
```c
typedef struct uv_stream_s {
  UV_HANDLE_FIELDS
  UV_STREAM_FIELDS
} uv_stream_t;


typedef struct uv_pipe_s {
  UV_HANDLE_FIELDS
  UV_STREAM_FIELDS
  int ipc; /* non-zero if this pipe is used for passing handles */
  UV_PIPE_PRIVATE_FIELDS
} uv_pipe_t;
```