-- | Adaptive Tuples with strict fields and unboxed elements. The equivalent -- of @data ATuple1 s n = ATuple1 !n@ compiled with @-funbox-strict-fields@. -- It is usually not necessary to import this module except to make custom -- reification functions. {-# LANGUAGE TemplateHaskell ,MultiParamTypeClasses ,FlexibleInstances ,TypeSynonymInstances ,Rank2Types ,DeriveDataTypeable #-} {-# OPTIONS_GHC -funbox-strict-fields -fno-warn-unused-binds -fno-warn-unused-matches #-} module Data.AdaptiveTuple.Reps.Strict where import Data.AdaptiveTuple.TH import Data.AdaptiveTuple.AdaptiveTuple import Data.TypeLevel.Num import Language.Haskell.TH (Strict (..)) import Control.Applicative $(makeDatas IsStrict 1 20) $(deriveInstances ''ATuple1 ''D1) $(deriveInstances ''ATuple2 ''D2) $(deriveInstances ''ATuple3 ''D3) $(deriveInstances ''ATuple4 ''D4) $(deriveInstances ''ATuple5 ''D5) $(deriveInstances ''ATuple6 ''D6) $(deriveInstances ''ATuple7 ''D7) $(deriveInstances ''ATuple8 ''D8) $(deriveInstances ''ATuple9 ''D9) $(deriveInstances ''ATuple10 ''D10) $(deriveInstances ''ATuple11 ''D11) $(deriveInstances ''ATuple12 ''D12) $(deriveInstances ''ATuple13 ''D13) $(deriveInstances ''ATuple14 ''D14) $(deriveInstances ''ATuple15 ''D15) $(deriveInstances ''ATuple16 ''D16) $(deriveInstances ''ATuple17 ''D17) $(deriveInstances ''ATuple18 ''D18) $(deriveInstances ''ATuple19 ''D19) $(deriveInstances ''ATuple20 ''D20) $(makeReify 4) $(makeReify 8) $(makeReify 12) $(makeReify 16) $(makeReify 20)