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

module Torch.Internal.Managed.Type.DimnameList 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.DimnameList as Unmanaged





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

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

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

dimnameList_at_s
  :: ForeignPtr DimnameList
  -> CSize
  -> IO (ForeignPtr Dimname)
dimnameList_at_s :: ForeignPtr DimnameList -> CSize -> IO (ForeignPtr Dimname)
dimnameList_at_s = 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 DimnameList -> CSize -> IO (Ptr Dimname)
Unmanaged.dimnameList_at_s

dimnameList_push_back_n
  :: ForeignPtr DimnameList
  -> ForeignPtr Dimname
  -> IO (())
dimnameList_push_back_n :: ForeignPtr DimnameList -> ForeignPtr Dimname -> IO ()
dimnameList_push_back_n = 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 DimnameList -> Ptr Dimname -> IO ()
Unmanaged.dimnameList_push_back_n