typeparams-0.0.1.0: src/Data/Params/Vector.hs
{-# LANGUAGE TemplateHaskell #-}
-- | Provides the infrastructure that is common to all types of parameterized
-- vectors.
module Data.Params.Vector
(
-- * Type lenses
_len
, _elem
-- * Classes
, Param_len (..)
, Param_elem (..)
, Def (..)
)
where
import Language.Haskell.TH hiding (reify)
import Language.Haskell.TH.Syntax hiding (reify)
import qualified Language.Haskell.TH as TH
import Data.Params
mkParamClass_Config "len" (ConT ''Int)
mkParamClass_Star "elem"
mkReifiableConstraint "len"
mkTypeLens_Config "len"
mkTypeLens_Star "elem"
mkHasDictionary_Star "elem"
mkHasDictionary_Config "len" (ConT ''Int)