module BasicTypes(
Version, Arity,
Unused, unused,
- Fixity(..), FixityDirection(..), StrictnessMark(..),
- NewOrData(..), TopLevelFlag(..), RecFlag(..)
+ Fixity(..), FixityDirection(..),
+ defaultFixity, maxPrecedence, negateFixity, negatePrecedence,
+ NewOrData(..),
+ RecFlag(..), isRec, isNonRec,
+ TopLevelFlag(..), isTopLevel, isNotTopLevel
) where
#include "HsVersions.h"
instance Eq Fixity where -- Used to determine if two fixities conflict
(Fixity p1 dir1) == (Fixity p2 dir2) = p1==p2 && dir1 == dir2
+
+maxPrecedence = (9::Int)
+defaultFixity = Fixity maxPrecedence InfixL
+
+negateFixity :: Fixity
+negateFixity = Fixity negatePrecedence InfixL -- Precedence of unary negate is wired in as infixl 6!
+
+negatePrecedence :: Int
+negatePrecedence = 6
\end{code}
deriving( Eq ) -- Needed because Demand derives Eq
\end{code}
-The @RecFlag@ tells whether the thing is part of a recursive group or not.
-
-
%************************************************************************
%* *
\subsection[Top-level/local]{Top-level/not-top level flag}
data TopLevelFlag
= TopLevel
| NotTopLevel
-\end{code}
+isTopLevel, isNotTopLevel :: TopLevelFlag -> Bool
+
+isNotTopLevel NotTopLevel = True
+isNotTopLevel TopLevel = False
+
+isTopLevel TopLevel = True
+isTopLevel NotTopLevel = False
+\end{code}
%************************************************************************
%* *
-\subsection[Top-level/local]{Top-level/not-top level flag}
+\subsection[Recursive/Non-Recursive]{Recursive/Non-Recursive flag}
%* *
%************************************************************************
\begin{code}
data RecFlag = Recursive
| NonRecursive
-\end{code}
-%************************************************************************
-%* *
-\subsection{Strictness indication}
-%* *
-%************************************************************************
+isRec :: RecFlag -> Bool
+isRec Recursive = True
+isRec NonRecursive = False
-\begin{code}
-data StrictnessMark = MarkedStrict
- | NotMarkedStrict
+isNonRec :: RecFlag -> Bool
+isNonRec Recursive = False
+isNonRec NonRecursive = True
\end{code}