title: What is the workaroud to Types that has a cyclic relationship?
body: <p>I have three self defined data types.</p>
  <p><strong>- struct A</strong></p>
  <p><strong>- struct B</strong></p>
  <p><strong>- union U</strong></p>
  <p>And here is how they are related to each other.</p>
  <pre><code>union U; // This is a forward declaration
  
  struct A{
      U u;
  };
  
  struct B{
      A a;
  };
  
  union U{
      B b;
      int integer;
  };
  </code></pre>
  <p>And I end up getting the same type of error</p>
  <pre><code>error: field 'type_union' has incomplete type 'Union'
  </code></pre>
  <p>I've tried various types of forward type declarations. But, one of these types end up being a incomplete type.</p>
  <p>There is a cyclic dependency between these types that seems impossible to work.
  How can I make them work. OR any other workaround.</p>