{-# OPTIONS --without-K --safe #-}
open import Data.Nat using (; zero; suc)
open import Agda.Primitive using (Level; lzero; lsuc; _⊔_)

module Sig where

data Sig : Set where
   : Sig
  ν : Sig  Sig
   : Sig  Sig

sig→ℕ : Sig  
sig→ℕ  = 0
sig→ℕ (ν b) = suc (sig→ℕ b)
sig→ℕ ( b) = sig→ℕ b

ℕ→sig :   Sig
ℕ→sig 0 = 
ℕ→sig (suc n) = ν (ℕ→sig n)

{- The following is used in Fold2 -}

Result : { : Level}  Set   Sig  Set 
Result V  = V
Result V (ν b) = V  Result V b
Result V ( b) = Result V b