(motive : Lean.DataValue → Sort u_1) →
  (x : Lean.DataValue) →
    ((val : String) → motive (Lean.DataValue.ofString val)) →
      ((val : Bool) → motive (Lean.DataValue.ofBool val)) →
        ((val : Lean.Name) → motive (Lean.DataValue.ofName val)) →
          ((val : ℕ) → motive (Lean.DataValue.ofNat val)) →
            ((val : ℤ) → motive (Lean.DataValue.ofInt val)) →
              ((val : Lean.Syntax) → motive (Lean.DataValue.ofSyntax val)) → motive x