public static function foldr(callable $function, $initial, $foldable)
    {
        Arguments::define(Boa::func(), Boa::any(), Boa::foldable())
            ->check($function, $initial, $foldable);

        return ComplexFactory::toFoldable($foldable)
            ->foldr($function, $initial);
    }