{-# LANGUAGE RecordWildCards #-} module HIndent.Ast.Declaration.Family.Type.Injectivity ( Injectivity , mkInjectivity ) where import HIndent.Ast.Name.Prefix import HIndent.Ast.NodeComments import HIndent.Ast.WithComments import qualified HIndent.GhcLibParserWrapper.GHC.Hs as GHC import {-# SOURCE #-} HIndent.Pretty import HIndent.Pretty.Combinators import HIndent.Pretty.NodeComments data Injectivity = Injectivity { Injectivity -> WithComments PrefixName from :: WithComments PrefixName , Injectivity -> [WithComments PrefixName] to :: [WithComments PrefixName] } instance CommentExtraction Injectivity where nodeComments :: Injectivity -> NodeComments nodeComments Injectivity {} = [LEpaComment] -> [LEpaComment] -> [LEpaComment] -> NodeComments NodeComments [] [] [] instance Pretty Injectivity where pretty' :: Injectivity -> Printer () pretty' Injectivity {[WithComments PrefixName] WithComments PrefixName from :: Injectivity -> WithComments PrefixName to :: Injectivity -> [WithComments PrefixName] from :: WithComments PrefixName to :: [WithComments PrefixName] ..} = [Printer ()] -> Printer () spaced ([Printer ()] -> Printer ()) -> [Printer ()] -> Printer () forall a b. (a -> b) -> a -> b $ WithComments PrefixName -> Printer () forall a. Pretty a => a -> Printer () pretty WithComments PrefixName from Printer () -> [Printer ()] -> [Printer ()] forall a. a -> [a] -> [a] : HasCallStack => String -> Printer () String -> Printer () string String "->" Printer () -> [Printer ()] -> [Printer ()] forall a. a -> [a] -> [a] : (WithComments PrefixName -> Printer ()) -> [WithComments PrefixName] -> [Printer ()] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap WithComments PrefixName -> Printer () forall a. Pretty a => a -> Printer () pretty [WithComments PrefixName] to mkInjectivity :: GHC.InjectivityAnn GHC.GhcPs -> Injectivity mkInjectivity :: InjectivityAnn GhcPs -> Injectivity mkInjectivity (GHC.InjectivityAnn XCInjectivityAnn GhcPs _ LIdP GhcPs f [LIdP GhcPs] t) = Injectivity {[WithComments PrefixName] WithComments PrefixName from :: WithComments PrefixName to :: [WithComments PrefixName] from :: WithComments PrefixName to :: [WithComments PrefixName] ..} where from :: WithComments PrefixName from = GenLocated SrcSpanAnnN PrefixName -> WithComments PrefixName forall l a. CommentExtraction l => GenLocated l a -> WithComments a fromGenLocated (GenLocated SrcSpanAnnN PrefixName -> WithComments PrefixName) -> GenLocated SrcSpanAnnN PrefixName -> WithComments PrefixName forall a b. (a -> b) -> a -> b $ (RdrName -> PrefixName) -> GenLocated SrcSpanAnnN RdrName -> GenLocated SrcSpanAnnN PrefixName forall a b. (a -> b) -> GenLocated SrcSpanAnnN a -> GenLocated SrcSpanAnnN b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap RdrName -> PrefixName mkPrefixName LIdP GhcPs GenLocated SrcSpanAnnN RdrName f to :: [WithComments PrefixName] to = (GenLocated SrcSpanAnnN RdrName -> WithComments PrefixName) -> [GenLocated SrcSpanAnnN RdrName] -> [WithComments PrefixName] forall a b. (a -> b) -> [a] -> [b] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap (GenLocated SrcSpanAnnN PrefixName -> WithComments PrefixName forall l a. CommentExtraction l => GenLocated l a -> WithComments a fromGenLocated (GenLocated SrcSpanAnnN PrefixName -> WithComments PrefixName) -> (GenLocated SrcSpanAnnN RdrName -> GenLocated SrcSpanAnnN PrefixName) -> GenLocated SrcSpanAnnN RdrName -> WithComments PrefixName forall b c a. (b -> c) -> (a -> b) -> a -> c . (RdrName -> PrefixName) -> GenLocated SrcSpanAnnN RdrName -> GenLocated SrcSpanAnnN PrefixName forall a b. (a -> b) -> GenLocated SrcSpanAnnN a -> GenLocated SrcSpanAnnN b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap RdrName -> PrefixName mkPrefixName) [LIdP GhcPs] [GenLocated SrcSpanAnnN RdrName] t