Rename Dim -> Dimension.
[haskell/symantic.git] / symantic-lib / Language / Symantic / Lib / Semigroup.hs
index e70e7cfc092465de822b1cacf8baf26e17efbc2f..e6fb6f5eca87117da281b01a8ca3bf5e503e7632 100644 (file)
@@ -11,7 +11,7 @@ import Language.Symantic.Lib.Function (a0, b1)
 import Language.Symantic.Lib.Integral (tyIntegral)
 
 -- * Class 'Sym_Semigroup'
-type instance Sym (Proxy Semigroup) = Sym_Semigroup
+type instance Sym Semigroup = Sym_Semigroup
 class Sym_Semigroup term where
        (<>)   :: Semigroup a => term a -> term a -> term a
        stimes :: (Semigroup a, Integral b) => term b -> term a -> term a
@@ -36,14 +36,16 @@ instance (Sym_Semigroup r1, Sym_Semigroup r2) => Sym_Semigroup (Dup r1 r2) where
 instance (Sym_Semigroup term, Sym_Lambda term) => Sym_Semigroup (BetaT term)
 
 -- Typing
+instance NameTyOf Semigroup where
+       nameTyOf _c = ["Semigroup"] `Mod` "Semigroup"
 instance FixityOf Semigroup
 instance ClassInstancesFor Semigroup
 instance TypeInstancesFor Semigroup
 
 -- Compiling
 instance Gram_Term_AtomsFor src ss g Semigroup
-instance (Source src, Inj_Sym ss Semigroup) => Module src ss Semigroup where
-       module_ _s = [] `moduleWhere`
+instance (Source src, SymInj ss Semigroup) => ModuleFor src ss Semigroup where
+       moduleFor = ["Semigroup"] `moduleWhere`
         [ "<>" `withInfixR` 6 := teSemigroup_sappend
         , "stimes" := teSemigroup_stimes
         ]