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

Safe HaskellSafe
LanguageHaskell2010

Clr.Types

Documentation

data T name genArgs Source #

Instances

(KnownSymbol name, TString [Type] gt) => TString * (T name gt) Source # 
type SuperTypes (T "System.Byte" ([] Type)) Source # 
type SuperTypes (T "System.Byte" ([] Type)) = (:) * (T "System.ValueType" ([] Type)) ([] *)
type SuperTypes (T "System.Char" ([] Type)) Source # 
type SuperTypes (T "System.Char" ([] Type)) = (:) * (T "System.ValueType" ([] Type)) ([] *)
type SuperTypes (T "System.Double" ([] Type)) Source # 
type SuperTypes (T "System.Double" ([] Type)) = (:) * (T "System.ValueType" ([] Type)) ([] *)
type SuperTypes (T "System.Int16" ([] Type)) Source # 
type SuperTypes (T "System.Int16" ([] Type)) = (:) * (T "System.ValueType" ([] Type)) ([] *)
type SuperTypes (T "System.Int32" ([] Type)) Source # 
type SuperTypes (T "System.Int32" ([] Type)) = (:) * (T "System.ValueType" ([] Type)) ([] *)
type SuperTypes (T "System.Int64" ([] Type)) Source # 
type SuperTypes (T "System.Int64" ([] Type)) = (:) * (T "System.ValueType" ([] Type)) ([] *)
type SuperTypes (T "System.IntPtr" ([] Type)) Source # 
type SuperTypes (T "System.IntPtr" ([] Type)) = (:) * (T "System.ValueType" ([] Type)) ([] *)
type SuperTypes (T "System.Object" ([] Type)) Source # 
type SuperTypes (T "System.Object" ([] Type)) = [] Type
type SuperTypes (T "System.SByte" ([] Type)) Source # 
type SuperTypes (T "System.SByte" ([] Type)) = (:) * (T "System.ValueType" ([] Type)) ([] *)
type SuperTypes (T "System.Single" ([] Type)) Source # 
type SuperTypes (T "System.Single" ([] Type)) = (:) * (T "System.ValueType" ([] Type)) ([] *)
type SuperTypes (T "System.String" ([] Type)) Source # 
type SuperTypes (T "System.String" ([] Type)) = (:) * (T "System.Object" ([] Type)) ([] *)
type SuperTypes (T "System.UInt16" ([] Type)) Source # 
type SuperTypes (T "System.UInt16" ([] Type)) = (:) * (T "System.ValueType" ([] Type)) ([] *)
type SuperTypes (T "System.UInt32" ([] Type)) Source # 
type SuperTypes (T "System.UInt32" ([] Type)) = (:) * (T "System.ValueType" ([] Type)) ([] *)
type SuperTypes (T "System.UInt64" ([] Type)) Source # 
type SuperTypes (T "System.UInt64" ([] Type)) = (:) * (T "System.ValueType" ([] Type)) ([] *)
type SuperTypes (T "System.UIntPtr" ([] Type)) Source # 
type SuperTypes (T "System.UIntPtr" ([] Type)) = (:) * (T "System.ValueType" ([] Type)) ([] *)
type SuperTypes (T "System.ValueType" ([] Type)) Source # 
type SuperTypes (T "System.ValueType" ([] Type)) = (:) * (T "System.Object" ([] Type)) ([] *)
type BridgeTypePrim (T "System.Boolean" ([] Type)) Source # 
type BridgeTypePrim (T "System.Boolean" ([] Type)) = Bool
type BridgeTypePrim (T "System.Byte" ([] Type)) Source # 
type BridgeTypePrim (T "System.Byte" ([] Type)) = Word8
type BridgeTypePrim (T "System.Char" ([] Type)) Source # 
type BridgeTypePrim (T "System.Char" ([] Type)) = Char
type BridgeTypePrim (T "System.Double" ([] Type)) Source # 
type BridgeTypePrim (T "System.Double" ([] Type)) = CDouble
type BridgeTypePrim (T "System.Int16" ([] Type)) Source # 
type BridgeTypePrim (T "System.Int16" ([] Type)) = Int16
type BridgeTypePrim (T "System.Int32" ([] Type)) Source # 
type BridgeTypePrim (T "System.Int32" ([] Type)) = Int32
type BridgeTypePrim (T "System.Int64" ([] Type)) Source # 
type BridgeTypePrim (T "System.Int64" ([] Type)) = Int64
type BridgeTypePrim (T "System.IntPtr" ([] Type)) Source # 
type BridgeTypePrim (T "System.IntPtr" ([] Type)) = IntPtr
type BridgeTypePrim (T "System.SByte" ([] Type)) Source # 
type BridgeTypePrim (T "System.SByte" ([] Type)) = Int8
type BridgeTypePrim (T "System.Single" ([] Type)) Source # 
type BridgeTypePrim (T "System.Single" ([] Type)) = CFloat
type BridgeTypePrim (T "System.UInt16" ([] Type)) Source # 
type BridgeTypePrim (T "System.UInt16" ([] Type)) = Word16
type BridgeTypePrim (T "System.UInt32" ([] Type)) Source # 
type BridgeTypePrim (T "System.UInt32" ([] Type)) = Word32
type BridgeTypePrim (T "System.UInt64" ([] Type)) Source # 
type BridgeTypePrim (T "System.UInt64" ([] Type)) = Word64
type BridgeTypePrim (T "System.UIntPtr" ([] Type)) Source # 
type BridgeTypePrim (T "System.UIntPtr" ([] Type)) = WordPtr
type BridgeTypePrim (T "System.Void" ([] Type)) Source # 
type BridgeTypePrim (T "System.Void" ([] Type)) = ()

