This PR adds a deriving handler for the `ToExpr` class. It can handle mutual and nested inductive types, however it falls back to creating `partial` instances in such cases. This is upstreamed from the Mathlib deriving handler written by @kmill, but has fixes to handle autoimplicit universe level variables. This is a followup to #6285 (adding the `ToLevel` class). This PR supersedes #5906. Co-authored-by: Alex Keizer <alex@keizer.dev> --------- Co-authored-by: Alex Keizer <alex@keizer.dev>
19 lines
602 B
Text
19 lines
602 B
Text
/-
|
|
Copyright (c) 2020 Microsoft Corporation. All rights reserved.
|
|
Released under Apache 2.0 license as described in the file LICENSE.
|
|
Authors: Leonardo de Moura
|
|
-/
|
|
prelude
|
|
import Lean.Elab.Deriving.Basic
|
|
import Lean.Elab.Deriving.Util
|
|
import Lean.Elab.Deriving.Inhabited
|
|
import Lean.Elab.Deriving.Nonempty
|
|
import Lean.Elab.Deriving.TypeName
|
|
import Lean.Elab.Deriving.BEq
|
|
import Lean.Elab.Deriving.DecEq
|
|
import Lean.Elab.Deriving.Repr
|
|
import Lean.Elab.Deriving.FromToJson
|
|
import Lean.Elab.Deriving.SizeOf
|
|
import Lean.Elab.Deriving.Hashable
|
|
import Lean.Elab.Deriving.Ord
|
|
import Lean.Elab.Deriving.ToExpr
|