File: .lake/packages/lean4/src/lean/Lean/Data/Options.lean

full_name: Lean.Options
code: def Options 
goal: Type

full_name: Lean.Options.empty
code: def Options.empty : Options  
goal: Lean.Options

full_name: Lean.instInhabitedOptions
code: instance : Inhabited Options 
goal: Inhabited Lean.Options

full_name: Lean.instToStringOptions
code: instance : ToString Options 
goal: ToString Lean.Options

full_name: Lean.instForInOptionsProdNameDataValue
code: instance : ForIn m Options (Name × DataValue) 
goal: ForIn m Lean.Options (Lean.Name × Lean.DataValue)

full_name: Lean.instBEqOptions
code: instance : BEq Options 
goal: BEq Lean.Options

full_name: Lean.instInhabitedOptionDecl
code: structure OptionDecl where
  declName : Name := by exact decl_name%
  defValue : DataValue
  group    : String := ""
  descr    : String := ""
  deriving Inhabited
goal: Inhabited Lean.OptionDecl

full_name: Lean.OptionDecl.defValue
code: structure OptionDecl where
  declName : Name := by exact decl_name%
  defValue : DataValue
  group    : String := ""
  descr    : String := ""
  deriving Inhabited
goal: Lean.DataValue

full_name: Lean.OptionDecl.descr
code: structure OptionDecl where
  declName : Name := by exact decl_name%
  defValue : DataValue
  group    : String := ""
  descr    : String := ""
  deriving Inhabited
goal: String

full_name: Lean.OptionDecl.declName
code: structure OptionDecl where
  declName : Name := by exact decl_name%
  defValue : DataValue
  group    : String := ""
  descr    : String := ""
  deriving Inhabited
goal: Lean.Name

full_name: Lean.OptionDecl
code: structure OptionDecl where
  declName : Name := by exact decl_name%
  defValue : DataValue
  group    : String := ""
  descr    : String := ""
  deriving Inhabited
goal: Type

full_name: Lean.OptionDecl.group
code: structure OptionDecl where
  declName : Name := by exact decl_name%
  defValue : DataValue
  group    : String := ""
  descr    : String := ""
  deriving Inhabited
goal: String

full_name: Lean.OptionDecls
code: def OptionDecls 
goal: Type

full_name: Lean.instInhabitedOptionDecls
code: instance : Inhabited OptionDecls 
goal: Inhabited Lean.OptionDecls

full_name: Lean.initFn._@..lake.packages.lean4.src.lean.Lean.Data.Options._hyg.154
code: private builtin_initialize optionDeclsRef : IO.Ref OptionDecls ← IO.mkRef (mkNameMap OptionDecl)
goal: IO (IO.Ref Lean.OptionDecls)

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Data.Options.0.Lean.optionDeclsRef
code: private builtin_initialize optionDeclsRef : IO.Ref OptionDecls ← IO.mkRef (mkNameMap OptionDecl)
goal: IO.Ref Lean.OptionDecls

full_name: Lean.registerOption
code: @[export lean_register_option]
def registerOption (name : Name) (decl : OptionDecl) : IO Unit 
goal: IO Unit

full_name: Lean.getOptionDecls
code: def getOptionDecls : IO OptionDecls 
goal: IO Lean.OptionDecls

full_name: Lean.getOptionDeclsArray
code: @[export lean_get_option_decls_array]
def getOptionDeclsArray : IO (Array (Name × OptionDecl)) 
goal: IO (Array (Lean.Name × Lean.OptionDecl))

full_name: Lean.getOptionDecl
code: def getOptionDecl (name : Name) : IO OptionDecl 
goal: IO Lean.OptionDecl

full_name: Lean.getOptionDefaultValue
code: def getOptionDefaultValue (name : Name) : IO DataValue 
goal: IO Lean.DataValue

full_name: Lean.getOptionDescr
code: def getOptionDescr (name : Name) : IO String 
goal: IO String

full_name: Lean.MonadOptions.getOptions
code: class MonadOptions (m : Type → Type) where
  getOptions : m Options
goal: m Lean.Options

full_name: Lean.MonadOptions
code: class MonadOptions (m : Type → Type) where
  getOptions : m Options
goal: Type

full_name: Lean.instMonadOptionsOfMonadLift
code: instance [MonadLift m n] [MonadOptions m] : MonadOptions n 
goal: Lean.MonadOptions n

full_name: Lean.getBoolOption
code: def getBoolOption (k : Name) (defValue := false) : m Bool 
goal: m Bool

full_name: Lean.getNatOption
code: def getNatOption (k : Name) (defValue := 0) : m Nat 
goal: m Nat

full_name: Lean.MonadWithOptions
code: class MonadWithOptions (m : Type → Type) where
  withOptions (f : Options → Options) (x : m α) : m α
