definition module pp

import transform

showComponents3 :: !*{! Group} !Int !Bool !*{# FunDef} !*File  -> (!*{! Group}, !*{# FunDef},!*File)


class (<#<) infixl a :: *PPState !a -> *PPState

instance <#< Bool
instance <#< (a,b) | <#< a & <#< b
instance <#< (a,b,c) | <#< a & <#< b & <#< c
instance <#< (a,b,c,d) | <#< a & <#< b & <#< c & <#< d
instance <#< (a,b,c,d,e) | <#< a & <#< b & <#< c & <#< d & <#< e

instance <#< (a,b,c,d,e,f,g) | <#< a & <#< b & <#< c & <#< d & <#< e & <#< f & <#< g

instance <#< [a] | <#< a


instance <#< Expression
instance <#< Position
instance <#< {#Char}
instance <#< Optional a | <#< a
//instance <#< FunctionBody
instance <#< TypeCodeExpression
instance <#< VarInfo
:: PPState

(-#->) infix :: .a !b -> .a | <#< b


//
instance <#< FunDef
InitPPState :: !*File -> *PPState

instance <#< {!a} | select_u, size_u, <#< a
instance <#< Type
instance <#< TypeContext
