parseElement :: Cursor -> [Element]
parseElement cur =
  case node cur of
       X.NodeElement e ->
         case X.nameLocalName $ X.elementName e of
              "term"       -> parseTerm cur
              "text"       -> parseText cur
              "choose"     -> parseChoose cur
              "group"      -> parseGroup cur
              "label"      -> parseLabel cur
              "number"     -> parseNumber cur
              "substitute" -> parseSubstitute cur
              "names"      -> parseNames cur
              "date"       -> parseDate cur
              _            -> []
       _ -> []
parseElement :: Cursor -> [Element]
parseElement cur =
  case node cur of
       X.NodeElement e ->
         case X.nameLocalName $ X.elementName e of
              "term"       -> parseTerm cur
              "text"       -> parseText cur
              "choose"     -> parseChoose cur
              "group"      -> parseGroup cur
              "label"      -> parseLabel cur
              "number"     -> parseNumber cur
              "substitute" -> parseSubstitute cur
              "names"      -> parseNames cur
              "date"       -> parseDate cur
              _            -> []
       _ -> []
parseElement cur =
  case node cur of
       X.NodeElement e ->
         case X.nameLocalName $ X.elementName e of
              "term"       -> parseTerm cur
              "text"       -> parseText cur
              "choose"     -> parseChoose cur
              "group"      -> parseGroup cur
              "label"      -> parseLabel cur
              "number"     -> parseNumber cur
              "substitute" -> parseSubstitute cur
              "names"      -> parseNames cur
              "date"       -> parseDate cur
              _            -> []
       _ -> []