{-# LANGUAGE TypeOperators #-}
module EVec (Vec, (++), type (@@@), cons, fromList, snoc) where
import Prelude hiding ((++))
data Vec a
(++) :: Vec a -> Vec a -> Vec a
(++) = undefined
data (@@@) a b
fromList :: [a] -> Vec a
fromList = undefined
cons :: a -> Vec a -> Vec a
cons = undefined
snoc :: Vec a -> a -> Vec a
snoc = undefined