type family MakeT (x :: k) :: Type where ... Source #

Equations

MakeT (T name gt) = T name gt 
MakeT (name :: Symbol) = T name '[] 
MakeT '(name, g1) = T name '[MakeT g1] 
MakeT '(name, g1, g2) = T name '[MakeT g1, MakeT g2] 
MakeT '(name, g1, g2, g3) = T name '[MakeT g1, MakeT g2, MakeT g3] 
MakeT '(name, g1, g2, g3, g4) = T name '[MakeT g1, MakeT g2, MakeT g3, MakeT g4] 
MakeT '(name, g1, g2, g3, g4, g5) = T name '[MakeT g1, MakeT g2, MakeT g3, MakeT g4, MakeT g5] 
MakeT '(name, g1, g2, g3, g4, g5, g6) = T name '[MakeT g1, MakeT g2, MakeT g3, MakeT g4, MakeT g5, MakeT g6] 
MakeT '(name, g1, g2, g3, g4, g5, g6, g7) = T name '[MakeT g1, MakeT g2, MakeT g3, MakeT g4, MakeT g5, MakeT g6, MakeT g7] 
MakeT '(name, g1, g2, g3, g4, g5, g6, g7, g8) = T name '[MakeT g1, MakeT g2, MakeT g3, MakeT g4, MakeT g5, MakeT g6, MakeT g7, MakeT g8] 
MakeT '(name, g1, g2, g3, g4, g5, g6, g7, g8, g9) = T name '[MakeT g1, MakeT g2, MakeT g3, MakeT g4, MakeT g5, MakeT g6, MakeT g7, MakeT g8, MakeT g9] 
MakeT '(name, g1, g2, g3, g4, g5, g6, g7, g8, g9, g10) = T name '[MakeT g1, MakeT g2, MakeT g3, MakeT g4, MakeT g5, MakeT g6, MakeT g7, MakeT g8, MakeT g9, MakeT g10] 

type family T_GetName (t :: Type) :: Symbol where ... Source #

Equations

T_GetName (T name gt) = name 

