{-# OPTIONS --safe #-}

module Data.List.Syntax where

open import Prelude hiding ([_])

VecT VecT⁺ :   Type a  Type a

VecT⁺ zero    A = A
VecT⁺ (suc n) A = A × VecT⁺ n A

VecT zero    A = Poly-⊤
VecT (suc n) A = VecT⁺ n A

[_]⁺ :  {n}  VecT⁺ n A  List A
[_]⁺ {n = zero}  x = x  []
[_]⁺ {n = suc n} (x , xs) = x  [ xs ]⁺

[_] :  {n}  VecT n A  List A
[_] {n = zero}  _ = []
[_] {n = suc n} = [_]⁺