Built with Alectryon. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑ Ctrl+↓ to navigate, Ctrl+πŸ–±οΈ to focus. On Mac, use ⌘ instead of Ctrl.
Hover-Settings: Show types: Show goals:
import Lean.Elab

structure 
WithLog: Type β†’ Type β†’ Type
WithLog
(
logged: Type
logged
:
Type: Type 1
Type
) (
Ξ±: Type
Ξ±
:
Type: Type 1
Type
) where
log: {logged Ξ± : Type} β†’ WithLog logged Ξ± β†’ List logged
log
:
List: Type β†’ Type
List
logged: Type
logged
val: {logged Ξ± : Type} β†’ WithLog logged Ξ± β†’ Ξ±
val
:
Ξ±: Type
Ξ±
instance: {logged : Type} β†’ Monad (WithLog logged)
instance
:
Monad: (Type β†’ Type) β†’ Type 1
Monad
<|
WithLog: Type β†’ Type β†’ Type
WithLog
logged: Type
logged
where pure
val: α✝
val
:= ⟨
[]: List logged
[]
,
val: α✝
val
⟩ bind
item: WithLog logged α✝
item
next: α✝ β†’ WithLog logged β✝
next
:= let rec
nextItem: WithLog logged β✝
nextItem
:=
next: α✝ β†’ WithLog logged β✝
next
item: WithLog logged α✝
item
.
val: {logged Ξ± : Type} β†’ WithLog logged Ξ± β†’ Ξ±
val
⟨
item: WithLog logged α✝
item
.
log: {logged Ξ± : Type} β†’ WithLog logged Ξ± β†’ List logged
log
++
nextItem: WithLog logged β✝
nextItem
.
log: {logged Ξ± : Type} β†’ WithLog logged Ξ± β†’ List logged
log
,
nextItem: WithLog logged β✝
nextItem
.
val: {logged Ξ± : Type} β†’ WithLog logged Ξ± β†’ Ξ±
val
⟩ set_option relaxedAutoImplicit false set_option autoImplicit false set_option pp.all true set_option pp.analyze true set_option trace.Meta.synthInstance true set_option synthInstance.checkSynthOrder true def
Option': Type u_1 β†’ Type u_1
Option'
:=
Option: Type u_1 β†’ Type u_1
Option

error: fields missing: 'map', 'mapConst', 'seq', 'seqLeft'

