parseVariantType = do symbol "<"
                      fields <- sepBy1 parseField comma
                      symbol ">"
                      return $ TyVariant fields
    where parseField = do var <- identifier
                          colon
                          ty <- parseType
                          return (var, ty)
parseVariantType = do symbol "<"
                      fields <- sepBy1 parseField comma
                      symbol ">"
                      return $ TyVariant fields
    where parseField = do var <- identifier
                          colon
                          ty <- parseType
                          return (var, ty)
parseVariantType = do symbol "<"
                      fields <- sepBy1 parseField comma
                      symbol ">"
                      return $ TyVariant fields
    where parseField = do var <- identifier
                          colon
                          ty <- parseType
                          return (var, ty)