packages feed

NoSlow-0.2: NoSlow/Util/Base.hs

module NoSlow.Util.Base (
  Ty(..), ofType, named, Unsupported(..), Sort(..),
  noinline
) where

data Ty a = Ty

ofType :: a -> Ty a -> a
{-# INLINE ofType #-}
x `ofType` _ = x

named :: String -> a -> a
{-# INLINE named #-}
named s x = x

data Unsupported = Unsupported

data Sort = Generic | Specialised deriving (Eq, Ord, Show)

noinline :: a -> a
{-# NOINLINE noinline #-}
noinline x = x