import logic data.sigma

inductive point (A B : Type) :=
mk : Π (x : A) (y : B), point A B

inductive color [class] :=
red, green, blue

constant foo.{l} (A : Type.{l}) [H : decidable_eq A] : Type.{l}

constants a : num

section
  universe variable l
  variable A : Type.{l}
  variable Ha : decidable_eq A
  variable E : Type₂
  include E
   -- include Ha

  structure point3d_color (B C : Type) (D : B → Type) extends point (foo A) B, sigma D renaming dpr1→y dpr2→w :=
  mk :: (c : color) (H : x == y)

  check point3d_color.c

  check point3d_color.to_point
end

context
  universe l
  parameters A : Type.{l}
  parameters B : Type.{l}

  structure tst :=
  mk :: (a : A) (b : B)

end