QualNames

Plain source file: base/Modules/QualNames.hs (2005-06-25)

QualNames is imported by: Names, TiPNT, PNT, ReAssocModule, ScopeModule, PosSyntax, SourceNames, SimpFieldLabels, BaseStruct2Alfa, Prop2Alfa, PFE0, PFEdeps, Pfe4Cmds, PfeDepCmds, PropPosSyntax, ToQC.

module QualNames where

import HsName
import HsIdent
import Maybe(isJust)

class QualNames qn m n | qn -> m n, m n -> qn where
  getQualifier  :: qn -> Maybe m
  getQualified  :: qn -> n
  mkUnqual      :: n -> qn
  mkQual        :: m -> n -> qn

isQual m    = isJust (getQualifier m)
isUnqual m  = not (isQual m)
qual m      = mkQual m . getQualified 
unqual m    = mkUnqual (getQualified m)



instance QualNames HsName ModuleName Id where
    getQualifier (Qual x _) = Just x
    getQualifier _          = Nothing
    
    getQualified (Qual _ x)   = x
    getQualified (UnQual x)   = x
 
    mkUnqual  = UnQual
    mkQual    = Qual
    
 
instance QualNames t m n => QualNames (HsIdentI t) m (HsIdentI n) where
    getQualifier                = getQualifier . getHSName
    getQualified                = mapHsIdent getQualified
 
    mkUnqual                    = mapHsIdent mkUnqual
    mkQual m                    = mapHsIdent (mkQual m)





Index

(HTML for this module was generated on 2006-08-12. About the conversion tool.)