Declarative Programming with Algebra. - André van Delft; Anatoliy Kmetyuk (FLOPS, 2016)