短所の逆であるSnocリストを作成する必要があります。1つの要素を前方に追加しましたが、2つのリストを連結する方法がわかりません。それが今の状況です:
module Tsil where
data Tsil a = Lin
| Snoc (Tsil a, a)
deriving (Eq, Ord, Show, Read)
empty :: Tsil a
empty = Lin
infixr 2 |:
(|:) :: a -> Tsil a -> Tsil a
(|:) a t = Snoc (t, a)
infixr 5 |++
(|++) :: Tsil a -> Tsil a -> Tsil a
(|++) a Lin = a
(|++) Lin a = a