Implement unboxed sum primitive type
[ghc.git] / compiler / hsSyn / HsTypes.hs
index a0676c9..bf98ca3 100644 (file)
@@ -457,6 +457,12 @@ data HsType name
 
     -- For details on above see note [Api annotations] in ApiAnnotation
 
+  | HsSumTy             [LHsType name]  -- Element types (length gives arity)
+    -- ^ - 'ApiAnnotation.AnnKeywordId' : 'ApiAnnotation.AnnOpen' @'(#'@,
+    --         'ApiAnnotation.AnnClose' '#)'@
+
+    -- For details on above see note [Api annotations] in ApiAnnotation
+
   | HsOpTy              (LHsType name) (Located name) (LHsType name)
       -- ^ - 'ApiAnnotation.AnnKeywordId' : None
 
@@ -1225,6 +1231,7 @@ ppr_mono_ty _    (HsTupleTy con tys) = tupleParens std_con (pprWithCommas ppr ty
   where std_con = case con of
                     HsUnboxedTuple -> UnboxedTuple
                     _              -> BoxedTuple
+ppr_mono_ty _    (HsSumTy tys)       = tupleParens UnboxedTuple (pprWithBars ppr tys)
 ppr_mono_ty _    (HsKindSig ty kind) = parens (ppr_mono_lty TopPrec ty <+> dcolon <+> ppr kind)
 ppr_mono_ty _    (HsListTy ty)       = brackets (ppr_mono_lty TopPrec ty)
 ppr_mono_ty _    (HsPArrTy ty)       = paBrackets (ppr_mono_lty TopPrec ty)