-- |
-- Various constants used by zephyr.
module Language.PureScript.DCE.Constants where

import Prelude hiding (maybe)

import Language.PureScript.Names

unit :: ModuleName
unit =  ModuleName [ProperName "Data", ProperName "Unit"] 

pattern Unit :: ModuleName
pattern Unit = ModuleName [ProperName "Data", ProperName "Unit"]

semigroup :: ModuleName
semigroup = ModuleName [ProperName "Data", ProperName "Semigroup"] 

maybeMod :: ModuleName
maybeMod = ModuleName [ProperName "Data", ProperName "Maybe"] 

pattern Semigroup :: ModuleName
pattern Semigroup = ModuleName [ProperName "Data", ProperName "Semigroup"] 

semiring :: ModuleName
semiring = ModuleName [ProperName "Data", ProperName "Semiring"]

pattern Ring :: ModuleName
pattern Ring = ModuleName [ProperName "Data", ProperName "Ring"]

ring :: ModuleName
ring = ModuleName [ProperName "Data", ProperName "Ring"]

pattern Semiring :: ModuleName
pattern Semiring = ModuleName [ProperName "Data", ProperName "Semiring"]

pattern HeytingAlgebra :: ModuleName
pattern HeytingAlgebra = ModuleName [ProperName "Data", ProperName "HeytingAlgebra"]

heytingAlgebra :: ModuleName
heytingAlgebra = ModuleName [ProperName "Data", ProperName "HeytingAlgebra"]

pattern UnsafeCoerce :: ModuleName
pattern UnsafeCoerce = ModuleName [ProperName "Unsafe", ProperName "Coerce"]

unsafeCoerce :: ModuleName
unsafeCoerce = ModuleName [ProperName "Unsafe", ProperName "Coerce"]

eqMod :: ModuleName
eqMod = ModuleName [ProperName "Data", ProperName "Eq"]

pattern Eq :: ModuleName
pattern Eq = ModuleName [ProperName "Data", ProperName "Eq"]