{α : Type u} →
  {β : Type v} →
    {motive_1 : Lean.PersistentHashMap.Node α β → Sort u_1} →
      {motive_2 : Array (Lean.PersistentHashMap.Entry α β (Lean.PersistentHashMap.Node α β)) → Sort u_1} →
        {motive_3 : List (Lean.PersistentHashMap.Entry α β (Lean.PersistentHashMap.Node α β)) → Sort u_1} →
          {motive_4 : Lean.PersistentHashMap.Entry α β (Lean.PersistentHashMap.Node α β) → Sort u_1} →
            ((es : Array (Lean.PersistentHashMap.Entry α β (Lean.PersistentHashMap.Node α β))) →
                motive_2 es → motive_1 (Lean.PersistentHashMap.Node.entries es)) →
              ((ks : Array α) →
                  (vs : Array β) → (h : ks.size = vs.size) → motive_1 (Lean.PersistentHashMap.Node.collision ks vs h)) →
                ((toList : List (Lean.PersistentHashMap.Entry α β (Lean.PersistentHashMap.Node α β))) →
                    motive_3 toList → motive_2 { toList := toList }) →
                  motive_3 [] →
                    ((head : Lean.PersistentHashMap.Entry α β (Lean.PersistentHashMap.Node α β)) →
                        (tail : List (Lean.PersistentHashMap.Entry α β (Lean.PersistentHashMap.Node α β))) →
                          motive_4 head → motive_3 tail → motive_3 (head :: tail)) →
                      ((key : α) → (val : β) → motive_4 (Lean.PersistentHashMap.Entry.entry key val)) →
                        ((node : Lean.PersistentHashMap.Node α β) →
                            motive_1 node → motive_4 (Lean.PersistentHashMap.Entry.ref node)) →
                          motive_4 Lean.PersistentHashMap.Entry.null →
                            (t : Lean.PersistentHashMap.Node α β) → motive_1 t