+type ListItem = [Element]
+
+
+data Definition
+ = Definition {
+ defTerm :: ![InlineElement]
+ , defDesc :: ![InlineElement]
+ }
+ deriving (Eq, Show)
+
+
+data CommandType
+ = InlineCommandType
+ | BlockCommandType
+ deriving (Eq, Show)
+
+
+data BlockCommand
+ = BlockCommand {
+ bCmdName :: !String
+ , bCmdAttributes :: ![Attribute]
+ , bCmdContents :: ![BlockElement]
+ }
+ deriving (Eq, Show)
+
+
+data InlineCommand
+ = InlineCommand {
+ iCmdName :: !String
+ , iCmdAttributes :: ![Attribute]
+ , iCmdContents :: ![InlineElement]
+ }
+ deriving (Eq, Show)