hermit-0.7.1.0: Haskell Equational Reasoning Model-to-Implementation Tunnel

Safe HaskellNone
LanguageHaskell2010

HERMIT.Name

Contents

Synopsis

Documentation

data HermitName Source

A HermitName is an optionally fully-qualified name, like GHC's RdrName, but without specifying which NameSpace the name is found in.

cmpHN2Var :: HermitName -> Var -> Bool Source

Compare a HermitName to a Var.

Only compare module names if the HermitName is fully qualified. Otherwise match variables from any module with appropriate occurrence name.

fromRdrName :: RdrName -> HermitName Source

Make a HermitName from a RdrName

toRdrName :: NameSpace -> HermitName -> RdrName Source

Make a RdrName for the given NameSpace and HermitName

toRdrNames :: [NameSpace] -> HermitName -> [RdrName] Source

Make a RdrName for each given NameSpace.

parseName :: String -> HermitName Source

Parse a HermitName from a String.

showName :: HermitName -> String Source

Turn a HermitName into a (possibly fully-qualified) String.

Wrappers

Namespaces

data Named Source

Possible results from name lookup. Invariant: One constructor for each NameSpace.

Instances

Variable Creation

newGlobalIdH :: MonadUnique m => String -> Type -> m Id Source

Make a unique global identifier for a specified type, using a provided name.

newIdH :: MonadUnique m => String -> Type -> m Id Source

Make a unique identifier for a specified type, using a provided name.

newTyVarH :: MonadUnique m => String -> Kind -> m TyVar Source

Make a unique type variable for a specified kind, using a provided name.

newCoVarH :: MonadUnique m => String -> Type -> m TyVar Source

Make a unique coercion variable for a specified type, using a provided name.

newVarH :: MonadUnique m => String -> KindOrType -> m Var Source

Experimental, use at your own risk.

cloneVarH :: MonadUnique m => (String -> String) -> Var -> m Var Source

Make a new variable of the same type, with a modified textual name.

cloneVarFSH :: MonadUnique m => (FastString -> FastString) -> Var -> m Var Source

Make a new variable of the same type, with a modified textual name.

Name Lookup