\begin{code}
module BasicTypes(
- Version,
+ Version, bumpVersion, initialVersion, bogusVersion,
Arity,
TopLevelFlag(..), isTopLevel, isNotTopLevel,
+ Boxity(..), isBoxed, tupleParens,
+
OccInfo(..), seqOccInfo, isFragileOccInfo, isLoopBreaker,
+
InsideLam, insideLam, notInsideLam,
OneBranch, oneBranch, notOneBranch
\begin{code}
type Version = Int
+
+bogusVersion :: Version -- Shouldn't look at these
+bogusVersion = error "bogusVersion"
+
+bumpVersion :: Version -> Version
+bumpVersion v = v+1
+
+initialVersion :: Version
+initialVersion = 1
\end{code}
%************************************************************************
%* *
+\subsection[Top-level/local]{Top-level/not-top level flag}
+%* *
+%************************************************************************
+
+\begin{code}
+data Boxity
+ = Boxed
+ | Unboxed
+ deriving( Eq )
+
+isBoxed :: Boxity -> Bool
+isBoxed Boxed = True
+isBoxed Unboxed = False
+
+tupleParens :: Boxity -> SDoc -> SDoc
+tupleParens Boxed p = parens p
+tupleParens Unboxed p = ptext SLIT("(#") <+> p <+> ptext SLIT("#)")
+\end{code}
+
+
+%************************************************************************
+%* *
\subsection[Recursive/Non-Recursive]{Recursive/Non-Recursive flag}
%* *
%************************************************************************