{-# OPTIONS --cubical --safe #-}
module Data.Array.Skew where
open import Prelude
open import Data.Binary.Skew
open import Data.List
open import Data.Nat using (_+_)
private
variable
p : Level
P : β β Type p
n : β
ns : πΉ
infixl 6 _β_
_β_ : β β β β β
zero β m = m
suc n β m = n β suc m
infixl 4 _β_
_β_ : (β β Type p) β β β β β Type p
_β_ P n m = P (n β m)
data SpineβΊ {p} (P : β β Type p) : πΉ β Type p where
nil : SpineβΊ P []
conss : β n β P n β SpineβΊ (P β suc n) ns β SpineβΊ P (n β· ns)
data Spine {p} (P : β β Type p) : πΉ β Type p where
nil : Spine P []
conss : β n β P n β SpineβΊ (P β n) ns β Spine P (n β· ns)