module Generic.Examples.UntypedLC where

open import Size
open import Data.Unit
open import Data.Bool
open import Data.Product
open import Data.List.Base hiding ([_])
open import Function
open import Relation.Binary.PropositionalEquality hiding ([_])

open import indexed
open import var
open import Generic.Syntax


UTLC : Desc 
UTLC =   Bool $ λ isApp  if isApp
        then `X [] tt (`X [] tt (`∎ tt))
        else `X (tt  []) tt (`∎ tt)

pattern `V x    = `var x
pattern `A f t  = `con (true , f , t , refl)
pattern `L b    = `con (false , b , refl)

`id : Tm UTLC  tt []
`id = `L (`V z)