type family T_GetGenT (t :: Type) :: [Type] where ... Source #

Equations

T_GetGenT (T name gt) = gt 

type PrimTypes = '[T "System.String" '[], T "System.Boolean" '[], T "System.SByte" '[], T "System.Byte" '[], T "System.Int16" '[], T "System.UInt16" '[], T "System.Int32" '[], T "System.UInt32" '[], T "System.Int64" '[], T "System.UInt64" '[], T "System.IntPtr" '[], T "System.UIntPtr" '[], T "System.Char" '[], T "System.Single" '[], T "System.Double" '[], T "System.Void" '[]] Source #

type family IsPrimType (t :: Type) :: Bool where ... Source #

Equations

IsPrimType t = t `Elem` PrimTypes 

type family HaskToClr (h :: Type) :: Type Source #

Instances

type HaskToClr Bool Source # 
type HaskToClr Bool = T "System.Boolean" ([] Type)
type HaskToClr Char Source # 
type HaskToClr Char = T "System.Char" ([] Type)
type HaskToClr Double Source # 
type HaskToClr Double = T "System.Double" ([] Type)
type HaskToClr Float Source # 
type HaskToClr Float = T "System.Single" ([] Type)
type HaskToClr Int8 Source # 
type HaskToClr Int8 = T "System.SByte" ([] Type)
type HaskToClr Int16 Source # 
type HaskToClr Int16 = T "System.Int16" ([] Type)
type HaskToClr Int32 Source # 
type HaskToClr Int32 = T "System.Int32" ([] Type)
type HaskToClr Int64 Source # 
type HaskToClr Int64 = T "System.Int64" ([] Type)
type HaskToClr Word8 Source # 
type HaskToClr Word8 = T "System.Byte" ([] Type)
type HaskToClr Word16 Source # 
type HaskToClr Word16 = T "System.UInt16" ([] Type)
type HaskToClr Word32 Source # 
type HaskToClr Word32 = T "System.UInt32" ([] Type)
type HaskToClr Word64 Source # 
type HaskToClr Word64 = T "System.UInt64" ([] Type)
type HaskToClr WordPtr Source # 
type HaskToClr WordPtr = T "System.UIntPtr" ([] Type)
type HaskToClr IntPtr Source # 
type HaskToClr IntPtr = T "System.IntPtr" ([] Type)
type HaskToClr String Source # 
type HaskToClr String = T "System.String" ([] Type)
type HaskToClr Text Source # 
type HaskToClr Text = T "System.String" ([] Type)
type HaskToClr Text Source # 
type HaskToClr Text = T "System.String" ([] Type)
type HaskToClr (Object t) Source # 
type HaskToClr (Object t) = t

type family HaskToClrL (l :: [Type]) :: [Type] where ... Source #

Equations

HaskToClrL '[] = '[] 
HaskToClrL (x ': xs) = HaskToClr x ': HaskToClrL xs 

type T_sbyte = T "System.SByte" '[] Source #

type T_byte = T "System.Byte" '[] Source #

type T_short = T "System.Int16" '[] Source #

type T_ushort = T "System.UInt16" '[] Source #

type T_int = T "System.Int32" '[] Source #

type T_uint = T "System.UInt32" '[] Source #

type T_long = T "System.Int64" '[] Source #

type T_ulong = T "System.UInt64" '[] Source #

type T_float = T "System.Single" '[] Source #

type T_double = T "System.Double" '[] Source #

type T_decimal = T "System.Decimal" '[] Source #

type T_object = T "System.Object" '[] Source #

type T_string = T "System.String" '[] Source #

type T_char = T "System.Char" '[] Source #

type T_bool = T "System.Boolean" '[] Source #

type T_void = T "System.Void" '[] Source #

type family Members (t :: Type) :: [Type] Source #

type family HasMember (t :: Type) (m :: Type) :: Bool where ... Source #

Equations

HasMember t m = m `Elem` Members t