1 {-# LANGUAGE DeriveGeneric #-}
2 module Distribution
.Types
.ExposedModule
where
4 import Distribution
.Compat
.Prelude
7 import Distribution
.Backpack
8 import Distribution
.ModuleName
9 import Distribution
.Parsec
.Class
10 import Distribution
.ParseUtils
(parseModuleNameQ
)
11 import Distribution
.Pretty
12 import Distribution
.Text
14 import qualified Distribution
.Compat
.CharParsing
as P
15 import qualified Distribution
.Compat
.ReadP
as Parse
16 import qualified Text
.PrettyPrint
as Disp
20 exposedName
:: ModuleName
,
21 exposedReexport
:: Maybe OpenModule
23 deriving (Eq
, Generic
, Read, Show)
25 instance Pretty ExposedModule
where
26 pretty
(ExposedModule m reexport
) =
29 Just m
' -> Disp
.hsep
[Disp
.text
"from", disp m
']
33 instance Parsec ExposedModule
where
35 m
<- parsecMaybeQuoted parsec
38 reexport
<- P
.optional
$ do
43 return (ExposedModule m reexport
)
45 instance Text ExposedModule
where
49 reexport
<- Parse
.option Nothing
$ do
50 _
<- Parse
.string "from"
53 return (ExposedModule m reexport
)
55 instance Binary ExposedModule
57 instance NFData ExposedModule
where rnf
= genericRnf