{-# OPTIONS --safe #-} module Interface.Hashable where open import Agda.Builtin.Equality open import Agda.Primitive using () renaming (Set to Type) record Hashable (T THash : Type) : Type where field hash : T → THash open Hashable ⦃...⦄ public Hashable₁ : (Type → Type) → Type → Type₁ Hashable₁ F THash = {A : Type} → ⦃ Hashable A THash ⦄ → Hashable (F A) THash Hashable₂ : (Type → Type → Type) → Type → Type₁ Hashable₂ F THash = {A B : Type} → ⦃ Hashable A THash ⦄ → ⦃ Hashable B THash ⦄ → Hashable (F A B) THash