{-# OPTIONS --cubical --safe #-}
module Data.List.Syntax where
open import Data.List
open import Prelude
open import Data.Vec.Sigma using () renaming (toList to [_]) public
open import Data.Vec.Sigma
[_][_] : ∀ n → Vec A n → List A
[ n ][ xs ] = toList {n = n} xs
-- record ListSyntax {a b} (A : Type a) (B : Type b) : Type (a ℓ⊔ b) where
-- field [_] : B → List A
-- open ListSyntax ⦃ ... ⦄ public
-- instance
-- cons : ⦃ _ : ListSyntax A B ⦄ → ListSyntax A (A × B)
-- [_] ⦃ cons ⦄ (x , xs) = x ∷ [ xs ]
-- instance
-- sing : ListSyntax A A
-- [_] ⦃ sing ⦄ = _∷ []