ormolu-0.7.7.0: A formatter for Haskell source code
Safe HaskellNone
LanguageGHC2021

Ormolu.Fixity

Description

Definitions for fixity analysis.

Synopsis

Documentation

data OpName #

An operator name.

Instances

Instances details
Binary OpName # 
Instance details

Defined in Ormolu.Fixity.Internal

Methods

put :: OpName -> Put #

get :: Get OpName #

putList :: [OpName] -> Put #

NFData OpName # 
Instance details

Defined in Ormolu.Fixity.Internal

Methods

rnf :: OpName -> () #

IsString OpName # 
Instance details

Defined in Ormolu.Fixity.Internal

Methods

fromString :: String -> OpName #

Show OpName # 
Instance details

Defined in Ormolu.Fixity.Internal

Eq OpName # 
Instance details

Defined in Ormolu.Fixity.Internal

Methods

(==) :: OpName -> OpName -> Bool #

(/=) :: OpName -> OpName -> Bool #

Ord OpName # 
Instance details

Defined in Ormolu.Fixity.Internal

pattern OpName :: Text -> OpName #

unOpName :: OpName -> Text #

Convert an OpName to Text.

occOpName :: OccName -> OpName #

Convert an 'OccName to an OpName.

data FixityDirection #

Fixity direction.

Constructors

InfixL 
InfixR 
InfixN 

Instances

Instances details
Binary FixityDirection # 
Instance details

Defined in Ormolu.Fixity.Internal

NFData FixityDirection # 
Instance details

Defined in Ormolu.Fixity.Internal

Methods

rnf :: FixityDirection -> () #

Generic FixityDirection # 
Instance details

Defined in Ormolu.Fixity.Internal

Associated Types

type Rep FixityDirection 
Instance details

Defined in Ormolu.Fixity.Internal

