public function bind(callable $transformation) { // xs >>= f = concat (map f xs) return self::of(f\concat(f\map($transformation, $this))); }