public function formatSubPredicate(Predicate $predicate) {
        $output = [];

        foreach ($predicate->getParams() as $param) {
            if ($param instanceof Predicate) {
                $output[] = $this->formatSubPredicate($param);

            } else if ($param instanceof Expr) {
                $output[] = $this->formatExpression($param);
            }
        }

        return [
            $this->getClause($predicate->getType()) => $output
        ];
    }