{-# LANGUAGE DataKinds #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE FlexibleInstances #-}

module Torch.Internal.Managed.Type.IValueList where


import Foreign.C.String
import Foreign.C.Types
import Foreign
import Torch.Internal.Type
import Torch.Internal.Class
import Torch.Internal.Cast
import Torch.Internal.Objects

import qualified Torch.Internal.Unmanaged.Type.IValueList as Unmanaged



newIValueList
  :: IO (ForeignPtr IValueList)
newIValueList :: IO (ForeignPtr IValueList)
newIValueList = forall a ca. Castable a ca => IO ca -> IO a
_cast0 IO (Ptr IValueList)
Unmanaged.newIValueList





ivalueList_empty
  :: ForeignPtr IValueList
  -> IO (CBool)
ivalueList_empty :: ForeignPtr IValueList -> IO CBool
ivalueList_empty = forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
_cast1 Ptr IValueList -> IO CBool
Unmanaged.ivalueList_empty

ivalueList_size
  :: ForeignPtr IValueList
  -> IO (CSize)
ivalueList_size :: ForeignPtr IValueList -> IO CSize
ivalueList_size = forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
_cast1 Ptr IValueList -> IO CSize
Unmanaged.ivalueList_size

ivalueList_at
  :: ForeignPtr IValueList
  -> CSize
  -> IO (ForeignPtr IValue)
ivalueList_at :: ForeignPtr IValueList -> CSize -> IO (ForeignPtr IValue)
ivalueList_at = forall a ca x1 cx1 y cy.
(Castable a ca, Castable x1 cx1, Castable y cy) =>
(ca -> cx1 -> IO cy) -> a -> x1 -> IO y
_cast2 Ptr IValueList -> CSize -> IO (Ptr IValue)
Unmanaged.ivalueList_at

ivalueList_push_back
  :: ForeignPtr IValueList
  -> ForeignPtr IValue
  -> IO (())
ivalueList_push_back :: ForeignPtr IValueList -> ForeignPtr IValue -> IO ()
ivalueList_push_back = forall a ca x1 cx1 y cy.
(Castable a ca, Castable x1 cx1, Castable y cy) =>
(ca -> cx1 -> IO cy) -> a -> x1 -> IO y
_cast2 Ptr IValueList -> Ptr IValue -> IO ()
Unmanaged.ivalueList_push_back