packages feed

Agda-2.3.2.2: test/fail/SizedTypesFunctionFromSuccSize.agda

{-# OPTIONS --sized-types --injective-type-constructors #-}

module SizedTypesFunctionFromSuccSize 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 ^}

bad : {i : Size} -> Nat {i ^} -> Set
bad (zero) = bad zero
bad (suc x) = Nat