name :: Parser Name
name = (:) <$> satisfy isAlpha_ <*> many (satisfy isAlphaNum_) where
  isAlpha_ = (||) <$> isAlpha <*> (== '_')
  isAlphaNum_ = (||) <$> isAlphaNum <*> (== '_')
name :: Parser Name
name = (:) <$> satisfy isAlpha_ <*> many (satisfy isAlphaNum_) where
  isAlpha_ = (||) <$> isAlpha <*> (== '_')
  isAlphaNum_ = (||) <$> isAlphaNum <*> (== '_')
name = (:) <$> satisfy isAlpha_ <*> many (satisfy isAlphaNum_) where
  isAlpha_ = (||) <$> isAlpha <*> (== '_')
  isAlphaNum_ = (||) <$> isAlphaNum <*> (== '_')