Remove dependency on ghc-prim.
[haskell/symantic.git] / symantic-lib / Language / Symantic / Lib / Sequences.hs
index 2d38cae1ba0f5715ddf0c501ebef61a24c4ef834..7257d18dcf5d9b96a89a50b73019d2d789b0b2bf 100644 (file)
@@ -50,13 +50,15 @@ instance (Sym_SemiSequence r1, Sym_SemiSequence r2) => Sym_SemiSequence (Dup r1
 instance (Sym_SemiSequence term, Sym_Lambda term) => Sym_SemiSequence (BetaT term)
 
 -- Typing
+instance NameTyOf SemiSequence where
+       nameTyOf _c = ["SemiSequence"] `Mod` "SemiSequence"
 instance FixityOf SemiSequence
 instance ClassInstancesFor SemiSequence
 instance TypeInstancesFor SemiSequence
 
 -- Compiling
 instance Gram_Term_AtomsFor src ss g SemiSequence
-instance (Source src, Inj_Sym ss SemiSequence) => ModuleFor src ss SemiSequence where
+instance (Source src, SymInj ss SemiSequence) => ModuleFor src ss SemiSequence where
        moduleFor = ["SemiSequence"] `moduleWhere`
         [ "intersperse" := teSemiSequence_intersperse
         , "cons"        := teSemiSequence_cons
@@ -68,7 +70,7 @@ instance (Source src, Inj_Sym ss SemiSequence) => ModuleFor src ss SemiSequence
 tySemiSequence :: Source src => Type src vs a -> Type src vs (SemiSequence a)
 tySemiSequence a = tyConstLen @(K SemiSequence) @SemiSequence (lenVars a) `tyApp` a
 
-s0 :: Source src => Inj_Len vs => Inj_Kind (K s) =>
+s0 :: Source src => LenInj vs => KindInj (K s) =>
       Type src (Proxy s ': vs) s
 s0 = tyVar "s" varZ
 
@@ -102,13 +104,15 @@ instance (Sym_IsSequence r1, Sym_IsSequence r2) => Sym_IsSequence (Dup r1 r2) wh
 instance (Sym_IsSequence term, Sym_Lambda term) => Sym_IsSequence (BetaT term)
 
 -- Typing
+instance NameTyOf IsSequence where
+       nameTyOf _c = ["IsSequence"] `Mod` "IsSequence"
 instance FixityOf IsSequence
 instance ClassInstancesFor IsSequence
 instance TypeInstancesFor IsSequence
 
 -- Compiling
 instance Gram_Term_AtomsFor src ss g IsSequence
-instance (Source src, Inj_Sym ss IsSequence) => ModuleFor src ss IsSequence where
+instance (Source src, SymInj ss IsSequence) => ModuleFor src ss IsSequence where
        moduleFor = ["IsSequence"] `moduleWhere`
         [ "filter" := teIsSequence_filter
         ]