diff --git a/src/Modules/AssetAdmin/FileFilter.php b/src/Modules/AssetAdmin/FileFilter.php
index d752cbef..7285767e 100644
--- a/src/Modules/AssetAdmin/FileFilter.php
+++ b/src/Modules/AssetAdmin/FileFilter.php
@@ -9,19 +9,19 @@
 use SilverStripe\Control\HTTPResponse_Exception;
 use SilverStripe\Forms\DateField;
 use SilverStripe\Model\List\ArrayList;
-use SilverStripe\Model\List\Filterable;
+use SilverStripe\Model\List\SS_List;
 
 class FileFilter
 {
     /**
      * Caution: Does NOT enforce canView permissions
      *
-     * @param Filterable $list
+     * @param SS_List $list
      * @param array $filter
-     * @return Filterable
+     * @return SS_List
      * @throws HTTPResponse_Exception
      */
-    public static function filterList(Filterable $list, $filter)
+    public static function filterList(SS_List $list, $filter)
     {
         // ID filtering
         if (isset($filter['id']) && (int)$filter['id'] > 0) {
diff --git a/src/Modules/AssetAdmin/Resolvers/AssetAdminResolver.php b/src/Modules/AssetAdmin/Resolvers/AssetAdminResolver.php
index d09de071..eaaf629a 100644
--- a/src/Modules/AssetAdmin/Resolvers/AssetAdminResolver.php
+++ b/src/Modules/AssetAdmin/Resolvers/AssetAdminResolver.php
@@ -13,7 +13,6 @@
 use SilverStripe\GraphQL\QueryHandler\UserContextProvider;
 use SilverStripe\GraphQL\Schema\DataObject\FieldAccessor;
 use SilverStripe\ORM\DataList;
-use SilverStripe\Model\List\Filterable;
 use SilverStripe\Versioned\Versioned;
 use InvalidArgumentException;
 
diff --git a/src/Modules/AssetAdmin/Resolvers/FolderTypeResolver.php b/src/Modules/AssetAdmin/Resolvers/FolderTypeResolver.php
index 71a1658c..7e3c1c18 100644
--- a/src/Modules/AssetAdmin/Resolvers/FolderTypeResolver.php
+++ b/src/Modules/AssetAdmin/Resolvers/FolderTypeResolver.php
@@ -13,7 +13,6 @@
 use SilverStripe\GraphQL\Schema\Schema;
 use SilverStripe\ORM\DataList;
 use SilverStripe\ORM\DB;
-use SilverStripe\Model\List\Sortable;
 use SilverStripe\Versioned\Versioned;
 use InvalidArgumentException;
 use Exception;
diff --git a/src/Modules/Versioned/Plugins/VersionedDataObject.php b/src/Modules/Versioned/Plugins/VersionedDataObject.php
index 6f1864fb..053c040b 100644
--- a/src/Modules/Versioned/Plugins/VersionedDataObject.php
+++ b/src/Modules/Versioned/Plugins/VersionedDataObject.php
@@ -17,11 +17,11 @@
 use SilverStripe\GraphQL\Schema\Type\ModelType;
 use SilverStripe\GraphQL\Schema\Type\Type;
 use SilverStripe\ORM\DataObject;
-use SilverStripe\Model\List\Sortable;
 use SilverStripe\Security\Member;
 use SilverStripe\GraphQL\Modules\Versioned\Resolvers\VersionedResolver;
 use SilverStripe\Versioned\Versioned;
 use Closure;
+use SilverStripe\Model\List\SS_List;
 use SilverStripe\Model\ModelData;
 
 // GraphQL dependency is optional in versioned,
@@ -131,7 +131,7 @@ public function apply(ModelType $type, Schema $schema, array $config = []): void
     public static function sortVersions(array $config): Closure
     {
         $fieldName = $config['fieldName'];
-        return function (Sortable $list, array $args) use ($fieldName) {
+        return function (SS_List $list, array $args) use ($fieldName) {
             $versionSort = $args[$fieldName]['version'] ?? null;
             if ($versionSort) {
                 $list = $list->sort('Version', $versionSort);
diff --git a/src/Schema/DataObject/Plugin/CanViewPermission.php b/src/Schema/DataObject/Plugin/CanViewPermission.php
index df74b7bf..d10cce20 100644
--- a/src/Schema/DataObject/Plugin/CanViewPermission.php
+++ b/src/Schema/DataObject/Plugin/CanViewPermission.php
@@ -9,7 +9,6 @@
 use SilverStripe\GraphQL\QueryHandler\UserContextProvider;
 use SilverStripe\Core\ArrayLib;
 use SilverStripe\Model\List\ArrayList;
-use SilverStripe\Model\List\Filterable;
 use InvalidArgumentException;
 use SilverStripe\Model\List\SS_List;
 use SilverStripe\Model\ArrayData;
@@ -37,7 +36,7 @@ protected function getPermissionResolver(): callable
 
     /**
      * @param mixed $obj
-     * @return Filterable|object|array|null
+     * @return SS_List|object|array|null
      * @throws InvalidArgumentException
      */
     public static function permissionCheck($obj, array $args, array $context, ResolveInfo $info)
@@ -57,7 +56,7 @@ public static function permissionCheck($obj, array $args, array $context, Resolv
 
 
         if (is_object($obj)) {
-            return $obj instanceof Filterable
+            return $obj instanceof SS_List
                 ? static::listPermissionCheck($obj, $args, $context, $info)
                 : static::itemPermissionCheck($obj, $args, $context, $info);
         }
@@ -68,10 +67,10 @@ public static function permissionCheck($obj, array $args, array $context, Resolv
             Otherwise, try returning an instance of %s or another implementation of %s.',
             CanViewPermission::IDENTIFIER,
             $info->fieldName,
-            Filterable::class,
+            SS_List::class,
             AbstractCanViewPermission::class,
             SS_List::class,
-            Filterable::class
+            SS_List::class
         ));
     }
 
@@ -106,13 +105,13 @@ public static function itemPermissionCheck($obj, array $args, array $context, Re
     }
 
     /**
-     * @param Filterable $obj
+     * @param SS_List $obj
      * @param array $args
      * @param array $context
      * @param ResolveInfo $info
-     * @return Filterable
+     * @return SS_List
      */
-    public static function listPermissionCheck(Filterable $obj, array $args, array $context, ResolveInfo $info): Filterable
+    public static function listPermissionCheck(SS_List $obj, array $args, array $context, ResolveInfo $info): SS_List
     {
         // Use an ArrayList rather than a DataList to ensure items returns all have had a canView() check run on them.
         // Converting to an ArrayList will run a query and mean we start with a fixed number of items before
diff --git a/src/Schema/DataObject/Plugin/Paginator.php b/src/Schema/DataObject/Plugin/Paginator.php
index d605e386..2509ac6e 100644
--- a/src/Schema/DataObject/Plugin/Paginator.php
+++ b/src/Schema/DataObject/Plugin/Paginator.php
@@ -4,9 +4,9 @@
 
 use GraphQL\Type\Definition\ResolveInfo;
 use SilverStripe\GraphQL\Schema\Schema;
-use SilverStripe\Model\List\Limitable;
 use SilverStripe\GraphQL\Schema\Plugin\PaginationPlugin;
 use Closure;
+use SilverStripe\Model\List\SS_List;
 
 /**
  * Adds pagination to a DataList query
@@ -35,7 +35,7 @@ public static function paginate(array $context): Closure
                 return null;
             }
 
-            if (!$list instanceof Limitable) {
+            if (!$list instanceof SS_List) {
                 Schema::invariant(
                     !isset($list['nodes']),
                     'List on field %s has already been paginated. Was the plugin executed twice?',
@@ -51,7 +51,7 @@ public static function paginate(array $context): Closure
             $limit = min($limit, $maxLimit);
 
             // Apply limit
-            /* @var Limitable $list */
+            /* @var SS_List $list */
             $limitedList = $list->limit($limit, $offset);
             return static::createPaginationResult($total, $limitedList, $limit, $offset);
         };
diff --git a/src/Schema/DataObject/Plugin/QueryFilter/FieldFilterInterface.php b/src/Schema/DataObject/Plugin/QueryFilter/FieldFilterInterface.php
index cd4d0213..b0d67060 100644
--- a/src/Schema/DataObject/Plugin/QueryFilter/FieldFilterInterface.php
+++ b/src/Schema/DataObject/Plugin/QueryFilter/FieldFilterInterface.php
@@ -4,14 +4,14 @@
 namespace SilverStripe\GraphQL\Schema\DataObject\Plugin\QueryFilter;
 
 use SilverStripe\ORM\DataList;
-use SilverStripe\Model\List\Filterable;
+use SilverStripe\Model\List\SS_List;
 
 /**
  * Defines the interface used by all read filters for operations
  */
 interface FieldFilterInterface
 {
-    public function apply(Filterable $list, string $fieldName, $value): iterable;
+    public function apply(SS_List $list, string $fieldName, $value): iterable;
 
     /**
      * @return string
diff --git a/src/Schema/DataObject/Plugin/QueryFilter/Filters/ContainsFilter.php b/src/Schema/DataObject/Plugin/QueryFilter/Filters/ContainsFilter.php
index 35cf401d..3f24b6a6 100644
--- a/src/Schema/DataObject/Plugin/QueryFilter/Filters/ContainsFilter.php
+++ b/src/Schema/DataObject/Plugin/QueryFilter/Filters/ContainsFilter.php
@@ -4,7 +4,7 @@
 namespace SilverStripe\GraphQL\Schema\DataObject\Plugin\QueryFilter\Filters;
 
 use SilverStripe\GraphQL\Schema\DataObject\Plugin\QueryFilter\FieldFilterInterface;
-use SilverStripe\Model\List\Filterable;
+use SilverStripe\Model\List\SS_List;
 
 /**
  * A filter that selects records that partially match a keyword
@@ -14,7 +14,7 @@ class ContainsFilter implements FieldFilterInterface
     /**
      * @inheritDoc
      */
-    public function apply(Filterable $list, string $fieldName, $value): iterable
+    public function apply(SS_List $list, string $fieldName, $value): iterable
     {
         return $list->filter($fieldName . ':PartialMatch', $value);
     }
diff --git a/src/Schema/DataObject/Plugin/QueryFilter/Filters/EndsWithFilter.php b/src/Schema/DataObject/Plugin/QueryFilter/Filters/EndsWithFilter.php
index b659a01c..56f42ca5 100644
--- a/src/Schema/DataObject/Plugin/QueryFilter/Filters/EndsWithFilter.php
+++ b/src/Schema/DataObject/Plugin/QueryFilter/Filters/EndsWithFilter.php
@@ -4,7 +4,7 @@
 namespace SilverStripe\GraphQL\Schema\DataObject\Plugin\QueryFilter\Filters;
 
 use SilverStripe\GraphQL\Schema\DataObject\Plugin\QueryFilter\FieldFilterInterface;
-use SilverStripe\Model\List\Filterable;
+use SilverStripe\Model\List\SS_List;
 
 /**
  * A query filter that filters records by the end of a field's contents
@@ -14,7 +14,7 @@ class EndsWithFilter implements FieldFilterInterface
     /**
      * @inheritDoc
      */
-    public function apply(Filterable $list, string $fieldName, $value): iterable
+    public function apply(SS_List $list, string $fieldName, $value): iterable
     {
         return $list->filter($fieldName . ':EndsWith', $value);
     }
diff --git a/src/Schema/DataObject/Plugin/QueryFilter/Filters/EqualToFilter.php b/src/Schema/DataObject/Plugin/QueryFilter/Filters/EqualToFilter.php
index 0bf68d09..3d2916ad 100644
--- a/src/Schema/DataObject/Plugin/QueryFilter/Filters/EqualToFilter.php
+++ b/src/Schema/DataObject/Plugin/QueryFilter/Filters/EqualToFilter.php
@@ -4,7 +4,7 @@
 namespace SilverStripe\GraphQL\Schema\DataObject\Plugin\QueryFilter\Filters;
 
 use SilverStripe\GraphQL\Schema\DataObject\Plugin\QueryFilter\FieldFilterInterface;
-use SilverStripe\Model\List\Filterable;
+use SilverStripe\Model\List\SS_List;
 
 /**
  * A query filter that filters records by exact match of a keyword
@@ -14,7 +14,7 @@ class EqualToFilter implements FieldFilterInterface
     /**
      * @inheritDoc
      */
-    public function apply(Filterable $list, string $fieldName, $value): iterable
+    public function apply(SS_List $list, string $fieldName, $value): iterable
     {
         return $list->filter($fieldName . ':ExactMatch', $value);
     }
diff --git a/src/Schema/DataObject/Plugin/QueryFilter/Filters/GreaterThanFilter.php b/src/Schema/DataObject/Plugin/QueryFilter/Filters/GreaterThanFilter.php
index 6be39d01..24c04561 100644
--- a/src/Schema/DataObject/Plugin/QueryFilter/Filters/GreaterThanFilter.php
+++ b/src/Schema/DataObject/Plugin/QueryFilter/Filters/GreaterThanFilter.php
@@ -4,7 +4,7 @@
 namespace SilverStripe\GraphQL\Schema\DataObject\Plugin\QueryFilter\Filters;
 
 use SilverStripe\GraphQL\Schema\DataObject\Plugin\QueryFilter\FieldFilterInterface;
-use SilverStripe\Model\List\Filterable;
+use SilverStripe\Model\List\SS_List;
 
 /**
  * A query filter that filters records by greater than comparison
@@ -14,7 +14,7 @@ class GreaterThanFilter implements FieldFilterInterface
     /**
      * @inheritDoc
      */
-    public function apply(Filterable $list, string $fieldName, $value): iterable
+    public function apply(SS_List $list, string $fieldName, $value): iterable
     {
         return $list->filter($fieldName . ':GreaterThan', $value);
     }
diff --git a/src/Schema/DataObject/Plugin/QueryFilter/Filters/GreaterThanOrEqualFilter.php b/src/Schema/DataObject/Plugin/QueryFilter/Filters/GreaterThanOrEqualFilter.php
index 63ff3650..bca9b49c 100644
--- a/src/Schema/DataObject/Plugin/QueryFilter/Filters/GreaterThanOrEqualFilter.php
+++ b/src/Schema/DataObject/Plugin/QueryFilter/Filters/GreaterThanOrEqualFilter.php
@@ -4,7 +4,7 @@
 namespace SilverStripe\GraphQL\Schema\DataObject\Plugin\QueryFilter\Filters;
 
 use SilverStripe\GraphQL\Schema\DataObject\Plugin\QueryFilter\FieldFilterInterface;
-use SilverStripe\Model\List\Filterable;
+use SilverStripe\Model\List\SS_List;
 
 /**
  * A query filter that filters records by greater than or equal comparison
@@ -14,7 +14,7 @@ class GreaterThanOrEqualFilter implements FieldFilterInterface
     /**
      * @inheritdoc
      */
-    public function apply(Filterable $list, string $fieldName, $value): iterable
+    public function apply(SS_List $list, string $fieldName, $value): iterable
     {
         return $list->filter($fieldName . ':GreaterThanOrEqual', $value);
     }
diff --git a/src/Schema/DataObject/Plugin/QueryFilter/Filters/InFilter.php b/src/Schema/DataObject/Plugin/QueryFilter/Filters/InFilter.php
index eccb45f1..0199c7da 100644
--- a/src/Schema/DataObject/Plugin/QueryFilter/Filters/InFilter.php
+++ b/src/Schema/DataObject/Plugin/QueryFilter/Filters/InFilter.php
@@ -4,7 +4,7 @@
 namespace SilverStripe\GraphQL\Schema\DataObject\Plugin\QueryFilter\Filters;
 
 use SilverStripe\GraphQL\Schema\DataObject\Plugin\QueryFilter\ListFieldFilterInterface;
-use SilverStripe\Model\List\Filterable;
+use SilverStripe\Model\List\SS_List;
 
 /**
  * A query filter that filters records by the presence of a value in an array
@@ -14,7 +14,7 @@ class InFilter implements ListFieldFilterInterface
     /**
      * @inheritDoc
      */
-    public function apply(Filterable $list, string $fieldName, $value): iterable
+    public function apply(SS_List $list, string $fieldName, $value): iterable
     {
         return $list->filter($fieldName, (array) $value);
     }
diff --git a/src/Schema/DataObject/Plugin/QueryFilter/Filters/LessThanFilter.php b/src/Schema/DataObject/Plugin/QueryFilter/Filters/LessThanFilter.php
index 311d61f9..f2e3225c 100644
--- a/src/Schema/DataObject/Plugin/QueryFilter/Filters/LessThanFilter.php
+++ b/src/Schema/DataObject/Plugin/QueryFilter/Filters/LessThanFilter.php
@@ -4,7 +4,7 @@
 namespace SilverStripe\GraphQL\Schema\DataObject\Plugin\QueryFilter\Filters;
 
 use SilverStripe\GraphQL\Schema\DataObject\Plugin\QueryFilter\FieldFilterInterface;
-use SilverStripe\Model\List\Filterable;
+use SilverStripe\Model\List\SS_List;
 
 /**
  * A query filter that filters records by a less than comparison
@@ -14,7 +14,7 @@ class LessThanFilter implements FieldFilterInterface
     /**
      * @inheritDoc
      */
-    public function apply(Filterable $list, string $fieldName, $value): iterable
+    public function apply(SS_List $list, string $fieldName, $value): iterable
     {
         return $list->filter($fieldName . ':LessThan', $value);
     }
diff --git a/src/Schema/DataObject/Plugin/QueryFilter/Filters/LessThanOrEqualFilter.php b/src/Schema/DataObject/Plugin/QueryFilter/Filters/LessThanOrEqualFilter.php
index 9909cf66..bf3e7d8e 100644
--- a/src/Schema/DataObject/Plugin/QueryFilter/Filters/LessThanOrEqualFilter.php
+++ b/src/Schema/DataObject/Plugin/QueryFilter/Filters/LessThanOrEqualFilter.php
@@ -4,7 +4,7 @@
 namespace SilverStripe\GraphQL\Schema\DataObject\Plugin\QueryFilter\Filters;
 
 use SilverStripe\GraphQL\Schema\DataObject\Plugin\QueryFilter\FieldFilterInterface;
-use SilverStripe\Model\List\Filterable;
+use SilverStripe\Model\List\SS_List;
 
 /**
  * A query filter that filters records by a less than or equal comparison
@@ -14,7 +14,7 @@ class LessThanOrEqualFilter implements FieldFilterInterface
     /**
      * @inheritDoc
      */
-    public function apply(Filterable $list, string $fieldName, $value): iterable
+    public function apply(SS_List $list, string $fieldName, $value): iterable
     {
         return $list->filter($fieldName . ':LessThanOrEqual', $value);
     }
diff --git a/src/Schema/DataObject/Plugin/QueryFilter/Filters/NotEqualFilter.php b/src/Schema/DataObject/Plugin/QueryFilter/Filters/NotEqualFilter.php
index 80b4b91e..71fd2b1d 100644
--- a/src/Schema/DataObject/Plugin/QueryFilter/Filters/NotEqualFilter.php
+++ b/src/Schema/DataObject/Plugin/QueryFilter/Filters/NotEqualFilter.php
@@ -4,7 +4,7 @@
 namespace SilverStripe\GraphQL\Schema\DataObject\Plugin\QueryFilter\Filters;
 
 use SilverStripe\GraphQL\Schema\DataObject\Plugin\QueryFilter\FieldFilterInterface;
-use SilverStripe\Model\List\Filterable;
+use SilverStripe\Model\List\SS_List;
 
 /**
  * A query filter that filters records by negating an exact match
@@ -14,7 +14,7 @@ class NotEqualFilter implements FieldFilterInterface
     /**
      * @inheritDoc
      */
-    public function apply(Filterable $list, string $fieldName, $value): iterable
+    public function apply(SS_List $list, string $fieldName, $value): iterable
     {
         return $list->exclude($fieldName, $value);
     }
diff --git a/src/Schema/DataObject/Plugin/QueryFilter/Filters/StartsWithFilter.php b/src/Schema/DataObject/Plugin/QueryFilter/Filters/StartsWithFilter.php
index 61cc68a3..4b52757b 100644
--- a/src/Schema/DataObject/Plugin/QueryFilter/Filters/StartsWithFilter.php
+++ b/src/Schema/DataObject/Plugin/QueryFilter/Filters/StartsWithFilter.php
@@ -4,7 +4,7 @@
 namespace SilverStripe\GraphQL\Schema\DataObject\Plugin\QueryFilter\Filters;
 
 use SilverStripe\GraphQL\Schema\DataObject\Plugin\QueryFilter\FieldFilterInterface;
-use SilverStripe\Model\List\Filterable;
+use SilverStripe\Model\List\SS_List;
 
 /**
  * A query filter that filters records by the start of a field's content
@@ -14,7 +14,7 @@ class StartsWithFilter implements FieldFilterInterface
     /**
      * @inheritDoc
      */
-    public function apply(Filterable $list, string $fieldName, $value): iterable
+    public function apply(SS_List $list, string $fieldName, $value): iterable
     {
         return $list->filter($fieldName . ':StartsWith', $value);
     }
diff --git a/src/Schema/DataObject/Plugin/QueryFilter/QueryFilter.php b/src/Schema/DataObject/Plugin/QueryFilter/QueryFilter.php
index 1a322a8e..7ae79a5b 100644
--- a/src/Schema/DataObject/Plugin/QueryFilter/QueryFilter.php
+++ b/src/Schema/DataObject/Plugin/QueryFilter/QueryFilter.php
@@ -18,8 +18,8 @@
 use SilverStripe\GraphQL\Schema\Type\ModelType;
 use SilverStripe\ORM\DataObject;
 use Closure;
-use SilverStripe\Model\List\Filterable;
 use Exception;
+use SilverStripe\Model\List\SS_List;
 
 /**
  * Adds a filter parameter to a DataObject query
@@ -80,7 +80,7 @@ public static function filter(array $context): Closure
         $rootType = $context['rootType'];
         $resolvers = $context['resolvers'] ?? [];
 
-        return function (?Filterable $list, array $args, array $context, ResolveInfo $info) use ($fieldName, $rootType, $resolvers) {
+        return function (?SS_List $list, array $args, array $context, ResolveInfo $info) use ($fieldName, $rootType, $resolvers) {
             if ($list === null) {
                 return null;
             }
diff --git a/src/Schema/DataObject/Plugin/QuerySort.php b/src/Schema/DataObject/Plugin/QuerySort.php
index 300a03d6..fac94b1e 100644
--- a/src/Schema/DataObject/Plugin/QuerySort.php
+++ b/src/Schema/DataObject/Plugin/QuerySort.php
@@ -16,10 +16,10 @@
 use SilverStripe\GraphQL\Schema\Type\ModelType;
 use SilverStripe\ORM\DataObject;
 use Closure;
-use SilverStripe\Model\List\Sortable;
 use Exception;
 use GraphQL\Type\Definition\ResolveInfo;
 use SilverStripe\GraphQL\Schema\Traits\SortTrait;
+use SilverStripe\Model\List\SS_List;
 
 /**
  * Adds a sort parameter to a DataObject query
@@ -99,7 +99,7 @@ public static function sort(array $context): closure
     {
         $fieldName = $context['fieldName'];
         $rootType = $context['rootType'];
-        return function (?Sortable $list, array $args, array $context, ResolveInfo $info) use ($fieldName, $rootType) {
+        return function (?SS_List $list, array $args, array $context, ResolveInfo $info) use ($fieldName, $rootType) {
             if ($list === null) {
                 return null;
             }
diff --git a/src/Schema/Plugin/SortPlugin.php b/src/Schema/Plugin/SortPlugin.php
index 9fbfe46a..d953d21f 100644
--- a/src/Schema/Plugin/SortPlugin.php
+++ b/src/Schema/Plugin/SortPlugin.php
@@ -16,9 +16,9 @@
 use SilverStripe\GraphQL\Schema\Services\NestedInputBuilder;
 use SilverStripe\GraphQL\Schema\Traits\SortTrait;
 use SilverStripe\GraphQL\Schema\Type\InputType;
-use SilverStripe\Model\List\Sortable;
 use Closure;
 use GraphQL\Type\Definition\ResolveInfo;
+use SilverStripe\Model\List\SS_List;
 
 class SortPlugin implements FieldPlugin, SchemaUpdater
 {
@@ -89,7 +89,7 @@ public function apply(Field $field, Schema $schema, array $config = []): void
     public static function sort(array $context): Closure
     {
         $fieldName = $context['fieldName'];
-        return function (?Sortable $list, array $args, array $context, ResolveInfo $info) use ($fieldName) {
+        return function (?SS_List $list, array $args, array $context, ResolveInfo $info) use ($fieldName) {
             if ($list === null) {
                 return null;
             }
diff --git a/tests/Fake/FilterDataList.php b/tests/Fake/FilterDataList.php
index 4b5dfdf1..15c00d81 100644
--- a/tests/Fake/FilterDataList.php
+++ b/tests/Fake/FilterDataList.php
@@ -15,9 +15,8 @@ class FilterDataList extends DataList implements TestOnly
 
     public $excludeValue;
 
-    public function filter()
+    public function filter(...$args): static
     {
-        $args = func_get_args();
         $field = $args[0];
         $value = $args[1];
 
@@ -28,9 +27,8 @@ public function filter()
         return $clone;
     }
 
-    public function exclude()
+    public function exclude(...$args): static
     {
-        $args = func_get_args();
         $field = $args[0];
         $value = $args[1];