type Rep FixityDirection = D1 ('MetaData "FixityDirection" "Ormolu.Fixity.Internal" "ormolu-0.7.7.0-7YNkGGnYe6pKHEeO4oSKcj" 'False) (C1 ('MetaCons "InfixL" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "InfixR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "InfixN" 'PrefixI 'False) (U1 :: Type -> Type)))
Show FixityDirection # 
Instance details

Defined in Ormolu.Fixity.Internal

Eq FixityDirection # 
Instance details

Defined in Ormolu.Fixity.Internal

Ord FixityDirection # 
Instance details

Defined in Ormolu.Fixity.Internal

type Rep FixityDirection # 
Instance details

Defined in Ormolu.Fixity.Internal

type Rep FixityDirection = D1 ('MetaData "FixityDirection" "Ormolu.Fixity.Internal" "ormolu-0.7.7.0-7YNkGGnYe6pKHEeO4oSKcj" 'False) (C1 ('MetaCons "InfixL" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "InfixR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "InfixN" 'PrefixI 'False) (U1 :: Type -> Type)))

data FixityInfo #

Fixity information about an infix operator. This type provides precise information as opposed to FixityApproximation.

Constructors

FixityInfo 

Fields

Instances

Instances details
Binary FixityInfo # 
Instance details

Defined in Ormolu.Fixity.Internal

NFData FixityInfo # 
Instance details

Defined in Ormolu.Fixity.Internal

Methods

rnf :: FixityInfo -> () #

Generic FixityInfo # 
Instance details

Defined in Ormolu.Fixity.Internal

Associated Types

type Rep FixityInfo 
Instance details

Defined in Ormolu.Fixity.Internal

type Rep FixityInfo = D1 ('MetaData "FixityInfo" "Ormolu.Fixity.Internal" "ormolu-0.7.7.0-7YNkGGnYe6pKHEeO4oSKcj" 'False) (C1 ('MetaCons "FixityInfo" 'PrefixI 'True) (S1 ('MetaSel ('Just "fiDirection") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FixityDirection) :*: S1 ('MetaSel ('Just "fiPrecedence") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))
Show FixityInfo # 
Instance details

Defined in Ormolu.Fixity.Internal

Eq FixityInfo # 
Instance details

Defined in Ormolu.Fixity.Internal

Ord FixityInfo # 
Instance details

Defined in Ormolu.Fixity.Internal

type Rep FixityInfo # 
Instance details

Defined in Ormolu.Fixity.Internal

type Rep FixityInfo = D1 ('MetaData "FixityInfo" "Ormolu.Fixity.Internal" "ormolu-0.7.7.0-7YNkGGnYe6pKHEeO4oSKcj" '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

Instances details
Binary FixityApproximation # 
Instance details

Defined in Ormolu.Fixity.Internal

NFData FixityApproximation # 
Instance details

Defined in Ormolu.Fixity.Internal

Methods

rnf :: FixityApproximation -> () #

Semigroup FixityApproximation #

Gives the ability to merge two (maybe conflicting) definitions for an operator, keeping the higher level of compatible information from both.

Instance details

Defined in Ormolu.Fixity.Internal

Generic FixityApproximation # 
Instance details

Defined in Ormolu.Fixity.Internal

Associated Types

type Rep FixityApproximation 
Instance details

Defined in Ormolu.Fixity.Internal

type Rep FixityApproximation = D1 ('MetaData "FixityApproximation" "Ormolu.Fixity.Internal" "ormolu-0.7.7.0-7YNkGGnYe6pKHEeO4oSKcj" 'False) (C1 ('MetaCons "FixityApproximation" 'PrefixI 'True) (S1 ('MetaSel ('Just "faDirection") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe FixityDirection)) :*: (S1 ('MetaSel ('Just "faMinPrecedence") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just "faMaxPrecedence") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))))
Show FixityApproximation # 
Instance details

Defined in Ormolu.Fixity.Internal

Eq FixityApproximation # 
Instance details

Defined in Ormolu.Fixity.Internal

Ord FixityApproximation # 
Instance details

Defined in Ormolu.Fixity.Internal

type Rep FixityApproximation # 
Instance details

Defined in Ormolu.Fixity.Internal

type Rep FixityApproximation = D1 ('MetaData "FixityApproximation" "Ormolu.Fixity.Internal" "ormolu-0.7.7.0-7YNkGGnYe6pKHEeO4oSKcj" 'False) (C1 ('MetaCons "FixityApproximation" 'PrefixI 'True) (S1 ('MetaSel ('Just "faDirection") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe FixityDirection)) :*: (S1 ('MetaSel ('Just "faMinPrecedence") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just "faMaxPrecedence") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))))

defaultFixityApproximation :: FixityApproximation #

The lowest level of information we can have about an operator.

newtype FixityOverrides #

Map from the operator name to its FixityInfo.

defaultFixityOverrides :: FixityOverrides #

Fixity overrides to use by default.

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.

newtype ModuleFixityMap #

Fixity map that takes into account imports in a particular module.

inferFixity #

Arguments

:: Choice "debug"

Whether to print debug info regarding fixity inference

-> RdrName

Operator name

-> ModuleFixityMap

Module fixity map

-> FixityApproximation

The resulting fixity approximation

Get a FixityApproximation of an operator.

newtype HackageInfo #

The map of operators declared by each package grouped by module name.

Instances

Instances details
Binary HackageInfo # 
Instance details

Defined in Ormolu.Fixity.Internal

NFData HackageInfo # 
Instance details

Defined in Ormolu.Fixity.Internal

Methods

rnf :: HackageInfo -> () #

Generic HackageInfo # 
Instance details

Defined in Ormolu.Fixity.Internal

Associated Types

type Rep HackageInfo 
Instance details

Defined in Ormolu.Fixity.Internal

type Rep HackageInfo = D1 ('MetaData "HackageInfo" "Ormolu.Fixity.Internal" "ormolu-0.7.7.0-7YNkGGnYe6pKHEeO4oSKcj" 'True) (C1 ('MetaCons "HackageInfo" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map PackageName (Map ModuleName (Map OpName FixityInfo))))))
type Rep HackageInfo # 
Instance details

Defined in Ormolu.Fixity.Internal

type Rep HackageInfo = D1 ('MetaData "HackageInfo" "Ormolu.Fixity.Internal" "ormolu-0.7.7.0-7YNkGGnYe6pKHEeO4oSKcj" 'True) (C1 ('MetaCons "HackageInfo" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map PackageName (Map ModuleName (Map OpName FixityInfo))))))

hackageInfo :: HackageInfo #

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.

packageFixityMap #

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.

packageFixityMap' #

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.

moduleFixityMap #

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.

applyFixityOverrides #

Arguments

:: FixityOverrides

User overrides

-> ModuleFixityMap

Module fixity map

-> ModuleFixityMap

Module fixity map with overrides applied

Apply fixity overrides.