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
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