term :: Parser Expr
term =
      Var <$> ident
  -- <|> Num <$> int
  <|> lam <$ (sym "\\" <?> "lambda") <*> many1 ident <* sym "->" <*> expr
  <|> letfun <$ keyw "let" <*> ident <*> many ident <* sym "=" <*> expr
             <* keyw "in"  <*> expr
  <|> parens tok expr
term :: Parser Expr
term =
      Var <$> ident
  -- <|> Num <$> int
  <|> lam <$ (sym "\\" <?> "lambda") <*> many1 ident <* sym "->" <*> expr
  <|> letfun <$ keyw "let" <*> ident <*> many ident <* sym "=" <*> expr
             <* keyw "in"  <*> expr
  <|> parens tok expr
term =
      Var <$> ident
  -- <|> Num <$> int
  <|> lam <$ (sym "\\" <?> "lambda") <*> many1 ident <* sym "->" <*> expr
  <|> letfun <$ keyw "let" <*> ident <*> many ident <* sym "=" <*> expr
             <* keyw "in"  <*> expr
  <|> parens tok expr