Bundled types #

Bundled c provides a uniform structure for bundling a type equipped with a type class.

We provide Category instances for these in CategoryTheory/UnbundledHom.lean (for categories with unbundled homs, e.g. topological spaces) and in CategoryTheory/BundledHom.lean (for categories with bundled homs, e.g. monoids).

structure CategoryTheory.Bundled (c : Type u → Type v) :
Type (max(u+1)v)
  • The underlying type of the bundled type

    α : Type u
  • The corresponding instance of the bundled type class

    str : autoParam (c α) _auto✝

Bundled is a type bundled with a type class instance for that type. Only the type class is exposed as a parameter.

Instances For
    def CategoryTheory.Bundled.of {c : Type u → Type v} (α : Type u) [str : c α] :

    A generic function for lifting a type equipped with an instance to a bundled object.

    • CategoryTheory.Bundled.coeSort = { coe := CategoryTheory.Bundled.α }
    theorem CategoryTheory.Bundled.coe_mk {c : Type u → Type v} (α : Type u) (str : c α) :
    def {c : Type u → Type v} {d : Type u → Type v} (f : {α : Type u} → c αd α) (b : CategoryTheory.Bundled c) :

    Map over the bundled structure