summaryrefslogtreecommitdiff
path: root/src/CBPV/Type.agda
blob: 2b52f545fbde07b7603afbac0ba0fad90a351ccd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
module CBPV.Type where

open import Data.List

infixr 5 _⟶_ _⟶⋆_ _⟶′⋆_

data ValType : Set
data CompType : Set

data ValType where
  U   : CompType → ValType
  𝟙   : ValType
  _×_ : ValType → ValType → ValType
  _+_ : ValType → ValType → ValType

data CompType where
  F   : ValType → CompType
  _×_ : CompType → CompType → CompType
  _⟶_ : ValType → CompType → CompType

_⟶⋆_ : List ValType → CompType → CompType
Γ ⟶⋆ B = foldr _⟶_ B Γ

_⟶′⋆_ : List CompType → CompType → CompType
Γ ⟶′⋆ B = foldr (λ ◌ᵃ ◌ᵇ → U ◌ᵃ ⟶ ◌ᵇ) B Γ