parseVariant = do symbol "<"
                  var <- identifier
                  symbol "="
                  t <- parseTerm
                  symbol ">"
                  reserved "as"
                  liftM (TmTag var t) parseType
parseVariant = do symbol "<"
                  var <- identifier
                  symbol "="
                  t <- parseTerm
                  symbol ">"
                  reserved "as"
                  liftM (TmTag var t) parseType
parseVariant = do symbol "<"
                  var <- identifier
                  symbol "="
                  t <- parseTerm
                  symbol ">"
                  reserved "as"
                  liftM (TmTag var t) parseType