Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Ormolu.Fixity
Description
Definitions for fixity analysis.
Synopsis
- data OpName
- pattern OpName :: Text -> OpName
- unOpName :: OpName -> Text
- occOpName :: OccName -> OpName
- data FixityDirection
- data FixityInfo = FixityInfo {}
- defaultFixityInfo :: FixityInfo
- data FixityApproximation = FixityApproximation {}
- defaultFixityApproximation :: FixityApproximation
- newtype FixityOverrides = FixityOverrides {
- unFixityOverrides :: Map OpName FixityInfo
- defaultFixityOverrides :: FixityOverrides
- newtype ModuleReexports = ModuleReexports {
- unModuleReexports :: Map ModuleName (NonEmpty (Maybe PackageName, ModuleName))
- defaultModuleReexports :: ModuleReexports
- newtype PackageFixityMap = PackageFixityMap (Map OpName (NonEmpty (PackageName, ModuleName, FixityInfo)))
- newtype ModuleFixityMap = ModuleFixityMap (Map OpName FixityProvenance)
- inferFixity :: RdrName -> ModuleFixityMap -> FixityApproximation
- newtype HackageInfo = HackageInfo (Map PackageName (Map ModuleName (Map OpName FixityInfo)))
- hackageInfo :: HackageInfo
- defaultDependencies :: Set PackageName
- packageFixityMap :: Set PackageName -> PackageFixityMap
- packageFixityMap' :: HackageInfo -> Set PackageName -> PackageFixityMap
- moduleFixityMap :: PackageFixityMap -> [FixityImport] -> ModuleFixityMap
- applyFixityOverrides :: FixityOverrides -> ModuleFixityMap -> ModuleFixityMap
Documentation
An operator name.
data FixityDirection #
Fixity direction.
Instances
data FixityInfo #
Fixity information about an infix operator. This type provides precise
information as opposed to FixityApproximation
.
Constructors
FixityInfo | |
Fields
|
Instances
Generic FixityInfo # | |
Defined in Ormolu.Fixity.Internal Associated Types type Rep FixityInfo :: Type -> Type | |
Show FixityInfo # | |
Defined in Ormolu.Fixity.Internal Methods showsPrec :: Int -> FixityInfo -> ShowS # show :: FixityInfo -> String # showList :: [FixityInfo] -> ShowS # | |
Binary FixityInfo # | |
Defined in Ormolu.Fixity.Internal | |
NFData FixityInfo # | |
Defined in Ormolu.Fixity.Internal Methods rnf :: FixityInfo -> () | |
Eq FixityInfo # | |
Defined in Ormolu.Fixity.Internal | |
Ord FixityInfo # | |
Defined in Ormolu.Fixity.Internal Methods compare :: FixityInfo -> FixityInfo -> Ordering # (<) :: FixityInfo -> FixityInfo -> Bool # (<=) :: FixityInfo -> FixityInfo -> Bool # (>) :: FixityInfo -> FixityInfo -> Bool # (>=) :: FixityInfo -> FixityInfo -> Bool # max :: FixityInfo -> FixityInfo -> FixityInfo # min :: FixityInfo -> FixityInfo -> FixityInfo # | |
type Rep FixityInfo # | |
Defined in Ormolu.Fixity.Internal type Rep FixityInfo = D1 ('MetaData "FixityInfo" "Ormolu.Fixity.Internal" "ormolu-0.7.3.0-HBBZ6GnY91z520bn3CWptD" 'False) (C1 ('MetaCons "FixityInfo" 'PrefixI 'True) (S1 ('MetaSel ('Just "fiDirection") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FixityDirection) :*: S1 ('MetaSel ('Just "fiPrecedence") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))) |
defaultFixityInfo :: FixityInfo #
Fixity that is implicitly assumed if no fixity declaration is present.
data FixityApproximation #
Approximation of fixity information that takes the uncertainty that can arise from conflicting definitions into account.
Constructors
FixityApproximation | |
Fields
|
Instances
defaultFixityApproximation :: FixityApproximation #
The lowest level of information we can have about an operator.
newtype FixityOverrides #
Map from the operator name to its FixityInfo
.
Constructors
FixityOverrides | |
Fields
|
Instances
Show FixityOverrides # | |
Defined in Ormolu.Fixity.Internal Methods showsPrec :: Int -> FixityOverrides -> ShowS # show :: FixityOverrides -> String # showList :: [FixityOverrides] -> ShowS # | |
Eq FixityOverrides # | |
Defined in Ormolu.Fixity.Internal Methods (==) :: FixityOverrides -> FixityOverrides -> Bool # (/=) :: FixityOverrides -> FixityOverrides -> Bool # |
defaultFixityOverrides :: FixityOverrides #
Fixity overrides to use by default.
newtype ModuleReexports #
Module re-exports
Constructors
ModuleReexports | |
Fields
|
Instances
Show ModuleReexports # | |
Defined in Ormolu.Fixity.Internal Methods showsPrec :: Int -> ModuleReexports -> ShowS # show :: ModuleReexports -> String # showList :: [ModuleReexports] -> ShowS # | |
Eq ModuleReexports # | |
Defined in Ormolu.Fixity.Internal Methods (==) :: ModuleReexports -> ModuleReexports -> Bool # (/=) :: ModuleReexports -> ModuleReexports -> Bool # |
defaultModuleReexports :: ModuleReexports #
Module re-exports to apply by default.
newtype PackageFixityMap #
Fixity information that is specific to a package being formatted. It requires module-specific imports in order to be usable.
Constructors
PackageFixityMap (Map OpName (NonEmpty (PackageName, ModuleName, FixityInfo))) |
Instances
Show PackageFixityMap # | |
Defined in Ormolu.Fixity.Internal Methods showsPrec :: Int -> PackageFixityMap -> ShowS # show :: PackageFixityMap -> String # showList :: [PackageFixityMap] -> ShowS # | |
Eq PackageFixityMap # | |
Defined in Ormolu.Fixity.Internal Methods (==) :: PackageFixityMap -> PackageFixityMap -> Bool # (/=) :: PackageFixityMap -> PackageFixityMap -> Bool # |
newtype ModuleFixityMap #
Fixity map that takes into account imports in a particular module.
Constructors
ModuleFixityMap (Map OpName FixityProvenance) |
Instances
Show ModuleFixityMap # | |
Defined in Ormolu.Fixity.Internal Methods showsPrec :: Int -> ModuleFixityMap -> ShowS # show :: ModuleFixityMap -> String # showList :: [ModuleFixityMap] -> ShowS # | |
Eq ModuleFixityMap # | |
Defined in Ormolu.Fixity.Internal Methods (==) :: ModuleFixityMap -> ModuleFixityMap -> Bool # (/=) :: ModuleFixityMap -> ModuleFixityMap -> Bool # |
inferFixity :: RdrName -> ModuleFixityMap -> FixityApproximation #
Get a FixityApproximation
of an operator.
newtype HackageInfo #
The map of operators declared by each package grouped by module name.
Constructors
HackageInfo (Map PackageName (Map ModuleName (Map OpName FixityInfo))) |
Instances
Generic HackageInfo # | |
Defined in Ormolu.Fixity.Internal Associated Types type Rep HackageInfo :: Type -> Type | |
Binary HackageInfo # | |
Defined in Ormolu.Fixity.Internal | |
NFData HackageInfo # | |
Defined in Ormolu.Fixity.Internal Methods rnf :: HackageInfo -> () | |
type Rep HackageInfo # | |
Defined in Ormolu.Fixity.Internal type Rep HackageInfo = D1 ('MetaData "HackageInfo" "Ormolu.Fixity.Internal" "ormolu-0.7.3.0-HBBZ6GnY91z520bn3CWptD" 'True) (C1 ('MetaCons "HackageInfo" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map PackageName (Map ModuleName (Map OpName FixityInfo)))))) |
The built-in HackageInfo
used by Ormolu.
defaultDependencies :: Set PackageName #
Default set of packages to assume as dependencies e.g. when no Cabal file is found or taken into consideration.
Arguments
:: Set PackageName | Set of packages to select |
-> PackageFixityMap | Package fixity map |
Compute the fixity map that is specific to the package we are formatting.
Arguments
:: HackageInfo | Hackage info |
-> Set PackageName | Set of packages to select |
-> PackageFixityMap | Package fixity map |
The same as packageFixityMap
, except this specific version of the
function allows the user to specify HackageInfo
used to build the final
fixity map.
Arguments
:: PackageFixityMap | Fixity information selected from dependencies of this package |
-> [FixityImport] | A simplified representation of the import list in this module |
-> ModuleFixityMap | Fixity map specific to this module |
Compute the fixity map that is specific to the module we are formatting.
Arguments
:: FixityOverrides | User overrides |
-> ModuleFixityMap | Module fixity map |
-> ModuleFixityMap | Module fixity map with overrides applied |
Apply fixity overrides.