clr-typed-0.2.0: A strongly typed Haskell interface to the CLR type system

Safe HaskellNone
LanguageHaskell2010

Clr

Documentation

invokeS :: forall ms ts resultBridge resultHask m t argsClrUnResolved argsClr argsHask argCount argsBridge. (MakeT ms ~ m, MakeT ts ~ t, ArgCount argsHask ~ argCount, HaskToClrL (TupleToList argsHask) ~ argsClrUnResolved, ResolveMember argsClrUnResolved (Candidates t m) ~ argsClr, MethodS argCount t m argsClr, ListToTuple (BridgeTypeL argsClr) ~ argsBridge, BridgeType (ResultTypeS argCount t m argsClr) ~ resultBridge, Marshal argsHask argsBridge, Unmarshal resultBridge resultHask, Curry argCount (argsBridge -> IO resultBridge) (CurryT' argCount argsBridge (IO resultBridge))) => argsHask -> IO resultHask Source #

invokeI :: forall ms resultBridge resultHask m tBase tDerived argsClrUnResolved argsClr argsHask argCount argsBridge. (MakeT ms ~ m, ArgCount argsHask ~ argCount, ResolveBaseType tDerived m ~ tBase, (tDerived `Implements` tBase) ~ True, HaskToClrL (TupleToList argsHask) ~ argsClrUnResolved, ResolveMember argsClrUnResolved (Candidates tBase m) ~ argsClr, MethodI argCount tBase m argsClr, ListToTuple (BridgeTypeL argsClr) ~ argsBridge, BridgeType (ResultTypeI argCount tBase m argsClr) ~ resultBridge, Marshal argsHask argsBridge, Marshal (Object tBase) (BridgeType tBase), Unmarshal resultBridge resultHask, Curry argCount (argsBridge -> IO resultBridge) (CurryT' argCount argsBridge (IO resultBridge))) => Object tDerived -> argsHask -> IO resultHask Source #

new :: forall ts t argsClrUnResolved argsClr argsHask argCount argsBridge resultBridge. (MakeT ts ~ t, ArgCount argsHask ~ argCount, HaskToClrL (TupleToList argsHask) ~ argsClrUnResolved, ResolveMember argsClrUnResolved (Candidates t t) ~ argsClr, Constructor argCount t argsClr, ListToTuple (BridgeTypeL argsClr) ~ argsBridge, Marshal argsHask argsBridge, Unmarshal (BridgeType t) (Object t), Curry argCount (argsBridge -> IO (BridgeType t)) (CurryT' argCount argsBridge (IO (BridgeType t)))) => argsHask -> IO (Object t) Source #

getPropI :: forall ms propertyBridge propertyHask m tBase tDerived. (MakeT ms ~ m, ResolveBaseType tDerived m ~ tBase, (tDerived `Implements` tBase) ~ True, PropertyI tBase m, PropertyGetI tBase m, BridgeType (PropertyTypeI tBase m) ~ propertyBridge, Marshal (Object tBase) (BridgeType tBase), Unmarshal propertyBridge propertyHask) => Object tDerived -> IO propertyHask Source #

setPropI :: forall ms propertyBridge propertyHask m tBase tDerived. (MakeT ms ~ m, ResolveBaseType tDerived m ~ tBase, (tDerived `Implements` tBase) ~ True, PropertyI tBase m, PropertySetI tBase m, BridgeType (PropertyTypeI tBase m) ~ propertyBridge, Marshal (Object tBase) (BridgeType tBase), Marshal propertyHask propertyBridge) => Object tDerived -> propertyHask -> IO () Source #

getPropS :: forall ms ts propertyBridge propertyHask m t. (MakeT ms ~ m, MakeT ts ~ t, PropertyS t m, PropertyGetS t m, BridgeType (PropertyTypeS t m) ~ propertyBridge, Unmarshal propertyBridge propertyHask) => IO propertyHask Source #

setPropS :: forall ms ts propertyBridge propertyHask m t. (MakeT ms ~ m, MakeT ts ~ t, PropertyS t m, PropertySetS t m, BridgeType (PropertyTypeS t m) ~ propertyBridge, Marshal propertyHask propertyBridge) => propertyHask -> IO () Source #

delegate :: forall ds d ht bt n. (MakeT ds ~ d, Delegate d, DelegateBridgeType d ~ bt, DelegateArity d ~ n, MarshalF n ht bt, DelegateConstructorN n d, Unmarshal (BridgeType d) (Object d)) => ht -> IO (Object d) Source #

module Clr.Object

module Clr.Types