## Boilerplate code

In your code, the first step is to #include the needed headers: depending on your header include strategy, this can be as simple as #include "maman-bar.h" or as complicated as tens of #include lines ending with #include "maman-bar.h":

    /*
     * Copyright information
     */

    #include "maman-bar.h"

    /* If you use Pimpls, include the private structure
     * definition here. Some people create a maman-bar-private.h header
     * which is included by the maman-bar.c file and which contains the
     * definition for this private structure.
     */
    struct _MamanBarPrivate {
      int member_1;
      /* stuff */
    };

    /*
     * forward definitions
     */

Implement `maman_bar_get_type` and make sure the code compiles:

    GType
    maman_bar_get_type (void)
    {
      static GType type = 0;
      if (type == 0) {
        static const GTypeInfo info = {
          sizeof (MamanBarClass),
          NULL,   /* base_init */
          NULL,   /* base_finalize */
          NULL,   /* class_init */
          NULL,   /* class_finalize */
          NULL,   /* class_data */
          sizeof (MamanBar),
          0,      /* n_preallocs */
          NULL    /* instance_init */
          };
          type = g_type_register_static (G_TYPE_OBJECT,
                                         "MamanBarType",
                                         &info, 0);
        }
        return type;
    }