Typedef function with an enum return type
I am unsure where the problem is, but toast fails to generate a proper nim wrapper for the following C declaration.

```c
enum ent_return {                                                                
    ENT_SUCCESS = 0,                                                         
    ENT_FAILURE                                                              
};                                                                               
                                                                                   
typedef enum ent_return ent_function_t(void);                                    
                                                                                   
struct ent_object {                                                              
    ent_function_t * func;                                                   
};
```

It results in:

```nim
defineEnum(ent_return)
const
  ENT_SUCCESS* = (0).ent_return
  ENT_FAILURE* = (ENT_SUCCESS + 1).ent_return
type
  ent_object* {.bycopy, imptestHdr, importc: "struct ent_object".} = object
    `func`*: ptr ent_function_t
```

where `ent_function_t` is used but undefined. Thus, the generated nim wrapper is not valid.

Note that if the return type of `ent_function_t` is changed to an int, instead of an enum, then it works, resulting in:

```nim
type
  ent_function_t* {.importc, imptestHdr.} = proc (): cint {.cdecl.}
  ent_object* {.bycopy, imptestHdr, importc: "struct ent_object".} = object
    `func`*: ptr ent_function_t
```