{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DefaultSignatures #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE PartialTypeSignatures #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeInType #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -Wno-partial-type-signatures #-}

module Torch.Typed.NN
  ( module Torch.Typed.NN,
    module Torch.Typed.NN.Convolution,
    module Torch.Typed.NN.Normalization,
    module Torch.Typed.NN.Recurrent,
    module Torch.Typed.NN.Transformer,
    module Torch.Typed.NN.Linear,
    module Torch.Typed.NN.Dropout,
    module Torch.Typed.NN.Sparse,
    module Torch.Typed.NN.DataParallel,
    Torch.NN.HasForward (..),
  )
where

import Torch.NN (HasForward (..))
import Torch.Typed.NN.Convolution
import Torch.Typed.NN.DataParallel
import Torch.Typed.NN.Dropout
import Torch.Typed.NN.Linear
import Torch.Typed.NN.Normalization
import Torch.Typed.NN.Recurrent
import Torch.Typed.NN.Sparse
import Torch.Typed.NN.Transformer