Agda-2.4.0.2: A dependently typed functional programming language and proof assistant

Safe HaskellNone
LanguageHaskell98

Agda.Syntax.Fixity

Description

Definitions for fixity and precedence levels.

Synopsis

Documentation

data Fixity' Source

The notation is handled as the fixity in the renamer. Hence they are grouped together in this type.

Constructors

Fixity' 

type NewNotation = (QName, Fixity, Notation) Source

All the notation information related to a name.

oldToNewNotation :: (QName, Fixity') -> NewNotation Source

If an operator has no specific notation, recover it from its name.

defaultFixity :: Fixity Source

The default fixity. Currently defined to be NonAssoc 20.

hiddenArgumentCtx :: Hiding -> Precedence Source

The precedence corresponding to a possibly hidden argument.

opBrackets :: Fixity -> Precedence -> Bool Source

Do we need to bracket an operator application of the given fixity in a context with the given precedence.

lamBrackets :: Precedence -> Bool Source

Does a lambda-like thing (lambda, let or pi) need brackets in the given context? A peculiar thing with lambdas is that they don't need brackets in certain right operand contexts. However, we insert brackets anyway, for the following reasons:

  • Clarity.
  • Sometimes brackets are needed. Example: m₁ >>= (λ x → x) >>= m₂ (here _>>=_ is left associative).

appBrackets :: Precedence -> Bool Source

Does a function application need brackets?

withAppBrackets :: Precedence -> Bool Source

Does a with application need brackets?

piBrackets :: Precedence -> Bool Source

Does a function space need brackets?