private static function remove(array $roses) { return FP::concat(FP::map(function ($index) use($roses) { return FP::excludeNth($index, $roses); }, array_keys($roses)), FP::rgen(self::permutations($roses))); }