Advanced functional programming third international school, AFP'98, Braga, Portugal, September 12 - 19, 1998 ; revised lectures (Springer, 1999)