----------------------------------------------------------------------------- -- -- Module : Language.PureScript.CoreFn.Meta -- Copyright : (c) 2013-14 Phil Freeman, (c) 2014 Gary Burgess, and other contributors -- License : MIT -- -- Maintainer : Phil Freeman , Gary Burgess -- Stability : experimental -- Portability : -- -- | Metadata annotations for core functional representation -- ----------------------------------------------------------------------------- {-# LANGUAGE DeriveDataTypeable #-} module Language.PureScript.CoreFn.Meta where import qualified Data.Data as D -- | -- Metadata annotations -- data Meta -- | -- The contained value is a data constructor -- = IsConstructor ConstructorType Arity -- | -- The contained value is a newtype -- | IsNewtype -- | -- The contained value is a typeclass dictionary constructor -- | IsTypeClassConstructor deriving (Show, D.Data, D.Typeable) -- | -- Type alias for constructor arity -- type Arity = Int -- | -- Data constructor metadata -- data ConstructorType -- | -- The constructor is for a type with a single construcor -- = ProductType -- | -- The constructor is for a type with multiple construcors -- | SumType deriving (Show, D.Data, D.Typeable)