public static function forSum(callable $num): self {
        return new self(
                function() { return 0; },
                function(&$result, $element) use($num) { $result+= $num($element); }
        );
    }