TrieMap-1.5.0: Data/TrieMap/Sized.hs
{-# LANGUAGE MagicHash #-}
module Data.TrieMap.Sized where
import GHC.Exts
class Sized a where
getSize# :: a -> Int#
newtype Elem a = Elem {getElem :: a}
instance Sized (Elem a) where
getSize# _ = 1#
getSize :: Sized a => a -> Int
getSize a = I# (getSize# a)
unbox :: Int -> Int#
unbox (I# i#) = i#