The impression is that it is not possible to set the level values below such that Agda would type check this program:
open import Data.List.Relation.Binary.Pointwise as ListPoint
open import Data.Nat using (ℕ; suc)
open import Level using (_⊔_)
open import Relation.Binary using (Setoid)
module ComposeListSetoid {a ℓ} (S : Setoid a ℓ) where
-- Having Setoid S on Carrier, build Setoid for List (List ... Carrier) -- n-times.
composeSetoid : ℕ → Setoid _ _ -- a (a ⊔ ℓ) ?
composeSetoid 0 = S
composeSetoid (suc n) = ListPoint.setoid S'
where
S' : Setoid _ _ -- a (a ⊔ ℓ) ?
S' = composeSetoid n