{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} module Ormolu.Printer.Meat.Declaration.Annotation ( p_annDecl, ) where import GHC.Hs import Ormolu.Printer.Combinators import Ormolu.Printer.Meat.Common import Ormolu.Printer.Meat.Declaration.Value p_annDecl :: AnnDecl GhcPs -> R () p_annDecl :: AnnDecl GhcPs -> R () p_annDecl (HsAnnotation XHsAnnotation GhcPs _ SourceText _ AnnProvenance GhcPs annProv XRec GhcPs (HsExpr GhcPs) expr) = Text -> R () -> R () pragma Text "ANN" forall b c a. (b -> c) -> (a -> b) -> a -> c . R () -> R () inci forall a b. (a -> b) -> a -> b $ do AnnProvenance GhcPs -> R () p_annProv AnnProvenance GhcPs annProv R () breakpoint forall l a. HasSrcSpan l => GenLocated l a -> (a -> R ()) -> R () located XRec GhcPs (HsExpr GhcPs) expr HsExpr GhcPs -> R () p_hsExpr p_annProv :: AnnProvenance GhcPs -> R () p_annProv :: AnnProvenance GhcPs -> R () p_annProv = \case ValueAnnProvenance LIdP GhcPs name -> LocatedN RdrName -> R () p_rdrName LIdP GhcPs name TypeAnnProvenance LIdP GhcPs name -> Text -> R () txt Text "type" forall (m :: * -> *) a b. Monad m => m a -> m b -> m b >> R () space forall (m :: * -> *) a b. Monad m => m a -> m b -> m b >> LocatedN RdrName -> R () p_rdrName LIdP GhcPs name AnnProvenance GhcPs ModuleAnnProvenance -> Text -> R () txt Text "module"