HsConstants.hs

All of the built-in entities that don't contain any recursive parts (mainly names).

module HsConstants(module HsConstants,module SpecialNames,HsName) where

import HsName
import HsIdent
import SpecialNames


-- The module that is implicitly imported in all modules: ----------------------
prelude_mod_name' = "Prelude"
mod_Prelude'      = plainModule prelude_mod_name'


-- Module names for constructing original names of standard entities: ----------
--{ -
-- For use with PFE libraries:
mod_Prelude      = plainModule "Prelude"
mod_PreludeList  = plainModule "PreludeList"
mod_PreludeText  = plainModule "PreludeText"
mod_Ix	   = plainModule "Ix"
--}

{-
-- For use with Hugs libraries:
mod_Prelude      = plainModule "Hugs.Prelude"
mod_PreludeList  = mod_Prelude
mod_PreludeText  = mod_Prelude
mod_Ix		 = mod_Prelude
--}

--------------------------------------------------------------------------------

--prelude_mod         = mod_Prelude -- retained for backward compatibility

main_mod path       = moduleName path "Main"

--qualify path m v         = Qual (moduleName path m) v
tuple n            = "(" ++ replicate n ',' ++ ")"        

unit_con_name       = Qual mod_Prelude "()"
tuple_con_name n    = Qual mod_Prelude $ tuple n

main_name           = UnQual "main"

unit_tycon_name     = unit_con_name

instance HasSpecialNames HsName where
  fun_tycon_name      = Qual mod_Prelude "->"
  list_tycon_name     = Qual mod_Prelude "[]"
  char_tycon_name     = Qual mod_Prelude "Char"
  tuple_tycon_name n  = tuple_con_name n

 
instance IsSpecialName HsName where
  is_list_tycon_name  = std_is_list_tycon_name
  is_fun_tycon_name   = std_is_fun_tycon_name
  is_char_tycon_name  = std_is_char_tycon_name
  is_tuple_tycon_name = std_is_tuple_tycon_name

is_unit_tycon_name n = n==unit_tycon_name

Plain-text version of HsConstants.hs | Valid HTML?