///*************************************** /// The Maybe datatype ///*************************************** enum ListMaybe {cMaybeNothing, cMaybeJust}; typedef struct Maybe Maybe_t; typedef struct Nothing Nothing_t; typedef struct Just Just_t; //struct L; struct Nothing { }; struct Just { void* maybe_just_var1; }; union MaybeUnion { Nothing_t nothing; Just_t just; }; struct Maybe { enum ListMaybe tag; union MaybeUnion* elt; }; /* typedef struct L { struct SrcSpan located_l_var1; void* located_l_var2; } Located; */