{-# OPTIONS --safe --cubical #-}

module Data.Pi.Base where

open import Level

Π : (A : Type a) (B : A  Type b)  Type _
Π A B = (x : A)  B x

∀′ : {A : Type a} (B : A  Type b)  Type _
∀′ {A = A} B = Π A B

infixr 4.5 ∀-syntax
∀-syntax :  {a b} {A : Type a} (B : A  Type b)  Type (a ℓ⊔ b)
∀-syntax = ∀′

syntax ∀-syntax  x  e) = ∀[ x ] e

infixr 4.5 Π⦂-syntax
Π⦂-syntax : (A : Type a) (B : A  Type b)  Type (a ℓ⊔ b)
Π⦂-syntax = Π

syntax Π⦂-syntax t  x  e) = Π[ x  t ] e

infixr -1 _⇒_
_⇒_ : (A  Type b)  (A  Type c)  Type _
F  G =  {x}  F x  G x