{-# OPTIONS --cubical --safe --guardedness #-}
module Data.PolyP.Currying where
open import Prelude hiding (_⟨_⟩_)
open import Data.Vec.Iterated
open import Data.PolyP.Universe
Curriedⁿ : ℕ → Type₁
Curriedⁿ zero = Type
Curriedⁿ (suc n) = Type → Curriedⁿ n
_~_ : ∀ {n} → (Params n → Type) → Curriedⁿ n
_~_ {n = zero} f = f []
_~_ {n = suc n} f A = _~_ {n = n} (f ∘ (A ∷_))