{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE DataKinds #-} {-# OPTIONS_GHC -fno-warn-orphans #-} module SizeOf where import Ivory.Language [ivory| struct foo { f1 :: Stored Uint8 ; f2 :: Stored Uint32 } |] test :: Def ('[] :-> Uint8) test = proc "test" (body (ret (sizeOf (Proxy :: Proxy (Struct "foo"))))) cmodule :: Module cmodule = package "SizeOf" $ do defStruct (Proxy :: Proxy "foo") incl test