{-| Module : Idris.DeepSeq Description : NFData instances for Idris' types License : BSD3 Maintainer : The Idris Community. -} {-# OPTIONS_GHC -fwarn-incomplete-patterns #-} module Idris.DeepSeq( module Idris.DeepSeq , module Idris.Core.DeepSeq ) where import Idris.AbsSyntaxTree import Idris.Colours import Idris.Core.DeepSeq import Idris.Core.TT import Idris.Docstrings import qualified Idris.Docstrings as D import Idris.Options import IRTS.CodegenCommon (OutputType(..)) import IRTS.Lang (PrimFn(..)) import Util.DynamicLinker import Control.DeepSeq import Network.Socket (PortNumber) -- These types don't have Generic instances instance NFData DynamicLib where rnf (Lib x _) = rnf x `seq` () instance NFData IdrisColour where rnf (IdrisColour _ x2 x3 x4 x5) = rnf x2 `seq` rnf x3 `seq` rnf x4 `seq` rnf x5 `seq` () instance NFData PortNumber where rnf x = rnf $ show x -- Handle doesn't have an NFData instance instance NFData OutputMode where rnf (RawOutput x) = () rnf (IdeMode x y) = rnf x `seq` () instance NFData a => NFData (D.Docstring a) instance NFData ConsoleWidth instance NFData PrimFn instance NFData SyntaxRules instance NFData Opt instance NFData REPLPort instance NFData TIData instance NFData IOption instance NFData LanguageExt instance NFData Optimisation instance NFData ColourTheme instance NFData OutputType instance NFData IBCWrite instance NFData a => NFData (D.Block a) instance NFData a => NFData (D.Inline a) instance NFData DocTerm instance NFData SizeChange instance NFData FnInfo instance NFData Codegen instance NFData IRFormat instance NFData LogCat instance NFData CGInfo instance NFData Fixity instance NFData FixDecl instance NFData Static instance NFData ArgOpt instance NFData Plicity instance NFData FnOpt instance NFData DataOpt instance NFData Directive instance (NFData t) => NFData (PDecl' t) instance NFData t => NFData (ProvideWhat' t) instance NFData PunInfo instance (NFData t) => NFData (PClause' t) instance (NFData t) => NFData (PData' t) instance NFData PTerm instance NFData PAltType instance (NFData t) => NFData (PTactic' t) instance (NFData t) => NFData (PDo' t) instance (NFData t) => NFData (PArg' t) instance NFData InterfaceInfo instance NFData RecordInfo instance NFData OptInfo instance NFData TypeInfo instance (NFData t) => NFData (DSL' t) instance NFData SynContext instance NFData Syntax instance NFData SSymbol instance NFData Using instance NFData SyntaxInfo instance NFData DefaultTotality instance NFData IState instance NFData InteractiveOpts