instance (Sym_IO_Mode term, Sym_Lambda term) => Sym_IO_Mode (BetaT term)
-- Typing
+instance NameTyOf IO where
+ nameTyOf _c = ["IO"] `Mod` "IO"
+instance NameTyOf IO.Handle where
+ nameTyOf _c = ["IO"] `Mod` "Handle"
+instance NameTyOf IO.IOMode where
+ nameTyOf _c = ["IO"] `Mod` "IOMode"
instance FixityOf IO
instance ClassInstancesFor IO where
proveConstraintFor _ (TyApp _ (TyConst _ _ q) z)
-- Compiling
instance ModuleFor src ss IO
-instance (Source src, Inj_Sym ss IO.Handle) => ModuleFor src ss IO.Handle where
+instance (Source src, SymInj ss IO.Handle) => ModuleFor src ss IO.Handle where
moduleFor = ["IO"] `moduleWhere`
[ "hClose" := teIO_hClose
, "openFile" := teIO_openFile
tyIO :: Source src => Type src vs a -> Type src vs (IO a)
tyIO a = tyConstLen @(K IO) @IO (lenVars a) `tyApp` a
-tyIO_Handle :: Source src => Inj_Len vs => Type src vs IO.Handle
+tyIO_Handle :: Source src => LenInj vs => Type src vs IO.Handle
tyIO_Handle = tyConst @(K IO.Handle) @IO.Handle
-tyIO_Mode :: Source src => Inj_Len vs => Type src vs IO.IOMode
+tyIO_Mode :: Source src => LenInj vs => Type src vs IO.IOMode
tyIO_Mode = tyConst @(K IO.IOMode) @IO.IOMode
-tyFilePath :: Source src => Inj_Len vs => Type src vs FilePath
+tyFilePath :: Source src => LenInj vs => Type src vs FilePath
tyFilePath = tyString
-- ** 'Term's