{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveFunctor #-} module Data.EDN.AST.Types.Tagged ( Tagged(..) , stripTag ) where import Data.Data (Data) data Tagged tag a = Tagged !tag !tag !a -- ^ @ #prefix/tag value @ | NoTag !a -- ^ @ value @ deriving (Eq, Ord, Show, Data, Functor) stripTag :: Tagged tag a -> a stripTag (NoTag value) = value stripTag (Tagged _ns _tag value) = value