diff options
Diffstat (limited to 'src/Data.hs')
-rw-r--r-- | src/Data.hs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/Data.hs b/src/Data.hs index e951ef2..c5d6219 100644 --- a/src/Data.hs +++ b/src/Data.hs @@ -30,6 +30,10 @@ slistMap :: (forall t. f t -> g t) -> SList f list -> SList g list slistMap _ SNil = SNil slistMap f (SCons x list) = SCons (f x) (slistMap f list) +unSList :: (forall t. f t -> a) -> SList f list -> [a] +unSList _ SNil = [] +unSList f (x `SCons` l) = f x : unSList f l + sappend :: SList f l1 -> SList f l2 -> SList f (Append l1 l2) sappend SNil l = l sappend (SCons x xs) l = SCons x (sappend xs l) |