diff --git a/theories/mapset.v b/theories/mapset.v
index 5dc34e4038451e83d85821e0f8106f6fa83abafe..c1222987cc9e27623184f762cdaab54a5870fccb 100644
--- a/theories/mapset.v
+++ b/theories/mapset.v
@@ -8,8 +8,13 @@ From stdpp Require Import options.
 locally (or things moved out of sections) as no default works well enough. *)
 Unset Default Proof Using.
 
-Record mapset' (M : Type) : Type :=
-  Mapset { mapset_car: M }.
+(** Given a type of maps [M : Type → Type], we constructs sets as [M ()], i.e.,
+maps with unit values. To avoid unnecessary universe constraints, we first
+define [mapset' Munit] with [Munit : Type] as a record, and then [mapset M] with
+[M : Type → Type] as a notation. See [tests/universes.v] for a test case that
+fails otherwise. *)
+Record mapset' (Munit : Type) : Type :=
+  Mapset { mapset_car: Munit }.
 Notation mapset M := (mapset' (M unit)).
 Global Arguments Mapset {_} _ : assert.
 Global Arguments mapset_car {_} _ : assert.