goal: Type 1

full_name: Lean.MonadWithOptions.withOptions
code: class MonadWithOptions (m : Type → Type) where
  withOptions (f : Options → Options) (x : m α) : m α
goal: m α

full_name: Lean.instMonadWithOptionsOfMonadFunctor
code: instance [MonadFunctor m n] [MonadWithOptions m] : MonadWithOptions n 
goal: Lean.MonadWithOptions n

full_name: Lean.withInPattern
code: def withInPattern [MonadWithOptions m] (x : m α) : m α 
goal: m α

full_name: Lean.Options.getInPattern
code: def Options.getInPattern (o : Options) : Bool 
goal: Bool

full_name: Lean.Option
code: /-- A strongly-typed reference to an option. -/
protected structure Option (α : Type) where
  name     : Name
  defValue : α
  deriving Inhabited
goal: Type

full_name: Lean.Option.defValue
code: /-- A strongly-typed reference to an option. -/
protected structure Option (α : Type) where
  name     : Name
  defValue : α
  deriving Inhabited
goal: α

full_name: Lean.Option.name
code: /-- A strongly-typed reference to an option. -/
protected structure Option (α : Type) where
  name     : Name
  defValue : α
  deriving Inhabited
goal: Lean.Name

full_name: Lean.instInhabitedOption
code: /-- A strongly-typed reference to an option. -/
protected structure Option (α : Type) where
  name     : Name
  defValue : α
  deriving Inhabited
goal: {a : Type} → [inst : Inhabited a] → Inhabited (Lean.Option a)

full_name: Lean.Option.Decl
code: protected structure Decl (α : Type) where
  defValue : α
  group    : String := ""
  descr    : String := ""
goal: Type

full_name: Lean.Option.Decl.defValue
code: protected structure Decl (α : Type) where
  defValue : α
  group    : String := ""
  descr    : String := ""
goal: α

full_name: Lean.Option.Decl.descr
code: protected structure Decl (α : Type) where
  defValue : α
  group    : String := ""
  descr    : String := ""
goal: String

full_name: Lean.Option.Decl.group
code: protected structure Decl (α : Type) where
  defValue : α
  group    : String := ""
  descr    : String := ""
goal: String

full_name: Lean.Option.get?
code: protected def get? [KVMap.Value α] (opts : Options) (opt : Lean.Option α) : Option α 
goal: Option α

full_name: Lean.Option.get
code: protected def get [KVMap.Value α] (opts : Options) (opt : Lean.Option α) : α 
goal: α

full_name: Lean.Option.set
code: protected def set [KVMap.Value α] (opts : Options) (opt : Lean.Option α) (val : α) : Options 
goal: Lean.Options

full_name: Lean.Option.setIfNotSet
code: /-- Similar to `set`, but update `opts` only if it doesn't already contains an setting for `opt.name` -/
protected def setIfNotSet [KVMap.Value α] (opts : Options) (opt : Lean.Option α) (val : α) : Options 
goal: Lean.Options

full_name: Lean.Option.register
code: protected def register [KVMap.Value α] (name : Name) (decl : Lean.Option.Decl α) (ref : Name := by exact decl_name%) : IO (Lean.Option α) 
goal: IO (Lean.Option α)

full_name: Lean.Option.registerBuiltinOption
code: macro (name := registerBuiltinOption) doc?:(docComment)? "register_builtin_option" name:ident " : " type:term " := " decl:term : command =>
  `($[$doc?]? builtin_initialize $name : Lean.Option $type ← Lean.Option.register $(quote name.getId) $decl)
goal: Lean.ParserDescr

full_name: Lean.Option.«_aux_.lake_packages_lean4_src_lean_Lean_Data_Options___macroRules_Lean_Option_registerBuiltinOption_1»
code: macro (name := registerBuiltinOption) doc?:(docComment)? "register_builtin_option" name:ident " : " type:term " := " decl:term : command =>
  `($[$doc?]? builtin_initialize $name : Lean.Option $type ← Lean.Option.register $(quote name.getId) $decl)
goal: Lean.Macro

full_name: Lean.Option.registerOption
code: macro (name := registerOption) doc?:(docComment)? "register_option" name:ident " : " type:term " := " decl:term : command =>
  `($[$doc?]? initialize $name : Lean.Option $type ← Lean.Option.register $(quote name.getId) $decl)
goal: Lean.ParserDescr

full_name: Lean.Option.«_aux_.lake_packages_lean4_src_lean_Lean_Data_Options___macroRules_Lean_Option_registerOption_1»
code: macro (name := registerOption) doc?:(docComment)? "register_option" name:ident " : " type:term " := " decl:term : command =>
  `($[$doc?]? initialize $name : Lean.Option $type ← Lean.Option.register $(quote name.getId) $decl)
goal: Lean.Macro