Add common instances to Interpreting.Dup.
[haskell/symantic.git] / symantic-lib / Language / Symantic / Lib / Enum.hs
index 8daa197a072e4d241fcef29751f93e28724829d8..3c324f0b30c8ea7c2362b6ef628a6301596cff1d 100644 (file)
@@ -12,7 +12,7 @@ import Language.Symantic.Lib.Function (a0)
 import Language.Symantic.Lib.Int (tyInt)
 
 -- * Class 'Sym_Enum'
-type instance Sym (Proxy Enum) = Sym_Enum
+type instance Sym Enum = Sym_Enum
 class Sym_Enum term where
        toEnum   :: Enum a => term Int -> term a
        fromEnum :: Enum a => term a -> term Int
@@ -50,13 +50,15 @@ instance (Sym_Enum r1, Sym_Enum r2) => Sym_Enum (Dup r1 r2) where
 instance (Sym_Enum term, Sym_Lambda term) => Sym_Enum (BetaT term)
 
 -- Typing
+instance NameTyOf Enum where
+       nameTyOf _c = ["Enum"] `Mod` "Enum"
 instance FixityOf Enum
 instance ClassInstancesFor Enum
 instance TypeInstancesFor Enum
 
 -- Compiling
 instance Gram_Term_AtomsFor src ss g Enum
-instance (Source src, Inj_Sym ss Enum) => ModuleFor src ss Enum where
+instance (Source src, SymInj ss Enum) => ModuleFor src ss Enum where
        moduleFor = ["Enum"] `moduleWhere`
         [ "succ"     := teEnum_succ
         , "pred"     := teEnum_pred