X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FhsSyn%2FHsDecls.lhs;h=4fcf6025b73bcf3508852e538c4af31d7a6c0dff;hb=5f99dc3d087e6f43c0ae1c8d92a1a9c4c3960ac9;hp=4f0fc03ff2e621ed6f4640fa0156222af1310f9a;hpb=2eb04ca0f8d0ec72b417cddc60672c696b4a3daa;p=ghc-hetmet.git diff --git a/compiler/hsSyn/HsDecls.lhs b/compiler/hsSyn/HsDecls.lhs index 4f0fc03..4fcf602 100644 --- a/compiler/hsSyn/HsDecls.lhs +++ b/compiler/hsSyn/HsDecls.lhs @@ -9,6 +9,13 @@ Definitions for: @TyDecl@ and @oCnDecl@, @ClassDecl@, @InstDecl@, @DefaultDecl@ and @ForeignDecl@. \begin{code} +{-# OPTIONS -w #-} +-- The above warning supression flag is a temporary kludge. +-- While working on this module you are encouraged to remove it and fix +-- any warnings in the module. See +-- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings +-- for details + module HsDecls ( HsDecl(..), LHsDecl, TyClDecl(..), LTyClDecl, InstDecl(..), LInstDecl, DerivDecl(..), LDerivDecl, NewOrData(..), @@ -399,8 +406,10 @@ data TyClDecl name -- instance' decl with explicit kind sig tcdCons :: [LConDecl name], -- Data constructors - -- For data T a = T1 | T2 a the LConDecls all have ResTyH98 - -- For data T a where { T1 :: T a } the LConDecls all have ResTyGADT + -- For data T a = T1 | T2 a + -- the LConDecls all have ResTyH98 + -- For data T a where { T1 :: T a } + -- the LConDecls all have ResTyGADT tcdDerivs :: Maybe [LHsType name] -- Derivings; Nothing => not specified @@ -427,9 +436,9 @@ data TyClDecl name tcdSigs :: [LSig name], -- Methods' signatures tcdMeths :: LHsBinds name, -- Default methods tcdATs :: [LTyClDecl name], -- Associated types; ie - -- only 'TyData', - -- 'TyFunction', - -- and 'TySynonym' + -- only 'TyFamily' and + -- 'TySynonym'; the + -- latter for defaults tcdDocs :: [LDocDecl name] -- Haddock docs } @@ -743,10 +752,10 @@ data InstDecl name instance (OutputableBndr name) => Outputable (InstDecl name) where ppr (InstDecl inst_ty binds uprags ats) - = vcat [hsep [ptext SLIT("instance"), ppr inst_ty, ptext SLIT("where")], - nest 4 (ppr ats), - nest 4 (ppr uprags), - nest 4 (pprLHsBinds binds) ] + = vcat [hsep [ptext SLIT("instance"), ppr inst_ty, ptext SLIT("where")] + , nest 4 $ vcat (map ppr ats) + , nest 4 $ vcat (map ppr uprags) + , nest 4 $ pprLHsBinds binds ] -- Extract the declarations of associated types from an instance -- @@ -864,11 +873,11 @@ data FoType = DNType -- In due course we'll add subtype stuff instance OutputableBndr name => Outputable (ForeignDecl name) where ppr (ForeignImport n ty fimport) = - ptext SLIT("foreign import") <+> ppr fimport <+> - ppr n <+> dcolon <+> ppr ty + hang (ptext SLIT("foreign import") <+> ppr fimport <+> ppr n) + 2 (dcolon <+> ppr ty) ppr (ForeignExport n ty fexport) = - ptext SLIT("foreign export") <+> ppr fexport <+> - ppr n <+> dcolon <+> ppr ty + hang (ptext SLIT("foreign export") <+> ppr fexport <+> ppr n) + 2 (dcolon <+> ppr ty) instance Outputable ForeignImport where ppr (DNImport spec) =