diff --git a/hasktorch-signatures-support.cabal b/hasktorch-signatures-support.cabal
new file mode 100644
--- /dev/null
+++ b/hasktorch-signatures-support.cabal
@@ -0,0 +1,40 @@
+cabal-version: 2.2
+-- * * * * * * * * * * * * WARNING * * * * * * * * * * * *
+-- This file has been AUTO-GENERATED by dhall-to-cabal.
+--
+-- Do not edit it by hand, because your changes will be over-written!
+--
+-- Instead, edit the source Dhall file, namely
+-- 'signatures/support/hasktorch-signatures-support.dhall', and re-generate this file by running
+-- 'dhall-to-cabal -- signatures/support/hasktorch-signatures-support.dhall > hasktorch-signatures-support.cabal'.
+-- * * * * * * * * * * * * WARNING * * * * * * * * * * * *
+name: hasktorch-signatures-support
+version: 0.0.1.0
+license: BSD-3-Clause
+maintainer: Sam Stites <fnz@fgvgrf.vb>, Austin Huang <nhfgvau@nyhz.zvg.rqh> - cipher:ROT13
+author: Hasktorch dev team
+homepage: https://github.com/hasktorch/hasktorch#readme
+bug-reports: https://github.com/hasktorch/hasktorch/issues
+synopsis: Signatures for support tensors in hasktorch
+description:
+    Backpack signatures which define redundant operators for mask tensors and index tensors in Hasktorch.
+category: Tensors, Machine Learning, AI
+build-type: Simple
+
+source-repository head
+    type: git
+    location: https://github.com/hasktorch/hasktorch
+
+library
+    signatures: Torch.Sig.Index.Tensor
+                Torch.Sig.Index.TensorFree
+                Torch.Sig.Mask.Tensor
+                Torch.Sig.Mask.TensorFree
+                Torch.Sig.Mask.MathReduce
+    hs-source-dirs: src
+    default-language: Haskell2010
+    build-depends:
+        base (==4.7 || >4.7) && <5,
+        hasktorch-signatures-types (==0.0.1 || >0.0.1) && <0.0.2,
+        hasktorch-types-th (==0.0.1 || >0.0.1) && <0.0.2
+
diff --git a/src/Torch/Sig/Index/Tensor.hsig b/src/Torch/Sig/Index/Tensor.hsig
new file mode 100644
--- /dev/null
+++ b/src/Torch/Sig/Index/Tensor.hsig
@@ -0,0 +1,43 @@
+-------------------------------------------------------------------------------
+-- |
+-- Module    :  Torch.Sig.Index.Tensor
+-- Copyright :  (c) Sam Stites 2017
+-- License   :  BSD3
+-- Maintainer:  sam@stites.io
+-- Stability :  experimental
+-- Portability: non-portable
+--
+-- Basic Tensor functionality signature file for Index tensors.
+-------------------------------------------------------------------------------
+signature Torch.Sig.Index.Tensor where
+
+import Foreign.Ptr
+import Foreign.C.Types
+import Torch.Sig.Types.Global
+import Torch.Types.TH (C'THLongStorage)
+
+c_new :: Ptr CState -> IO (Ptr CLongTensor)
+-- | ffi to c-level newWithSize1d
+c_newWithSize1d :: Ptr CState -> CLLong -> IO (Ptr CLongTensor)
+c_newWithSize2d :: Ptr CState -> CLLong -> CLLong -> IO (Ptr CLongTensor)
+c_newWithSize3d :: Ptr CState -> CLLong -> CLLong -> CLLong -> IO (Ptr CLongTensor)
+c_newWithSize4d :: Ptr CState -> CLLong -> CLLong -> CLLong -> CLLong -> IO (Ptr CLongTensor)
+-- | ffi to c-level set1d
+c_set1d :: Ptr CState -> Ptr CLongTensor -> CLLong -> CLong -> IO ()
+-- | ffi to c-level resize1d
+c_resize1d :: Ptr CState -> Ptr CLongTensor -> CLLong -> IO ()
+
+-- | ffi to c-level nDimension
+c_nDimension :: Ptr CState -> Ptr CLongTensor -> IO CInt
+-- | ffi to c-level size
+c_size :: Ptr CState -> Ptr CLongTensor -> CInt -> IO CLLong
+-- | ffi to c-level get1d
+c_get1d :: Ptr CState -> Ptr CLongTensor -> CLLong -> IO CLong
+-- | ffi to c-level get2d
+c_get2d :: Ptr CState -> Ptr CLongTensor -> CLLong -> CLLong -> IO CLong
+-- | ffi to c-level get3d
+c_get3d :: Ptr CState -> Ptr CLongTensor -> CLLong -> CLLong -> CLLong -> IO CLong
+-- | ffi to c-level get4d
+c_get4d :: Ptr CState -> Ptr CLongTensor -> CLLong -> CLLong -> CLLong -> CLLong -> IO CLong
+
+
diff --git a/src/Torch/Sig/Index/TensorFree.hsig b/src/Torch/Sig/Index/TensorFree.hsig
new file mode 100644
--- /dev/null
+++ b/src/Torch/Sig/Index/TensorFree.hsig
@@ -0,0 +1,19 @@
+-------------------------------------------------------------------------------
+-- |
+-- Module    :  Torch.Sig.Index.TensorFree
+-- Copyright :  (c) Sam Stites 2017
+-- License   :  BSD3
+-- Maintainer:  sam@stites.io
+-- Stability :  experimental
+-- Portability: non-portable
+--
+-- Tensor GC functionality for Index tensors.
+-------------------------------------------------------------------------------
+signature Torch.Sig.Index.TensorFree where
+
+import Foreign.Ptr
+import Foreign.C.Types
+import Torch.Sig.Types.Global
+
+-- | finalizer for a long tensor
+p_free :: FunPtr (Ptr CState -> Ptr CLongTensor -> IO ())
diff --git a/src/Torch/Sig/Mask/MathReduce.hsig b/src/Torch/Sig/Mask/MathReduce.hsig
new file mode 100644
--- /dev/null
+++ b/src/Torch/Sig/Mask/MathReduce.hsig
@@ -0,0 +1,22 @@
+-------------------------------------------------------------------------------
+-- |
+-- Module    :  Torch.Sig.Mask.MathReduce
+-- Copyright :  (c) Sam Stites 2017
+-- License   :  BSD3
+-- Maintainer:  sam@stites.io
+-- Stability :  experimental
+-- Portability: non-portable
+--
+-- Basic Tensor MathReduce functionality signature for Mask tensors.
+-------------------------------------------------------------------------------
+signature Torch.Sig.Mask.MathReduce where
+
+import Foreign.Ptr
+import Foreign.C.Types
+import Torch.Sig.Types.Global
+
+-- | ffi to c-level sumall function.
+c_sumall :: Ptr CState -> Ptr CByteTensor -> IO CLong
+
+
+
diff --git a/src/Torch/Sig/Mask/Tensor.hsig b/src/Torch/Sig/Mask/Tensor.hsig
new file mode 100644
--- /dev/null
+++ b/src/Torch/Sig/Mask/Tensor.hsig
@@ -0,0 +1,48 @@
+-------------------------------------------------------------------------------
+-- |
+-- Module    :  Torch.Sig.Mask.Tensor
+-- Copyright :  (c) Sam Stites 2017
+-- License   :  BSD3
+-- Maintainer:  sam@stites.io
+-- Stability :  experimental
+-- Portability: non-portable
+--
+-- Basic Tensor functionality signature file for Mask tensors.
+-------------------------------------------------------------------------------
+signature Torch.Sig.Mask.Tensor where
+
+import Foreign.Ptr
+import Foreign.C.Types
+import Torch.Sig.Types.Global
+
+-- | ffi to c-level newWithSize1d
+c_newWithSize1d :: Ptr CState -> CLLong -> IO (Ptr CByteTensor)
+-- | ffi to c-level newWithSize2d
+c_newWithSize2d :: Ptr CState -> CLLong -> CLLong -> IO (Ptr CByteTensor)
+-- | ffi to c-level newWithSize3d
+c_newWithSize3d :: Ptr CState -> CLLong -> CLLong -> CLLong -> IO (Ptr CByteTensor)
+-- | ffi to c-level newWithSize4d
+c_newWithSize4d :: Ptr CState -> CLLong -> CLLong -> CLLong -> CLLong -> IO (Ptr CByteTensor)
+-- | ffi to c-level set1d
+c_set1d :: Ptr CState -> Ptr CByteTensor -> CLLong -> CUChar -> IO ()
+-- | ffi to c-level set2d
+c_set2d :: Ptr CState -> Ptr CByteTensor -> CLLong -> CLLong -> CUChar -> IO ()
+-- | ffi to c-level set3d
+c_set3d :: Ptr CState -> Ptr CByteTensor -> CLLong -> CLLong -> CLLong -> CUChar -> IO ()
+-- | ffi to c-level set4d
+c_set4d :: Ptr CState -> Ptr CByteTensor -> CLLong -> CLLong -> CLLong -> CLLong -> CUChar -> IO ()
+-- | ffi to c-level resize1d
+c_resize1d :: Ptr CState -> Ptr CByteTensor -> CLLong -> IO ()
+-- | ffi to c-level resize2d
+c_resize2d :: Ptr CState -> Ptr CByteTensor -> CLLong -> CLLong -> IO ()
+-- | ffi to c-level resize3d
+c_resize3d :: Ptr CState -> Ptr CByteTensor -> CLLong -> CLLong -> CLLong -> IO ()
+-- | ffi to c-level resize4d
+c_resize4d :: Ptr CState -> Ptr CByteTensor -> CLLong -> CLLong -> CLLong -> CLLong -> IO ()
+-- | ffi to c-level resize5d
+c_resize5d :: Ptr CState -> Ptr CByteTensor -> CLLong -> CLLong -> CLLong -> CLLong -> CLLong -> IO ()
+-- | ffi to c-level nDimension
+c_nDimension :: Ptr CState -> Ptr CByteTensor -> IO CInt
+-- | ffi to c-level size
+c_size :: Ptr CState -> Ptr CByteTensor -> CInt -> IO CLLong
+
diff --git a/src/Torch/Sig/Mask/TensorFree.hsig b/src/Torch/Sig/Mask/TensorFree.hsig
new file mode 100644
--- /dev/null
+++ b/src/Torch/Sig/Mask/TensorFree.hsig
@@ -0,0 +1,19 @@
+-------------------------------------------------------------------------------
+-- |
+-- Module    :  Torch.Sig.Mask.TensorFree
+-- Copyright :  (c) Sam Stites 2017
+-- License   :  BSD3
+-- Maintainer:  sam@stites.io
+-- Stability :  experimental
+-- Portability: non-portable
+--
+-- Tensor GC functionality for Mask tensors.
+-------------------------------------------------------------------------------
+signature Torch.Sig.Mask.TensorFree where
+
+import Foreign.Ptr
+import Foreign.C.Types
+import Torch.Sig.Types.Global
+
+-- | finalizer for a byte tensor
+p_free :: FunPtr (Ptr CState -> Ptr CByteTensor -> IO ())
