TiFreeNames.hs

Plain Haskell source file: TiFreeNames.hs

module TiFreeNames(module TiFreeNames,FreeNames(..)) where
import FreeNames
import HsIdent
import Maybe(mapMaybe)

freeTypeNames x = mapMaybe freeTypeName . freeNames $ x
freeValueNames x = mapMaybe freeValueName . freeNames $ x

freeVars x = filter isHsVar . freeValueNames $ x
freeTyvars x = filter isHsVar . freeTypeNames $ x

freeTypeName (n,ClassOrTypeNames) = Just n
freeTypeName (n,_) = Nothing

freeValueName (n,ValueNames) = Just n
freeValueName (n,_) = Nothing

Index