Error: ❌ Docstring on `#guard_msgs` does not match generated message: error: fields missing: 'map', 'mapConst', 'seq', 'seqLeft'
(error, drop info) in
instance: Monad.{u_1, u_1} Option'.{u_1}
instance
:
Monad: (Type u_1 β†’ Type u_1) β†’ Type (u_1 + 1)
Monad
Option': Type u_1 β†’ Type u_1
Option'
Error: fields missing: 'map', 'mapConst', 'seq', 'seqLeft'
[Meta.synthInstance] ❌ Functor.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance] new goal Functor.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.instances] #[@Applicative.toFunctor.{?u.944, ?u.945}] [Meta.synthInstance] βœ… apply @Applicative.toFunctor.{?u.926, ?u.926} to Functor.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.tryResolve] βœ… Functor.{?u.926, ?u.926} Option'.{?u.926} β‰Ÿ Functor.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance] new goal Applicative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.instances] #[@Monad.toApplicative.{?u.951, ?u.952}, @Alternative.toApplicative.{?u.953, ?u.954}] [Meta.synthInstance] βœ… apply @Alternative.toApplicative.{?u.926, ?u.926} to Applicative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.tryResolve] βœ… Applicative.{?u.926, ?u.926} Option'.{?u.926} β‰Ÿ Applicative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance] no instances for Alternative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.instances] #[] [Meta.synthInstance] βœ… apply @Monad.toApplicative.{?u.926, ?u.926} to Applicative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.tryResolve] βœ… Applicative.{?u.926, ?u.926} Option'.{?u.926} β‰Ÿ Applicative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance] no instances for Monad.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.instances] #[] [Meta.synthInstance] ❌ Seq.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance] new goal Seq.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.instances] #[@Applicative.toSeq.{?u.987, ?u.988}] [Meta.synthInstance] βœ… apply @Applicative.toSeq.{?u.926, ?u.926} to Seq.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.tryResolve] βœ… Seq.{?u.926, ?u.926} Option'.{?u.926} β‰Ÿ Seq.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance] new goal Applicative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.instances] #[@Monad.toApplicative.{?u.994, ?u.995}, @Alternative.toApplicative.{?u.996, ?u.997}] [Meta.synthInstance] βœ… apply @Alternative.toApplicative.{?u.926, ?u.926} to Applicative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.tryResolve] βœ… Applicative.{?u.926, ?u.926} Option'.{?u.926} β‰Ÿ Applicative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance] no instances for Alternative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.instances] #[] [Meta.synthInstance] βœ… apply @Monad.toApplicative.{?u.926, ?u.926} to Applicative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.tryResolve] βœ… Applicative.{?u.926, ?u.926} Option'.{?u.926} β‰Ÿ Applicative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance] no instances for Monad.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.instances] #[] [Meta.synthInstance] ❌ SeqLeft.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance] new goal SeqLeft.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.instances] #[@Applicative.toSeqLeft.{?u.1012, ?u.1013}] [Meta.synthInstance] βœ… apply @Applicative.toSeqLeft.{?u.926, ?u.926} to SeqLeft.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.tryResolve] βœ… SeqLeft.{?u.926, ?u.926} Option'.{?u.926} β‰Ÿ SeqLeft.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance] new goal Applicative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.instances] #[@Monad.toApplicative.{?u.1019, ?u.1020}, @Alternative.toApplicative.{?u.1021, ?u.1022}] [Meta.synthInstance] βœ… apply @Alternative.toApplicative.{?u.926, ?u.926} to Applicative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.tryResolve] βœ… Applicative.{?u.926, ?u.926} Option'.{?u.926} β‰Ÿ Applicative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance] no instances for Alternative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.instances] #[] [Meta.synthInstance] βœ… apply @Monad.toApplicative.{?u.926, ?u.926} to Applicative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.tryResolve] βœ… Applicative.{?u.926, ?u.926} Option'.{?u.926} β‰Ÿ Applicative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance] no instances for Monad.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.instances] #[] [Meta.synthInstance] ❌ SeqRight.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance] new goal SeqRight.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.instances] #[@Applicative.toSeqRight.{?u.1037, ?u.1038}] [Meta.synthInstance] βœ… apply @Applicative.toSeqRight.{?u.926, ?u.926} to SeqRight.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.tryResolve] βœ… SeqRight.{?u.926, ?u.926} Option'.{?u.926} β‰Ÿ SeqRight.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance] new goal Applicative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.instances] #[@Monad.toApplicative.{?u.1044, ?u.1045}, @Alternative.toApplicative.{?u.1046, ?u.1047}] [Meta.synthInstance] βœ… apply @Alternative.toApplicative.{?u.926, ?u.926} to Applicative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.tryResolve] βœ… Applicative.{?u.926, ?u.926} Option'.{?u.926} β‰Ÿ Applicative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance] no instances for Alternative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.instances] #[] [Meta.synthInstance] βœ… apply @Monad.toApplicative.{?u.926, ?u.926} to Applicative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.tryResolve] βœ… Applicative.{?u.926, ?u.926} Option'.{?u.926} β‰Ÿ Applicative.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance] no instances for Monad.{?u.926, ?u.926} Option'.{?u.926} [Meta.synthInstance.instances] #[]
variable (
logged: Type
logged
:
Type: Type 1
Type
) in
[Meta.synthInstance] βœ… Monad.{0, 0} (WithLog logged) [Meta.synthInstance] new goal Monad.{0, 0} (WithLog logged) [Meta.synthInstance.instances] #[@instMonadWithLog] [Meta.synthInstance] βœ… apply @instMonadWithLog to Monad.{0, 0} (WithLog logged) [Meta.synthInstance.tryResolve] βœ… Monad.{0, 0} (WithLog logged) β‰Ÿ Monad.{0, 0} (WithLog logged) [Meta.synthInstance] result @instMonadWithLog logged
@instMonadWithLog logged
-- instance : Pure <| WithLog logged where -- pure val := ⟨[], val⟩ -- -- instance : Bind <| WithLog logged where -- -- bind item next := -- -- let {log := thisLog, .. } := item -- -- let {log := nextOut, val := nextRes} := next item.val -- -- ⟨thisLog ++ nextOut, nextRes⟩ -- instance : Bind <| WithLog logged where -- bind item next := -- let nextItem := next item.val -- ⟨item.log ++ nextItem.log, nextItem.val⟩ -- section CheckInstances -- variable (logged : Type) -- /- -- failed to synthesize -- Applicative (WithLog logged) -- -/ -- #synth Applicative <| WithLog logged -- /- -- failed to synthesize -- Monad (WithLog logged) -- -/ -- #synth Monad <| WithLog logged -- /- -- [Meta.synthInstance] βœ… Monad (WithLog logged) β–Ό -- [] new goal Monad (WithLog logged) β–Ά -- [] βœ… apply @instMonadWithLog to Monad (WithLog logged) β–Ό -- [tryResolve] βœ… Monad (WithLog logged) β‰Ÿ Monad (WithLog logged) -- [] result instMonadWithLog -- -/ -- #synth Monad <| WithLog logged -- end CheckInstances -- /- -- [Meta.synthInstance] ❌ Applicative (WithLog logged) β–Ά -- [Meta.synthInstance] ❌ Functor (WithLog logged) β–Ά -- [Meta.synthInstance] βœ… Pure (WithLog logged) β–Ά -- [Meta.synthInstance] ❌ Seq (WithLog logged) β–Ά -- [Meta.synthInstance] ❌ SeqLeft (WithLog logged) β–Ά -- [Meta.synthInstance] ❌ SeqRight (WithLog logged) β–Ά -- [Meta.synthInstance] βœ… Bind (WithLog logged) β–Ά -- -/ -- instance : Monad <| WithLog logged where -- no error -- variable (logged : Type) in -- #synth Monad <| WithLog logged -- def Option' := Option -- #print Monad.map._default -- structure A where -- a : Nat -> Nat := fun x => x -- structure B extends A where -- a := A.a._default /- @[reducible] def Applicative.map._default.{u_1, u_2} : {f : Type u_1 β†’ Type u_2} β†’ Pure.{u_1, u_2} f β†’ Seq.{u_1, u_2} f β†’ {Ξ± Ξ² : Type u_1} β†’ (Ξ± β†’ Ξ²) β†’ f Ξ± β†’ f Ξ² := fun {f : Type u_1 β†’ Type u_2} (toPure : Pure.{u_1, u_2} f) (toSeq : Seq.{u_1, u_2} f) => @id.{max (u_1 + 2) (u_2 + 1)} ({Ξ± Ξ² : Type u_1} β†’ (Ξ± β†’ Ξ²) β†’ f Ξ± β†’ f Ξ²) fun {Ξ± Ξ² : Type u_1} (x : Ξ± β†’ Ξ²) (y : f Ξ±) => @Seq.seq.{u_1, u_2} f toSeq Ξ± Ξ² (@Pure.pure.{u_1, u_2} f toPure (Ξ± β†’ Ξ²) x) fun (x : Unit) => y -/
@[reducible] def Applicative.map._default.{u_1, u_2} : {f : Type u_1 β†’ Type u_2} β†’ Pure.{u_1, u_2} f β†’ Seq.{u_1, u_2} f β†’ {Ξ± Ξ² : Type u_1} β†’ (Ξ± β†’ Ξ²) β†’ f Ξ± β†’ f Ξ² := fun {f : Type u_1 β†’ Type u_2} (toPure : Pure.{u_1, u_2} f) (toSeq : Seq.{u_1, u_2} f) => @id.{max (u_1 + 2) (u_2 + 1)} ({Ξ± Ξ² : Type u_1} β†’ (Ξ± β†’ Ξ²) β†’ f Ξ± β†’ f Ξ²) fun {Ξ± Ξ² : Type u_1} (x : Ξ± β†’ Ξ²) (y : f Ξ±) => @Seq.seq.{u_1, u_2} f toSeq Ξ± Ξ² (@Pure.pure.{u_1, u_2} f toPure (Ξ± β†’ Ξ²) x) fun (x : Unit) => y
Applicative.map._default: {f : Type u_1 β†’ Type u_2} β†’ Pure.{u_1, u_2} f β†’ Seq.{u_1, u_2} f β†’ {Ξ± Ξ² : Type u_1} β†’ (Ξ± β†’ Ξ²) β†’ f Ξ± β†’ f Ξ²
Applicative.map._default
/- @[reducible] def Monad.map._default.{u_1, u_2} : {m : Type u_1 β†’ Type u_2} β†’ Applicative m β†’ Bind m β†’ {Ξ± Ξ² : Type u_1} β†’ (Ξ± β†’ Ξ²) β†’ m Ξ± β†’ m Ξ² := fun {m} toApplicative toBind => @id ({Ξ± Ξ² : Type u_1} β†’ (Ξ± β†’ Ξ²) β†’ m Ξ± β†’ m Ξ²) fun {Ξ± Ξ²} f x => x >>= pure ∘ f -/
@[reducible] def Monad.map._default.{u_1, u_2} : {m : Type u_1 β†’ Type u_2} β†’ Applicative.{u_1, u_2} m β†’ Bind.{u_1, u_2} m β†’ {Ξ± Ξ² : Type u_1} β†’ (Ξ± β†’ Ξ²) β†’ m Ξ± β†’ m Ξ² := fun {m : Type u_1 β†’ Type u_2} (toApplicative : Applicative.{u_1, u_2} m) (toBind : Bind.{u_1, u_2} m) => @id.{max (u_1 + 2) (u_2 + 1)} ({Ξ± Ξ² : Type u_1} β†’ (Ξ± β†’ Ξ²) β†’ m Ξ± β†’ m Ξ²) fun {Ξ± Ξ² : Type u_1} (f : Ξ± β†’ Ξ²) (x : m Ξ±) => @Bind.bind.{u_1, u_2} m toBind Ξ± Ξ² x (@Function.comp.{u_1 + 1, u_1 + 1, u_2 + 1} Ξ± Ξ² (m Ξ²) (@Pure.pure.{u_1, u_2} m (@Applicative.toPure.{u_1, u_2} m toApplicative) Ξ²) f)
Monad.map._default: {m : Type u_1 β†’ Type u_2} β†’ Applicative.{u_1, u_2} m β†’ Bind.{u_1, u_2} m β†’ {Ξ± Ξ² : Type u_1} β†’ (Ξ± β†’ Ξ²) β†’ m Ξ± β†’ m Ξ²
Monad.map._default
set_option structureDiamondWarning true -- instance : Monad Option' where -- pure := Option.some -- bind := Option.bind -- map := Monad.map._default -- instance : Monad Option' where -- pure := Option.some -- bind a f := -- let b := Option.bind a f -- b -- map f x := Monad.map._default _ _ f x -- instance : Monad Option' where -- pure := Option.some -- bind a f := -- let rec b := Option.bind a f -- b -- map f x := Monad.map._default _ _ f x
instance: Monad.{u_1, u_1} Option'.{u_1}
instance
:
Monad: (Type u_1 β†’ Type u_1) β†’ Type (u_1 + 1)
Monad
Option': Type u_1 β†’ Type u_1
Option'
[Meta.synthInstance] βœ… Functor.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance] new goal Functor.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.instances] #[@Applicative.toFunctor.{?u.1502, ?u.1503}] [Meta.synthInstance] βœ… apply @Applicative.toFunctor.{?u.1484, ?u.1484} to Functor.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.tryResolve] βœ… Functor.{?u.1484, ?u.1484} Option'.{?u.1484} β‰Ÿ Functor.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance] new goal Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.instances] #[@Monad.toApplicative.{?u.1509, ?u.1510}, @Alternative.toApplicative.{?u.1511, ?u.1512}] [Meta.synthInstance] βœ… apply @Alternative.toApplicative.{?u.1484, ?u.1484} to Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.tryResolve] βœ… Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} β‰Ÿ Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance] no instances for Alternative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.instances] #[] [Meta.synthInstance] βœ… apply @Monad.toApplicative.{?u.1484, ?u.1484} to Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.tryResolve] βœ… Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} β‰Ÿ Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance] new goal Monad.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.instances] #[instMonadOption'.{?u.1521}] [Meta.synthInstance] βœ… apply instMonadOption'.{?u.1484} to Monad.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.tryResolve] βœ… Monad.{?u.1484, ?u.1484} Option'.{?u.1484} β‰Ÿ Monad.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.resume] propagating Monad.{?u.1484, ?u.1484} Option'.{?u.1484} to subgoal Monad.{?u.1484, ?u.1484} Option'.{?u.1484} of Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.resume] size: 1 [Meta.synthInstance.resume] propagating Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} to subgoal Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} of Functor.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.resume] size: 2 [Meta.synthInstance] result @Applicative.toFunctor.{?u.1484, ?u.1484} Option'.{?u.1484} (@Monad.toApplicative.{?u.1484, ?u.1484} Option'.{?u.1484} instMonadOption'.{?u.1484}) [Meta.synthInstance] βœ… Seq.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance] new goal Seq.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.instances] #[@Applicative.toSeq.{?u.1540, ?u.1541}] [Meta.synthInstance] βœ… apply @Applicative.toSeq.{?u.1484, ?u.1484} to Seq.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.tryResolve] βœ… Seq.{?u.1484, ?u.1484} Option'.{?u.1484} β‰Ÿ Seq.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance] new goal Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.instances] #[@Monad.toApplicative.{?u.1547, ?u.1548}, @Alternative.toApplicative.{?u.1549, ?u.1550}] [Meta.synthInstance] βœ… apply @Alternative.toApplicative.{?u.1484, ?u.1484} to Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.tryResolve] βœ… Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} β‰Ÿ Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance] no instances for Alternative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.instances] #[] [Meta.synthInstance] βœ… apply @Monad.toApplicative.{?u.1484, ?u.1484} to Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.tryResolve] βœ… Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} β‰Ÿ Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance] new goal Monad.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.instances] #[instMonadOption'.{?u.1557}] [Meta.synthInstance] βœ… apply instMonadOption'.{?u.1484} to Monad.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.tryResolve] βœ… Monad.{?u.1484, ?u.1484} Option'.{?u.1484} β‰Ÿ Monad.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.resume] propagating Monad.{?u.1484, ?u.1484} Option'.{?u.1484} to subgoal Monad.{?u.1484, ?u.1484} Option'.{?u.1484} of Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.resume] size: 1 [Meta.synthInstance.resume] propagating Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} to subgoal Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} of Seq.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.resume] size: 2 [Meta.synthInstance] result @Applicative.toSeq.{?u.1484, ?u.1484} Option'.{?u.1484} (@Monad.toApplicative.{?u.1484, ?u.1484} Option'.{?u.1484} instMonadOption'.{?u.1484}) [Meta.synthInstance] βœ… SeqLeft.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance] new goal SeqLeft.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.instances] #[@Applicative.toSeqLeft.{?u.1559, ?u.1560}] [Meta.synthInstance] βœ… apply @Applicative.toSeqLeft.{?u.1484, ?u.1484} to SeqLeft.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.tryResolve] βœ… SeqLeft.{?u.1484, ?u.1484} Option'.{?u.1484} β‰Ÿ SeqLeft.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance] new goal Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.instances] #[@Monad.toApplicative.{?u.1566, ?u.1567}, @Alternative.toApplicative.{?u.1568, ?u.1569}] [Meta.synthInstance] βœ… apply @Alternative.toApplicative.{?u.1484, ?u.1484} to Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.tryResolve] βœ… Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} β‰Ÿ Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance] no instances for Alternative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.instances] #[] [Meta.synthInstance] βœ… apply @Monad.toApplicative.{?u.1484, ?u.1484} to Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.tryResolve] βœ… Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} β‰Ÿ Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance] new goal Monad.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.instances] #[instMonadOption'.{?u.1576}] [Meta.synthInstance] βœ… apply instMonadOption'.{?u.1484} to Monad.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.tryResolve] βœ… Monad.{?u.1484, ?u.1484} Option'.{?u.1484} β‰Ÿ Monad.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.resume] propagating Monad.{?u.1484, ?u.1484} Option'.{?u.1484} to subgoal Monad.{?u.1484, ?u.1484} Option'.{?u.1484} of Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.resume] size: 1 [Meta.synthInstance.resume] propagating Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} to subgoal Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} of SeqLeft.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.resume] size: 2 [Meta.synthInstance] result @Applicative.toSeqLeft.{?u.1484, ?u.1484} Option'.{?u.1484} (@Monad.toApplicative.{?u.1484, ?u.1484} Option'.{?u.1484} instMonadOption'.{?u.1484}) [Meta.synthInstance] βœ… SeqRight.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance] new goal SeqRight.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.instances] #[@Applicative.toSeqRight.{?u.1578, ?u.1579}] [Meta.synthInstance] βœ… apply @Applicative.toSeqRight.{?u.1484, ?u.1484} to SeqRight.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.tryResolve] βœ… SeqRight.{?u.1484, ?u.1484} Option'.{?u.1484} β‰Ÿ SeqRight.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance] new goal Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.instances] #[@Monad.toApplicative.{?u.1585, ?u.1586}, @Alternative.toApplicative.{?u.1587, ?u.1588}] [Meta.synthInstance] βœ… apply @Alternative.toApplicative.{?u.1484, ?u.1484} to Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.tryResolve] βœ… Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} β‰Ÿ Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance] no instances for Alternative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.instances] #[] [Meta.synthInstance] βœ… apply @Monad.toApplicative.{?u.1484, ?u.1484} to Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.tryResolve] βœ… Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} β‰Ÿ Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance] new goal Monad.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.instances] #[instMonadOption'.{?u.1595}] [Meta.synthInstance] βœ… apply instMonadOption'.{?u.1484} to Monad.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.tryResolve] βœ… Monad.{?u.1484, ?u.1484} Option'.{?u.1484} β‰Ÿ Monad.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.resume] propagating Monad.{?u.1484, ?u.1484} Option'.{?u.1484} to subgoal Monad.{?u.1484, ?u.1484} Option'.{?u.1484} of Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.resume] size: 1 [Meta.synthInstance.resume] propagating Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} to subgoal Applicative.{?u.1484, ?u.1484} Option'.{?u.1484} of SeqRight.{?u.1484, ?u.1484} Option'.{?u.1484} [Meta.synthInstance.resume] size: 2 [Meta.synthInstance] result @Applicative.toSeqRight.{?u.1484, ?u.1484} Option'.{?u.1484} (@Monad.toApplicative.{?u.1484, ?u.1484} Option'.{?u.1484} instMonadOption'.{?u.1484})
Lean.Elab.Term.elabLetDecl : Lean.Elab.Term.TermElab
Lean.Elab.Term.elabLetDecl: Lean.Elab.Term.TermElab
Lean.Elab.Term.elabLetDecl
Lean.Elab.Term.elabLetRec : Lean.Elab.Term.TermElab
Lean.Elab.Term.elabLetRec: Lean.Elab.Term.TermElab
Lean.Elab.Term.elabLetRec
Lean.Elab.Structural.preprocess (e : Lean.Expr) (recFnName : Lean.Name) : Lean.Core.CoreM Lean.Expr
Lean.Elab.Structural.preprocess: Lean.Expr β†’ Lean.Name β†’ Lean.Core.CoreM Lean.Expr
Lean.Elab.Structural.preprocess
Lean.Elab.Command.elabStructure (modifiers : Lean.Elab.Modifiers) (stx : Lean.Syntax) : Lean.Elab.Command.CommandElabM Unit
Lean.Elab.Command.elabStructure: Lean.Elab.Modifiers β†’ Lean.Syntax β†’ Lean.Elab.Command.CommandElabM Unit
Lean.Elab.Command.elabStructure