module Fun.Tree where data Tree = Tree [Program] deriving Show data Program = Program [Block] deriving Show data Block = Block FunctionBlock -- | Block DataBlock ... deriving Show data FunctionBlock = FunctionBlock FunctionDeclaration [FunctionDefinition] deriving Show data FunctionDeclaration = FunctionDeclarationWithoutFlags String Char [String] | FunctionDeclarationWithFlags String Char [String] [String] deriving Show data FunctionDefinition = FunctionDefinition String String deriving Show