-- | Create a type family 'TyCon'
mkFamilyTyCon:: Name -> Kind -> [TyVar] -> FamTyConFlav -> TyConParent
             -> TyCon
mkFamilyTyCon name kind tyvars flav parent
  = FamilyTyCon
      { tyConUnique = nameUnique name
      , tyConName   = name
      , tyConKind   = kind
      , tyConArity  = length tyvars
      , tyConTyVars = tyvars
      , famTcFlav   = flav
      , famTcParent = parent
      }
mkFamilyTyCon:: Name -> Kind -> [TyVar] -> FamTyConFlav -> TyConParent
             -> TyCon
mkFamilyTyCon name kind tyvars flav parent
  = FamilyTyCon
      { tyConUnique = nameUnique name
      , tyConName   = name
      , tyConKind   = kind
      , tyConArity  = length tyvars
      , tyConTyVars = tyvars
      , famTcFlav   = flav
      , famTcParent = parent
      }
mkFamilyTyCon name kind tyvars flav parent
  = FamilyTyCon
      { tyConUnique = nameUnique name
      , tyConName   = name
      , tyConKind   = kind
      , tyConArity  = length tyvars
      , tyConTyVars = tyvars
      , famTcFlav   = flav
      , famTcParent = parent
      }