On master you can do:

```elixir
defrecordp :doc_cons, left: DocNil :: DocNil.t, right: DocNil :: DocNil.t
```

And a private type named `doc_cons_t` will be available.