Safe Haskell | None |
---|---|
Language | Haskell2010 |
Clr.Delegate
Documentation
Associated Types
type DelegateArgTypes t :: [Type] Source #
type DelegateResultType t :: Type Source #
type family DelegateArgN (t :: Type) (n :: Nat) :: Type where ... Source #
Equations
DelegateArgN t n = DelegateArgTypes t `Index` n |
class Delegate t => DelegateConstructor0 t where Source #
Minimal complete definition
Methods
rawConstructDelegate0 :: IO (BridgeType (DelegateResultType t)) -> IO (BridgeType t) Source #
class Delegate t => DelegateConstructor1 t where Source #
Minimal complete definition
Methods
rawConstructDelegate1 :: (BridgeType (DelegateArgN t 0) -> IO (BridgeType (DelegateResultType t))) -> IO (BridgeType t) Source #
class Delegate t => DelegateConstructor2 t where Source #
Minimal complete definition
Methods
rawConstructDelegate2 :: (BridgeType (DelegateArgN t 0) -> BridgeType (DelegateArgN t 1) -> IO (BridgeType (DelegateResultType t))) -> IO (BridgeType t) Source #
class Delegate t => DelegateConstructor3 t where Source #
Minimal complete definition
Methods
rawConstructDelegate3 :: (BridgeType (DelegateArgN t 0) -> BridgeType (DelegateArgN t 1) -> BridgeType (DelegateArgN t 2) -> IO (BridgeType (DelegateResultType t))) -> IO (BridgeType t) Source #
type family DelegateArity (t :: Type) :: Nat where ... Source #
Equations
DelegateArity t = ListSize (DelegateArgTypes t) |
type family DelegateBridgeType (t :: Type) :: Type where ... Source #
Equations
DelegateBridgeType t = CurryT' (DelegateArity t) (BridgeTypes (DelegateArgTypes t)) (IO (BridgeType (DelegateResultType t))) |
class Delegate t => DelegateConstructorN n t where Source #
Minimal complete definition
Methods
rawConstructDelegate :: DelegateBridgeType t -> IO (BridgeType t) Source #
Instances
((~) Nat (DelegateArity t) 0, DelegateConstructor0 t) => DelegateConstructorN 0 t Source # | |
((~) Nat (DelegateArity t) 1, (~) [Type] (DelegateArgTypes Type t) ((:) Type a0 ([] Type)), DelegateConstructor1 t) => DelegateConstructorN 1 t Source # | |
((~) Nat (DelegateArity t) 2, (~) [Type] (DelegateArgTypes Type t) ((:) Type a0 ((:) Type a1 ([] Type))), DelegateConstructor2 t) => DelegateConstructorN 2 t Source # | |
((~) Nat (DelegateArity t) 3, (~) [Type] (DelegateArgTypes Type t) ((:) Type a0 ((:) Type a1 ((:) Type a2 ([] Type)))), DelegateConstructor3 t) => DelegateConstructorN 3 t 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 #