packages feed

Agda-2.3.2.2: test/fail/SizedTypesScopeExtrusion.agda

{-# OPTIONS --sized-types #-}

module SizedTypesScopeExtrusion where

postulate
  Size : Set
  _^   : Size -> Size
  ∞    : Size

{-# BUILTIN SIZE Size  #-}
{-# BUILTIN SIZESUC _^ #-}
{-# BUILTIN SIZEINF ∞  #-}

data Nat : {size : Size} -> Set where
  zero : {size : Size} -> Nat {size ^}
  suc  : {size : Size} -> Nat {size} -> Nat {size ^}

data Empty : Set where

data Unit : Set where
  unit : Unit

Zero : (i : Size) -> Nat {i} -> Set
Zero ._ zero = Unit
Zero ._ (suc _) = Empty

bla : Set
bla = (x : Nat) -> (i : Size) -> Zero i x