TiDefinedNames.hs

Plain Haskell source file: TiDefinedNames.hs

module TiDefinedNames(module TiDefinedNames,DefinedNames(..)) where
import DefinedNames
import Maybe(mapMaybe)
import HsIdent

-- Defined to minic the instances of the deprecated class DefinedVars...
valueNames = mapMaybe valueName
valueName (n,t) =
  case t of
    Value      -> Just n
    _          -> Nothing

valuesNames' = mapMaybe valueName'
valueName' (n,t) =
  case t of
    Value      -> Just n
    ConstrOf _ -> Just n
    MemberOf _ -> Just n
    _          -> Nothing

valueIdent (n,t) =
  case t of
    Value      -> Just (HsVar n)
    ConstrOf _ -> Just (HsCon n)
    MemberOf _ -> Just (HsVar n)
    _          -> Nothing

typeNames = mapMaybe typeName
typeName (n,t) =
  case t of
    Class -> Just n
    Type  -> Just n
    _     -> Nothing

typeIdent (n,t) =
  case t of
    Class -> Just (HsCon n)
    Type  -> Just (HsCon n)
    _     -> Nothing

definedValueNames x = valueNames . definedNames $ x
definedTypeNames  x = typeNames  . definedNames $ x

definedNamesSplit x = (typeNames ns,valueNames ns)
  where ns = definedNames x

patternVars p = filter isHsVar (definedValueNames p)

Index