# Discrete types ```agda module foundation-core.discrete-types where ``` <details><summary>Imports</summary> ```agda open import foundation.decidable-equality open import foundation.dependent-pair-types open import foundation.universe-levels open import foundation-core.sets ``` </details> ## Idea A discrete type is a type that has decidable equality. ## Definition ```agda Discrete-Type : (l : Level) → UU (lsuc l) Discrete-Type l = Σ (UU l) has-decidable-equality module _ {l : Level} (X : Discrete-Type l) where type-Discrete-Type : UU l type-Discrete-Type = pr1 X has-decidable-equality-type-Discrete-Type : has-decidable-equality type-Discrete-Type has-decidable-equality-type-Discrete-Type = pr2 X is-set-type-Discrete-Type : is-set type-Discrete-Type is-set-type-Discrete-Type = is-set-has-decidable-equality has-decidable-equality-type-Discrete-Type set-Discrete-Type : Set l pr1 set-Discrete-Type = type-Discrete-Type pr2 set-Discrete-Type = is-set-type-Discrete-Type ```