Declarative programming, Sasbachwalden 1991 (Springer, 1992)