@@ -6,14 +6,14 @@ module Reporting.Render.Type
9− , recordSnippet
9+ , vrecordSnippet
10 , srcToDoc
11 , srcToDoc
11 , canToDoc
12 , canToDoc
16−import qualified Data.Map as Map
17import qualified Data.Maybe as Maybe
17import qualified Data.Maybe as Maybe
19import qualified AST.Source as Src
19import qualified AST.Source as Src
@@ -101,13 +101,33 @@ entryToDoc (fieldName, fieldType) =
101 D.hang 4 (D.sep [ fieldName <+> ":", fieldType ])
101 D.hang 4 (D.sep [ fieldName <+> ":", fieldType ])
104−recordSnippet :: (Doc, Doc) -> [(Doc, Doc)] -> Doc
104+vrecordSnippet :: (Doc, Doc) -> [(Doc, Doc)] -> Doc
105−recordSnippet entry entries =
105+vrecordSnippet entry entries =
107 field = "{" <+> entryToDoc entry
107 field = "{" <+> entryToDoc entry
108 fields = zipWith (<+>) (repeat ",") (map entryToDoc entries ++ ["..."])
108 fields = zipWith (<+>) (repeat ",") (map entryToDoc entries ++ ["..."])
110− D.sep [ D.cat (field:fields), "}" ]
110+ D.vcat (field : fields ++ ["}"])
113+vrecord :: [(Doc, Doc)] -> Maybe Doc -> Doc
114+vrecord entries maybeExt =
115+ case (map entryToDoc entries, maybeExt) of
119+ (fields, Nothing) ->
121+ zipWith (<+>) ("{" : repeat ",") fields ++ ["}"]
123+ (fields, Just ext) ->
125+ [ D.hang 4 $ D.vcat $
127+ , D.cat (zipWith (<+>) ("|" : repeat ",") fields)