imported 1.6 ported do-notation from erlando