{-# OPTIONS --cubical --safe #-} module Data.Functor where open import Prelude record Functor ℓ₁ ℓ₂ : Type (ℓsuc (ℓ₁ ℓ⊔ ℓ₂)) where field F : Type ℓ₁ → Type ℓ₂ map : (A → B) → F A → F B identity : map {A = A} id ≡ id compose : (f : B → C) (g : A → B) → map (f ∘ g) ≡ map f ∘ map g