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

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





newDimname_n
  :: ForeignPtr Dimname
  -> IO (ForeignPtr Dimname)
newDimname_n :: ForeignPtr Dimname -> IO (ForeignPtr Dimname)
newDimname_n = forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
_cast1 Ptr Dimname -> IO (Ptr Dimname)
Unmanaged.newDimname_n

dimname_symbol
  :: ForeignPtr Dimname
  -> IO (ForeignPtr Symbol)
dimname_symbol :: ForeignPtr Dimname -> IO (ForeignPtr Symbol)
dimname_symbol = forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
_cast1 Ptr Dimname -> IO (Ptr Symbol)
Unmanaged.dimname_symbol

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

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

dimname_matches_n
  :: ForeignPtr Dimname
  -> ForeignPtr Dimname
  -> IO (CBool)
dimname_matches_n :: ForeignPtr Dimname -> ForeignPtr Dimname -> IO CBool
dimname_matches_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 Dimname -> Ptr Dimname -> IO CBool
Unmanaged.dimname_matches_n

fromSymbol_s
  :: ForeignPtr Symbol
  -> IO (ForeignPtr Dimname)
fromSymbol_s :: ForeignPtr Symbol -> IO (ForeignPtr Dimname)
fromSymbol_s = forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
_cast1 Ptr Symbol -> IO (Ptr Dimname)
Unmanaged.fromSymbol_s

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

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