clr-typed-0.2.0: src/Clr/Object.hs
{-# LANGUAGE MultiParamTypeClasses, TypeFamilies #-}
{-# LANGUAGE KindSignatures, GADTs, TypeInType #-}
module Clr.Object where
import Clr.Marshal
import Clr.Types
import Clr.TypeString
import Data.Kind
import Data.Int
import Foreign.ForeignPtr
--
-- An object is just its unique identifer + information of its type
--
data Object (typ::Type) where
Object :: (TString typ) => ForeignPtr Int -> Object typ
type instance HaskToClr (Object t) = t