packages feed

fixhs (empty) → 0.1

raw patch · 17 files changed

+55540/−0 lines, 17 filesdep +HaXmldep +MissingHdep +QuickChecksetup-changed

Dependencies added: HaXml, MissingH, QuickCheck, attoparsec, attoparsec-enumerator, base, bytestring, containers, deepseq, dlist, enumerator, network, old-time, parallel, text

Files

+ LICENSE view
@@ -0,0 +1,340 @@+		    GNU GENERAL PUBLIC LICENSE+		       Version 2, June 1991++ Copyright (C) 1989, 1991 Free Software Foundation, Inc.+                       51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA+ Everyone is permitted to copy and distribute verbatim copies+ of this license document, but changing it is not allowed.++			    Preamble++  The licenses for most software are designed to take away your+freedom to share and change it.  By contrast, the GNU General Public+License is intended to guarantee your freedom to share and change free+software--to make sure the software is free for all its users.  This+General Public License applies to most of the Free Software+Foundation's software and to any other program whose authors commit to+using it.  (Some other Free Software Foundation software is covered by+the GNU Library General Public License instead.)  You can apply it to+your programs, too.++  When we speak of free software, we are referring to freedom, not+price.  Our General Public Licenses are designed to make sure that you+have the freedom to distribute copies of free software (and charge for+this service if you wish), that you receive source code or can get it+if you want it, that you can change the software or use pieces of it+in new free programs; and that you know you can do these things.++  To protect your rights, we need to make restrictions that forbid+anyone to deny you these rights or to ask you to surrender the rights.+These restrictions translate to certain responsibilities for you if you+distribute copies of the software, or if you modify it.++  For example, if you distribute copies of such a program, whether+gratis or for a fee, you must give the recipients all the rights that+you have.  You must make sure that they, too, receive or can get the+source code.  And you must show them these terms so they know their+rights.++  We protect your rights with two steps: (1) copyright the software, and+(2) offer you this license which gives you legal permission to copy,+distribute and/or modify the software.++  Also, for each author's protection and ours, we want to make certain+that everyone understands that there is no warranty for this free+software.  If the software is modified by someone else and passed on, we+want its recipients to know that what they have is not the original, so+that any problems introduced by others will not reflect on the original+authors' reputations.++  Finally, any free program is threatened constantly by software+patents.  We wish to avoid the danger that redistributors of a free+program will individually obtain patent licenses, in effect making the+program proprietary.  To prevent this, we have made it clear that any+patent must be licensed for everyone's free use or not licensed at all.++  The precise terms and conditions for copying, distribution and+modification follow.++		    GNU GENERAL PUBLIC LICENSE+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION++  0. This License applies to any program or other work which contains+a notice placed by the copyright holder saying it may be distributed+under the terms of this General Public License.  The "Program", below,+refers to any such program or work, and a "work based on the Program"+means either the Program or any derivative work under copyright law:+that is to say, a work containing the Program or a portion of it,+either verbatim or with modifications and/or translated into another+language.  (Hereinafter, translation is included without limitation in+the term "modification".)  Each licensee is addressed as "you".++Activities other than copying, distribution and modification are not+covered by this License; they are outside its scope.  The act of+running the Program is not restricted, and the output from the Program+is covered only if its contents constitute a work based on the+Program (independent of having been made by running the Program).+Whether that is true depends on what the Program does.++  1. You may copy and distribute verbatim copies of the Program's+source code as you receive it, in any medium, provided that you+conspicuously and appropriately publish on each copy an appropriate+copyright notice and disclaimer of warranty; keep intact all the+notices that refer to this License and to the absence of any warranty;+and give any other recipients of the Program a copy of this License+along with the Program.++You may charge a fee for the physical act of transferring a copy, and+you may at your option offer warranty protection in exchange for a fee.++  2. You may modify your copy or copies of the Program or any portion+of it, thus forming a work based on the Program, and copy and+distribute such modifications or work under the terms of Section 1+above, provided that you also meet all of these conditions:++    a) You must cause the modified files to carry prominent notices+    stating that you changed the files and the date of any change.++    b) You must cause any work that you distribute or publish, that in+    whole or in part contains or is derived from the Program or any+    part thereof, to be licensed as a whole at no charge to all third+    parties under the terms of this License.++    c) If the modified program normally reads commands interactively+    when run, you must cause it, when started running for such+    interactive use in the most ordinary way, to print or display an+    announcement including an appropriate copyright notice and a+    notice that there is no warranty (or else, saying that you provide+    a warranty) and that users may redistribute the program under+    these conditions, and telling the user how to view a copy of this+    License.  (Exception: if the Program itself is interactive but+    does not normally print such an announcement, your work based on+    the Program is not required to print an announcement.)++These requirements apply to the modified work as a whole.  If+identifiable sections of that work are not derived from the Program,+and can be reasonably considered independent and separate works in+themselves, then this License, and its terms, do not apply to those+sections when you distribute them as separate works.  But when you+distribute the same sections as part of a whole which is a work based+on the Program, the distribution of the whole must be on the terms of+this License, whose permissions for other licensees extend to the+entire whole, and thus to each and every part regardless of who wrote it.++Thus, it is not the intent of this section to claim rights or contest+your rights to work written entirely by you; rather, the intent is to+exercise the right to control the distribution of derivative or+collective works based on the Program.++In addition, mere aggregation of another work not based on the Program+with the Program (or with a work based on the Program) on a volume of+a storage or distribution medium does not bring the other work under+the scope of this License.++  3. You may copy and distribute the Program (or a work based on it,+under Section 2) in object code or executable form under the terms of+Sections 1 and 2 above provided that you also do one of the following:++    a) Accompany it with the complete corresponding machine-readable+    source code, which must be distributed under the terms of Sections+    1 and 2 above on a medium customarily used for software interchange; or,++    b) Accompany it with a written offer, valid for at least three+    years, to give any third party, for a charge no more than your+    cost of physically performing source distribution, a complete+    machine-readable copy of the corresponding source code, to be+    distributed under the terms of Sections 1 and 2 above on a medium+    customarily used for software interchange; or,++    c) Accompany it with the information you received as to the offer+    to distribute corresponding source code.  (This alternative is+    allowed only for noncommercial distribution and only if you+    received the program in object code or executable form with such+    an offer, in accord with Subsection b above.)++The source code for a work means the preferred form of the work for+making modifications to it.  For an executable work, complete source+code means all the source code for all modules it contains, plus any+associated interface definition files, plus the scripts used to+control compilation and installation of the executable.  However, as a+special exception, the source code distributed need not include+anything that is normally distributed (in either source or binary+form) with the major components (compiler, kernel, and so on) of the+operating system on which the executable runs, unless that component+itself accompanies the executable.++If distribution of executable or object code is made by offering+access to copy from a designated place, then offering equivalent+access to copy the source code from the same place counts as+distribution of the source code, even though third parties are not+compelled to copy the source along with the object code.++  4. You may not copy, modify, sublicense, or distribute the Program+except as expressly provided under this License.  Any attempt+otherwise to copy, modify, sublicense or distribute the Program is+void, and will automatically terminate your rights under this License.+However, parties who have received copies, or rights, from you under+this License will not have their licenses terminated so long as such+parties remain in full compliance.++  5. You are not required to accept this License, since you have not+signed it.  However, nothing else grants you permission to modify or+distribute the Program or its derivative works.  These actions are+prohibited by law if you do not accept this License.  Therefore, by+modifying or distributing the Program (or any work based on the+Program), you indicate your acceptance of this License to do so, and+all its terms and conditions for copying, distributing or modifying+the Program or works based on it.++  6. Each time you redistribute the Program (or any work based on the+Program), the recipient automatically receives a license from the+original licensor to copy, distribute or modify the Program subject to+these terms and conditions.  You may not impose any further+restrictions on the recipients' exercise of the rights granted herein.+You are not responsible for enforcing compliance by third parties to+this License.++  7. If, as a consequence of a court judgment or allegation of patent+infringement or for any other reason (not limited to patent issues),+conditions are imposed on you (whether by court order, agreement or+otherwise) that contradict the conditions of this License, they do not+excuse you from the conditions of this License.  If you cannot+distribute so as to satisfy simultaneously your obligations under this+License and any other pertinent obligations, then as a consequence you+may not distribute the Program at all.  For example, if a patent+license would not permit royalty-free redistribution of the Program by+all those who receive copies directly or indirectly through you, then+the only way you could satisfy both it and this License would be to+refrain entirely from distribution of the Program.++If any portion of this section is held invalid or unenforceable under+any particular circumstance, the balance of the section is intended to+apply and the section as a whole is intended to apply in other+circumstances.++It is not the purpose of this section to induce you to infringe any+patents or other property right claims or to contest validity of any+such claims; this section has the sole purpose of protecting the+integrity of the free software distribution system, which is+implemented by public license practices.  Many people have made+generous contributions to the wide range of software distributed+through that system in reliance on consistent application of that+system; it is up to the author/donor to decide if he or she is willing+to distribute software through any other system and a licensee cannot+impose that choice.++This section is intended to make thoroughly clear what is believed to+be a consequence of the rest of this License.++  8. If the distribution and/or use of the Program is restricted in+certain countries either by patents or by copyrighted interfaces, the+original copyright holder who places the Program under this License+may add an explicit geographical distribution limitation excluding+those countries, so that distribution is permitted only in or among+countries not thus excluded.  In such case, this License incorporates+the limitation as if written in the body of this License.++  9. The Free Software Foundation may publish revised and/or new versions+of the General Public License from time to time.  Such new versions will+be similar in spirit to the present version, but may differ in detail to+address new problems or concerns.++Each version is given a distinguishing version number.  If the Program+specifies a version number of this License which applies to it and "any+later version", you have the option of following the terms and conditions+either of that version or of any later version published by the Free+Software Foundation.  If the Program does not specify a version number of+this License, you may choose any version ever published by the Free Software+Foundation.++  10. If you wish to incorporate parts of the Program into other free+programs whose distribution conditions are different, write to the author+to ask for permission.  For software which is copyrighted by the Free+Software Foundation, write to the Free Software Foundation; we sometimes+make exceptions for this.  Our decision will be guided by the two goals+of preserving the free status of all derivatives of our free software and+of promoting the sharing and reuse of software generally.++			    NO WARRANTY++  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,+REPAIR OR CORRECTION.++  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE+POSSIBILITY OF SUCH DAMAGES.++		     END OF TERMS AND CONDITIONS++	    How to Apply These Terms to Your New Programs++  If you develop a new program, and you want it to be of the greatest+possible use to the public, the best way to achieve this is to make it+free software which everyone can redistribute and change under these terms.++  To do so, attach the following notices to the program.  It is safest+to attach them to the start of each source file to most effectively+convey the exclusion of warranty; and each file should have at least+the "copyright" line and a pointer to where the full notice is found.++    <one line to give the program's name and a brief idea of what it does.>+    Copyright (C) <year>  <name of author>++    This program is free software; you can redistribute it and/or modify+    it under the terms of the GNU General Public License as published by+    the Free Software Foundation; either version 2 of the License, or+    (at your option) any later version.++    This program is distributed in the hope that it will be useful,+    but WITHOUT ANY WARRANTY; without even the implied warranty of+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the+    GNU General Public License for more details.++    You should have received a copy of the GNU General Public License+    along with this program; if not, write to the Free Software+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA+++Also add information on how to contact you by electronic and paper mail.++If the program is interactive, make it output a short notice like this+when it starts in an interactive mode:++    Gnomovision version 69, Copyright (C) year name of author+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.+    This is free software, and you are welcome to redistribute it+    under certain conditions; type `show c' for details.++The hypothetical commands `show w' and `show c' should show the appropriate+parts of the General Public License.  Of course, the commands you use may+be called something other than `show w' and `show c'; they could even be+mouse-clicks or menu items--whatever suits your program.++You should also get your employer (if you work as a programmer) or your+school, if any, to sign a "copyright disclaimer" for the program, if+necessary.  Here is a sample; alter the names:++  Yoyodyne, Inc., hereby disclaims all copyright interest in the program+  `Gnomovision' (which makes passes at compilers) written by James Hacker.++  <signature of Ty Coon>, 1 April 1989+  Ty Coon, President of Vice++This General Public License does not permit incorporating your program into+proprietary programs.  If your program is a subroutine library, you may+consider it more useful to permit linking proprietary applications with the+library.  If this is what you want to do, use the GNU Library General+Public License instead of this License.
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple +main = defaultMain
+ fixhs.cabal view
@@ -0,0 +1,83 @@+name:                fixhs+version:             0.1+description:         Financial Information eXchange (FIX) protocol (co)parser+homepage:            http://github.com/urv/fixhs+synopsis:            FIX (co)parser+category:            Protocol, Text, Parsing+license:             GPL+license-file:        LICENSE+author:              Arvin Moezzi+maintainer:          Arvin Moezzi+build-type:          Simple+tested-with:         GHC == 7.0.3+cabal-version:       >=1.8+stability:           experimental++flag developer+  description: build in development mode+  default: False++flag with-fix40+  description: add fix40 to the module+  default: True++flag with-fix41+  description: add fix41 to the module+  default: True++flag with-fix42+  description: add fix42 to the module+  default: True++flag with-fix43+  description: add fix43 to the module. It takes a long time to compile!+  default: False++flag with-fix44+  description: add fix44 to the module. It takes a long time to compile!+  default: False++library +  hs-source-dirs:    src/+  build-depends:    +                     base >= 3 && < 5, +                     containers, MissingH, bytestring, attoparsec, +                     attoparsec-enumerator, enumerator, old-time, network, +                     HaXml, deepseq, QuickCheck, parallel, text, dlist+  other-modules:     +                     Data.FIX.ParserCombinators+  exposed-modules:   +                     Data.LookupTable +                     Data.Coparser +                     Data.FIX.Arbitrary +                     Data.FIX.Common +                     Data.FIX.Coparser +                     Data.FIX.Parser +                     Data.FIX.Message +  ghc-options:       -Wall +  if flag(developer)+    ghc-prof-options: -auto-all++  if flag(with-fix40) +   exposed-modules: Data.FIX.Spec.FIX40 +  if flag(with-fix41) +   exposed-modules: Data.FIX.Spec.FIX41 +  if flag(with-fix42) +   exposed-modules: Data.FIX.Spec.FIX42 +  if flag(with-fix43) +   exposed-modules: Data.FIX.Spec.FIX43 +  if flag(with-fix44) +   exposed-modules: Data.FIX.Spec.FIX44 ++Executable fix-generator+  hs-source-dirs:    src/+  Main-is:           Utils/Generator.hs+  Build-Depends:     +                     base >= 3 && < 5, +                     HaXml, MissingH, old-time, dlist, attoparsec, +                     containers, QuickCheck, deepseq, text, bytestring++source-repository head+  type:     git+  location: http://github.com/urv/fixhs+
+ src/Data/Coparser.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE BangPatterns, MultiParamTypeClasses, FunctionalDependencies, FlexibleInstances, TypeSynonymInstances #-}++-- Module   : Data.Coparser+-- License  : GPLv2++module Data.Coparser +    ( Coparser (..)+    , BuilderLike (..)+    , length+    , Data.Coparser.foldl'+    , Data.Coparser.foldl+    ) where++import Prelude hiding ( length ) +import qualified Prelude as P ( length, foldl )+import qualified Data.Foldable as P ( foldl' )+import qualified Data.List as L ( concat )+import Data.ByteString ( ByteString )+import qualified Data.ByteString as B ( concat, append, length, foldl, foldl'  )+import Data.Word ( Word8 )+import qualified Data.ByteString.Char8 as C +    ( cons, snoc, pack, unpack, singleton )+import Data.Text.Lazy.Builder ( Builder )+import qualified Data.Text.Lazy as Builder ( unpack )+import qualified Data.Text.Lazy.Builder as Builder +    ( fromString, singleton, toLazyText )+import Data.Monoid ( mappend, mconcat )+import Control.DeepSeq ( NFData (..) )+import qualified Data.DList as DL+import Data.Bits.Utils ( w82c )++class Enum c => BuilderLike a c | a -> c where+    pack :: String -> a+    unpack :: a -> String+    singleton :: Char -> a+    append :: a -> a -> a+    concat :: [a] -> a+    cons :: Char -> a -> a+    snoc :: a -> Char -> a+    decimal :: Integral i => i -> a+    realFloat :: RealFloat r => r -> a++    decimal = pack . show+    realFloat = pack . show+    cons c t = singleton c `append` t+    snoc t c = t `append` singleton c++    length :: a -> Int+    length = P.length . unpack++    foldl' :: (b -> Char -> b) -> b -> a -> b+    foldl' f x0 = P.foldl' f x0 . unpack++    foldl :: (b -> Char -> b) -> b -> a -> b+    foldl f x0 = P.foldl f x0 . unpack++instance BuilderLike String Char where+    pack = id+    unpack = id+    singleton c = [c]+    append = (++)+    cons = (:)+    concat = L.concat+    length = P.length+    foldl' = P.foldl'+    foldl = P.foldl++instance BuilderLike ByteString Word8 where+    pack = C.pack+    unpack = C.unpack+    singleton = C.singleton+    append = B.append+    cons = C.cons+    snoc = C.snoc+    concat = B.concat+    length = B.length+    foldl' f = let f' !x !w = {-# SCC "Urvli" #-} w82c w `seq` x `seq` f x (w82c w) in B.foldl' f'+    foldl f = let  f' x =  f x . w82c in B.foldl f'++instance BuilderLike (DL.DList Char) Char where+    pack = DL.fromList+    unpack = DL.toList+    singleton = DL.singleton+    append = DL.append+    cons = DL.cons+    snoc = DL.snoc+    concat = DL.concat+    +instance BuilderLike Builder Char where+    pack = Builder.fromString+    unpack = Builder.unpack . Builder.toLazyText+    singleton = Builder.singleton+    append = mappend+    concat = mconcat++instance NFData Builder where+    rnf = rnf . Builder.unpack . Builder.toLazyText++instance NFData (DL.DList Char) where+    rnf = rnf . unpack++class Coparser a where+    coparse :: BuilderLike t c => a -> t
+ src/Data/FIX/Arbitrary.hs view
@@ -0,0 +1,108 @@+module Data.FIX.Arbitrary +	( arbibtraryFIXValues+	, arbibtraryFIXGroup+	, arbitraryFIXMessage ) +	where++import Data.FIX.Message ( +	FIXGroupElement(..), FIXTag(..), FIXValue(..), FIXValues, FIXTags+      , FIXMessage(..), FIXSpec, FIXMessageSpec(..), FIXGroupSpec(..) )+import System.Time ( CalendarTime (..) )+import Data.ByteString ( ByteString )+import qualified Data.ByteString.Char8 as C ( pack )+import qualified Data.Char as C ( isAscii, isAlphaNum )+import qualified Data.LookupTable as LT ( insert, toList, fromList, new )+import Data.Functor ( (<$>) )+import Control.Monad ( replicateM, liftM )+import Test.QuickCheck ( Gen, arbitrary, Arbitrary )++arbibtraryFIXValues :: FIXTags -> Gen FIXValues+arbibtraryFIXValues tags = +    let tlist :: [FIXTag]+        tlist = map snd $ LT.toList tags+        arb :: FIXTag -> Gen (Int, FIXValue)+        arb tag = fmap ((,) (tnum tag)) $ arbitraryValue tag +    in+        liftM LT.fromList $ mapM arb tlist++arbibtraryFIXGroup :: FIXGroupSpec -> Gen FIXValue+arbibtraryFIXGroup spec = +    let ltag = gsLength spec in  +        do t <- arbitraryValue ltag+	   case t of+		FIXInt l' -> let l = l' `mod` 4 in +		   do bodies <- replicateM l arbitraryGBody+		      return $ FIXGroup l bodies+		_         -> error $ "do not know " ++ show (tnum ltag)+    where+        arbitraryGBody = +           let stag = gsSeperator spec+               btags = gsBody spec +           in do+               s  <- arbitraryValue stag +	       vs <- arbibtraryFIXValues btags+	       return (FIXGroupElement (tnum stag) s vs)++arbitraryFIXMessage :: FIXSpec -> FIXMessageSpec -> Gen (FIXMessage FIXSpec)+arbitraryFIXMessage context spec = do+        header <- arbibtraryFIXValues $ msHeader spec+        body <- arbibtraryFIXValues $ msBody spec+        trailer <- arbibtraryFIXValues $ msTrailer spec+        return FIXMessage +            { mContext = context+            , mType = msType spec+            , mHeader = header+            , mBody = body+            , mTrailer = trailer }++-- An arbitrary instance of ByteString. +--- we generate a random string out of digits and numbers+--- generated string has length at least 1 and most <max>+instance Arbitrary ByteString where+        arbitrary = do+            l' <- arbitrary :: Gen Int+            let l = 1 + l' `mod` maxLen+            C.pack <$> replicateM l (aChar isAlpha')+            where+                aChar :: (Char -> Bool) -- predicate+                        -> Gen Char     -- random generator+                aChar p = do  +                    c <- arbitrary +                    if p c then return c else aChar p++                isAlpha' c = C.isAlphaNum c && C.isAscii c+                maxLen = 15++instance Arbitrary CalendarTime where+        arbitrary = do +            year <- aYear+            month <- aMonth+            day <- aDay+            hour <- aHour+            minute <- aMin+            sec <- aSec+            psec <- aPsec+            return CalendarTime +             { ctYear  = year+             , ctMonth = toEnum month+             , ctDay   = day+             , ctHour  = hour+             , ctMin   = minute+             , ctSec   = sec+             , ctPicosec = psec+             , ctWDay  = toEnum 0+             , ctYDay  = toEnum 0+             , ctTZName = "UTC"+             , ctTZ    = 0+             , ctIsDST = True }+             where+                aYear  = (`mod` 10000) <$> arbitrary +                aMonth =    (`mod` 12) <$> arbitrary+                aHour  =    (`mod` 24) <$> arbitrary+                aDay   =    (`mod` 28) <$> arbitrary+                aMin   =    (`mod` 60) <$> arbitrary+                aSec   =    (`mod` 60) <$> arbitrary+                aPsec  = (`mod` 1000000000000) <$> arbitrary+++
+ src/Data/FIX/Common.hs view
@@ -0,0 +1,9 @@+module Data.FIX.Common+    ( delimiter)+    where++import Data.ByteString ( ByteString )+import Data.ByteString.Char8 as C ( pack )+ +delimiter :: Char+delimiter = '\SOH'
+ src/Data/FIX/Coparser.hs view
@@ -0,0 +1,133 @@+{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}++-- Module   : Data.FIX.Coparser+-- License  : GPLv2++module Data.FIX.Coparser ( coparse) where++import Prelude as P hiding (concat)+import Data.FIX.Message +    ( FIXGroupElement(..), FIXSpec (..), FIXMessage (..)+    , tnum, FIXValues, FIXValue (..) )+import Data.FIX.Parser ( tBeginString, tBodyLength, tCheckSum, tMsgType )+import qualified Data.FIX.Message as FIX ( checksum, delimiter )+import Data.Coparser ( Coparser (..), BuilderLike, +    pack, concat, append, cons, snoc, singleton, decimal, realFloat )+import qualified Data.Coparser as Text ( length )+import Data.ByteString ( ByteString )+import Data.ByteString.Char8 as C ( unpack )+import qualified Data.LookupTable as LT+import System.Time ( CalendarTime (..) )++-- implementation is not efficient +-- this is just meant for testing +-- and needs a lot of cleanup+--+-- ideas and issues:+-- a) maybe use some kind of Monoid, resp. Writer, Builder to put together+--    the ByteString. Maybe blazer-builder or Data.Text.Lazy.Builder Monoid+-- b) lazy vs. strict ByteString?+-- c) as for parsing we use a Monad, can we use the dual, a Comonad, here?+-- d) implement Binary for FIXMessage, then call encode to get the ByteString+--    -> seems to be slow (see comments in blaze-builder). also we just need+--       one direction, i.e. put - get would be the FIXParser+++instance Coparser FIXValues where+    coparse = pack . _serialize . LT.toList  +        where+            _serialize = concatMap _serValue++            _serValue (k, FIXGroup i ls) = +                let sub = concat $ map coparse ls+                    delim = FIX.delimiter         +                in+                    decimal k `append` ('=' `cons` decimal i `append` (delim `cons` sub))++            _serValue (k, v) = +                let delim = FIX.delimiter in+                    decimal k `append` ('=' `cons` coparse v `append` singleton delim)++++-- externalize the FIXMessage+instance Coparser (FIXMessage FIXSpec) where+    coparse m = msg' `append` chksum' +        where +            msg' = header `append` (len' `append` (FIX.delimiter `cons` body'))++            chksum' = ctag `append` ('=' `cons` (paddedChecksum msg' `snoc` FIX.delimiter))+            len' = ltag `append` ('=' `cons` decimal (Text.length body'))+            mtype' = mtag `append` ('=' `cons` pack (C.unpack $ mType m))+            body' = mtype' +                `append` (FIX.delimiter `cons` coparse (mHeader m))+                `append` coparse (mBody m) +                `append` coparse (mTrailer m)+            +            btag = decimal $ tnum tBeginString+            ctag = decimal $ tnum tCheckSum+            ltag = decimal $ tnum tBodyLength +            mtag = decimal $ tnum tMsgType++            version = fsVersion $ mContext m+            header = btag `append` ('=' `cons` pack version `snoc` FIX.delimiter)+            paddedChecksum m' = FIX.checksum m' `pad` 3 +++fromFIXMonthYear :: (BuilderLike t a) => CalendarTime -> t+fromFIXMonthYear c = +    let year = ctYear c; month = 1 + fromEnum (ctMonth c) in+        (year `pad` 4) `append` (month `pad` 2)++fromFIXDateOnly :: (BuilderLike t a) => CalendarTime -> t+fromFIXDateOnly c = let day = ctDay c in+    fromFIXMonthYear c `append` (day `pad` 2)++fromFIXTimeOnly :: (BuilderLike t a) => CalendarTime -> t+fromFIXTimeOnly c = let m = ctMin c; s = ctSec c; h = ctHour c in+        (h `pad` 2) `append` (':' `cons` (m `pad` 2) +        `append` (':' `cons` (s `pad` 2 )))++fromFIXTimetamp :: (BuilderLike t a) => CalendarTime -> t+fromFIXTimetamp c = fromFIXDateOnly c `append` +    ('-' `cons` fromFIXTimeOnly c)++instance Coparser FIXGroupElement where+    coparse (FIXGroupElement t s vs) = +   	 let delim = FIX.delimiter in+	     decimal t `append` ('=' `cons` coparse s)+	     `append` (delim `cons` coparse vs) ++instance Coparser FIXValue where+    coparse (FIXInt a) = decimal a+    coparse (FIXDouble a) = realFloat a+    coparse (FIXChar a) = singleton a+    coparse (FIXBool a) +        | a = singleton 'Y'+        | otherwise = singleton 'N'+    coparse (FIXString a) = pack $ C.unpack a+    coparse (FIXMultipleValueString a) = pack $ C.unpack a+    coparse (FIXTimestamp a) = fromFIXTimetamp a+    coparse (FIXTimeOnly a) = fromFIXTimeOnly a+    coparse (FIXDateOnly a) = fromFIXDateOnly a+    coparse (FIXMonthYear a) = fromFIXMonthYear a+    coparse (FIXData a) = pack $ C.unpack a+    coparse (FIXGroup n ls) = +    	decimal n `snoc` FIX.delimiter +	`append` concat (map coparse ls)+++{-instance Coparser (FIXMessage a) where-}+    {-coparse m = coparse (mHeader m) -}+        {-`append` ('\n' `cons` coparse (mBody m) -}+        {-`append` ('\n' `cons` coparse (mTrailer m)))-}++pad :: (BuilderLike a c) => Int -> Int -> a+pad i w | d <= 0 = decimal i+        | d == 1 = '0' `cons` decimal i+        | otherwise = let prefix = P.replicate d '0' in +            pack prefix `append` decimal i+    where+        d = w - len' i++        len' i' = if i' < 10 then 1 else 1 + len' (i' `div` 10)
+ src/Data/FIX/Message.hs view
@@ -0,0 +1,142 @@+-- Module   : Data.FIX.Message+-- License  : GPLv2++{-# LANGUAGE MagicHash, GeneralizedNewtypeDeriving #-}+{-# OPTIONS_GHC -fno-warn-missing-signatures #-}++-- | FIX messages+module Data.FIX.Message +    ( FIXValue (..)+    , FIXValues+    , FIXTag (..)+    , FIXTags+    , FIXMessages+    , FIXMessage (..)+    , FIXMessageSpec (..)+    , FIXGroupSpec (..)+    , FIXGroupElement (..)+    , FIXSpec (..)+    , checksum+    , delimiter+    ) where++import System.Time ( CalendarTime (..) )+import Prelude hiding ( null )+import Data.ByteString ( ByteString )+import qualified Data.ByteString as B ( null, foldl' )+import Data.IntMap ( IntMap, elems )+import Data.Map ( Map )+import Data.Attoparsec ( Parser ) +import Data.LookupTable ( LookupTable )+import qualified Data.LookupTable as LT ( toList )+import Control.DeepSeq ( NFData (..) )+import Test.QuickCheck ( Gen )+import Data.FIX.Common ( delimiter )+import Data.Coparser ( BuilderLike (..), foldl' )++-- | A valid FIX field description. It is used to specify FIX messages using+-- 'FIXMessageSpec'.+data FIXTag = FIXTag +    { tName :: String +    -- ^ The name of the tag e.g. BeginString.+    , tnum :: Int +    -- ^ The numerical value of the tag e.g. 8.+    , tparser :: Parser FIXValue +    -- ^ The corresponding attoparsec parser.+    , arbitraryValue :: Gen FIXValue +    -- ^ A random generator for that particular types of fields.+    } +++-- | +data FIXGroupElement = FIXGroupElement Int FIXValue FIXValues++data FIXValue = FIXInt Int +              | FIXDouble Double+              | FIXChar Char +              | FIXBool Bool +              | FIXString ByteString +              | FIXData ByteString +              | FIXMultipleValueString ByteString +              | FIXTimestamp CalendarTime+              | FIXTimeOnly CalendarTime+              | FIXDateOnly CalendarTime+              | FIXMonthYear CalendarTime+              | FIXGroup Int [FIXGroupElement]++--- should be alias of type in the typeclass LookupTable+newtype ListOfValues a = LoV (IntMap a) +    deriving (LookupTable Int a, NFData)++instance Show a => Show (ListOfValues a) where+    show a = concatMap printKV $ LT.toList a+        where+            printKV (k, v) = show k ++ " = " ++ show v ++ "\n"++type FIXValues = ListOfValues FIXValue +data FIXMessage a = FIXMessage+                  { mContext :: a+                  , mType    :: ByteString+                  , mHeader  :: FIXValues+                  , mBody    :: FIXValues+                  , mTrailer :: FIXValues }+++newtype ListOfTags a = LoT (IntMap a)+    deriving (LookupTable Int a)++type FIXTags = ListOfTags FIXTag+data FIXMessageSpec = FMSpec +                      { msName    :: String+                      , msType    :: ByteString+                      , msHeader  :: FIXTags+                      , msBody    :: FIXTags +                      , msTrailer :: FIXTags }++newtype ListOfMessages a = LM (Map ByteString a)+    deriving (LookupTable ByteString a)++type FIXMessages = ListOfMessages FIXMessageSpec+data FIXSpec = FSpec +               { fsVersion  :: String       -- ^ FIX version+               , fsHeader   :: FIXTags      -- ^ FIX header tags +               , fsTrailer  :: FIXTags      -- ^ FIX trailer tags+               , fsMessages :: FIXMessages  -- ^ Dictionary of all FIX messages+               , fsTags     :: FIXTags      -- ^ Dictionary of all FIX tags+               }    ++data FIXGroupSpec = FGSpec+                    { gsLength    :: FIXTag+                    , gsSeperator :: FIXTag +                    , gsBody      :: FIXTags }+++-- FIX checksum is simply the sum of bytes modulo 256+checksum :: (BuilderLike t c, Enum c)  => t -> Int+checksum b = foldl' _sumUp 0 b `mod` 256+                where +                    _sumUp :: (Enum c) => Int -> c -> Int+                    _sumUp t c = t + fromEnum c++instance Control.DeepSeq.NFData ByteString +instance Control.DeepSeq.NFData CalendarTime+instance Control.DeepSeq.NFData FIXGroupElement where+    rnf (FIXGroupElement _ s vs) = rnf s `seq` rnf vs ++instance Control.DeepSeq.NFData FIXValue where+    rnf (FIXInt x) = rnf x+    rnf (FIXDouble x) = rnf x+    rnf (FIXChar x) = rnf x+    rnf (FIXBool x) = rnf x+    rnf (FIXString x) = rnf x+    rnf (FIXMultipleValueString x) = rnf x+    rnf (FIXTimestamp x) = rnf x+    rnf (FIXTimeOnly x) = rnf x+    rnf (FIXDateOnly x) = rnf x+    rnf (FIXMonthYear x) = rnf x+    rnf (FIXData x) = rnf x +    rnf (FIXGroup l es) = rnf l `seq` rnf es++instance Control.DeepSeq.NFData (FIXMessage a) where+    rnf (FIXMessage _ _ h b t) = rnf h `seq` rnf b `seq` rnf t+
+ src/Data/FIX/Parser.hs view
@@ -0,0 +1,213 @@+{-# OPTIONS_GHC  -fno-warn-missing-signatures #-}++-- Module   : Data.FIX.Parser+-- License  : GPLv2+++module Data.FIX.Parser +    ( +-- * Introduction+-- | In order to get a Parser 'FIXMessage' 'FIXSpec' you can +--+-- @+--import qualified Data.FIX.Parser as FIX ( nextP, messageP )+--+--FIX.nextP >>= FIX.messageP+-- @+      messageP+    , groupP+    , nextP+    , nextP'+    , toFIXInt+    , toFIXChar+    , toFIXString+    , toFIXDouble+    , toFIXBool+    , toFIXMultipleValueString+    , toFIXTimestamp+    , toFIXTimeOnly+    , toFIXData+    , toFIXDateOnly+    , toFIXMonthYear+    , tBeginString+    , tCheckSum+    , tBodyLength+    , tMsgType+    ) where++import Prelude hiding ( take, null, head, tail )+import Data.FIX.Message +    ( FIXGroupElement(..), FIXTags, FIXSpec (..), FIXMessage (..)+    , FIXTag (..), FIXValue (..), FIXMessageSpec (..)+    , FIXValues, FIXGroupSpec (..) )+import qualified Data.FIX.Message as FIX ( checksum )+import qualified Data.FIX.Common as FIX ( delimiter )+import Data.FIX.ParserCombinators ( toTag, toString, toInt, toInt', toBool, toChar, toTimestamp, toDateOnly, toMonthYear, toTimeOnly, toDouble )+import Data.Attoparsec ( parseOnly, option, Result(..), Parser, count, many, string, take )+import Data.Char ( ord )+import Data.ByteString ( ByteString )+import Data.FIX.Arbitrary ()+import qualified Data.ByteString.Char8 as C ( length, pack ) +import Data.Maybe ( fromMaybe )+import qualified Data.LookupTable as LT ( new, toList, lookup, fromList, insert )+import Control.Applicative ( (<$>) )+import Control.Monad ( liftM )+import Test.QuickCheck ( arbitrary )++-- parse a specific tag and its value+tagP :: FIXTag -> Parser FIXValue+tagP tag = do l <- toTag -- read out tag in message+              if l == tnum tag then -- if the two tags coincide read the value+                tparser tag else fail "wrong tag"++-- parse all the specificed tags and their corresponding values+tagsP :: FIXTags -> Parser FIXValues+tagsP ts = option LT.new (insertValue LT.new)+	where+           insertValue :: FIXValues -> Parser FIXValues+	   insertValue t = do +	   	l <- nextTag+		val <- tparser l+		let t' = LT.insert (tnum l) val t +		option t' (insertValue t') +	   +	   nextTag :: Parser FIXTag+	   nextTag = do +	   	tag' <- toTag +		let mtag' = liftM return $ LT.lookup tag' ts +		fromMaybe (fail "") mtag'++	   {-errorMsg l = error $ "unknown tag " ++ show l ++-}+		   {-"\nknown tags are " ++ show (LT.toList ts)-}++-- parse a value of type FIX group+groupP :: FIXGroupSpec -> Parser FIXValue+groupP spec = let numTag = gsLength spec in +		 do n <- toInt           -- number of submessages+                    b <- count n submsg  -- parse the submessages+                    return $ FIXGroup n b+              where+                  submsg :: Parser FIXGroupElement+                  submsg = +                    let sepTag = gsSeperator spec+                    in do s  <- tagP sepTag -- The seperator of the message+		    	  vs <- tagsP (gsBody spec) -- The rest of the message+			  return (FIXGroupElement (tnum sepTag) s vs)++-- | Match the next FIX message (only text) in the stream. The checksum is+-- validated.+nextP :: Parser ByteString+nextP = do +    (hchksum, len) <- _header'+    msg <- take len +    let chksum = (hchksum + FIX.checksum msg) `mod` 256  +    c <- _calcChksum'+    if chksum == c then return msg +        else fail $ "checksum is not valid: is " ++ +                    show chksum  ++ " should be " ++ show c+    where+        -- Parse header and return checksum and length.+        -- A header always starts with the version tag (8)  +        -- followed by the length tag (9). Note: these 2 tags+        -- are included in the checksum+        _header' :: Parser (Int, Int)+        _header' = do +            c1 <- (FIX.checksum <$> string (C.pack "8="))+            c2 <- (FIX.checksum <$> toString)+            c3 <- (FIX.checksum <$> string (C.pack "9="))+            l <- toString+            let c4 = FIX.checksum l+                c = (c1 + c2 + c3 + c4 + 2 * ord FIX.delimiter) `mod` 256+            return (c, toInt' l)++        _calcChksum' :: Parser Int+        _calcChksum' = string (C.pack "10=") >> toInt++-- | Match the next FIX message (only text) in the stream. The checksum is NOT+-- validated.+nextP' :: Parser ByteString+nextP' = do +          msg <- take =<< _numBytes+          _ <- toTag >> toInt+          return msg +    where+        _numBytes = +            let +                skipHeader = +                    string (C.pack "8=") >> toString >> +                    string (C.pack "9=") +            in +                skipHeader >> toInt++-- | Given the FIX specification deserialize the FIX message.+messageP :: FIXSpec -> ByteString -> Parser (FIXMessage FIXSpec)+messageP spec msg = +    let headerP'  = tagsP $ fsHeader spec  -- parse header+        trailerP' = tagsP $ fsTrailer spec -- parse trailer+        bodyP' mtype =                     -- parse body+            let allSpecs = fsMessages spec+                msgSpec = fromMaybe (error "no message") $+                                LT.lookup mtype allSpecs+                msgBodyTags = msBody msgSpec+            in +                tagsP msgBodyTags++        fixP' = do+                FIXString mt <- tagP tMsgType+                h <- headerP'+                b <- bodyP' mt+                t <- trailerP' +                return FIXMessage +                    { mContext = spec+                    , mType = mt+                    , mHeader = h+                    , mBody = b+                    , mTrailer = t }+    in +        case parseOnly fixP' msg of+             Left err  -> fail err +	     Right msg -> return msg+++-- FIX value parsers +toFIXInt = FIXInt <$> toInt+toFIXDouble = FIXDouble <$> toDouble+toFIXBool = FIXBool <$> toBool+toFIXString = FIXString <$> toString+toFIXMultipleValueString = FIXMultipleValueString <$> toString+toFIXData = FIXData <$> toString+toFIXTimestamp = FIXTimestamp <$> toTimestamp+toFIXTimeOnly = FIXTimeOnly <$> toTimeOnly+toFIXChar = FIXChar <$> toChar+toFIXDateOnly = FIXDateOnly <$> toDateOnly+toFIXMonthYear = FIXMonthYear <$> toMonthYear+++tBeginString :: FIXTag+tBeginString = FIXTag+    { tName = "BeginString"+    , tnum = 8+    , tparser = toFIXString+    , arbitraryValue = FIXString <$> arbitrary }+++tBodyLength :: FIXTag+tBodyLength = FIXTag+    { tName = "BodyLength"+    , tnum = 9+    , tparser = toFIXInt +    , arbitraryValue = FIXInt <$> arbitrary }++tMsgType :: FIXTag+tMsgType = FIXTag+    { tName = "MsgType"+    , tnum = 35+    , tparser = toFIXString +    , arbitraryValue = FIXString <$> arbitrary }++tCheckSum :: FIXTag+tCheckSum = FIXTag+    { tName = "CheckSum"+    , tnum = 10+    , tparser = toFIXInt +    , arbitraryValue = FIXInt <$> arbitrary }
+ src/Data/FIX/ParserCombinators.hs view
@@ -0,0 +1,206 @@+-- Module   : Data.FIX.ParserCombinators +-- License  : GPLv2++{-# LANGUAGE BangPatterns #-}++module Data.FIX.ParserCombinators +    ( toTag+    , toString+    , toInt'+    , toInt+    , toDouble+    , toBool+    , toTimestamp+    , toTimeOnly+    , toChar+    , toDateOnly+    , toTime+    , toMonthYear++    , skipToken++    -- exporting Attoparsec+    , Data.Attoparsec.Parser+    , Data.Attoparsec.Zepto.parse+	) where++import Prelude hiding ( null, tail, head )+import Data.Attoparsec ( Parser )+import qualified Data.Attoparsec.Zepto ( parse )+import Data.Attoparsec.Char8 +    ( skipWhile, signed, char, char8, anyChar, takeWhile1, decimal, double )+import Data.Char ( ord )+import Data.ByteString hiding ( pack, putStrLn )+import Control.Applicative ( (<$>), (<|>), (*>) )+import System.Time ( CalendarTime (..) )+import qualified Data.FIX.Common as FIX ( delimiter )+++skipFIXDelimiter :: Parser ()+skipFIXDelimiter = char8 FIX.delimiter >> return ()+++toDouble :: Parser Double+toDouble =  signed $ do +    a <- decimal :: Parser Integer+    (!m, !e) <- (char '.' *> (extract_decimals <$> toString)) <|> (skipFIXDelimiter >> return (0, 1))+    return $ fromIntegral a + fromIntegral m / fromIntegral e+    where+        extract_decimals :: ByteString -> (Int, Int)+	extract_decimals = foldl' helper (0, 1)+		where+			helper !(!m, !e) c = (m * 10 + fromIntegral c - ord '0', 10 * e)++parseIntTill :: Char -> Parser Int+parseIntTill c = do+    i <- signed decimal+    _ <- char8 c+    return i++toInt' :: ByteString -> Int+toInt' b = helper 0 b+           where +                helper i j +                    | null j    = i+                    | otherwise =   +                        helper (10 * i + fromIntegral (head j) - ord '0') (tail j)+                    +toInt :: Parser Int+toInt = parseIntTill FIX.delimiter+++toChar :: Parser Char+toChar = do+    c <- anyChar+    skipFIXDelimiter+    return c++toString :: Parser ByteString+toString = do +    str <- takeWhile1 (/= FIX.delimiter)+    skipFIXDelimiter+    return str+++toTag :: Parser Int+toTag = parseIntTill '='+    +toBool :: Parser Bool+toBool = do+    c <- (char 'Y' <|> char 'N')+    skipFIXDelimiter+    case c of+        'Y' -> return True+        'N' -> return False+        _ -> error "wrong boolean FIX value"++toSecMillis :: Parser (Int, Int)+toSecMillis = do+   (sec, mil) <- read_sec_millis <|> (toInt >>= (\s -> return (s, 0))) +   return (sec, mil)+   where+        read_sec_millis :: Parser (Int, Int)+        read_sec_millis = do+            sec' <- parseIntTill '.'+            mil' <- toInt+            return (sec', mil')++-- one milli seconds is 10^9 picoseconds +picosPerMilli :: Int+picosPerMilli = 1000000000++toTimestamp :: Parser CalendarTime+toTimestamp = do+   i <- parseIntTill '-'+   let year  = i `div` 10000+   let rest  = i `mod` 10000+   let month = rest `div` 100+   let day   = rest `mod` 100+   hours   <- parseIntTill ':'+   minutes <- parseIntTill ':'+   (sec, milli) <- toSecMillis+   return CalendarTime {+       ctYear  = year+     , ctMonth = toEnum $ month - 1+     , ctDay   = day+     , ctHour  = hours+     , ctMin   = minutes+     , ctSec   = sec+     , ctPicosec = toInteger $ milli * picosPerMilli+     , ctWDay  = toEnum 0+     , ctYDay  = 0+     , ctTZName = "UTC"+     , ctTZ    = 0+     , ctIsDST = True+   }++toTimeOnly :: Parser CalendarTime+toTimeOnly = do+   hours   <- parseIntTill ':'+   minutes <- parseIntTill ':'+   (sec, milli) <- toSecMillis+   return CalendarTime {+       ctYear  = 0+     , ctMonth = toEnum 0+     , ctDay   = 0+     , ctHour  = hours+     , ctMin   = minutes+     , ctSec   = sec+     , ctPicosec = toInteger $ milli * picosPerMilli+     , ctWDay  = toEnum 0+     , ctYDay  = 0+     , ctTZName = "UTC"+     , ctTZ    = 0+     , ctIsDST = True+   }++toDateOnly :: Parser CalendarTime+toDateOnly = do+   i <- toInt+   let year  = i `div` 10000+   let rest  = i `mod` 10000+   let month = rest `div` 100+   let day   = rest `mod` 100+   return CalendarTime {+       ctYear  = year+     , ctMonth = toEnum $ month - 1+     , ctDay   = day+     , ctHour  = 0+     , ctMin   = 0 +     , ctSec   = 0+     , ctPicosec = 0+     , ctWDay  = toEnum 0+     , ctYDay  = 0+     , ctTZName = "UTC"+     , ctTZ    = 0+     , ctIsDST = True+   }+++toMonthYear :: Parser CalendarTime+toMonthYear = do+   i <- toInt+   let year  = i `div` 100+   let month = i `mod` 100+   return CalendarTime {+       ctYear  = year+     , ctMonth = toEnum $ month - 1+     , ctDay   = 0+     , ctHour  = 0+     , ctMin   = 0 +     , ctSec   = 0+     , ctPicosec = 0+     , ctWDay  = toEnum 0+     , ctYDay  = 0+     , ctTZName = "UTC"+     , ctTZ    = 0+     , ctIsDST = True+   }++toTime :: Parser CalendarTime+toTime = toTimestamp +          <|> toTimeOnly +          <|> toDateOnly++skipToken :: Parser ()+skipToken = skipWhile (FIX.delimiter /=)
+ src/Data/FIX/Spec/FIX40.hs view
@@ -0,0 +1,1893 @@+module Data.FIX.Spec.FIX40 ( fix40 ) where+import qualified Data.ByteString.Char8 as C+import qualified Data.LookupTable as LT ( new, insert )+import Data.FIX.Message+import Data.FIX.Parser+import Data.Functor ( (<$>) )+import Data.FIX.Arbitrary +import Test.QuickCheck ( arbitrary )+++tAccount :: FIXTag+tAccount = FIXTag +   { tName = "Account"+   , tnum = 1+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAdvId :: FIXTag+tAdvId = FIXTag +   { tName = "AdvId"+   , tnum = 2+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAdvRefID :: FIXTag+tAdvRefID = FIXTag +   { tName = "AdvRefID"+   , tnum = 3+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAdvSide :: FIXTag+tAdvSide = FIXTag +   { tName = "AdvSide"+   , tnum = 4+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAdvTransType :: FIXTag+tAdvTransType = FIXTag +   { tName = "AdvTransType"+   , tnum = 5+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAvgPx :: FIXTag+tAvgPx = FIXTag +   { tName = "AvgPx"+   , tnum = 6+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBeginSeqNo :: FIXTag+tBeginSeqNo = FIXTag +   { tName = "BeginSeqNo"+   , tnum = 7+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tClOrdID :: FIXTag+tClOrdID = FIXTag +   { tName = "ClOrdID"+   , tnum = 11+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCommission :: FIXTag+tCommission = FIXTag +   { tName = "Commission"+   , tnum = 12+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCommType :: FIXTag+tCommType = FIXTag +   { tName = "CommType"+   , tnum = 13+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCumQty :: FIXTag+tCumQty = FIXTag +   { tName = "CumQty"+   , tnum = 14+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCurrency :: FIXTag+tCurrency = FIXTag +   { tName = "Currency"+   , tnum = 15+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tEndSeqNo :: FIXTag+tEndSeqNo = FIXTag +   { tName = "EndSeqNo"+   , tnum = 16+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tExecID :: FIXTag+tExecID = FIXTag +   { tName = "ExecID"+   , tnum = 17+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tExecInst :: FIXTag+tExecInst = FIXTag +   { tName = "ExecInst"+   , tnum = 18+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tExecRefID :: FIXTag+tExecRefID = FIXTag +   { tName = "ExecRefID"+   , tnum = 19+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tExecTransType :: FIXTag+tExecTransType = FIXTag +   { tName = "ExecTransType"+   , tnum = 20+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tHandlInst :: FIXTag+tHandlInst = FIXTag +   { tName = "HandlInst"+   , tnum = 21+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tIDSource :: FIXTag+tIDSource = FIXTag +   { tName = "IDSource"+   , tnum = 22+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tIOIid :: FIXTag+tIOIid = FIXTag +   { tName = "IOIid"+   , tnum = 23+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tIOIOthSvc :: FIXTag+tIOIOthSvc = FIXTag +   { tName = "IOIOthSvc"+   , tnum = 24+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tIOIQltyInd :: FIXTag+tIOIQltyInd = FIXTag +   { tName = "IOIQltyInd"+   , tnum = 25+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tIOIRefID :: FIXTag+tIOIRefID = FIXTag +   { tName = "IOIRefID"+   , tnum = 26+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tIOIShares :: FIXTag+tIOIShares = FIXTag +   { tName = "IOIShares"+   , tnum = 27+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tIOITransType :: FIXTag+tIOITransType = FIXTag +   { tName = "IOITransType"+   , tnum = 28+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLastCapacity :: FIXTag+tLastCapacity = FIXTag +   { tName = "LastCapacity"+   , tnum = 29+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLastMkt :: FIXTag+tLastMkt = FIXTag +   { tName = "LastMkt"+   , tnum = 30+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLastPx :: FIXTag+tLastPx = FIXTag +   { tName = "LastPx"+   , tnum = 31+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLastShares :: FIXTag+tLastShares = FIXTag +   { tName = "LastShares"+   , tnum = 32+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLinesOfText :: FIXTag+tLinesOfText = FIXTag +   { tName = "LinesOfText"+   , tnum = 33+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMsgSeqNum :: FIXTag+tMsgSeqNum = FIXTag +   { tName = "MsgSeqNum"+   , tnum = 34+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNewSeqNo :: FIXTag+tNewSeqNo = FIXTag +   { tName = "NewSeqNo"+   , tnum = 36+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOrderID :: FIXTag+tOrderID = FIXTag +   { tName = "OrderID"+   , tnum = 37+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOrderQty :: FIXTag+tOrderQty = FIXTag +   { tName = "OrderQty"+   , tnum = 38+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOrdStatus :: FIXTag+tOrdStatus = FIXTag +   { tName = "OrdStatus"+   , tnum = 39+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOrdType :: FIXTag+tOrdType = FIXTag +   { tName = "OrdType"+   , tnum = 40+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOrigClOrdID :: FIXTag+tOrigClOrdID = FIXTag +   { tName = "OrigClOrdID"+   , tnum = 41+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOrigTime :: FIXTag+tOrigTime = FIXTag +   { tName = "OrigTime"+   , tnum = 42+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tPossDupFlag :: FIXTag+tPossDupFlag = FIXTag +   { tName = "PossDupFlag"+   , tnum = 43+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tPrice :: FIXTag+tPrice = FIXTag +   { tName = "Price"+   , tnum = 44+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tRefSeqNum :: FIXTag+tRefSeqNum = FIXTag +   { tName = "RefSeqNum"+   , tnum = 45+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRelatdSym :: FIXTag+tRelatdSym = FIXTag +   { tName = "RelatdSym"+   , tnum = 46+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tRule80A :: FIXTag+tRule80A = FIXTag +   { tName = "Rule80A"+   , tnum = 47+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSecurityID :: FIXTag+tSecurityID = FIXTag +   { tName = "SecurityID"+   , tnum = 48+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSenderCompID :: FIXTag+tSenderCompID = FIXTag +   { tName = "SenderCompID"+   , tnum = 49+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSenderSubID :: FIXTag+tSenderSubID = FIXTag +   { tName = "SenderSubID"+   , tnum = 50+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSendingDate :: FIXTag+tSendingDate = FIXTag +   { tName = "SendingDate"+   , tnum = 51+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tSendingTime :: FIXTag+tSendingTime = FIXTag +   { tName = "SendingTime"+   , tnum = 52+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tShares :: FIXTag+tShares = FIXTag +   { tName = "Shares"+   , tnum = 53+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSide :: FIXTag+tSide = FIXTag +   { tName = "Side"+   , tnum = 54+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSymbol :: FIXTag+tSymbol = FIXTag +   { tName = "Symbol"+   , tnum = 55+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tTargetCompID :: FIXTag+tTargetCompID = FIXTag +   { tName = "TargetCompID"+   , tnum = 56+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tTargetSubID :: FIXTag+tTargetSubID = FIXTag +   { tName = "TargetSubID"+   , tnum = 57+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tText :: FIXTag+tText = FIXTag +   { tName = "Text"+   , tnum = 58+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tTimeInForce :: FIXTag+tTimeInForce = FIXTag +   { tName = "TimeInForce"+   , tnum = 59+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tTransactTime :: FIXTag+tTransactTime = FIXTag +   { tName = "TransactTime"+   , tnum = 60+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tUrgency :: FIXTag+tUrgency = FIXTag +   { tName = "Urgency"+   , tnum = 61+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tValidUntilTime :: FIXTag+tValidUntilTime = FIXTag +   { tName = "ValidUntilTime"+   , tnum = 62+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tSettlmntTyp :: FIXTag+tSettlmntTyp = FIXTag +   { tName = "SettlmntTyp"+   , tnum = 63+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tFutSettDate :: FIXTag+tFutSettDate = FIXTag +   { tName = "FutSettDate"+   , tnum = 64+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tSymbolSfx :: FIXTag+tSymbolSfx = FIXTag +   { tName = "SymbolSfx"+   , tnum = 65+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tListID :: FIXTag+tListID = FIXTag +   { tName = "ListID"+   , tnum = 66+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tListSeqNo :: FIXTag+tListSeqNo = FIXTag +   { tName = "ListSeqNo"+   , tnum = 67+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tListNoOrds :: FIXTag+tListNoOrds = FIXTag +   { tName = "ListNoOrds"+   , tnum = 68+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tListExecInst :: FIXTag+tListExecInst = FIXTag +   { tName = "ListExecInst"+   , tnum = 69+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAllocID :: FIXTag+tAllocID = FIXTag +   { tName = "AllocID"+   , tnum = 70+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAllocTransType :: FIXTag+tAllocTransType = FIXTag +   { tName = "AllocTransType"+   , tnum = 71+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tRefAllocID :: FIXTag+tRefAllocID = FIXTag +   { tName = "RefAllocID"+   , tnum = 72+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoOrders :: FIXTag+tNoOrders = FIXTag +   { tName = "NoOrders"+   , tnum = 73+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAvgPrxPrecision :: FIXTag+tAvgPrxPrecision = FIXTag +   { tName = "AvgPrxPrecision"+   , tnum = 74+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradeDate :: FIXTag+tTradeDate = FIXTag +   { tName = "TradeDate"+   , tnum = 75+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tExecBroker :: FIXTag+tExecBroker = FIXTag +   { tName = "ExecBroker"+   , tnum = 76+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOpenClose :: FIXTag+tOpenClose = FIXTag +   { tName = "OpenClose"+   , tnum = 77+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoAllocs :: FIXTag+tNoAllocs = FIXTag +   { tName = "NoAllocs"+   , tnum = 78+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAllocAccount :: FIXTag+tAllocAccount = FIXTag +   { tName = "AllocAccount"+   , tnum = 79+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAllocShares :: FIXTag+tAllocShares = FIXTag +   { tName = "AllocShares"+   , tnum = 80+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tProcessCode :: FIXTag+tProcessCode = FIXTag +   { tName = "ProcessCode"+   , tnum = 81+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoRpts :: FIXTag+tNoRpts = FIXTag +   { tName = "NoRpts"+   , tnum = 82+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRptSeq :: FIXTag+tRptSeq = FIXTag +   { tName = "RptSeq"+   , tnum = 83+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCxlQty :: FIXTag+tCxlQty = FIXTag +   { tName = "CxlQty"+   , tnum = 84+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoDlvyInst :: FIXTag+tNoDlvyInst = FIXTag +   { tName = "NoDlvyInst"+   , tnum = 85+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tDlvyInst :: FIXTag+tDlvyInst = FIXTag +   { tName = "DlvyInst"+   , tnum = 86+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAllocStatus :: FIXTag+tAllocStatus = FIXTag +   { tName = "AllocStatus"+   , tnum = 87+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAllocRejCode :: FIXTag+tAllocRejCode = FIXTag +   { tName = "AllocRejCode"+   , tnum = 88+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSignature :: FIXTag+tSignature = FIXTag +   { tName = "Signature"+   , tnum = 89+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tSecureDataLen :: FIXTag+tSecureDataLen = FIXTag +   { tName = "SecureDataLen"+   , tnum = 90+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecureData :: FIXTag+tSecureData = FIXTag +   { tName = "SecureData"+   , tnum = 91+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tBrokerOfCredit :: FIXTag+tBrokerOfCredit = FIXTag +   { tName = "BrokerOfCredit"+   , tnum = 92+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSignatureLength :: FIXTag+tSignatureLength = FIXTag +   { tName = "SignatureLength"+   , tnum = 93+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEmailType :: FIXTag+tEmailType = FIXTag +   { tName = "EmailType"+   , tnum = 94+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tRawDataLength :: FIXTag+tRawDataLength = FIXTag +   { tName = "RawDataLength"+   , tnum = 95+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRawData :: FIXTag+tRawData = FIXTag +   { tName = "RawData"+   , tnum = 96+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tPossResend :: FIXTag+tPossResend = FIXTag +   { tName = "PossResend"+   , tnum = 97+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tEncryptMethod :: FIXTag+tEncryptMethod = FIXTag +   { tName = "EncryptMethod"+   , tnum = 98+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tStopPx :: FIXTag+tStopPx = FIXTag +   { tName = "StopPx"+   , tnum = 99+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tExDestination :: FIXTag+tExDestination = FIXTag +   { tName = "ExDestination"+   , tnum = 100+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCxlRejReason :: FIXTag+tCxlRejReason = FIXTag +   { tName = "CxlRejReason"+   , tnum = 102+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOrdRejReason :: FIXTag+tOrdRejReason = FIXTag +   { tName = "OrdRejReason"+   , tnum = 103+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tIOIQualifier :: FIXTag+tIOIQualifier = FIXTag +   { tName = "IOIQualifier"+   , tnum = 104+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tWaveNo :: FIXTag+tWaveNo = FIXTag +   { tName = "WaveNo"+   , tnum = 105+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tIssuer :: FIXTag+tIssuer = FIXTag +   { tName = "Issuer"+   , tnum = 106+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSecurityDesc :: FIXTag+tSecurityDesc = FIXTag +   { tName = "SecurityDesc"+   , tnum = 107+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tHeartBtInt :: FIXTag+tHeartBtInt = FIXTag +   { tName = "HeartBtInt"+   , tnum = 108+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tClientID :: FIXTag+tClientID = FIXTag +   { tName = "ClientID"+   , tnum = 109+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMinQty :: FIXTag+tMinQty = FIXTag +   { tName = "MinQty"+   , tnum = 110+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMaxFloor :: FIXTag+tMaxFloor = FIXTag +   { tName = "MaxFloor"+   , tnum = 111+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTestReqID :: FIXTag+tTestReqID = FIXTag +   { tName = "TestReqID"+   , tnum = 112+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tReportToExch :: FIXTag+tReportToExch = FIXTag +   { tName = "ReportToExch"+   , tnum = 113+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLocateReqd :: FIXTag+tLocateReqd = FIXTag +   { tName = "LocateReqd"+   , tnum = 114+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOnBehalfOfCompID :: FIXTag+tOnBehalfOfCompID = FIXTag +   { tName = "OnBehalfOfCompID"+   , tnum = 115+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOnBehalfOfSubID :: FIXTag+tOnBehalfOfSubID = FIXTag +   { tName = "OnBehalfOfSubID"+   , tnum = 116+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tQuoteID :: FIXTag+tQuoteID = FIXTag +   { tName = "QuoteID"+   , tnum = 117+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNetMoney :: FIXTag+tNetMoney = FIXTag +   { tName = "NetMoney"+   , tnum = 118+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlCurrAmt :: FIXTag+tSettlCurrAmt = FIXTag +   { tName = "SettlCurrAmt"+   , tnum = 119+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlCurrency :: FIXTag+tSettlCurrency = FIXTag +   { tName = "SettlCurrency"+   , tnum = 120+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tForexReq :: FIXTag+tForexReq = FIXTag +   { tName = "ForexReq"+   , tnum = 121+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOrigSendingTime :: FIXTag+tOrigSendingTime = FIXTag +   { tName = "OrigSendingTime"+   , tnum = 122+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tGapFillFlag :: FIXTag+tGapFillFlag = FIXTag +   { tName = "GapFillFlag"+   , tnum = 123+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoExecs :: FIXTag+tNoExecs = FIXTag +   { tName = "NoExecs"+   , tnum = 124+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCxlType :: FIXTag+tCxlType = FIXTag +   { tName = "CxlType"+   , tnum = 125+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tExpireTime :: FIXTag+tExpireTime = FIXTag +   { tName = "ExpireTime"+   , tnum = 126+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tDKReason :: FIXTag+tDKReason = FIXTag +   { tName = "DKReason"+   , tnum = 127+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tDeliverToCompID :: FIXTag+tDeliverToCompID = FIXTag +   { tName = "DeliverToCompID"+   , tnum = 128+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tDeliverToSubID :: FIXTag+tDeliverToSubID = FIXTag +   { tName = "DeliverToSubID"+   , tnum = 129+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tIOINaturalFlag :: FIXTag+tIOINaturalFlag = FIXTag +   { tName = "IOINaturalFlag"+   , tnum = 130+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tQuoteReqID :: FIXTag+tQuoteReqID = FIXTag +   { tName = "QuoteReqID"+   , tnum = 131+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tBidPx :: FIXTag+tBidPx = FIXTag +   { tName = "BidPx"+   , tnum = 132+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOfferPx :: FIXTag+tOfferPx = FIXTag +   { tName = "OfferPx"+   , tnum = 133+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBidSize :: FIXTag+tBidSize = FIXTag +   { tName = "BidSize"+   , tnum = 134+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOfferSize :: FIXTag+tOfferSize = FIXTag +   { tName = "OfferSize"+   , tnum = 135+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoMiscFees :: FIXTag+tNoMiscFees = FIXTag +   { tName = "NoMiscFees"+   , tnum = 136+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMiscFeeAmt :: FIXTag+tMiscFeeAmt = FIXTag +   { tName = "MiscFeeAmt"+   , tnum = 137+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMiscFeeCurr :: FIXTag+tMiscFeeCurr = FIXTag +   { tName = "MiscFeeCurr"+   , tnum = 138+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMiscFeeType :: FIXTag+tMiscFeeType = FIXTag +   { tName = "MiscFeeType"+   , tnum = 139+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tPrevClosePx :: FIXTag+tPrevClosePx = FIXTag +   { tName = "PrevClosePx"+   , tnum = 140+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++headerFIX40 :: FIXTags+headerFIX40 = +   LT.insert (tnum tSenderCompID) tSenderCompID $+   LT.insert (tnum tTargetCompID) tTargetCompID $+   LT.insert (tnum tOnBehalfOfCompID) tOnBehalfOfCompID $+   LT.insert (tnum tDeliverToCompID) tDeliverToCompID $+   LT.insert (tnum tSecureDataLen) tSecureDataLen $+   LT.insert (tnum tSecureData) tSecureData $+   LT.insert (tnum tMsgSeqNum) tMsgSeqNum $+   LT.insert (tnum tSenderSubID) tSenderSubID $+   LT.insert (tnum tTargetSubID) tTargetSubID $+   LT.insert (tnum tOnBehalfOfSubID) tOnBehalfOfSubID $+   LT.insert (tnum tDeliverToSubID) tDeliverToSubID $+   LT.insert (tnum tPossDupFlag) tPossDupFlag $+   LT.insert (tnum tPossResend) tPossResend $+   LT.insert (tnum tSendingTime) tSendingTime $+   LT.insert (tnum tOrigSendingTime) tOrigSendingTime    LT.new+++trailerFIX40 :: FIXTags+trailerFIX40 = +   LT.insert (tnum tSignatureLength) tSignatureLength $+   LT.insert (tnum tSignature) tSignature    LT.new+++mHeartbeat :: FIXMessageSpec+mHeartbeat = FMSpec+   { msName = "Heartbeat"+   , msType = C.pack "0"+   , msHeader = headerFIX40+   , msBody = mHeartbeatBody+   , msTrailer = trailerFIX40 }+   where+   mHeartbeatBody = +      LT.insert (tnum tTestReqID) tTestReqID       LT.new+++mTestRequest :: FIXMessageSpec+mTestRequest = FMSpec+   { msName = "TestRequest"+   , msType = C.pack "1"+   , msHeader = headerFIX40+   , msBody = mTestRequestBody+   , msTrailer = trailerFIX40 }+   where+   mTestRequestBody = +      LT.insert (tnum tTestReqID) tTestReqID       LT.new+++mResendRequest :: FIXMessageSpec+mResendRequest = FMSpec+   { msName = "ResendRequest"+   , msType = C.pack "2"+   , msHeader = headerFIX40+   , msBody = mResendRequestBody+   , msTrailer = trailerFIX40 }+   where+   mResendRequestBody = +      LT.insert (tnum tBeginSeqNo) tBeginSeqNo $+      LT.insert (tnum tEndSeqNo) tEndSeqNo       LT.new+++mReject :: FIXMessageSpec+mReject = FMSpec+   { msName = "Reject"+   , msType = C.pack "3"+   , msHeader = headerFIX40+   , msBody = mRejectBody+   , msTrailer = trailerFIX40 }+   where+   mRejectBody = +      LT.insert (tnum tRefSeqNum) tRefSeqNum $+      LT.insert (tnum tText) tText       LT.new+++mSequenceReset :: FIXMessageSpec+mSequenceReset = FMSpec+   { msName = "SequenceReset"+   , msType = C.pack "4"+   , msHeader = headerFIX40+   , msBody = mSequenceResetBody+   , msTrailer = trailerFIX40 }+   where+   mSequenceResetBody = +      LT.insert (tnum tGapFillFlag) tGapFillFlag $+      LT.insert (tnum tNewSeqNo) tNewSeqNo       LT.new+++mLogout :: FIXMessageSpec+mLogout = FMSpec+   { msName = "Logout"+   , msType = C.pack "5"+   , msHeader = headerFIX40+   , msBody = mLogoutBody+   , msTrailer = trailerFIX40 }+   where+   mLogoutBody = +      LT.insert (tnum tText) tText       LT.new+++mIndicationofInterest :: FIXMessageSpec+mIndicationofInterest = FMSpec+   { msName = "IndicationofInterest"+   , msType = C.pack "6"+   , msHeader = headerFIX40+   , msBody = mIndicationofInterestBody+   , msTrailer = trailerFIX40 }+   where+   mIndicationofInterestBody = +      LT.insert (tnum tIOIid) tIOIid $+      LT.insert (tnum tIOITransType) tIOITransType $+      LT.insert (tnum tIOIRefID) tIOIRefID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tIOIShares) tIOIShares $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tValidUntilTime) tValidUntilTime $+      LT.insert (tnum tIOIQltyInd) tIOIQltyInd $+      LT.insert (tnum tIOIOthSvc) tIOIOthSvc $+      LT.insert (tnum tIOINaturalFlag) tIOINaturalFlag $+      LT.insert (tnum tIOIQualifier) tIOIQualifier $+      LT.insert (tnum tText) tText       LT.new+++mAdvertisement :: FIXMessageSpec+mAdvertisement = FMSpec+   { msName = "Advertisement"+   , msType = C.pack "7"+   , msHeader = headerFIX40+   , msBody = mAdvertisementBody+   , msTrailer = trailerFIX40 }+   where+   mAdvertisementBody = +      LT.insert (tnum tAdvId) tAdvId $+      LT.insert (tnum tAdvTransType) tAdvTransType $+      LT.insert (tnum tAdvRefID) tAdvRefID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tAdvSide) tAdvSide $+      LT.insert (tnum tShares) tShares $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tText) tText       LT.new+++mExecutionReport :: FIXMessageSpec+mExecutionReport = FMSpec+   { msName = "ExecutionReport"+   , msType = C.pack "8"+   , msHeader = headerFIX40+   , msBody = mExecutionReportBody+   , msTrailer = trailerFIX40 }+   where+   mExecutionReportBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tExecID) tExecID $+      LT.insert (tnum tExecTransType) tExecTransType $+      LT.insert (tnum tExecRefID) tExecRefID $+      LT.insert (tnum tOrdStatus) tOrdStatus $+      LT.insert (tnum tOrdRejReason) tOrdRejReason $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tRule80A) tRule80A $+      LT.insert (tnum tLastShares) tLastShares $+      LT.insert (tnum tLastPx) tLastPx $+      LT.insert (tnum tLastMkt) tLastMkt $+      LT.insert (tnum tLastCapacity) tLastCapacity $+      LT.insert (tnum tCumQty) tCumQty $+      LT.insert (tnum tAvgPx) tAvgPx $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tReportToExch) tReportToExch $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tNoMiscFees) gNoMiscFees''' $+      LT.insert (tnum tNetMoney) tNetMoney $+      LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tText) tText       LT.new+      where+         gNoMiscFees''' = FIXTag+            { tName = "NoMiscFees"+            , tnum = tnum tNoMiscFees+            , tparser = gNoMiscFeesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec''' }++         gNoMiscFeesP''' = groupP gNoMiscFeesSpec'''+         gNoMiscFeesSpec''' = FGSpec+            { gsLength = tNoMiscFees+            , gsSeperator = tMiscFeeAmt+            , gsBody = gNoMiscFeesBody''' }+            where+            gNoMiscFeesBody''' = +               LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $+               LT.insert (tnum tMiscFeeType) tMiscFeeType                LT.new++++mOrderCancelReject :: FIXMessageSpec+mOrderCancelReject = FMSpec+   { msName = "OrderCancelReject"+   , msType = C.pack "9"+   , msHeader = headerFIX40+   , msBody = mOrderCancelRejectBody+   , msTrailer = trailerFIX40 }+   where+   mOrderCancelRejectBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tCxlRejReason) tCxlRejReason $+      LT.insert (tnum tText) tText       LT.new+++mLogon :: FIXMessageSpec+mLogon = FMSpec+   { msName = "Logon"+   , msType = C.pack "A"+   , msHeader = headerFIX40+   , msBody = mLogonBody+   , msTrailer = trailerFIX40 }+   where+   mLogonBody = +      LT.insert (tnum tEncryptMethod) tEncryptMethod $+      LT.insert (tnum tHeartBtInt) tHeartBtInt $+      LT.insert (tnum tRawDataLength) tRawDataLength $+      LT.insert (tnum tRawData) tRawData       LT.new+++mNews :: FIXMessageSpec+mNews = FMSpec+   { msName = "News"+   , msType = C.pack "B"+   , msHeader = headerFIX40+   , msBody = mNewsBody+   , msTrailer = trailerFIX40 }+   where+   mNewsBody = +      LT.insert (tnum tOrigTime) tOrigTime $+      LT.insert (tnum tUrgency) tUrgency $+      LT.insert (tnum tRelatdSym) tRelatdSym $+      LT.insert (tnum tLinesOfText) tLinesOfText $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tRawDataLength) tRawDataLength $+      LT.insert (tnum tRawData) tRawData       LT.new+++mEmail :: FIXMessageSpec+mEmail = FMSpec+   { msName = "Email"+   , msType = C.pack "C"+   , msHeader = headerFIX40+   , msBody = mEmailBody+   , msTrailer = trailerFIX40 }+   where+   mEmailBody = +      LT.insert (tnum tEmailType) tEmailType $+      LT.insert (tnum tOrigTime) tOrigTime $+      LT.insert (tnum tRelatdSym) tRelatdSym $+      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tLinesOfText) tLinesOfText $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tRawDataLength) tRawDataLength $+      LT.insert (tnum tRawData) tRawData       LT.new+++mNewOrderSingle :: FIXMessageSpec+mNewOrderSingle = FMSpec+   { msName = "NewOrderSingle"+   , msType = C.pack "D"+   , msHeader = headerFIX40+   , msBody = mNewOrderSingleBody+   , msTrailer = trailerFIX40 }+   where+   mNewOrderSingleBody = +      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tProcessCode) tProcessCode $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tPrevClosePx) tPrevClosePx $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tLocateReqd) tLocateReqd $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tIOIid) tIOIid $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tRule80A) tRule80A $+      LT.insert (tnum tForexReq) tForexReq $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tText) tText       LT.new+++mNewOrderList :: FIXMessageSpec+mNewOrderList = FMSpec+   { msName = "NewOrderList"+   , msType = C.pack "E"+   , msHeader = headerFIX40+   , msBody = mNewOrderListBody+   , msTrailer = trailerFIX40 }+   where+   mNewOrderListBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tWaveNo) tWaveNo $+      LT.insert (tnum tListSeqNo) tListSeqNo $+      LT.insert (tnum tListNoOrds) tListNoOrds $+      LT.insert (tnum tListExecInst) tListExecInst $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tProcessCode) tProcessCode $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tPrevClosePx) tPrevClosePx $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tLocateReqd) tLocateReqd $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tRule80A) tRule80A $+      LT.insert (tnum tForexReq) tForexReq $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tText) tText       LT.new+++mOrderCancelRequest :: FIXMessageSpec+mOrderCancelRequest = FMSpec+   { msName = "OrderCancelRequest"+   , msType = C.pack "F"+   , msHeader = headerFIX40+   , msBody = mOrderCancelRequestBody+   , msTrailer = trailerFIX40 }+   where+   mOrderCancelRequestBody = +      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tCxlType) tCxlType $+      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tText) tText       LT.new+++mOrderCancelReplaceRequest :: FIXMessageSpec+mOrderCancelReplaceRequest = FMSpec+   { msName = "OrderCancelReplaceRequest"+   , msType = C.pack "G"+   , msHeader = headerFIX40+   , msBody = mOrderCancelReplaceRequestBody+   , msTrailer = trailerFIX40 }+   where+   mOrderCancelReplaceRequestBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tRule80A) tRule80A $+      LT.insert (tnum tForexReq) tForexReq $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tText) tText       LT.new+++mOrderStatusRequest :: FIXMessageSpec+mOrderStatusRequest = FMSpec+   { msName = "OrderStatusRequest"+   , msType = C.pack "H"+   , msHeader = headerFIX40+   , msBody = mOrderStatusRequestBody+   , msTrailer = trailerFIX40 }+   where+   mOrderStatusRequestBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tSide) tSide       LT.new+++mAllocation :: FIXMessageSpec+mAllocation = FMSpec+   { msName = "Allocation"+   , msType = C.pack "J"+   , msHeader = headerFIX40+   , msBody = mAllocationBody+   , msTrailer = trailerFIX40 }+   where+   mAllocationBody = +      LT.insert (tnum tAllocID) tAllocID $+      LT.insert (tnum tAllocTransType) tAllocTransType $+      LT.insert (tnum tRefAllocID) tRefAllocID $+      LT.insert (tnum tNoOrders) gNoOrders''' $+      LT.insert (tnum tNoExecs) gNoExecs''' $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tShares) tShares $+      LT.insert (tnum tAvgPx) tAvgPx $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tAvgPrxPrecision) tAvgPrxPrecision $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tNetMoney) tNetMoney $+      LT.insert (tnum tNoMiscFees) gNoMiscFees''' $+      LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tOpenClose) tOpenClose $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tNoAllocs) gNoAllocs'''       LT.new+      where+         gNoAllocs''' = FIXTag+            { tName = "NoAllocs"+            , tnum = tnum tNoAllocs+            , tparser = gNoAllocsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }++         gNoAllocsP''' = groupP gNoAllocsSpec'''+         gNoAllocsSpec''' = FGSpec+            { gsLength = tNoAllocs+            , gsSeperator = tAllocAccount+            , gsBody = gNoAllocsBody''' }+            where+            gNoAllocsBody''' = +               LT.insert (tnum tAllocShares) tAllocShares $+               LT.insert (tnum tProcessCode) tProcessCode $+               LT.insert (tnum tExecBroker) tExecBroker $+               LT.insert (tnum tClientID) tClientID $+               LT.insert (tnum tCommission) tCommission $+               LT.insert (tnum tCommType) tCommType $+               LT.insert (tnum tNoDlvyInst) tNoDlvyInst $+               LT.insert (tnum tBrokerOfCredit) tBrokerOfCredit $+               LT.insert (tnum tDlvyInst) tDlvyInst                LT.new++         gNoExecs''' = FIXTag+            { tName = "NoExecs"+            , tnum = tnum tNoExecs+            , tparser = gNoExecsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoExecsSpec''' }++         gNoExecsP''' = groupP gNoExecsSpec'''+         gNoExecsSpec''' = FGSpec+            { gsLength = tNoExecs+            , gsSeperator = tExecID+            , gsBody = gNoExecsBody''' }+            where+            gNoExecsBody''' = +               LT.insert (tnum tLastShares) tLastShares $+               LT.insert (tnum tLastPx) tLastPx $+               LT.insert (tnum tLastMkt) tLastMkt                LT.new++         gNoMiscFees''' = FIXTag+            { tName = "NoMiscFees"+            , tnum = tnum tNoMiscFees+            , tparser = gNoMiscFeesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec''' }++         gNoMiscFeesP''' = groupP gNoMiscFeesSpec'''+         gNoMiscFeesSpec''' = FGSpec+            { gsLength = tNoMiscFees+            , gsSeperator = tMiscFeeAmt+            , gsBody = gNoMiscFeesBody''' }+            where+            gNoMiscFeesBody''' = +               LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $+               LT.insert (tnum tMiscFeeType) tMiscFeeType                LT.new++         gNoOrders''' = FIXTag+            { tName = "NoOrders"+            , tnum = tnum tNoOrders+            , tparser = gNoOrdersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoOrdersSpec''' }++         gNoOrdersP''' = groupP gNoOrdersSpec'''+         gNoOrdersSpec''' = FGSpec+            { gsLength = tNoOrders+            , gsSeperator = tClOrdID+            , gsBody = gNoOrdersBody''' }+            where+            gNoOrdersBody''' = +               LT.insert (tnum tOrderID) tOrderID $+               LT.insert (tnum tListID) tListID $+               LT.insert (tnum tWaveNo) tWaveNo                LT.new++++mListCancelRequest :: FIXMessageSpec+mListCancelRequest = FMSpec+   { msName = "ListCancelRequest"+   , msType = C.pack "K"+   , msHeader = headerFIX40+   , msBody = mListCancelRequestBody+   , msTrailer = trailerFIX40 }+   where+   mListCancelRequestBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tWaveNo) tWaveNo $+      LT.insert (tnum tText) tText       LT.new+++mListExecute :: FIXMessageSpec+mListExecute = FMSpec+   { msName = "ListExecute"+   , msType = C.pack "L"+   , msHeader = headerFIX40+   , msBody = mListExecuteBody+   , msTrailer = trailerFIX40 }+   where+   mListExecuteBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tWaveNo) tWaveNo $+      LT.insert (tnum tText) tText       LT.new+++mListStatusRequest :: FIXMessageSpec+mListStatusRequest = FMSpec+   { msName = "ListStatusRequest"+   , msType = C.pack "M"+   , msHeader = headerFIX40+   , msBody = mListStatusRequestBody+   , msTrailer = trailerFIX40 }+   where+   mListStatusRequestBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tWaveNo) tWaveNo $+      LT.insert (tnum tText) tText       LT.new+++mListStatus :: FIXMessageSpec+mListStatus = FMSpec+   { msName = "ListStatus"+   , msType = C.pack "N"+   , msHeader = headerFIX40+   , msBody = mListStatusBody+   , msTrailer = trailerFIX40 }+   where+   mListStatusBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tWaveNo) tWaveNo $+      LT.insert (tnum tNoRpts) tNoRpts $+      LT.insert (tnum tRptSeq) tRptSeq $+      LT.insert (tnum tNoOrders) gNoOrders'''       LT.new+      where+         gNoOrders''' = FIXTag+            { tName = "NoOrders"+            , tnum = tnum tNoOrders+            , tparser = gNoOrdersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoOrdersSpec''' }++         gNoOrdersP''' = groupP gNoOrdersSpec'''+         gNoOrdersSpec''' = FGSpec+            { gsLength = tNoOrders+            , gsSeperator = tClOrdID+            , gsBody = gNoOrdersBody''' }+            where+            gNoOrdersBody''' = +               LT.insert (tnum tCumQty) tCumQty $+               LT.insert (tnum tCxlQty) tCxlQty $+               LT.insert (tnum tAvgPx) tAvgPx                LT.new++++mAllocationACK :: FIXMessageSpec+mAllocationACK = FMSpec+   { msName = "AllocationACK"+   , msType = C.pack "P"+   , msHeader = headerFIX40+   , msBody = mAllocationACKBody+   , msTrailer = trailerFIX40 }+   where+   mAllocationACKBody = +      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tAllocID) tAllocID $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tAllocStatus) tAllocStatus $+      LT.insert (tnum tAllocRejCode) tAllocRejCode $+      LT.insert (tnum tText) tText       LT.new+++mDontKnowTrade :: FIXMessageSpec+mDontKnowTrade = FMSpec+   { msName = "DontKnowTrade"+   , msType = C.pack "Q"+   , msHeader = headerFIX40+   , msBody = mDontKnowTradeBody+   , msTrailer = trailerFIX40 }+   where+   mDontKnowTradeBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tExecID) tExecID $+      LT.insert (tnum tDKReason) tDKReason $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tLastShares) tLastShares $+      LT.insert (tnum tLastPx) tLastPx $+      LT.insert (tnum tText) tText       LT.new+++mQuoteRequest :: FIXMessageSpec+mQuoteRequest = FMSpec+   { msName = "QuoteRequest"+   , msType = C.pack "R"+   , msHeader = headerFIX40+   , msBody = mQuoteRequestBody+   , msTrailer = trailerFIX40 }+   where+   mQuoteRequestBody = +      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tPrevClosePx) tPrevClosePx $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tOrderQty) tOrderQty       LT.new+++mQuote :: FIXMessageSpec+mQuote = FMSpec+   { msName = "Quote"+   , msType = C.pack "S"+   , msHeader = headerFIX40+   , msBody = mQuoteBody+   , msTrailer = trailerFIX40 }+   where+   mQuoteBody = +      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tBidPx) tBidPx $+      LT.insert (tnum tOfferPx) tOfferPx $+      LT.insert (tnum tBidSize) tBidSize $+      LT.insert (tnum tOfferSize) tOfferSize $+      LT.insert (tnum tValidUntilTime) tValidUntilTime       LT.new+++fix40 :: FIXSpec+fix40 = FSpec+   { fsVersion = "FIX.4.0"+   , fsHeader = headerFIX40+   , fsTrailer = trailerFIX40+   , fsMessages = fix40Messages +   , fsTags = fix40Tags }+   where+      fix40Messages =+          LT.insert (msType mHeartbeat) mHeartbeat $+          LT.insert (msType mTestRequest) mTestRequest $+          LT.insert (msType mResendRequest) mResendRequest $+          LT.insert (msType mReject) mReject $+          LT.insert (msType mSequenceReset) mSequenceReset $+          LT.insert (msType mLogout) mLogout $+          LT.insert (msType mIndicationofInterest) mIndicationofInterest $+          LT.insert (msType mAdvertisement) mAdvertisement $+          LT.insert (msType mExecutionReport) mExecutionReport $+          LT.insert (msType mOrderCancelReject) mOrderCancelReject $+          LT.insert (msType mLogon) mLogon $+          LT.insert (msType mNews) mNews $+          LT.insert (msType mEmail) mEmail $+          LT.insert (msType mNewOrderSingle) mNewOrderSingle $+          LT.insert (msType mNewOrderList) mNewOrderList $+          LT.insert (msType mOrderCancelRequest) mOrderCancelRequest $+          LT.insert (msType mOrderCancelReplaceRequest) mOrderCancelReplaceRequest $+          LT.insert (msType mOrderStatusRequest) mOrderStatusRequest $+          LT.insert (msType mAllocation) mAllocation $+          LT.insert (msType mListCancelRequest) mListCancelRequest $+          LT.insert (msType mListExecute) mListExecute $+          LT.insert (msType mListStatusRequest) mListStatusRequest $+          LT.insert (msType mListStatus) mListStatus $+          LT.insert (msType mAllocationACK) mAllocationACK $+          LT.insert (msType mDontKnowTrade) mDontKnowTrade $+          LT.insert (msType mQuoteRequest) mQuoteRequest $+          LT.insert (msType mQuote) mQuote           LT.new +      fix40Tags =+          LT.insert (tnum tAccount) tAccount $+          LT.insert (tnum tAdvId) tAdvId $+          LT.insert (tnum tAdvRefID) tAdvRefID $+          LT.insert (tnum tAdvSide) tAdvSide $+          LT.insert (tnum tAdvTransType) tAdvTransType $+          LT.insert (tnum tAvgPx) tAvgPx $+          LT.insert (tnum tBeginSeqNo) tBeginSeqNo $+          LT.insert (tnum tBeginString) tBeginString $+          LT.insert (tnum tBodyLength) tBodyLength $+          LT.insert (tnum tCheckSum) tCheckSum $+          LT.insert (tnum tClOrdID) tClOrdID $+          LT.insert (tnum tCommission) tCommission $+          LT.insert (tnum tCommType) tCommType $+          LT.insert (tnum tCumQty) tCumQty $+          LT.insert (tnum tCurrency) tCurrency $+          LT.insert (tnum tEndSeqNo) tEndSeqNo $+          LT.insert (tnum tExecID) tExecID $+          LT.insert (tnum tExecInst) tExecInst $+          LT.insert (tnum tExecRefID) tExecRefID $+          LT.insert (tnum tExecTransType) tExecTransType $+          LT.insert (tnum tHandlInst) tHandlInst $+          LT.insert (tnum tIDSource) tIDSource $+          LT.insert (tnum tIOIid) tIOIid $+          LT.insert (tnum tIOIOthSvc) tIOIOthSvc $+          LT.insert (tnum tIOIQltyInd) tIOIQltyInd $+          LT.insert (tnum tIOIRefID) tIOIRefID $+          LT.insert (tnum tIOIShares) tIOIShares $+          LT.insert (tnum tIOITransType) tIOITransType $+          LT.insert (tnum tLastCapacity) tLastCapacity $+          LT.insert (tnum tLastMkt) tLastMkt $+          LT.insert (tnum tLastPx) tLastPx $+          LT.insert (tnum tLastShares) tLastShares $+          LT.insert (tnum tLinesOfText) tLinesOfText $+          LT.insert (tnum tMsgSeqNum) tMsgSeqNum $+          LT.insert (tnum tMsgType) tMsgType $+          LT.insert (tnum tNewSeqNo) tNewSeqNo $+          LT.insert (tnum tOrderID) tOrderID $+          LT.insert (tnum tOrderQty) tOrderQty $+          LT.insert (tnum tOrdStatus) tOrdStatus $+          LT.insert (tnum tOrdType) tOrdType $+          LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+          LT.insert (tnum tOrigTime) tOrigTime $+          LT.insert (tnum tPossDupFlag) tPossDupFlag $+          LT.insert (tnum tPrice) tPrice $+          LT.insert (tnum tRefSeqNum) tRefSeqNum $+          LT.insert (tnum tRelatdSym) tRelatdSym $+          LT.insert (tnum tRule80A) tRule80A $+          LT.insert (tnum tSecurityID) tSecurityID $+          LT.insert (tnum tSenderCompID) tSenderCompID $+          LT.insert (tnum tSenderSubID) tSenderSubID $+          LT.insert (tnum tSendingDate) tSendingDate $+          LT.insert (tnum tSendingTime) tSendingTime $+          LT.insert (tnum tShares) tShares $+          LT.insert (tnum tSide) tSide $+          LT.insert (tnum tSymbol) tSymbol $+          LT.insert (tnum tTargetCompID) tTargetCompID $+          LT.insert (tnum tTargetSubID) tTargetSubID $+          LT.insert (tnum tText) tText $+          LT.insert (tnum tTimeInForce) tTimeInForce $+          LT.insert (tnum tTransactTime) tTransactTime $+          LT.insert (tnum tUrgency) tUrgency $+          LT.insert (tnum tValidUntilTime) tValidUntilTime $+          LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+          LT.insert (tnum tFutSettDate) tFutSettDate $+          LT.insert (tnum tSymbolSfx) tSymbolSfx $+          LT.insert (tnum tListID) tListID $+          LT.insert (tnum tListSeqNo) tListSeqNo $+          LT.insert (tnum tListNoOrds) tListNoOrds $+          LT.insert (tnum tListExecInst) tListExecInst $+          LT.insert (tnum tAllocID) tAllocID $+          LT.insert (tnum tAllocTransType) tAllocTransType $+          LT.insert (tnum tRefAllocID) tRefAllocID $+          LT.insert (tnum tNoOrders) tNoOrders $+          LT.insert (tnum tAvgPrxPrecision) tAvgPrxPrecision $+          LT.insert (tnum tTradeDate) tTradeDate $+          LT.insert (tnum tExecBroker) tExecBroker $+          LT.insert (tnum tOpenClose) tOpenClose $+          LT.insert (tnum tNoAllocs) tNoAllocs $+          LT.insert (tnum tAllocAccount) tAllocAccount $+          LT.insert (tnum tAllocShares) tAllocShares $+          LT.insert (tnum tProcessCode) tProcessCode $+          LT.insert (tnum tNoRpts) tNoRpts $+          LT.insert (tnum tRptSeq) tRptSeq $+          LT.insert (tnum tCxlQty) tCxlQty $+          LT.insert (tnum tNoDlvyInst) tNoDlvyInst $+          LT.insert (tnum tDlvyInst) tDlvyInst $+          LT.insert (tnum tAllocStatus) tAllocStatus $+          LT.insert (tnum tAllocRejCode) tAllocRejCode $+          LT.insert (tnum tSignature) tSignature $+          LT.insert (tnum tSecureDataLen) tSecureDataLen $+          LT.insert (tnum tSecureData) tSecureData $+          LT.insert (tnum tBrokerOfCredit) tBrokerOfCredit $+          LT.insert (tnum tSignatureLength) tSignatureLength $+          LT.insert (tnum tEmailType) tEmailType $+          LT.insert (tnum tRawDataLength) tRawDataLength $+          LT.insert (tnum tRawData) tRawData $+          LT.insert (tnum tPossResend) tPossResend $+          LT.insert (tnum tEncryptMethod) tEncryptMethod $+          LT.insert (tnum tStopPx) tStopPx $+          LT.insert (tnum tExDestination) tExDestination $+          LT.insert (tnum tCxlRejReason) tCxlRejReason $+          LT.insert (tnum tOrdRejReason) tOrdRejReason $+          LT.insert (tnum tIOIQualifier) tIOIQualifier $+          LT.insert (tnum tWaveNo) tWaveNo $+          LT.insert (tnum tIssuer) tIssuer $+          LT.insert (tnum tSecurityDesc) tSecurityDesc $+          LT.insert (tnum tHeartBtInt) tHeartBtInt $+          LT.insert (tnum tClientID) tClientID $+          LT.insert (tnum tMinQty) tMinQty $+          LT.insert (tnum tMaxFloor) tMaxFloor $+          LT.insert (tnum tTestReqID) tTestReqID $+          LT.insert (tnum tReportToExch) tReportToExch $+          LT.insert (tnum tLocateReqd) tLocateReqd $+          LT.insert (tnum tOnBehalfOfCompID) tOnBehalfOfCompID $+          LT.insert (tnum tOnBehalfOfSubID) tOnBehalfOfSubID $+          LT.insert (tnum tQuoteID) tQuoteID $+          LT.insert (tnum tNetMoney) tNetMoney $+          LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $+          LT.insert (tnum tSettlCurrency) tSettlCurrency $+          LT.insert (tnum tForexReq) tForexReq $+          LT.insert (tnum tOrigSendingTime) tOrigSendingTime $+          LT.insert (tnum tGapFillFlag) tGapFillFlag $+          LT.insert (tnum tNoExecs) tNoExecs $+          LT.insert (tnum tCxlType) tCxlType $+          LT.insert (tnum tExpireTime) tExpireTime $+          LT.insert (tnum tDKReason) tDKReason $+          LT.insert (tnum tDeliverToCompID) tDeliverToCompID $+          LT.insert (tnum tDeliverToSubID) tDeliverToSubID $+          LT.insert (tnum tIOINaturalFlag) tIOINaturalFlag $+          LT.insert (tnum tQuoteReqID) tQuoteReqID $+          LT.insert (tnum tBidPx) tBidPx $+          LT.insert (tnum tOfferPx) tOfferPx $+          LT.insert (tnum tBidSize) tBidSize $+          LT.insert (tnum tOfferSize) tOfferSize $+          LT.insert (tnum tNoMiscFees) tNoMiscFees $+          LT.insert (tnum tMiscFeeAmt) tMiscFeeAmt $+          LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $+          LT.insert (tnum tMiscFeeType) tMiscFeeType $+          LT.insert (tnum tPrevClosePx) tPrevClosePx $+          LT.new 
+ src/Data/FIX/Spec/FIX41.hs view
@@ -0,0 +1,2756 @@+module Data.FIX.Spec.FIX41 ( fix41 ) where+import qualified Data.ByteString.Char8 as C+import qualified Data.LookupTable as LT ( new, insert )+import Data.FIX.Message+import Data.FIX.Parser+import Data.Functor ( (<$>) )+import Data.FIX.Arbitrary +import Test.QuickCheck ( arbitrary )+++tAccount :: FIXTag+tAccount = FIXTag +   { tName = "Account"+   , tnum = 1+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAdvId :: FIXTag+tAdvId = FIXTag +   { tName = "AdvId"+   , tnum = 2+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAdvRefID :: FIXTag+tAdvRefID = FIXTag +   { tName = "AdvRefID"+   , tnum = 3+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAdvSide :: FIXTag+tAdvSide = FIXTag +   { tName = "AdvSide"+   , tnum = 4+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAdvTransType :: FIXTag+tAdvTransType = FIXTag +   { tName = "AdvTransType"+   , tnum = 5+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAvgPx :: FIXTag+tAvgPx = FIXTag +   { tName = "AvgPx"+   , tnum = 6+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBeginSeqNo :: FIXTag+tBeginSeqNo = FIXTag +   { tName = "BeginSeqNo"+   , tnum = 7+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tClOrdID :: FIXTag+tClOrdID = FIXTag +   { tName = "ClOrdID"+   , tnum = 11+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCommission :: FIXTag+tCommission = FIXTag +   { tName = "Commission"+   , tnum = 12+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCommType :: FIXTag+tCommType = FIXTag +   { tName = "CommType"+   , tnum = 13+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCumQty :: FIXTag+tCumQty = FIXTag +   { tName = "CumQty"+   , tnum = 14+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCurrency :: FIXTag+tCurrency = FIXTag +   { tName = "Currency"+   , tnum = 15+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tEndSeqNo :: FIXTag+tEndSeqNo = FIXTag +   { tName = "EndSeqNo"+   , tnum = 16+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tExecID :: FIXTag+tExecID = FIXTag +   { tName = "ExecID"+   , tnum = 17+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tExecInst :: FIXTag+tExecInst = FIXTag +   { tName = "ExecInst"+   , tnum = 18+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tExecRefID :: FIXTag+tExecRefID = FIXTag +   { tName = "ExecRefID"+   , tnum = 19+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tExecTransType :: FIXTag+tExecTransType = FIXTag +   { tName = "ExecTransType"+   , tnum = 20+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tHandlInst :: FIXTag+tHandlInst = FIXTag +   { tName = "HandlInst"+   , tnum = 21+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tIDSource :: FIXTag+tIDSource = FIXTag +   { tName = "IDSource"+   , tnum = 22+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tIOIid :: FIXTag+tIOIid = FIXTag +   { tName = "IOIid"+   , tnum = 23+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tIOIOthSvc :: FIXTag+tIOIOthSvc = FIXTag +   { tName = "IOIOthSvc"+   , tnum = 24+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tIOIQltyInd :: FIXTag+tIOIQltyInd = FIXTag +   { tName = "IOIQltyInd"+   , tnum = 25+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tIOIRefID :: FIXTag+tIOIRefID = FIXTag +   { tName = "IOIRefID"+   , tnum = 26+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tIOIShares :: FIXTag+tIOIShares = FIXTag +   { tName = "IOIShares"+   , tnum = 27+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tIOITransType :: FIXTag+tIOITransType = FIXTag +   { tName = "IOITransType"+   , tnum = 28+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLastCapacity :: FIXTag+tLastCapacity = FIXTag +   { tName = "LastCapacity"+   , tnum = 29+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLastMkt :: FIXTag+tLastMkt = FIXTag +   { tName = "LastMkt"+   , tnum = 30+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLastPx :: FIXTag+tLastPx = FIXTag +   { tName = "LastPx"+   , tnum = 31+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLastShares :: FIXTag+tLastShares = FIXTag +   { tName = "LastShares"+   , tnum = 32+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLinesOfText :: FIXTag+tLinesOfText = FIXTag +   { tName = "LinesOfText"+   , tnum = 33+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMsgSeqNum :: FIXTag+tMsgSeqNum = FIXTag +   { tName = "MsgSeqNum"+   , tnum = 34+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNewSeqNo :: FIXTag+tNewSeqNo = FIXTag +   { tName = "NewSeqNo"+   , tnum = 36+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOrderID :: FIXTag+tOrderID = FIXTag +   { tName = "OrderID"+   , tnum = 37+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOrderQty :: FIXTag+tOrderQty = FIXTag +   { tName = "OrderQty"+   , tnum = 38+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOrdStatus :: FIXTag+tOrdStatus = FIXTag +   { tName = "OrdStatus"+   , tnum = 39+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOrdType :: FIXTag+tOrdType = FIXTag +   { tName = "OrdType"+   , tnum = 40+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOrigClOrdID :: FIXTag+tOrigClOrdID = FIXTag +   { tName = "OrigClOrdID"+   , tnum = 41+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOrigTime :: FIXTag+tOrigTime = FIXTag +   { tName = "OrigTime"+   , tnum = 42+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tPossDupFlag :: FIXTag+tPossDupFlag = FIXTag +   { tName = "PossDupFlag"+   , tnum = 43+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tPrice :: FIXTag+tPrice = FIXTag +   { tName = "Price"+   , tnum = 44+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tRefSeqNum :: FIXTag+tRefSeqNum = FIXTag +   { tName = "RefSeqNum"+   , tnum = 45+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRelatdSym :: FIXTag+tRelatdSym = FIXTag +   { tName = "RelatdSym"+   , tnum = 46+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tRule80A :: FIXTag+tRule80A = FIXTag +   { tName = "Rule80A"+   , tnum = 47+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSecurityID :: FIXTag+tSecurityID = FIXTag +   { tName = "SecurityID"+   , tnum = 48+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSenderCompID :: FIXTag+tSenderCompID = FIXTag +   { tName = "SenderCompID"+   , tnum = 49+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSenderSubID :: FIXTag+tSenderSubID = FIXTag +   { tName = "SenderSubID"+   , tnum = 50+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSendingDate :: FIXTag+tSendingDate = FIXTag +   { tName = "SendingDate"+   , tnum = 51+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tSendingTime :: FIXTag+tSendingTime = FIXTag +   { tName = "SendingTime"+   , tnum = 52+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tShares :: FIXTag+tShares = FIXTag +   { tName = "Shares"+   , tnum = 53+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSide :: FIXTag+tSide = FIXTag +   { tName = "Side"+   , tnum = 54+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSymbol :: FIXTag+tSymbol = FIXTag +   { tName = "Symbol"+   , tnum = 55+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tTargetCompID :: FIXTag+tTargetCompID = FIXTag +   { tName = "TargetCompID"+   , tnum = 56+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tTargetSubID :: FIXTag+tTargetSubID = FIXTag +   { tName = "TargetSubID"+   , tnum = 57+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tText :: FIXTag+tText = FIXTag +   { tName = "Text"+   , tnum = 58+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tTimeInForce :: FIXTag+tTimeInForce = FIXTag +   { tName = "TimeInForce"+   , tnum = 59+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tTransactTime :: FIXTag+tTransactTime = FIXTag +   { tName = "TransactTime"+   , tnum = 60+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tUrgency :: FIXTag+tUrgency = FIXTag +   { tName = "Urgency"+   , tnum = 61+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tValidUntilTime :: FIXTag+tValidUntilTime = FIXTag +   { tName = "ValidUntilTime"+   , tnum = 62+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tSettlmntTyp :: FIXTag+tSettlmntTyp = FIXTag +   { tName = "SettlmntTyp"+   , tnum = 63+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tFutSettDate :: FIXTag+tFutSettDate = FIXTag +   { tName = "FutSettDate"+   , tnum = 64+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tSymbolSfx :: FIXTag+tSymbolSfx = FIXTag +   { tName = "SymbolSfx"+   , tnum = 65+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tListID :: FIXTag+tListID = FIXTag +   { tName = "ListID"+   , tnum = 66+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tListSeqNo :: FIXTag+tListSeqNo = FIXTag +   { tName = "ListSeqNo"+   , tnum = 67+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tListNoOrds :: FIXTag+tListNoOrds = FIXTag +   { tName = "ListNoOrds"+   , tnum = 68+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tListExecInst :: FIXTag+tListExecInst = FIXTag +   { tName = "ListExecInst"+   , tnum = 69+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAllocID :: FIXTag+tAllocID = FIXTag +   { tName = "AllocID"+   , tnum = 70+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAllocTransType :: FIXTag+tAllocTransType = FIXTag +   { tName = "AllocTransType"+   , tnum = 71+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tRefAllocID :: FIXTag+tRefAllocID = FIXTag +   { tName = "RefAllocID"+   , tnum = 72+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoOrders :: FIXTag+tNoOrders = FIXTag +   { tName = "NoOrders"+   , tnum = 73+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAvgPrxPrecision :: FIXTag+tAvgPrxPrecision = FIXTag +   { tName = "AvgPrxPrecision"+   , tnum = 74+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradeDate :: FIXTag+tTradeDate = FIXTag +   { tName = "TradeDate"+   , tnum = 75+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tExecBroker :: FIXTag+tExecBroker = FIXTag +   { tName = "ExecBroker"+   , tnum = 76+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOpenClose :: FIXTag+tOpenClose = FIXTag +   { tName = "OpenClose"+   , tnum = 77+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoAllocs :: FIXTag+tNoAllocs = FIXTag +   { tName = "NoAllocs"+   , tnum = 78+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAllocAccount :: FIXTag+tAllocAccount = FIXTag +   { tName = "AllocAccount"+   , tnum = 79+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAllocShares :: FIXTag+tAllocShares = FIXTag +   { tName = "AllocShares"+   , tnum = 80+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tProcessCode :: FIXTag+tProcessCode = FIXTag +   { tName = "ProcessCode"+   , tnum = 81+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoRpts :: FIXTag+tNoRpts = FIXTag +   { tName = "NoRpts"+   , tnum = 82+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRptSeq :: FIXTag+tRptSeq = FIXTag +   { tName = "RptSeq"+   , tnum = 83+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCxlQty :: FIXTag+tCxlQty = FIXTag +   { tName = "CxlQty"+   , tnum = 84+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoDlvyInst :: FIXTag+tNoDlvyInst = FIXTag +   { tName = "NoDlvyInst"+   , tnum = 85+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tDlvyInst :: FIXTag+tDlvyInst = FIXTag +   { tName = "DlvyInst"+   , tnum = 86+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAllocStatus :: FIXTag+tAllocStatus = FIXTag +   { tName = "AllocStatus"+   , tnum = 87+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAllocRejCode :: FIXTag+tAllocRejCode = FIXTag +   { tName = "AllocRejCode"+   , tnum = 88+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSignature :: FIXTag+tSignature = FIXTag +   { tName = "Signature"+   , tnum = 89+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tSecureDataLen :: FIXTag+tSecureDataLen = FIXTag +   { tName = "SecureDataLen"+   , tnum = 90+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecureData :: FIXTag+tSecureData = FIXTag +   { tName = "SecureData"+   , tnum = 91+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tBrokerOfCredit :: FIXTag+tBrokerOfCredit = FIXTag +   { tName = "BrokerOfCredit"+   , tnum = 92+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSignatureLength :: FIXTag+tSignatureLength = FIXTag +   { tName = "SignatureLength"+   , tnum = 93+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEmailType :: FIXTag+tEmailType = FIXTag +   { tName = "EmailType"+   , tnum = 94+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tRawDataLength :: FIXTag+tRawDataLength = FIXTag +   { tName = "RawDataLength"+   , tnum = 95+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRawData :: FIXTag+tRawData = FIXTag +   { tName = "RawData"+   , tnum = 96+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tPossResend :: FIXTag+tPossResend = FIXTag +   { tName = "PossResend"+   , tnum = 97+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tEncryptMethod :: FIXTag+tEncryptMethod = FIXTag +   { tName = "EncryptMethod"+   , tnum = 98+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tStopPx :: FIXTag+tStopPx = FIXTag +   { tName = "StopPx"+   , tnum = 99+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tExDestination :: FIXTag+tExDestination = FIXTag +   { tName = "ExDestination"+   , tnum = 100+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCxlRejReason :: FIXTag+tCxlRejReason = FIXTag +   { tName = "CxlRejReason"+   , tnum = 102+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOrdRejReason :: FIXTag+tOrdRejReason = FIXTag +   { tName = "OrdRejReason"+   , tnum = 103+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tIOIQualifier :: FIXTag+tIOIQualifier = FIXTag +   { tName = "IOIQualifier"+   , tnum = 104+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tWaveNo :: FIXTag+tWaveNo = FIXTag +   { tName = "WaveNo"+   , tnum = 105+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tIssuer :: FIXTag+tIssuer = FIXTag +   { tName = "Issuer"+   , tnum = 106+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSecurityDesc :: FIXTag+tSecurityDesc = FIXTag +   { tName = "SecurityDesc"+   , tnum = 107+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tHeartBtInt :: FIXTag+tHeartBtInt = FIXTag +   { tName = "HeartBtInt"+   , tnum = 108+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tClientID :: FIXTag+tClientID = FIXTag +   { tName = "ClientID"+   , tnum = 109+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMinQty :: FIXTag+tMinQty = FIXTag +   { tName = "MinQty"+   , tnum = 110+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMaxFloor :: FIXTag+tMaxFloor = FIXTag +   { tName = "MaxFloor"+   , tnum = 111+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTestReqID :: FIXTag+tTestReqID = FIXTag +   { tName = "TestReqID"+   , tnum = 112+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tReportToExch :: FIXTag+tReportToExch = FIXTag +   { tName = "ReportToExch"+   , tnum = 113+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLocateReqd :: FIXTag+tLocateReqd = FIXTag +   { tName = "LocateReqd"+   , tnum = 114+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOnBehalfOfCompID :: FIXTag+tOnBehalfOfCompID = FIXTag +   { tName = "OnBehalfOfCompID"+   , tnum = 115+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOnBehalfOfSubID :: FIXTag+tOnBehalfOfSubID = FIXTag +   { tName = "OnBehalfOfSubID"+   , tnum = 116+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tQuoteID :: FIXTag+tQuoteID = FIXTag +   { tName = "QuoteID"+   , tnum = 117+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNetMoney :: FIXTag+tNetMoney = FIXTag +   { tName = "NetMoney"+   , tnum = 118+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlCurrAmt :: FIXTag+tSettlCurrAmt = FIXTag +   { tName = "SettlCurrAmt"+   , tnum = 119+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlCurrency :: FIXTag+tSettlCurrency = FIXTag +   { tName = "SettlCurrency"+   , tnum = 120+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tForexReq :: FIXTag+tForexReq = FIXTag +   { tName = "ForexReq"+   , tnum = 121+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOrigSendingTime :: FIXTag+tOrigSendingTime = FIXTag +   { tName = "OrigSendingTime"+   , tnum = 122+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tGapFillFlag :: FIXTag+tGapFillFlag = FIXTag +   { tName = "GapFillFlag"+   , tnum = 123+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoExecs :: FIXTag+tNoExecs = FIXTag +   { tName = "NoExecs"+   , tnum = 124+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCxlType :: FIXTag+tCxlType = FIXTag +   { tName = "CxlType"+   , tnum = 125+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tExpireTime :: FIXTag+tExpireTime = FIXTag +   { tName = "ExpireTime"+   , tnum = 126+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tDKReason :: FIXTag+tDKReason = FIXTag +   { tName = "DKReason"+   , tnum = 127+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tDeliverToCompID :: FIXTag+tDeliverToCompID = FIXTag +   { tName = "DeliverToCompID"+   , tnum = 128+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tDeliverToSubID :: FIXTag+tDeliverToSubID = FIXTag +   { tName = "DeliverToSubID"+   , tnum = 129+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tIOINaturalFlag :: FIXTag+tIOINaturalFlag = FIXTag +   { tName = "IOINaturalFlag"+   , tnum = 130+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tQuoteReqID :: FIXTag+tQuoteReqID = FIXTag +   { tName = "QuoteReqID"+   , tnum = 131+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tBidPx :: FIXTag+tBidPx = FIXTag +   { tName = "BidPx"+   , tnum = 132+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOfferPx :: FIXTag+tOfferPx = FIXTag +   { tName = "OfferPx"+   , tnum = 133+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBidSize :: FIXTag+tBidSize = FIXTag +   { tName = "BidSize"+   , tnum = 134+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOfferSize :: FIXTag+tOfferSize = FIXTag +   { tName = "OfferSize"+   , tnum = 135+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoMiscFees :: FIXTag+tNoMiscFees = FIXTag +   { tName = "NoMiscFees"+   , tnum = 136+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMiscFeeAmt :: FIXTag+tMiscFeeAmt = FIXTag +   { tName = "MiscFeeAmt"+   , tnum = 137+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMiscFeeCurr :: FIXTag+tMiscFeeCurr = FIXTag +   { tName = "MiscFeeCurr"+   , tnum = 138+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMiscFeeType :: FIXTag+tMiscFeeType = FIXTag +   { tName = "MiscFeeType"+   , tnum = 139+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tPrevClosePx :: FIXTag+tPrevClosePx = FIXTag +   { tName = "PrevClosePx"+   , tnum = 140+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tResetSeqNumFlag :: FIXTag+tResetSeqNumFlag = FIXTag +   { tName = "ResetSeqNumFlag"+   , tnum = 141+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSenderLocationID :: FIXTag+tSenderLocationID = FIXTag +   { tName = "SenderLocationID"+   , tnum = 142+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tTargetLocationID :: FIXTag+tTargetLocationID = FIXTag +   { tName = "TargetLocationID"+   , tnum = 143+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOnBehalfOfLocationID :: FIXTag+tOnBehalfOfLocationID = FIXTag +   { tName = "OnBehalfOfLocationID"+   , tnum = 144+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tDeliverToLocationID :: FIXTag+tDeliverToLocationID = FIXTag +   { tName = "DeliverToLocationID"+   , tnum = 145+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoRelatedSym :: FIXTag+tNoRelatedSym = FIXTag +   { tName = "NoRelatedSym"+   , tnum = 146+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSubject :: FIXTag+tSubject = FIXTag +   { tName = "Subject"+   , tnum = 147+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tHeadline :: FIXTag+tHeadline = FIXTag +   { tName = "Headline"+   , tnum = 148+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tURLLink :: FIXTag+tURLLink = FIXTag +   { tName = "URLLink"+   , tnum = 149+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tExecType :: FIXTag+tExecType = FIXTag +   { tName = "ExecType"+   , tnum = 150+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLeavesQty :: FIXTag+tLeavesQty = FIXTag +   { tName = "LeavesQty"+   , tnum = 151+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCashOrderQty :: FIXTag+tCashOrderQty = FIXTag +   { tName = "CashOrderQty"+   , tnum = 152+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAllocAvgPx :: FIXTag+tAllocAvgPx = FIXTag +   { tName = "AllocAvgPx"+   , tnum = 153+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAllocNetMoney :: FIXTag+tAllocNetMoney = FIXTag +   { tName = "AllocNetMoney"+   , tnum = 154+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlCurrFxRate :: FIXTag+tSettlCurrFxRate = FIXTag +   { tName = "SettlCurrFxRate"+   , tnum = 155+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlCurrFxRateCalc :: FIXTag+tSettlCurrFxRateCalc = FIXTag +   { tName = "SettlCurrFxRateCalc"+   , tnum = 156+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNumDaysInterest :: FIXTag+tNumDaysInterest = FIXTag +   { tName = "NumDaysInterest"+   , tnum = 157+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAccruedInterestRate :: FIXTag+tAccruedInterestRate = FIXTag +   { tName = "AccruedInterestRate"+   , tnum = 158+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAccruedInterestAmt :: FIXTag+tAccruedInterestAmt = FIXTag +   { tName = "AccruedInterestAmt"+   , tnum = 159+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlInstMode :: FIXTag+tSettlInstMode = FIXTag +   { tName = "SettlInstMode"+   , tnum = 160+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAllocText :: FIXTag+tAllocText = FIXTag +   { tName = "AllocText"+   , tnum = 161+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSettlInstID :: FIXTag+tSettlInstID = FIXTag +   { tName = "SettlInstID"+   , tnum = 162+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSettlInstTransType :: FIXTag+tSettlInstTransType = FIXTag +   { tName = "SettlInstTransType"+   , tnum = 163+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tEmailThreadID :: FIXTag+tEmailThreadID = FIXTag +   { tName = "EmailThreadID"+   , tnum = 164+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSettlInstSource :: FIXTag+tSettlInstSource = FIXTag +   { tName = "SettlInstSource"+   , tnum = 165+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSettlLocation :: FIXTag+tSettlLocation = FIXTag +   { tName = "SettlLocation"+   , tnum = 166+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSecurityType :: FIXTag+tSecurityType = FIXTag +   { tName = "SecurityType"+   , tnum = 167+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tEffectiveTime :: FIXTag+tEffectiveTime = FIXTag +   { tName = "EffectiveTime"+   , tnum = 168+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tStandInstDbType :: FIXTag+tStandInstDbType = FIXTag +   { tName = "StandInstDbType"+   , tnum = 169+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tStandInstDbName :: FIXTag+tStandInstDbName = FIXTag +   { tName = "StandInstDbName"+   , tnum = 170+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tStandInstDbID :: FIXTag+tStandInstDbID = FIXTag +   { tName = "StandInstDbID"+   , tnum = 171+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSettlDeliveryType :: FIXTag+tSettlDeliveryType = FIXTag +   { tName = "SettlDeliveryType"+   , tnum = 172+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSettlDepositoryCode :: FIXTag+tSettlDepositoryCode = FIXTag +   { tName = "SettlDepositoryCode"+   , tnum = 173+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSettlBrkrCode :: FIXTag+tSettlBrkrCode = FIXTag +   { tName = "SettlBrkrCode"+   , tnum = 174+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSettlInstCode :: FIXTag+tSettlInstCode = FIXTag +   { tName = "SettlInstCode"+   , tnum = 175+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSecuritySettlAgentName :: FIXTag+tSecuritySettlAgentName = FIXTag +   { tName = "SecuritySettlAgentName"+   , tnum = 176+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSecuritySettlAgentCode :: FIXTag+tSecuritySettlAgentCode = FIXTag +   { tName = "SecuritySettlAgentCode"+   , tnum = 177+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSecuritySettlAgentAcctNum :: FIXTag+tSecuritySettlAgentAcctNum = FIXTag +   { tName = "SecuritySettlAgentAcctNum"+   , tnum = 178+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSecuritySettlAgentAcctName :: FIXTag+tSecuritySettlAgentAcctName = FIXTag +   { tName = "SecuritySettlAgentAcctName"+   , tnum = 179+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSecuritySettlAgentContactName :: FIXTag+tSecuritySettlAgentContactName = FIXTag +   { tName = "SecuritySettlAgentContactName"+   , tnum = 180+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSecuritySettlAgentContactPhone :: FIXTag+tSecuritySettlAgentContactPhone = FIXTag +   { tName = "SecuritySettlAgentContactPhone"+   , tnum = 181+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCashSettlAgentName :: FIXTag+tCashSettlAgentName = FIXTag +   { tName = "CashSettlAgentName"+   , tnum = 182+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCashSettlAgentCode :: FIXTag+tCashSettlAgentCode = FIXTag +   { tName = "CashSettlAgentCode"+   , tnum = 183+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCashSettlAgentAcctNum :: FIXTag+tCashSettlAgentAcctNum = FIXTag +   { tName = "CashSettlAgentAcctNum"+   , tnum = 184+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCashSettlAgentAcctName :: FIXTag+tCashSettlAgentAcctName = FIXTag +   { tName = "CashSettlAgentAcctName"+   , tnum = 185+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCashSettlAgentContactName :: FIXTag+tCashSettlAgentContactName = FIXTag +   { tName = "CashSettlAgentContactName"+   , tnum = 186+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCashSettlAgentContactPhone :: FIXTag+tCashSettlAgentContactPhone = FIXTag +   { tName = "CashSettlAgentContactPhone"+   , tnum = 187+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tBidSpotRate :: FIXTag+tBidSpotRate = FIXTag +   { tName = "BidSpotRate"+   , tnum = 188+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBidForwardPoints :: FIXTag+tBidForwardPoints = FIXTag +   { tName = "BidForwardPoints"+   , tnum = 189+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOfferSpotRate :: FIXTag+tOfferSpotRate = FIXTag +   { tName = "OfferSpotRate"+   , tnum = 190+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOfferForwardPoints :: FIXTag+tOfferForwardPoints = FIXTag +   { tName = "OfferForwardPoints"+   , tnum = 191+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOrderQty2 :: FIXTag+tOrderQty2 = FIXTag +   { tName = "OrderQty2"+   , tnum = 192+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tFutSettDate2 :: FIXTag+tFutSettDate2 = FIXTag +   { tName = "FutSettDate2"+   , tnum = 193+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tLastSpotRate :: FIXTag+tLastSpotRate = FIXTag +   { tName = "LastSpotRate"+   , tnum = 194+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLastForwardPoints :: FIXTag+tLastForwardPoints = FIXTag +   { tName = "LastForwardPoints"+   , tnum = 195+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAllocLinkID :: FIXTag+tAllocLinkID = FIXTag +   { tName = "AllocLinkID"+   , tnum = 196+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAllocLinkType :: FIXTag+tAllocLinkType = FIXTag +   { tName = "AllocLinkType"+   , tnum = 197+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecondaryOrderID :: FIXTag+tSecondaryOrderID = FIXTag +   { tName = "SecondaryOrderID"+   , tnum = 198+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoIOIQualifiers :: FIXTag+tNoIOIQualifiers = FIXTag +   { tName = "NoIOIQualifiers"+   , tnum = 199+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMaturityMonthYear :: FIXTag+tMaturityMonthYear = FIXTag +   { tName = "MaturityMonthYear"+   , tnum = 200+   , tparser = toFIXMonthYear+   , arbitraryValue = FIXMonthYear <$> arbitrary }++tPutOrCall :: FIXTag+tPutOrCall = FIXTag +   { tName = "PutOrCall"+   , tnum = 201+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tStrikePrice :: FIXTag+tStrikePrice = FIXTag +   { tName = "StrikePrice"+   , tnum = 202+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCoveredOrUncovered :: FIXTag+tCoveredOrUncovered = FIXTag +   { tName = "CoveredOrUncovered"+   , tnum = 203+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCustomerOrFirm :: FIXTag+tCustomerOrFirm = FIXTag +   { tName = "CustomerOrFirm"+   , tnum = 204+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMaturityDay :: FIXTag+tMaturityDay = FIXTag +   { tName = "MaturityDay"+   , tnum = 205+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOptAttribute :: FIXTag+tOptAttribute = FIXTag +   { tName = "OptAttribute"+   , tnum = 206+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSecurityExchange :: FIXTag+tSecurityExchange = FIXTag +   { tName = "SecurityExchange"+   , tnum = 207+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNotifyBrokerOfCredit :: FIXTag+tNotifyBrokerOfCredit = FIXTag +   { tName = "NotifyBrokerOfCredit"+   , tnum = 208+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAllocHandlInst :: FIXTag+tAllocHandlInst = FIXTag +   { tName = "AllocHandlInst"+   , tnum = 209+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMaxShow :: FIXTag+tMaxShow = FIXTag +   { tName = "MaxShow"+   , tnum = 210+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPegDifference :: FIXTag+tPegDifference = FIXTag +   { tName = "PegDifference"+   , tnum = 211+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++headerFIX41 :: FIXTags+headerFIX41 = +   LT.insert (tnum tSenderCompID) tSenderCompID $+   LT.insert (tnum tTargetCompID) tTargetCompID $+   LT.insert (tnum tOnBehalfOfCompID) tOnBehalfOfCompID $+   LT.insert (tnum tDeliverToCompID) tDeliverToCompID $+   LT.insert (tnum tSecureDataLen) tSecureDataLen $+   LT.insert (tnum tSecureData) tSecureData $+   LT.insert (tnum tMsgSeqNum) tMsgSeqNum $+   LT.insert (tnum tSenderSubID) tSenderSubID $+   LT.insert (tnum tSenderLocationID) tSenderLocationID $+   LT.insert (tnum tTargetSubID) tTargetSubID $+   LT.insert (tnum tTargetLocationID) tTargetLocationID $+   LT.insert (tnum tOnBehalfOfSubID) tOnBehalfOfSubID $+   LT.insert (tnum tOnBehalfOfLocationID) tOnBehalfOfLocationID $+   LT.insert (tnum tDeliverToSubID) tDeliverToSubID $+   LT.insert (tnum tDeliverToLocationID) tDeliverToLocationID $+   LT.insert (tnum tPossDupFlag) tPossDupFlag $+   LT.insert (tnum tPossResend) tPossResend $+   LT.insert (tnum tSendingTime) tSendingTime $+   LT.insert (tnum tOrigSendingTime) tOrigSendingTime    LT.new+++trailerFIX41 :: FIXTags+trailerFIX41 = +   LT.insert (tnum tSignatureLength) tSignatureLength $+   LT.insert (tnum tSignature) tSignature    LT.new+++mHeartbeat :: FIXMessageSpec+mHeartbeat = FMSpec+   { msName = "Heartbeat"+   , msType = C.pack "0"+   , msHeader = headerFIX41+   , msBody = mHeartbeatBody+   , msTrailer = trailerFIX41 }+   where+   mHeartbeatBody = +      LT.insert (tnum tTestReqID) tTestReqID       LT.new+++mTestRequest :: FIXMessageSpec+mTestRequest = FMSpec+   { msName = "TestRequest"+   , msType = C.pack "1"+   , msHeader = headerFIX41+   , msBody = mTestRequestBody+   , msTrailer = trailerFIX41 }+   where+   mTestRequestBody = +      LT.insert (tnum tTestReqID) tTestReqID       LT.new+++mResendRequest :: FIXMessageSpec+mResendRequest = FMSpec+   { msName = "ResendRequest"+   , msType = C.pack "2"+   , msHeader = headerFIX41+   , msBody = mResendRequestBody+   , msTrailer = trailerFIX41 }+   where+   mResendRequestBody = +      LT.insert (tnum tBeginSeqNo) tBeginSeqNo $+      LT.insert (tnum tEndSeqNo) tEndSeqNo       LT.new+++mReject :: FIXMessageSpec+mReject = FMSpec+   { msName = "Reject"+   , msType = C.pack "3"+   , msHeader = headerFIX41+   , msBody = mRejectBody+   , msTrailer = trailerFIX41 }+   where+   mRejectBody = +      LT.insert (tnum tRefSeqNum) tRefSeqNum $+      LT.insert (tnum tText) tText       LT.new+++mSequenceReset :: FIXMessageSpec+mSequenceReset = FMSpec+   { msName = "SequenceReset"+   , msType = C.pack "4"+   , msHeader = headerFIX41+   , msBody = mSequenceResetBody+   , msTrailer = trailerFIX41 }+   where+   mSequenceResetBody = +      LT.insert (tnum tGapFillFlag) tGapFillFlag $+      LT.insert (tnum tNewSeqNo) tNewSeqNo       LT.new+++mLogout :: FIXMessageSpec+mLogout = FMSpec+   { msName = "Logout"+   , msType = C.pack "5"+   , msHeader = headerFIX41+   , msBody = mLogoutBody+   , msTrailer = trailerFIX41 }+   where+   mLogoutBody = +      LT.insert (tnum tText) tText       LT.new+++mIndicationofInterest :: FIXMessageSpec+mIndicationofInterest = FMSpec+   { msName = "IndicationofInterest"+   , msType = C.pack "6"+   , msHeader = headerFIX41+   , msBody = mIndicationofInterestBody+   , msTrailer = trailerFIX41 }+   where+   mIndicationofInterestBody = +      LT.insert (tnum tIOIid) tIOIid $+      LT.insert (tnum tIOITransType) tIOITransType $+      LT.insert (tnum tIOIRefID) tIOIRefID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tIOIShares) tIOIShares $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tValidUntilTime) tValidUntilTime $+      LT.insert (tnum tIOIQltyInd) tIOIQltyInd $+      LT.insert (tnum tIOIOthSvc) tIOIOthSvc $+      LT.insert (tnum tIOINaturalFlag) tIOINaturalFlag $+      LT.insert (tnum tNoIOIQualifiers) gNoIOIQualifiers''' $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tURLLink) tURLLink       LT.new+      where+         gNoIOIQualifiers''' = FIXTag+            { tName = "NoIOIQualifiers"+            , tnum = tnum tNoIOIQualifiers+            , tparser = gNoIOIQualifiersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoIOIQualifiersSpec''' }++         gNoIOIQualifiersP''' = groupP gNoIOIQualifiersSpec'''+         gNoIOIQualifiersSpec''' = FGSpec+            { gsLength = tNoIOIQualifiers+            , gsSeperator = tIOIQualifier+            , gsBody = gNoIOIQualifiersBody''' }+            where+            gNoIOIQualifiersBody''' = +               LT.new++++mAdvertisement :: FIXMessageSpec+mAdvertisement = FMSpec+   { msName = "Advertisement"+   , msType = C.pack "7"+   , msHeader = headerFIX41+   , msBody = mAdvertisementBody+   , msTrailer = trailerFIX41 }+   where+   mAdvertisementBody = +      LT.insert (tnum tAdvId) tAdvId $+      LT.insert (tnum tAdvTransType) tAdvTransType $+      LT.insert (tnum tAdvRefID) tAdvRefID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tAdvSide) tAdvSide $+      LT.insert (tnum tShares) tShares $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tURLLink) tURLLink $+      LT.insert (tnum tLastMkt) tLastMkt       LT.new+++mExecutionReport :: FIXMessageSpec+mExecutionReport = FMSpec+   { msName = "ExecutionReport"+   , msType = C.pack "8"+   , msHeader = headerFIX41+   , msBody = mExecutionReportBody+   , msTrailer = trailerFIX41 }+   where+   mExecutionReportBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tExecID) tExecID $+      LT.insert (tnum tExecTransType) tExecTransType $+      LT.insert (tnum tExecRefID) tExecRefID $+      LT.insert (tnum tExecType) tExecType $+      LT.insert (tnum tOrdStatus) tOrdStatus $+      LT.insert (tnum tOrdRejReason) tOrdRejReason $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tPegDifference) tPegDifference $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tRule80A) tRule80A $+      LT.insert (tnum tLastShares) tLastShares $+      LT.insert (tnum tLastPx) tLastPx $+      LT.insert (tnum tLastSpotRate) tLastSpotRate $+      LT.insert (tnum tLastForwardPoints) tLastForwardPoints $+      LT.insert (tnum tLastMkt) tLastMkt $+      LT.insert (tnum tLastCapacity) tLastCapacity $+      LT.insert (tnum tLeavesQty) tLeavesQty $+      LT.insert (tnum tCumQty) tCumQty $+      LT.insert (tnum tAvgPx) tAvgPx $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tReportToExch) tReportToExch $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tSettlCurrFxRate) tSettlCurrFxRate $+      LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $+      LT.insert (tnum tText) tText       LT.new+++mOrderCancelReject :: FIXMessageSpec+mOrderCancelReject = FMSpec+   { msName = "OrderCancelReject"+   , msType = C.pack "9"+   , msHeader = headerFIX41+   , msBody = mOrderCancelRejectBody+   , msTrailer = trailerFIX41 }+   where+   mOrderCancelRejectBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+      LT.insert (tnum tOrdStatus) tOrdStatus $+      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tCxlRejReason) tCxlRejReason $+      LT.insert (tnum tText) tText       LT.new+++mLogon :: FIXMessageSpec+mLogon = FMSpec+   { msName = "Logon"+   , msType = C.pack "A"+   , msHeader = headerFIX41+   , msBody = mLogonBody+   , msTrailer = trailerFIX41 }+   where+   mLogonBody = +      LT.insert (tnum tEncryptMethod) tEncryptMethod $+      LT.insert (tnum tHeartBtInt) tHeartBtInt $+      LT.insert (tnum tRawDataLength) tRawDataLength $+      LT.insert (tnum tRawData) tRawData $+      LT.insert (tnum tResetSeqNumFlag) tResetSeqNumFlag       LT.new+++mNews :: FIXMessageSpec+mNews = FMSpec+   { msName = "News"+   , msType = C.pack "B"+   , msHeader = headerFIX41+   , msBody = mNewsBody+   , msTrailer = trailerFIX41 }+   where+   mNewsBody = +      LT.insert (tnum tOrigTime) tOrigTime $+      LT.insert (tnum tUrgency) tUrgency $+      LT.insert (tnum tHeadline) tHeadline $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym''' $+      LT.insert (tnum tLinesOfText) gLinesOfText''' $+      LT.insert (tnum tURLLink) tURLLink $+      LT.insert (tnum tRawDataLength) tRawDataLength $+      LT.insert (tnum tRawData) tRawData       LT.new+      where+         gLinesOfText''' = FIXTag+            { tName = "LinesOfText"+            , tnum = tnum tLinesOfText+            , tparser = gLinesOfTextP'''+            , arbitraryValue = arbibtraryFIXGroup gLinesOfTextSpec''' }++         gLinesOfTextP''' = groupP gLinesOfTextSpec'''+         gLinesOfTextSpec''' = FGSpec+            { gsLength = tLinesOfText+            , gsSeperator = tText+            , gsBody = gLinesOfTextBody''' }+            where+            gLinesOfTextBody''' = +               LT.new++         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tRelatdSym+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tIDSource) tIDSource $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDay) tMaturityDay $+               LT.insert (tnum tPutOrCall) tPutOrCall $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc                LT.new++++mEmail :: FIXMessageSpec+mEmail = FMSpec+   { msName = "Email"+   , msType = C.pack "C"+   , msHeader = headerFIX41+   , msBody = mEmailBody+   , msTrailer = trailerFIX41 }+   where+   mEmailBody = +      LT.insert (tnum tEmailThreadID) tEmailThreadID $+      LT.insert (tnum tEmailType) tEmailType $+      LT.insert (tnum tOrigTime) tOrigTime $+      LT.insert (tnum tSubject) tSubject $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym''' $+      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tLinesOfText) gLinesOfText''' $+      LT.insert (tnum tRawDataLength) tRawDataLength $+      LT.insert (tnum tRawData) tRawData       LT.new+      where+         gLinesOfText''' = FIXTag+            { tName = "LinesOfText"+            , tnum = tnum tLinesOfText+            , tparser = gLinesOfTextP'''+            , arbitraryValue = arbibtraryFIXGroup gLinesOfTextSpec''' }++         gLinesOfTextP''' = groupP gLinesOfTextSpec'''+         gLinesOfTextSpec''' = FGSpec+            { gsLength = tLinesOfText+            , gsSeperator = tText+            , gsBody = gLinesOfTextBody''' }+            where+            gLinesOfTextBody''' = +               LT.new++         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tRelatdSym+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tIDSource) tIDSource $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDay) tMaturityDay $+               LT.insert (tnum tPutOrCall) tPutOrCall $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc                LT.new++++mNewOrderSingle :: FIXMessageSpec+mNewOrderSingle = FMSpec+   { msName = "NewOrderSingle"+   , msType = C.pack "D"+   , msHeader = headerFIX41+   , msBody = mNewOrderSingleBody+   , msTrailer = trailerFIX41 }+   where+   mNewOrderSingleBody = +      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tProcessCode) tProcessCode $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tPrevClosePx) tPrevClosePx $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tLocateReqd) tLocateReqd $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tIOIid) tIOIid $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tRule80A) tRule80A $+      LT.insert (tnum tForexReq) tForexReq $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tFutSettDate2) tFutSettDate2 $+      LT.insert (tnum tOrderQty2) tOrderQty2 $+      LT.insert (tnum tOpenClose) tOpenClose $+      LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+      LT.insert (tnum tCustomerOrFirm) tCustomerOrFirm $+      LT.insert (tnum tMaxShow) tMaxShow $+      LT.insert (tnum tPegDifference) tPegDifference       LT.new+++mNewOrderList :: FIXMessageSpec+mNewOrderList = FMSpec+   { msName = "NewOrderList"+   , msType = C.pack "E"+   , msHeader = headerFIX41+   , msBody = mNewOrderListBody+   , msTrailer = trailerFIX41 }+   where+   mNewOrderListBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tWaveNo) tWaveNo $+      LT.insert (tnum tListSeqNo) tListSeqNo $+      LT.insert (tnum tListNoOrds) tListNoOrds $+      LT.insert (tnum tListExecInst) tListExecInst $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tProcessCode) tProcessCode $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tPrevClosePx) tPrevClosePx $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tLocateReqd) tLocateReqd $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tPegDifference) tPegDifference $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tRule80A) tRule80A $+      LT.insert (tnum tForexReq) tForexReq $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tFutSettDate2) tFutSettDate2 $+      LT.insert (tnum tOrderQty2) tOrderQty2 $+      LT.insert (tnum tOpenClose) tOpenClose $+      LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+      LT.insert (tnum tCustomerOrFirm) tCustomerOrFirm $+      LT.insert (tnum tMaxShow) tMaxShow       LT.new+++mOrderCancelRequest :: FIXMessageSpec+mOrderCancelRequest = FMSpec+   { msName = "OrderCancelRequest"+   , msType = C.pack "F"+   , msHeader = headerFIX41+   , msBody = mOrderCancelRequestBody+   , msTrailer = trailerFIX41 }+   where+   mOrderCancelRequestBody = +      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tText) tText       LT.new+++mOrderCancelReplaceRequest :: FIXMessageSpec+mOrderCancelReplaceRequest = FMSpec+   { msName = "OrderCancelReplaceRequest"+   , msType = C.pack "G"+   , msHeader = headerFIX41+   , msBody = mOrderCancelReplaceRequestBody+   , msTrailer = trailerFIX41 }+   where+   mOrderCancelReplaceRequestBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tPegDifference) tPegDifference $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tRule80A) tRule80A $+      LT.insert (tnum tForexReq) tForexReq $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tFutSettDate2) tFutSettDate2 $+      LT.insert (tnum tOrderQty2) tOrderQty2 $+      LT.insert (tnum tOpenClose) tOpenClose $+      LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+      LT.insert (tnum tCustomerOrFirm) tCustomerOrFirm $+      LT.insert (tnum tMaxShow) tMaxShow $+      LT.insert (tnum tLocateReqd) tLocateReqd       LT.new+++mOrderStatusRequest :: FIXMessageSpec+mOrderStatusRequest = FMSpec+   { msName = "OrderStatusRequest"+   , msType = C.pack "H"+   , msHeader = headerFIX41+   , msBody = mOrderStatusRequestBody+   , msTrailer = trailerFIX41 }+   where+   mOrderStatusRequestBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tSide) tSide       LT.new+++mAllocation :: FIXMessageSpec+mAllocation = FMSpec+   { msName = "Allocation"+   , msType = C.pack "J"+   , msHeader = headerFIX41+   , msBody = mAllocationBody+   , msTrailer = trailerFIX41 }+   where+   mAllocationBody = +      LT.insert (tnum tAllocID) tAllocID $+      LT.insert (tnum tAllocTransType) tAllocTransType $+      LT.insert (tnum tRefAllocID) tRefAllocID $+      LT.insert (tnum tAllocLinkID) tAllocLinkID $+      LT.insert (tnum tAllocLinkType) tAllocLinkType $+      LT.insert (tnum tNoOrders) gNoOrders''' $+      LT.insert (tnum tNoExecs) gNoExecs''' $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tShares) tShares $+      LT.insert (tnum tLastMkt) tLastMkt $+      LT.insert (tnum tAvgPx) tAvgPx $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tAvgPrxPrecision) tAvgPrxPrecision $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tNetMoney) tNetMoney $+      LT.insert (tnum tOpenClose) tOpenClose $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tNumDaysInterest) tNumDaysInterest $+      LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $+      LT.insert (tnum tNoAllocs) gNoAllocs'''       LT.new+      where+         gNoAllocs''' = FIXTag+            { tName = "NoAllocs"+            , tnum = tnum tNoAllocs+            , tparser = gNoAllocsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }++         gNoAllocsP''' = groupP gNoAllocsSpec'''+         gNoAllocsSpec''' = FGSpec+            { gsLength = tNoAllocs+            , gsSeperator = tAllocAccount+            , gsBody = gNoAllocsBody''' }+            where+            gNoAllocsBody''' = +               LT.insert (tnum tAllocShares) tAllocShares $+               LT.insert (tnum tProcessCode) tProcessCode $+               LT.insert (tnum tBrokerOfCredit) tBrokerOfCredit $+               LT.insert (tnum tNotifyBrokerOfCredit) tNotifyBrokerOfCredit $+               LT.insert (tnum tAllocHandlInst) tAllocHandlInst $+               LT.insert (tnum tAllocText) tAllocText $+               LT.insert (tnum tExecBroker) tExecBroker $+               LT.insert (tnum tClientID) tClientID $+               LT.insert (tnum tCommission) tCommission $+               LT.insert (tnum tCommType) tCommType $+               LT.insert (tnum tAllocAvgPx) tAllocAvgPx $+               LT.insert (tnum tAllocNetMoney) tAllocNetMoney $+               LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $+               LT.insert (tnum tSettlCurrency) tSettlCurrency $+               LT.insert (tnum tSettlCurrFxRate) tSettlCurrFxRate $+               LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $+               LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+               LT.insert (tnum tSettlInstMode) tSettlInstMode $+               LT.insert (tnum tNoMiscFees) gNoMiscFees''''''                LT.new+               where+                  gNoMiscFees'''''' = FIXTag+                     { tName = "NoMiscFees"+                     , tnum = tnum tNoMiscFees+                     , tparser = gNoMiscFeesP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec'''''' }++                  gNoMiscFeesP'''''' = groupP gNoMiscFeesSpec''''''+                  gNoMiscFeesSpec'''''' = FGSpec+                     { gsLength = tNoMiscFees+                     , gsSeperator = tMiscFeeAmt+                     , gsBody = gNoMiscFeesBody'''''' }+                     where+                     gNoMiscFeesBody'''''' = +                        LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $+                        LT.insert (tnum tMiscFeeType) tMiscFeeType                         LT.new+++         gNoExecs''' = FIXTag+            { tName = "NoExecs"+            , tnum = tnum tNoExecs+            , tparser = gNoExecsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoExecsSpec''' }++         gNoExecsP''' = groupP gNoExecsSpec'''+         gNoExecsSpec''' = FGSpec+            { gsLength = tNoExecs+            , gsSeperator = tLastShares+            , gsBody = gNoExecsBody''' }+            where+            gNoExecsBody''' = +               LT.insert (tnum tExecID) tExecID $+               LT.insert (tnum tLastPx) tLastPx $+               LT.insert (tnum tLastCapacity) tLastCapacity                LT.new++         gNoOrders''' = FIXTag+            { tName = "NoOrders"+            , tnum = tnum tNoOrders+            , tparser = gNoOrdersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoOrdersSpec''' }++         gNoOrdersP''' = groupP gNoOrdersSpec'''+         gNoOrdersSpec''' = FGSpec+            { gsLength = tNoOrders+            , gsSeperator = tClOrdID+            , gsBody = gNoOrdersBody''' }+            where+            gNoOrdersBody''' = +               LT.insert (tnum tOrderID) tOrderID $+               LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+               LT.insert (tnum tListID) tListID $+               LT.insert (tnum tWaveNo) tWaveNo                LT.new++++mListCancelRequest :: FIXMessageSpec+mListCancelRequest = FMSpec+   { msName = "ListCancelRequest"+   , msType = C.pack "K"+   , msHeader = headerFIX41+   , msBody = mListCancelRequestBody+   , msTrailer = trailerFIX41 }+   where+   mListCancelRequestBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tWaveNo) tWaveNo $+      LT.insert (tnum tText) tText       LT.new+++mListExecute :: FIXMessageSpec+mListExecute = FMSpec+   { msName = "ListExecute"+   , msType = C.pack "L"+   , msHeader = headerFIX41+   , msBody = mListExecuteBody+   , msTrailer = trailerFIX41 }+   where+   mListExecuteBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tWaveNo) tWaveNo $+      LT.insert (tnum tText) tText       LT.new+++mListStatusRequest :: FIXMessageSpec+mListStatusRequest = FMSpec+   { msName = "ListStatusRequest"+   , msType = C.pack "M"+   , msHeader = headerFIX41+   , msBody = mListStatusRequestBody+   , msTrailer = trailerFIX41 }+   where+   mListStatusRequestBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tWaveNo) tWaveNo $+      LT.insert (tnum tText) tText       LT.new+++mListStatus :: FIXMessageSpec+mListStatus = FMSpec+   { msName = "ListStatus"+   , msType = C.pack "N"+   , msHeader = headerFIX41+   , msBody = mListStatusBody+   , msTrailer = trailerFIX41 }+   where+   mListStatusBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tWaveNo) tWaveNo $+      LT.insert (tnum tNoRpts) tNoRpts $+      LT.insert (tnum tRptSeq) tRptSeq $+      LT.insert (tnum tNoOrders) gNoOrders'''       LT.new+      where+         gNoOrders''' = FIXTag+            { tName = "NoOrders"+            , tnum = tnum tNoOrders+            , tparser = gNoOrdersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoOrdersSpec''' }++         gNoOrdersP''' = groupP gNoOrdersSpec'''+         gNoOrdersSpec''' = FGSpec+            { gsLength = tNoOrders+            , gsSeperator = tClOrdID+            , gsBody = gNoOrdersBody''' }+            where+            gNoOrdersBody''' = +               LT.insert (tnum tCumQty) tCumQty $+               LT.insert (tnum tLeavesQty) tLeavesQty $+               LT.insert (tnum tCxlQty) tCxlQty $+               LT.insert (tnum tAvgPx) tAvgPx                LT.new++++mAllocationACK :: FIXMessageSpec+mAllocationACK = FMSpec+   { msName = "AllocationACK"+   , msType = C.pack "P"+   , msHeader = headerFIX41+   , msBody = mAllocationACKBody+   , msTrailer = trailerFIX41 }+   where+   mAllocationACKBody = +      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tAllocID) tAllocID $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tAllocStatus) tAllocStatus $+      LT.insert (tnum tAllocRejCode) tAllocRejCode $+      LT.insert (tnum tText) tText       LT.new+++mDontKnowTrade :: FIXMessageSpec+mDontKnowTrade = FMSpec+   { msName = "DontKnowTrade"+   , msType = C.pack "Q"+   , msHeader = headerFIX41+   , msBody = mDontKnowTradeBody+   , msTrailer = trailerFIX41 }+   where+   mDontKnowTradeBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tExecID) tExecID $+      LT.insert (tnum tDKReason) tDKReason $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tLastShares) tLastShares $+      LT.insert (tnum tLastPx) tLastPx $+      LT.insert (tnum tText) tText       LT.new+++mQuoteRequest :: FIXMessageSpec+mQuoteRequest = FMSpec+   { msName = "QuoteRequest"+   , msType = C.pack "R"+   , msHeader = headerFIX41+   , msBody = mQuoteRequestBody+   , msTrailer = trailerFIX41 }+   where+   mQuoteRequestBody = +      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tPrevClosePx) tPrevClosePx $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tFutSettDate2) tFutSettDate2 $+      LT.insert (tnum tOrderQty2) tOrderQty2       LT.new+++mQuote :: FIXMessageSpec+mQuote = FMSpec+   { msName = "Quote"+   , msType = C.pack "S"+   , msHeader = headerFIX41+   , msBody = mQuoteBody+   , msTrailer = trailerFIX41 }+   where+   mQuoteBody = +      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tBidPx) tBidPx $+      LT.insert (tnum tOfferPx) tOfferPx $+      LT.insert (tnum tBidSize) tBidSize $+      LT.insert (tnum tOfferSize) tOfferSize $+      LT.insert (tnum tValidUntilTime) tValidUntilTime $+      LT.insert (tnum tBidSpotRate) tBidSpotRate $+      LT.insert (tnum tOfferSpotRate) tOfferSpotRate $+      LT.insert (tnum tBidForwardPoints) tBidForwardPoints $+      LT.insert (tnum tOfferForwardPoints) tOfferForwardPoints $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tFutSettDate2) tFutSettDate2 $+      LT.insert (tnum tOrderQty2) tOrderQty2       LT.new+++mSettlementInstructions :: FIXMessageSpec+mSettlementInstructions = FMSpec+   { msName = "SettlementInstructions"+   , msType = C.pack "T"+   , msHeader = headerFIX41+   , msBody = mSettlementInstructionsBody+   , msTrailer = trailerFIX41 }+   where+   mSettlementInstructionsBody = +      LT.insert (tnum tSettlInstID) tSettlInstID $+      LT.insert (tnum tSettlInstTransType) tSettlInstTransType $+      LT.insert (tnum tSettlInstMode) tSettlInstMode $+      LT.insert (tnum tSettlInstSource) tSettlInstSource $+      LT.insert (tnum tAllocAccount) tAllocAccount $+      LT.insert (tnum tSettlLocation) tSettlLocation $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tAllocID) tAllocID $+      LT.insert (tnum tLastMkt) tLastMkt $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tEffectiveTime) tEffectiveTime $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tStandInstDbType) tStandInstDbType $+      LT.insert (tnum tStandInstDbName) tStandInstDbName $+      LT.insert (tnum tStandInstDbID) tStandInstDbID $+      LT.insert (tnum tSettlDeliveryType) tSettlDeliveryType $+      LT.insert (tnum tSettlDepositoryCode) tSettlDepositoryCode $+      LT.insert (tnum tSettlBrkrCode) tSettlBrkrCode $+      LT.insert (tnum tSettlInstCode) tSettlInstCode $+      LT.insert (tnum tSecuritySettlAgentName) tSecuritySettlAgentName $+      LT.insert (tnum tSecuritySettlAgentCode) tSecuritySettlAgentCode $+      LT.insert (tnum tSecuritySettlAgentAcctNum) tSecuritySettlAgentAcctNum $+      LT.insert (tnum tSecuritySettlAgentAcctName) tSecuritySettlAgentAcctName $+      LT.insert (tnum tSecuritySettlAgentContactName) tSecuritySettlAgentContactName $+      LT.insert (tnum tSecuritySettlAgentContactPhone) tSecuritySettlAgentContactPhone $+      LT.insert (tnum tCashSettlAgentName) tCashSettlAgentName $+      LT.insert (tnum tCashSettlAgentCode) tCashSettlAgentCode $+      LT.insert (tnum tCashSettlAgentAcctNum) tCashSettlAgentAcctNum $+      LT.insert (tnum tCashSettlAgentAcctName) tCashSettlAgentAcctName $+      LT.insert (tnum tCashSettlAgentContactName) tCashSettlAgentContactName $+      LT.insert (tnum tCashSettlAgentContactPhone) tCashSettlAgentContactPhone       LT.new+++fix41 :: FIXSpec+fix41 = FSpec+   { fsVersion = "FIX.4.1"+   , fsHeader = headerFIX41+   , fsTrailer = trailerFIX41+   , fsMessages = fix41Messages +   , fsTags = fix41Tags }+   where+      fix41Messages =+          LT.insert (msType mHeartbeat) mHeartbeat $+          LT.insert (msType mTestRequest) mTestRequest $+          LT.insert (msType mResendRequest) mResendRequest $+          LT.insert (msType mReject) mReject $+          LT.insert (msType mSequenceReset) mSequenceReset $+          LT.insert (msType mLogout) mLogout $+          LT.insert (msType mIndicationofInterest) mIndicationofInterest $+          LT.insert (msType mAdvertisement) mAdvertisement $+          LT.insert (msType mExecutionReport) mExecutionReport $+          LT.insert (msType mOrderCancelReject) mOrderCancelReject $+          LT.insert (msType mLogon) mLogon $+          LT.insert (msType mNews) mNews $+          LT.insert (msType mEmail) mEmail $+          LT.insert (msType mNewOrderSingle) mNewOrderSingle $+          LT.insert (msType mNewOrderList) mNewOrderList $+          LT.insert (msType mOrderCancelRequest) mOrderCancelRequest $+          LT.insert (msType mOrderCancelReplaceRequest) mOrderCancelReplaceRequest $+          LT.insert (msType mOrderStatusRequest) mOrderStatusRequest $+          LT.insert (msType mAllocation) mAllocation $+          LT.insert (msType mListCancelRequest) mListCancelRequest $+          LT.insert (msType mListExecute) mListExecute $+          LT.insert (msType mListStatusRequest) mListStatusRequest $+          LT.insert (msType mListStatus) mListStatus $+          LT.insert (msType mAllocationACK) mAllocationACK $+          LT.insert (msType mDontKnowTrade) mDontKnowTrade $+          LT.insert (msType mQuoteRequest) mQuoteRequest $+          LT.insert (msType mQuote) mQuote $+          LT.insert (msType mSettlementInstructions) mSettlementInstructions           LT.new +      fix41Tags =+          LT.insert (tnum tAccount) tAccount $+          LT.insert (tnum tAdvId) tAdvId $+          LT.insert (tnum tAdvRefID) tAdvRefID $+          LT.insert (tnum tAdvSide) tAdvSide $+          LT.insert (tnum tAdvTransType) tAdvTransType $+          LT.insert (tnum tAvgPx) tAvgPx $+          LT.insert (tnum tBeginSeqNo) tBeginSeqNo $+          LT.insert (tnum tBeginString) tBeginString $+          LT.insert (tnum tBodyLength) tBodyLength $+          LT.insert (tnum tCheckSum) tCheckSum $+          LT.insert (tnum tClOrdID) tClOrdID $+          LT.insert (tnum tCommission) tCommission $+          LT.insert (tnum tCommType) tCommType $+          LT.insert (tnum tCumQty) tCumQty $+          LT.insert (tnum tCurrency) tCurrency $+          LT.insert (tnum tEndSeqNo) tEndSeqNo $+          LT.insert (tnum tExecID) tExecID $+          LT.insert (tnum tExecInst) tExecInst $+          LT.insert (tnum tExecRefID) tExecRefID $+          LT.insert (tnum tExecTransType) tExecTransType $+          LT.insert (tnum tHandlInst) tHandlInst $+          LT.insert (tnum tIDSource) tIDSource $+          LT.insert (tnum tIOIid) tIOIid $+          LT.insert (tnum tIOIOthSvc) tIOIOthSvc $+          LT.insert (tnum tIOIQltyInd) tIOIQltyInd $+          LT.insert (tnum tIOIRefID) tIOIRefID $+          LT.insert (tnum tIOIShares) tIOIShares $+          LT.insert (tnum tIOITransType) tIOITransType $+          LT.insert (tnum tLastCapacity) tLastCapacity $+          LT.insert (tnum tLastMkt) tLastMkt $+          LT.insert (tnum tLastPx) tLastPx $+          LT.insert (tnum tLastShares) tLastShares $+          LT.insert (tnum tLinesOfText) tLinesOfText $+          LT.insert (tnum tMsgSeqNum) tMsgSeqNum $+          LT.insert (tnum tMsgType) tMsgType $+          LT.insert (tnum tNewSeqNo) tNewSeqNo $+          LT.insert (tnum tOrderID) tOrderID $+          LT.insert (tnum tOrderQty) tOrderQty $+          LT.insert (tnum tOrdStatus) tOrdStatus $+          LT.insert (tnum tOrdType) tOrdType $+          LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+          LT.insert (tnum tOrigTime) tOrigTime $+          LT.insert (tnum tPossDupFlag) tPossDupFlag $+          LT.insert (tnum tPrice) tPrice $+          LT.insert (tnum tRefSeqNum) tRefSeqNum $+          LT.insert (tnum tRelatdSym) tRelatdSym $+          LT.insert (tnum tRule80A) tRule80A $+          LT.insert (tnum tSecurityID) tSecurityID $+          LT.insert (tnum tSenderCompID) tSenderCompID $+          LT.insert (tnum tSenderSubID) tSenderSubID $+          LT.insert (tnum tSendingDate) tSendingDate $+          LT.insert (tnum tSendingTime) tSendingTime $+          LT.insert (tnum tShares) tShares $+          LT.insert (tnum tSide) tSide $+          LT.insert (tnum tSymbol) tSymbol $+          LT.insert (tnum tTargetCompID) tTargetCompID $+          LT.insert (tnum tTargetSubID) tTargetSubID $+          LT.insert (tnum tText) tText $+          LT.insert (tnum tTimeInForce) tTimeInForce $+          LT.insert (tnum tTransactTime) tTransactTime $+          LT.insert (tnum tUrgency) tUrgency $+          LT.insert (tnum tValidUntilTime) tValidUntilTime $+          LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+          LT.insert (tnum tFutSettDate) tFutSettDate $+          LT.insert (tnum tSymbolSfx) tSymbolSfx $+          LT.insert (tnum tListID) tListID $+          LT.insert (tnum tListSeqNo) tListSeqNo $+          LT.insert (tnum tListNoOrds) tListNoOrds $+          LT.insert (tnum tListExecInst) tListExecInst $+          LT.insert (tnum tAllocID) tAllocID $+          LT.insert (tnum tAllocTransType) tAllocTransType $+          LT.insert (tnum tRefAllocID) tRefAllocID $+          LT.insert (tnum tNoOrders) tNoOrders $+          LT.insert (tnum tAvgPrxPrecision) tAvgPrxPrecision $+          LT.insert (tnum tTradeDate) tTradeDate $+          LT.insert (tnum tExecBroker) tExecBroker $+          LT.insert (tnum tOpenClose) tOpenClose $+          LT.insert (tnum tNoAllocs) tNoAllocs $+          LT.insert (tnum tAllocAccount) tAllocAccount $+          LT.insert (tnum tAllocShares) tAllocShares $+          LT.insert (tnum tProcessCode) tProcessCode $+          LT.insert (tnum tNoRpts) tNoRpts $+          LT.insert (tnum tRptSeq) tRptSeq $+          LT.insert (tnum tCxlQty) tCxlQty $+          LT.insert (tnum tNoDlvyInst) tNoDlvyInst $+          LT.insert (tnum tDlvyInst) tDlvyInst $+          LT.insert (tnum tAllocStatus) tAllocStatus $+          LT.insert (tnum tAllocRejCode) tAllocRejCode $+          LT.insert (tnum tSignature) tSignature $+          LT.insert (tnum tSecureDataLen) tSecureDataLen $+          LT.insert (tnum tSecureData) tSecureData $+          LT.insert (tnum tBrokerOfCredit) tBrokerOfCredit $+          LT.insert (tnum tSignatureLength) tSignatureLength $+          LT.insert (tnum tEmailType) tEmailType $+          LT.insert (tnum tRawDataLength) tRawDataLength $+          LT.insert (tnum tRawData) tRawData $+          LT.insert (tnum tPossResend) tPossResend $+          LT.insert (tnum tEncryptMethod) tEncryptMethod $+          LT.insert (tnum tStopPx) tStopPx $+          LT.insert (tnum tExDestination) tExDestination $+          LT.insert (tnum tCxlRejReason) tCxlRejReason $+          LT.insert (tnum tOrdRejReason) tOrdRejReason $+          LT.insert (tnum tIOIQualifier) tIOIQualifier $+          LT.insert (tnum tWaveNo) tWaveNo $+          LT.insert (tnum tIssuer) tIssuer $+          LT.insert (tnum tSecurityDesc) tSecurityDesc $+          LT.insert (tnum tHeartBtInt) tHeartBtInt $+          LT.insert (tnum tClientID) tClientID $+          LT.insert (tnum tMinQty) tMinQty $+          LT.insert (tnum tMaxFloor) tMaxFloor $+          LT.insert (tnum tTestReqID) tTestReqID $+          LT.insert (tnum tReportToExch) tReportToExch $+          LT.insert (tnum tLocateReqd) tLocateReqd $+          LT.insert (tnum tOnBehalfOfCompID) tOnBehalfOfCompID $+          LT.insert (tnum tOnBehalfOfSubID) tOnBehalfOfSubID $+          LT.insert (tnum tQuoteID) tQuoteID $+          LT.insert (tnum tNetMoney) tNetMoney $+          LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $+          LT.insert (tnum tSettlCurrency) tSettlCurrency $+          LT.insert (tnum tForexReq) tForexReq $+          LT.insert (tnum tOrigSendingTime) tOrigSendingTime $+          LT.insert (tnum tGapFillFlag) tGapFillFlag $+          LT.insert (tnum tNoExecs) tNoExecs $+          LT.insert (tnum tCxlType) tCxlType $+          LT.insert (tnum tExpireTime) tExpireTime $+          LT.insert (tnum tDKReason) tDKReason $+          LT.insert (tnum tDeliverToCompID) tDeliverToCompID $+          LT.insert (tnum tDeliverToSubID) tDeliverToSubID $+          LT.insert (tnum tIOINaturalFlag) tIOINaturalFlag $+          LT.insert (tnum tQuoteReqID) tQuoteReqID $+          LT.insert (tnum tBidPx) tBidPx $+          LT.insert (tnum tOfferPx) tOfferPx $+          LT.insert (tnum tBidSize) tBidSize $+          LT.insert (tnum tOfferSize) tOfferSize $+          LT.insert (tnum tNoMiscFees) tNoMiscFees $+          LT.insert (tnum tMiscFeeAmt) tMiscFeeAmt $+          LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $+          LT.insert (tnum tMiscFeeType) tMiscFeeType $+          LT.insert (tnum tPrevClosePx) tPrevClosePx $+          LT.insert (tnum tResetSeqNumFlag) tResetSeqNumFlag $+          LT.insert (tnum tSenderLocationID) tSenderLocationID $+          LT.insert (tnum tTargetLocationID) tTargetLocationID $+          LT.insert (tnum tOnBehalfOfLocationID) tOnBehalfOfLocationID $+          LT.insert (tnum tDeliverToLocationID) tDeliverToLocationID $+          LT.insert (tnum tNoRelatedSym) tNoRelatedSym $+          LT.insert (tnum tSubject) tSubject $+          LT.insert (tnum tHeadline) tHeadline $+          LT.insert (tnum tURLLink) tURLLink $+          LT.insert (tnum tExecType) tExecType $+          LT.insert (tnum tLeavesQty) tLeavesQty $+          LT.insert (tnum tCashOrderQty) tCashOrderQty $+          LT.insert (tnum tAllocAvgPx) tAllocAvgPx $+          LT.insert (tnum tAllocNetMoney) tAllocNetMoney $+          LT.insert (tnum tSettlCurrFxRate) tSettlCurrFxRate $+          LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $+          LT.insert (tnum tNumDaysInterest) tNumDaysInterest $+          LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $+          LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+          LT.insert (tnum tSettlInstMode) tSettlInstMode $+          LT.insert (tnum tAllocText) tAllocText $+          LT.insert (tnum tSettlInstID) tSettlInstID $+          LT.insert (tnum tSettlInstTransType) tSettlInstTransType $+          LT.insert (tnum tEmailThreadID) tEmailThreadID $+          LT.insert (tnum tSettlInstSource) tSettlInstSource $+          LT.insert (tnum tSettlLocation) tSettlLocation $+          LT.insert (tnum tSecurityType) tSecurityType $+          LT.insert (tnum tEffectiveTime) tEffectiveTime $+          LT.insert (tnum tStandInstDbType) tStandInstDbType $+          LT.insert (tnum tStandInstDbName) tStandInstDbName $+          LT.insert (tnum tStandInstDbID) tStandInstDbID $+          LT.insert (tnum tSettlDeliveryType) tSettlDeliveryType $+          LT.insert (tnum tSettlDepositoryCode) tSettlDepositoryCode $+          LT.insert (tnum tSettlBrkrCode) tSettlBrkrCode $+          LT.insert (tnum tSettlInstCode) tSettlInstCode $+          LT.insert (tnum tSecuritySettlAgentName) tSecuritySettlAgentName $+          LT.insert (tnum tSecuritySettlAgentCode) tSecuritySettlAgentCode $+          LT.insert (tnum tSecuritySettlAgentAcctNum) tSecuritySettlAgentAcctNum $+          LT.insert (tnum tSecuritySettlAgentAcctName) tSecuritySettlAgentAcctName $+          LT.insert (tnum tSecuritySettlAgentContactName) tSecuritySettlAgentContactName $+          LT.insert (tnum tSecuritySettlAgentContactPhone) tSecuritySettlAgentContactPhone $+          LT.insert (tnum tCashSettlAgentName) tCashSettlAgentName $+          LT.insert (tnum tCashSettlAgentCode) tCashSettlAgentCode $+          LT.insert (tnum tCashSettlAgentAcctNum) tCashSettlAgentAcctNum $+          LT.insert (tnum tCashSettlAgentAcctName) tCashSettlAgentAcctName $+          LT.insert (tnum tCashSettlAgentContactName) tCashSettlAgentContactName $+          LT.insert (tnum tCashSettlAgentContactPhone) tCashSettlAgentContactPhone $+          LT.insert (tnum tBidSpotRate) tBidSpotRate $+          LT.insert (tnum tBidForwardPoints) tBidForwardPoints $+          LT.insert (tnum tOfferSpotRate) tOfferSpotRate $+          LT.insert (tnum tOfferForwardPoints) tOfferForwardPoints $+          LT.insert (tnum tOrderQty2) tOrderQty2 $+          LT.insert (tnum tFutSettDate2) tFutSettDate2 $+          LT.insert (tnum tLastSpotRate) tLastSpotRate $+          LT.insert (tnum tLastForwardPoints) tLastForwardPoints $+          LT.insert (tnum tAllocLinkID) tAllocLinkID $+          LT.insert (tnum tAllocLinkType) tAllocLinkType $+          LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+          LT.insert (tnum tNoIOIQualifiers) tNoIOIQualifiers $+          LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+          LT.insert (tnum tPutOrCall) tPutOrCall $+          LT.insert (tnum tStrikePrice) tStrikePrice $+          LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+          LT.insert (tnum tCustomerOrFirm) tCustomerOrFirm $+          LT.insert (tnum tMaturityDay) tMaturityDay $+          LT.insert (tnum tOptAttribute) tOptAttribute $+          LT.insert (tnum tSecurityExchange) tSecurityExchange $+          LT.insert (tnum tNotifyBrokerOfCredit) tNotifyBrokerOfCredit $+          LT.insert (tnum tAllocHandlInst) tAllocHandlInst $+          LT.insert (tnum tMaxShow) tMaxShow $+          LT.insert (tnum tPegDifference) tPegDifference $+          LT.new 
+ src/Data/FIX/Spec/FIX42.hs view
@@ -0,0 +1,5738 @@+module Data.FIX.Spec.FIX42 ( fix42 ) where+import qualified Data.ByteString.Char8 as C+import qualified Data.LookupTable as LT ( new, insert )+import Data.FIX.Message+import Data.FIX.Parser+import Data.Functor ( (<$>) )+import Data.FIX.Arbitrary +import Test.QuickCheck ( arbitrary )+++tAccount :: FIXTag+tAccount = FIXTag +   { tName = "Account"+   , tnum = 1+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAdvId :: FIXTag+tAdvId = FIXTag +   { tName = "AdvId"+   , tnum = 2+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAdvRefID :: FIXTag+tAdvRefID = FIXTag +   { tName = "AdvRefID"+   , tnum = 3+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAdvSide :: FIXTag+tAdvSide = FIXTag +   { tName = "AdvSide"+   , tnum = 4+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAdvTransType :: FIXTag+tAdvTransType = FIXTag +   { tName = "AdvTransType"+   , tnum = 5+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAvgPx :: FIXTag+tAvgPx = FIXTag +   { tName = "AvgPx"+   , tnum = 6+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBeginSeqNo :: FIXTag+tBeginSeqNo = FIXTag +   { tName = "BeginSeqNo"+   , tnum = 7+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tClOrdID :: FIXTag+tClOrdID = FIXTag +   { tName = "ClOrdID"+   , tnum = 11+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCommission :: FIXTag+tCommission = FIXTag +   { tName = "Commission"+   , tnum = 12+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCommType :: FIXTag+tCommType = FIXTag +   { tName = "CommType"+   , tnum = 13+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCumQty :: FIXTag+tCumQty = FIXTag +   { tName = "CumQty"+   , tnum = 14+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCurrency :: FIXTag+tCurrency = FIXTag +   { tName = "Currency"+   , tnum = 15+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tEndSeqNo :: FIXTag+tEndSeqNo = FIXTag +   { tName = "EndSeqNo"+   , tnum = 16+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tExecID :: FIXTag+tExecID = FIXTag +   { tName = "ExecID"+   , tnum = 17+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tExecInst :: FIXTag+tExecInst = FIXTag +   { tName = "ExecInst"+   , tnum = 18+   , tparser = toFIXMultipleValueString+   , arbitraryValue = FIXMultipleValueString <$> arbitrary }++tExecRefID :: FIXTag+tExecRefID = FIXTag +   { tName = "ExecRefID"+   , tnum = 19+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tExecTransType :: FIXTag+tExecTransType = FIXTag +   { tName = "ExecTransType"+   , tnum = 20+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tHandlInst :: FIXTag+tHandlInst = FIXTag +   { tName = "HandlInst"+   , tnum = 21+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tIDSource :: FIXTag+tIDSource = FIXTag +   { tName = "IDSource"+   , tnum = 22+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tIOIid :: FIXTag+tIOIid = FIXTag +   { tName = "IOIid"+   , tnum = 23+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tIOIQltyInd :: FIXTag+tIOIQltyInd = FIXTag +   { tName = "IOIQltyInd"+   , tnum = 25+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tIOIRefID :: FIXTag+tIOIRefID = FIXTag +   { tName = "IOIRefID"+   , tnum = 26+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tIOIShares :: FIXTag+tIOIShares = FIXTag +   { tName = "IOIShares"+   , tnum = 27+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tIOITransType :: FIXTag+tIOITransType = FIXTag +   { tName = "IOITransType"+   , tnum = 28+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLastCapacity :: FIXTag+tLastCapacity = FIXTag +   { tName = "LastCapacity"+   , tnum = 29+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLastMkt :: FIXTag+tLastMkt = FIXTag +   { tName = "LastMkt"+   , tnum = 30+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLastPx :: FIXTag+tLastPx = FIXTag +   { tName = "LastPx"+   , tnum = 31+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLastShares :: FIXTag+tLastShares = FIXTag +   { tName = "LastShares"+   , tnum = 32+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLinesOfText :: FIXTag+tLinesOfText = FIXTag +   { tName = "LinesOfText"+   , tnum = 33+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMsgSeqNum :: FIXTag+tMsgSeqNum = FIXTag +   { tName = "MsgSeqNum"+   , tnum = 34+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNewSeqNo :: FIXTag+tNewSeqNo = FIXTag +   { tName = "NewSeqNo"+   , tnum = 36+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOrderID :: FIXTag+tOrderID = FIXTag +   { tName = "OrderID"+   , tnum = 37+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tOrderQty :: FIXTag+tOrderQty = FIXTag +   { tName = "OrderQty"+   , tnum = 38+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOrdStatus :: FIXTag+tOrdStatus = FIXTag +   { tName = "OrdStatus"+   , tnum = 39+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOrdType :: FIXTag+tOrdType = FIXTag +   { tName = "OrdType"+   , tnum = 40+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOrigClOrdID :: FIXTag+tOrigClOrdID = FIXTag +   { tName = "OrigClOrdID"+   , tnum = 41+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tOrigTime :: FIXTag+tOrigTime = FIXTag +   { tName = "OrigTime"+   , tnum = 42+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tPossDupFlag :: FIXTag+tPossDupFlag = FIXTag +   { tName = "PossDupFlag"+   , tnum = 43+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tPrice :: FIXTag+tPrice = FIXTag +   { tName = "Price"+   , tnum = 44+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tRefSeqNum :: FIXTag+tRefSeqNum = FIXTag +   { tName = "RefSeqNum"+   , tnum = 45+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRelatdSym :: FIXTag+tRelatdSym = FIXTag +   { tName = "RelatdSym"+   , tnum = 46+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tRule80A :: FIXTag+tRule80A = FIXTag +   { tName = "Rule80A"+   , tnum = 47+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSecurityID :: FIXTag+tSecurityID = FIXTag +   { tName = "SecurityID"+   , tnum = 48+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSenderCompID :: FIXTag+tSenderCompID = FIXTag +   { tName = "SenderCompID"+   , tnum = 49+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSenderSubID :: FIXTag+tSenderSubID = FIXTag +   { tName = "SenderSubID"+   , tnum = 50+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSendingTime :: FIXTag+tSendingTime = FIXTag +   { tName = "SendingTime"+   , tnum = 52+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tShares :: FIXTag+tShares = FIXTag +   { tName = "Shares"+   , tnum = 53+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSide :: FIXTag+tSide = FIXTag +   { tName = "Side"+   , tnum = 54+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSymbol :: FIXTag+tSymbol = FIXTag +   { tName = "Symbol"+   , tnum = 55+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTargetCompID :: FIXTag+tTargetCompID = FIXTag +   { tName = "TargetCompID"+   , tnum = 56+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTargetSubID :: FIXTag+tTargetSubID = FIXTag +   { tName = "TargetSubID"+   , tnum = 57+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tText :: FIXTag+tText = FIXTag +   { tName = "Text"+   , tnum = 58+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTimeInForce :: FIXTag+tTimeInForce = FIXTag +   { tName = "TimeInForce"+   , tnum = 59+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tTransactTime :: FIXTag+tTransactTime = FIXTag +   { tName = "TransactTime"+   , tnum = 60+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tUrgency :: FIXTag+tUrgency = FIXTag +   { tName = "Urgency"+   , tnum = 61+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tValidUntilTime :: FIXTag+tValidUntilTime = FIXTag +   { tName = "ValidUntilTime"+   , tnum = 62+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tSettlmntTyp :: FIXTag+tSettlmntTyp = FIXTag +   { tName = "SettlmntTyp"+   , tnum = 63+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tFutSettDate :: FIXTag+tFutSettDate = FIXTag +   { tName = "FutSettDate"+   , tnum = 64+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tSymbolSfx :: FIXTag+tSymbolSfx = FIXTag +   { tName = "SymbolSfx"+   , tnum = 65+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tListID :: FIXTag+tListID = FIXTag +   { tName = "ListID"+   , tnum = 66+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tListSeqNo :: FIXTag+tListSeqNo = FIXTag +   { tName = "ListSeqNo"+   , tnum = 67+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTotNoOrders :: FIXTag+tTotNoOrders = FIXTag +   { tName = "TotNoOrders"+   , tnum = 68+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tListExecInst :: FIXTag+tListExecInst = FIXTag +   { tName = "ListExecInst"+   , tnum = 69+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAllocID :: FIXTag+tAllocID = FIXTag +   { tName = "AllocID"+   , tnum = 70+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAllocTransType :: FIXTag+tAllocTransType = FIXTag +   { tName = "AllocTransType"+   , tnum = 71+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tRefAllocID :: FIXTag+tRefAllocID = FIXTag +   { tName = "RefAllocID"+   , tnum = 72+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoOrders :: FIXTag+tNoOrders = FIXTag +   { tName = "NoOrders"+   , tnum = 73+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAvgPrxPrecision :: FIXTag+tAvgPrxPrecision = FIXTag +   { tName = "AvgPrxPrecision"+   , tnum = 74+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradeDate :: FIXTag+tTradeDate = FIXTag +   { tName = "TradeDate"+   , tnum = 75+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tExecBroker :: FIXTag+tExecBroker = FIXTag +   { tName = "ExecBroker"+   , tnum = 76+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tOpenClose :: FIXTag+tOpenClose = FIXTag +   { tName = "OpenClose"+   , tnum = 77+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoAllocs :: FIXTag+tNoAllocs = FIXTag +   { tName = "NoAllocs"+   , tnum = 78+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAllocAccount :: FIXTag+tAllocAccount = FIXTag +   { tName = "AllocAccount"+   , tnum = 79+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAllocShares :: FIXTag+tAllocShares = FIXTag +   { tName = "AllocShares"+   , tnum = 80+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tProcessCode :: FIXTag+tProcessCode = FIXTag +   { tName = "ProcessCode"+   , tnum = 81+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoRpts :: FIXTag+tNoRpts = FIXTag +   { tName = "NoRpts"+   , tnum = 82+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRptSeq :: FIXTag+tRptSeq = FIXTag +   { tName = "RptSeq"+   , tnum = 83+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCxlQty :: FIXTag+tCxlQty = FIXTag +   { tName = "CxlQty"+   , tnum = 84+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAllocStatus :: FIXTag+tAllocStatus = FIXTag +   { tName = "AllocStatus"+   , tnum = 87+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAllocRejCode :: FIXTag+tAllocRejCode = FIXTag +   { tName = "AllocRejCode"+   , tnum = 88+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSignature :: FIXTag+tSignature = FIXTag +   { tName = "Signature"+   , tnum = 89+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tSecureDataLen :: FIXTag+tSecureDataLen = FIXTag +   { tName = "SecureDataLen"+   , tnum = 90+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecureData :: FIXTag+tSecureData = FIXTag +   { tName = "SecureData"+   , tnum = 91+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tBrokerOfCredit :: FIXTag+tBrokerOfCredit = FIXTag +   { tName = "BrokerOfCredit"+   , tnum = 92+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSignatureLength :: FIXTag+tSignatureLength = FIXTag +   { tName = "SignatureLength"+   , tnum = 93+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEmailType :: FIXTag+tEmailType = FIXTag +   { tName = "EmailType"+   , tnum = 94+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tRawDataLength :: FIXTag+tRawDataLength = FIXTag +   { tName = "RawDataLength"+   , tnum = 95+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRawData :: FIXTag+tRawData = FIXTag +   { tName = "RawData"+   , tnum = 96+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tPossResend :: FIXTag+tPossResend = FIXTag +   { tName = "PossResend"+   , tnum = 97+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tEncryptMethod :: FIXTag+tEncryptMethod = FIXTag +   { tName = "EncryptMethod"+   , tnum = 98+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tStopPx :: FIXTag+tStopPx = FIXTag +   { tName = "StopPx"+   , tnum = 99+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tExDestination :: FIXTag+tExDestination = FIXTag +   { tName = "ExDestination"+   , tnum = 100+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCxlRejReason :: FIXTag+tCxlRejReason = FIXTag +   { tName = "CxlRejReason"+   , tnum = 102+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOrdRejReason :: FIXTag+tOrdRejReason = FIXTag +   { tName = "OrdRejReason"+   , tnum = 103+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tIOIQualifier :: FIXTag+tIOIQualifier = FIXTag +   { tName = "IOIQualifier"+   , tnum = 104+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tWaveNo :: FIXTag+tWaveNo = FIXTag +   { tName = "WaveNo"+   , tnum = 105+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tIssuer :: FIXTag+tIssuer = FIXTag +   { tName = "Issuer"+   , tnum = 106+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecurityDesc :: FIXTag+tSecurityDesc = FIXTag +   { tName = "SecurityDesc"+   , tnum = 107+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tHeartBtInt :: FIXTag+tHeartBtInt = FIXTag +   { tName = "HeartBtInt"+   , tnum = 108+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tClientID :: FIXTag+tClientID = FIXTag +   { tName = "ClientID"+   , tnum = 109+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMinQty :: FIXTag+tMinQty = FIXTag +   { tName = "MinQty"+   , tnum = 110+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMaxFloor :: FIXTag+tMaxFloor = FIXTag +   { tName = "MaxFloor"+   , tnum = 111+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tTestReqID :: FIXTag+tTestReqID = FIXTag +   { tName = "TestReqID"+   , tnum = 112+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tReportToExch :: FIXTag+tReportToExch = FIXTag +   { tName = "ReportToExch"+   , tnum = 113+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tLocateReqd :: FIXTag+tLocateReqd = FIXTag +   { tName = "LocateReqd"+   , tnum = 114+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tOnBehalfOfCompID :: FIXTag+tOnBehalfOfCompID = FIXTag +   { tName = "OnBehalfOfCompID"+   , tnum = 115+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tOnBehalfOfSubID :: FIXTag+tOnBehalfOfSubID = FIXTag +   { tName = "OnBehalfOfSubID"+   , tnum = 116+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tQuoteID :: FIXTag+tQuoteID = FIXTag +   { tName = "QuoteID"+   , tnum = 117+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNetMoney :: FIXTag+tNetMoney = FIXTag +   { tName = "NetMoney"+   , tnum = 118+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlCurrAmt :: FIXTag+tSettlCurrAmt = FIXTag +   { tName = "SettlCurrAmt"+   , tnum = 119+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlCurrency :: FIXTag+tSettlCurrency = FIXTag +   { tName = "SettlCurrency"+   , tnum = 120+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tForexReq :: FIXTag+tForexReq = FIXTag +   { tName = "ForexReq"+   , tnum = 121+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tOrigSendingTime :: FIXTag+tOrigSendingTime = FIXTag +   { tName = "OrigSendingTime"+   , tnum = 122+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tGapFillFlag :: FIXTag+tGapFillFlag = FIXTag +   { tName = "GapFillFlag"+   , tnum = 123+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tNoExecs :: FIXTag+tNoExecs = FIXTag +   { tName = "NoExecs"+   , tnum = 124+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tExpireTime :: FIXTag+tExpireTime = FIXTag +   { tName = "ExpireTime"+   , tnum = 126+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tDKReason :: FIXTag+tDKReason = FIXTag +   { tName = "DKReason"+   , tnum = 127+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tDeliverToCompID :: FIXTag+tDeliverToCompID = FIXTag +   { tName = "DeliverToCompID"+   , tnum = 128+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tDeliverToSubID :: FIXTag+tDeliverToSubID = FIXTag +   { tName = "DeliverToSubID"+   , tnum = 129+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tIOINaturalFlag :: FIXTag+tIOINaturalFlag = FIXTag +   { tName = "IOINaturalFlag"+   , tnum = 130+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tQuoteReqID :: FIXTag+tQuoteReqID = FIXTag +   { tName = "QuoteReqID"+   , tnum = 131+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tBidPx :: FIXTag+tBidPx = FIXTag +   { tName = "BidPx"+   , tnum = 132+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOfferPx :: FIXTag+tOfferPx = FIXTag +   { tName = "OfferPx"+   , tnum = 133+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBidSize :: FIXTag+tBidSize = FIXTag +   { tName = "BidSize"+   , tnum = 134+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOfferSize :: FIXTag+tOfferSize = FIXTag +   { tName = "OfferSize"+   , tnum = 135+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoMiscFees :: FIXTag+tNoMiscFees = FIXTag +   { tName = "NoMiscFees"+   , tnum = 136+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMiscFeeAmt :: FIXTag+tMiscFeeAmt = FIXTag +   { tName = "MiscFeeAmt"+   , tnum = 137+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMiscFeeCurr :: FIXTag+tMiscFeeCurr = FIXTag +   { tName = "MiscFeeCurr"+   , tnum = 138+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMiscFeeType :: FIXTag+tMiscFeeType = FIXTag +   { tName = "MiscFeeType"+   , tnum = 139+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tPrevClosePx :: FIXTag+tPrevClosePx = FIXTag +   { tName = "PrevClosePx"+   , tnum = 140+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tResetSeqNumFlag :: FIXTag+tResetSeqNumFlag = FIXTag +   { tName = "ResetSeqNumFlag"+   , tnum = 141+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tSenderLocationID :: FIXTag+tSenderLocationID = FIXTag +   { tName = "SenderLocationID"+   , tnum = 142+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTargetLocationID :: FIXTag+tTargetLocationID = FIXTag +   { tName = "TargetLocationID"+   , tnum = 143+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tOnBehalfOfLocationID :: FIXTag+tOnBehalfOfLocationID = FIXTag +   { tName = "OnBehalfOfLocationID"+   , tnum = 144+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tDeliverToLocationID :: FIXTag+tDeliverToLocationID = FIXTag +   { tName = "DeliverToLocationID"+   , tnum = 145+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoRelatedSym :: FIXTag+tNoRelatedSym = FIXTag +   { tName = "NoRelatedSym"+   , tnum = 146+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSubject :: FIXTag+tSubject = FIXTag +   { tName = "Subject"+   , tnum = 147+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tHeadline :: FIXTag+tHeadline = FIXTag +   { tName = "Headline"+   , tnum = 148+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tURLLink :: FIXTag+tURLLink = FIXTag +   { tName = "URLLink"+   , tnum = 149+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tExecType :: FIXTag+tExecType = FIXTag +   { tName = "ExecType"+   , tnum = 150+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLeavesQty :: FIXTag+tLeavesQty = FIXTag +   { tName = "LeavesQty"+   , tnum = 151+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCashOrderQty :: FIXTag+tCashOrderQty = FIXTag +   { tName = "CashOrderQty"+   , tnum = 152+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAllocAvgPx :: FIXTag+tAllocAvgPx = FIXTag +   { tName = "AllocAvgPx"+   , tnum = 153+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAllocNetMoney :: FIXTag+tAllocNetMoney = FIXTag +   { tName = "AllocNetMoney"+   , tnum = 154+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlCurrFxRate :: FIXTag+tSettlCurrFxRate = FIXTag +   { tName = "SettlCurrFxRate"+   , tnum = 155+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlCurrFxRateCalc :: FIXTag+tSettlCurrFxRateCalc = FIXTag +   { tName = "SettlCurrFxRateCalc"+   , tnum = 156+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNumDaysInterest :: FIXTag+tNumDaysInterest = FIXTag +   { tName = "NumDaysInterest"+   , tnum = 157+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAccruedInterestRate :: FIXTag+tAccruedInterestRate = FIXTag +   { tName = "AccruedInterestRate"+   , tnum = 158+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAccruedInterestAmt :: FIXTag+tAccruedInterestAmt = FIXTag +   { tName = "AccruedInterestAmt"+   , tnum = 159+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlInstMode :: FIXTag+tSettlInstMode = FIXTag +   { tName = "SettlInstMode"+   , tnum = 160+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAllocText :: FIXTag+tAllocText = FIXTag +   { tName = "AllocText"+   , tnum = 161+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlInstID :: FIXTag+tSettlInstID = FIXTag +   { tName = "SettlInstID"+   , tnum = 162+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlInstTransType :: FIXTag+tSettlInstTransType = FIXTag +   { tName = "SettlInstTransType"+   , tnum = 163+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tEmailThreadID :: FIXTag+tEmailThreadID = FIXTag +   { tName = "EmailThreadID"+   , tnum = 164+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlInstSource :: FIXTag+tSettlInstSource = FIXTag +   { tName = "SettlInstSource"+   , tnum = 165+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSettlLocation :: FIXTag+tSettlLocation = FIXTag +   { tName = "SettlLocation"+   , tnum = 166+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecurityType :: FIXTag+tSecurityType = FIXTag +   { tName = "SecurityType"+   , tnum = 167+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tEffectiveTime :: FIXTag+tEffectiveTime = FIXTag +   { tName = "EffectiveTime"+   , tnum = 168+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tStandInstDbType :: FIXTag+tStandInstDbType = FIXTag +   { tName = "StandInstDbType"+   , tnum = 169+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tStandInstDbName :: FIXTag+tStandInstDbName = FIXTag +   { tName = "StandInstDbName"+   , tnum = 170+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tStandInstDbID :: FIXTag+tStandInstDbID = FIXTag +   { tName = "StandInstDbID"+   , tnum = 171+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlDeliveryType :: FIXTag+tSettlDeliveryType = FIXTag +   { tName = "SettlDeliveryType"+   , tnum = 172+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSettlDepositoryCode :: FIXTag+tSettlDepositoryCode = FIXTag +   { tName = "SettlDepositoryCode"+   , tnum = 173+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlBrkrCode :: FIXTag+tSettlBrkrCode = FIXTag +   { tName = "SettlBrkrCode"+   , tnum = 174+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlInstCode :: FIXTag+tSettlInstCode = FIXTag +   { tName = "SettlInstCode"+   , tnum = 175+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecuritySettlAgentName :: FIXTag+tSecuritySettlAgentName = FIXTag +   { tName = "SecuritySettlAgentName"+   , tnum = 176+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecuritySettlAgentCode :: FIXTag+tSecuritySettlAgentCode = FIXTag +   { tName = "SecuritySettlAgentCode"+   , tnum = 177+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecuritySettlAgentAcctNum :: FIXTag+tSecuritySettlAgentAcctNum = FIXTag +   { tName = "SecuritySettlAgentAcctNum"+   , tnum = 178+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecuritySettlAgentAcctName :: FIXTag+tSecuritySettlAgentAcctName = FIXTag +   { tName = "SecuritySettlAgentAcctName"+   , tnum = 179+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecuritySettlAgentContactName :: FIXTag+tSecuritySettlAgentContactName = FIXTag +   { tName = "SecuritySettlAgentContactName"+   , tnum = 180+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecuritySettlAgentContactPhone :: FIXTag+tSecuritySettlAgentContactPhone = FIXTag +   { tName = "SecuritySettlAgentContactPhone"+   , tnum = 181+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashSettlAgentName :: FIXTag+tCashSettlAgentName = FIXTag +   { tName = "CashSettlAgentName"+   , tnum = 182+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashSettlAgentCode :: FIXTag+tCashSettlAgentCode = FIXTag +   { tName = "CashSettlAgentCode"+   , tnum = 183+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashSettlAgentAcctNum :: FIXTag+tCashSettlAgentAcctNum = FIXTag +   { tName = "CashSettlAgentAcctNum"+   , tnum = 184+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashSettlAgentAcctName :: FIXTag+tCashSettlAgentAcctName = FIXTag +   { tName = "CashSettlAgentAcctName"+   , tnum = 185+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashSettlAgentContactName :: FIXTag+tCashSettlAgentContactName = FIXTag +   { tName = "CashSettlAgentContactName"+   , tnum = 186+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashSettlAgentContactPhone :: FIXTag+tCashSettlAgentContactPhone = FIXTag +   { tName = "CashSettlAgentContactPhone"+   , tnum = 187+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tBidSpotRate :: FIXTag+tBidSpotRate = FIXTag +   { tName = "BidSpotRate"+   , tnum = 188+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBidForwardPoints :: FIXTag+tBidForwardPoints = FIXTag +   { tName = "BidForwardPoints"+   , tnum = 189+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOfferSpotRate :: FIXTag+tOfferSpotRate = FIXTag +   { tName = "OfferSpotRate"+   , tnum = 190+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOfferForwardPoints :: FIXTag+tOfferForwardPoints = FIXTag +   { tName = "OfferForwardPoints"+   , tnum = 191+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOrderQty2 :: FIXTag+tOrderQty2 = FIXTag +   { tName = "OrderQty2"+   , tnum = 192+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tFutSettDate2 :: FIXTag+tFutSettDate2 = FIXTag +   { tName = "FutSettDate2"+   , tnum = 193+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tLastSpotRate :: FIXTag+tLastSpotRate = FIXTag +   { tName = "LastSpotRate"+   , tnum = 194+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLastForwardPoints :: FIXTag+tLastForwardPoints = FIXTag +   { tName = "LastForwardPoints"+   , tnum = 195+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAllocLinkID :: FIXTag+tAllocLinkID = FIXTag +   { tName = "AllocLinkID"+   , tnum = 196+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAllocLinkType :: FIXTag+tAllocLinkType = FIXTag +   { tName = "AllocLinkType"+   , tnum = 197+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecondaryOrderID :: FIXTag+tSecondaryOrderID = FIXTag +   { tName = "SecondaryOrderID"+   , tnum = 198+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoIOIQualifiers :: FIXTag+tNoIOIQualifiers = FIXTag +   { tName = "NoIOIQualifiers"+   , tnum = 199+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMaturityMonthYear :: FIXTag+tMaturityMonthYear = FIXTag +   { tName = "MaturityMonthYear"+   , tnum = 200+   , tparser = toFIXMonthYear+   , arbitraryValue = FIXMonthYear <$> arbitrary }++tPutOrCall :: FIXTag+tPutOrCall = FIXTag +   { tName = "PutOrCall"+   , tnum = 201+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tStrikePrice :: FIXTag+tStrikePrice = FIXTag +   { tName = "StrikePrice"+   , tnum = 202+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCoveredOrUncovered :: FIXTag+tCoveredOrUncovered = FIXTag +   { tName = "CoveredOrUncovered"+   , tnum = 203+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCustomerOrFirm :: FIXTag+tCustomerOrFirm = FIXTag +   { tName = "CustomerOrFirm"+   , tnum = 204+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMaturityDay :: FIXTag+tMaturityDay = FIXTag +   { tName = "MaturityDay"+   , tnum = 205+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOptAttribute :: FIXTag+tOptAttribute = FIXTag +   { tName = "OptAttribute"+   , tnum = 206+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSecurityExchange :: FIXTag+tSecurityExchange = FIXTag +   { tName = "SecurityExchange"+   , tnum = 207+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNotifyBrokerOfCredit :: FIXTag+tNotifyBrokerOfCredit = FIXTag +   { tName = "NotifyBrokerOfCredit"+   , tnum = 208+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tAllocHandlInst :: FIXTag+tAllocHandlInst = FIXTag +   { tName = "AllocHandlInst"+   , tnum = 209+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMaxShow :: FIXTag+tMaxShow = FIXTag +   { tName = "MaxShow"+   , tnum = 210+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tPegDifference :: FIXTag+tPegDifference = FIXTag +   { tName = "PegDifference"+   , tnum = 211+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tXmlDataLen :: FIXTag+tXmlDataLen = FIXTag +   { tName = "XmlDataLen"+   , tnum = 212+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tXmlData :: FIXTag+tXmlData = FIXTag +   { tName = "XmlData"+   , tnum = 213+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tSettlInstRefID :: FIXTag+tSettlInstRefID = FIXTag +   { tName = "SettlInstRefID"+   , tnum = 214+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoRoutingIDs :: FIXTag+tNoRoutingIDs = FIXTag +   { tName = "NoRoutingIDs"+   , tnum = 215+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRoutingType :: FIXTag+tRoutingType = FIXTag +   { tName = "RoutingType"+   , tnum = 216+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRoutingID :: FIXTag+tRoutingID = FIXTag +   { tName = "RoutingID"+   , tnum = 217+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSpreadToBenchmark :: FIXTag+tSpreadToBenchmark = FIXTag +   { tName = "SpreadToBenchmark"+   , tnum = 218+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBenchmark :: FIXTag+tBenchmark = FIXTag +   { tName = "Benchmark"+   , tnum = 219+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCouponRate :: FIXTag+tCouponRate = FIXTag +   { tName = "CouponRate"+   , tnum = 223+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tContractMultiplier :: FIXTag+tContractMultiplier = FIXTag +   { tName = "ContractMultiplier"+   , tnum = 231+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMDReqID :: FIXTag+tMDReqID = FIXTag +   { tName = "MDReqID"+   , tnum = 262+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSubscriptionRequestType :: FIXTag+tSubscriptionRequestType = FIXTag +   { tName = "SubscriptionRequestType"+   , tnum = 263+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMarketDepth :: FIXTag+tMarketDepth = FIXTag +   { tName = "MarketDepth"+   , tnum = 264+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMDUpdateType :: FIXTag+tMDUpdateType = FIXTag +   { tName = "MDUpdateType"+   , tnum = 265+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAggregatedBook :: FIXTag+tAggregatedBook = FIXTag +   { tName = "AggregatedBook"+   , tnum = 266+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tNoMDEntryTypes :: FIXTag+tNoMDEntryTypes = FIXTag +   { tName = "NoMDEntryTypes"+   , tnum = 267+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoMDEntries :: FIXTag+tNoMDEntries = FIXTag +   { tName = "NoMDEntries"+   , tnum = 268+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMDEntryType :: FIXTag+tMDEntryType = FIXTag +   { tName = "MDEntryType"+   , tnum = 269+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMDEntryPx :: FIXTag+tMDEntryPx = FIXTag +   { tName = "MDEntryPx"+   , tnum = 270+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMDEntrySize :: FIXTag+tMDEntrySize = FIXTag +   { tName = "MDEntrySize"+   , tnum = 271+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMDEntryDate :: FIXTag+tMDEntryDate = FIXTag +   { tName = "MDEntryDate"+   , tnum = 272+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tMDEntryTime :: FIXTag+tMDEntryTime = FIXTag +   { tName = "MDEntryTime"+   , tnum = 273+   , tparser = toFIXTimeOnly+   , arbitraryValue = FIXTimeOnly <$> arbitrary }++tTickDirection :: FIXTag+tTickDirection = FIXTag +   { tName = "TickDirection"+   , tnum = 274+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMDMkt :: FIXTag+tMDMkt = FIXTag +   { tName = "MDMkt"+   , tnum = 275+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tQuoteCondition :: FIXTag+tQuoteCondition = FIXTag +   { tName = "QuoteCondition"+   , tnum = 276+   , tparser = toFIXMultipleValueString+   , arbitraryValue = FIXMultipleValueString <$> arbitrary }++tTradeCondition :: FIXTag+tTradeCondition = FIXTag +   { tName = "TradeCondition"+   , tnum = 277+   , tparser = toFIXMultipleValueString+   , arbitraryValue = FIXMultipleValueString <$> arbitrary }++tMDEntryID :: FIXTag+tMDEntryID = FIXTag +   { tName = "MDEntryID"+   , tnum = 278+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMDUpdateAction :: FIXTag+tMDUpdateAction = FIXTag +   { tName = "MDUpdateAction"+   , tnum = 279+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMDEntryRefID :: FIXTag+tMDEntryRefID = FIXTag +   { tName = "MDEntryRefID"+   , tnum = 280+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMDReqRejReason :: FIXTag+tMDReqRejReason = FIXTag +   { tName = "MDReqRejReason"+   , tnum = 281+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMDEntryOriginator :: FIXTag+tMDEntryOriginator = FIXTag +   { tName = "MDEntryOriginator"+   , tnum = 282+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLocationID :: FIXTag+tLocationID = FIXTag +   { tName = "LocationID"+   , tnum = 283+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tDeskID :: FIXTag+tDeskID = FIXTag +   { tName = "DeskID"+   , tnum = 284+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tDeleteReason :: FIXTag+tDeleteReason = FIXTag +   { tName = "DeleteReason"+   , tnum = 285+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOpenCloseSettleFlag :: FIXTag+tOpenCloseSettleFlag = FIXTag +   { tName = "OpenCloseSettleFlag"+   , tnum = 286+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSellerDays :: FIXTag+tSellerDays = FIXTag +   { tName = "SellerDays"+   , tnum = 287+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMDEntryBuyer :: FIXTag+tMDEntryBuyer = FIXTag +   { tName = "MDEntryBuyer"+   , tnum = 288+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMDEntrySeller :: FIXTag+tMDEntrySeller = FIXTag +   { tName = "MDEntrySeller"+   , tnum = 289+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMDEntryPositionNo :: FIXTag+tMDEntryPositionNo = FIXTag +   { tName = "MDEntryPositionNo"+   , tnum = 290+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tFinancialStatus :: FIXTag+tFinancialStatus = FIXTag +   { tName = "FinancialStatus"+   , tnum = 291+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCorporateAction :: FIXTag+tCorporateAction = FIXTag +   { tName = "CorporateAction"+   , tnum = 292+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tDefBidSize :: FIXTag+tDefBidSize = FIXTag +   { tName = "DefBidSize"+   , tnum = 293+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tDefOfferSize :: FIXTag+tDefOfferSize = FIXTag +   { tName = "DefOfferSize"+   , tnum = 294+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoQuoteEntries :: FIXTag+tNoQuoteEntries = FIXTag +   { tName = "NoQuoteEntries"+   , tnum = 295+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoQuoteSets :: FIXTag+tNoQuoteSets = FIXTag +   { tName = "NoQuoteSets"+   , tnum = 296+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tQuoteAckStatus :: FIXTag+tQuoteAckStatus = FIXTag +   { tName = "QuoteAckStatus"+   , tnum = 297+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tQuoteCancelType :: FIXTag+tQuoteCancelType = FIXTag +   { tName = "QuoteCancelType"+   , tnum = 298+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tQuoteEntryID :: FIXTag+tQuoteEntryID = FIXTag +   { tName = "QuoteEntryID"+   , tnum = 299+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tQuoteRejectReason :: FIXTag+tQuoteRejectReason = FIXTag +   { tName = "QuoteRejectReason"+   , tnum = 300+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tQuoteResponseLevel :: FIXTag+tQuoteResponseLevel = FIXTag +   { tName = "QuoteResponseLevel"+   , tnum = 301+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tQuoteSetID :: FIXTag+tQuoteSetID = FIXTag +   { tName = "QuoteSetID"+   , tnum = 302+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tQuoteRequestType :: FIXTag+tQuoteRequestType = FIXTag +   { tName = "QuoteRequestType"+   , tnum = 303+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTotQuoteEntries :: FIXTag+tTotQuoteEntries = FIXTag +   { tName = "TotQuoteEntries"+   , tnum = 304+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUnderlyingIDSource :: FIXTag+tUnderlyingIDSource = FIXTag +   { tName = "UnderlyingIDSource"+   , tnum = 305+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingIssuer :: FIXTag+tUnderlyingIssuer = FIXTag +   { tName = "UnderlyingIssuer"+   , tnum = 306+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingSecurityDesc :: FIXTag+tUnderlyingSecurityDesc = FIXTag +   { tName = "UnderlyingSecurityDesc"+   , tnum = 307+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingSecurityExchange :: FIXTag+tUnderlyingSecurityExchange = FIXTag +   { tName = "UnderlyingSecurityExchange"+   , tnum = 308+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingSecurityID :: FIXTag+tUnderlyingSecurityID = FIXTag +   { tName = "UnderlyingSecurityID"+   , tnum = 309+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingSecurityType :: FIXTag+tUnderlyingSecurityType = FIXTag +   { tName = "UnderlyingSecurityType"+   , tnum = 310+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingSymbol :: FIXTag+tUnderlyingSymbol = FIXTag +   { tName = "UnderlyingSymbol"+   , tnum = 311+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingSymbolSfx :: FIXTag+tUnderlyingSymbolSfx = FIXTag +   { tName = "UnderlyingSymbolSfx"+   , tnum = 312+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingMaturityMonthYear :: FIXTag+tUnderlyingMaturityMonthYear = FIXTag +   { tName = "UnderlyingMaturityMonthYear"+   , tnum = 313+   , tparser = toFIXMonthYear+   , arbitraryValue = FIXMonthYear <$> arbitrary }++tUnderlyingMaturityDay :: FIXTag+tUnderlyingMaturityDay = FIXTag +   { tName = "UnderlyingMaturityDay"+   , tnum = 314+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUnderlyingPutOrCall :: FIXTag+tUnderlyingPutOrCall = FIXTag +   { tName = "UnderlyingPutOrCall"+   , tnum = 315+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUnderlyingStrikePrice :: FIXTag+tUnderlyingStrikePrice = FIXTag +   { tName = "UnderlyingStrikePrice"+   , tnum = 316+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tUnderlyingOptAttribute :: FIXTag+tUnderlyingOptAttribute = FIXTag +   { tName = "UnderlyingOptAttribute"+   , tnum = 317+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tUnderlyingCurrency :: FIXTag+tUnderlyingCurrency = FIXTag +   { tName = "UnderlyingCurrency"+   , tnum = 318+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tRatioQty :: FIXTag+tRatioQty = FIXTag +   { tName = "RatioQty"+   , tnum = 319+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSecurityReqID :: FIXTag+tSecurityReqID = FIXTag +   { tName = "SecurityReqID"+   , tnum = 320+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecurityRequestType :: FIXTag+tSecurityRequestType = FIXTag +   { tName = "SecurityRequestType"+   , tnum = 321+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecurityResponseID :: FIXTag+tSecurityResponseID = FIXTag +   { tName = "SecurityResponseID"+   , tnum = 322+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecurityResponseType :: FIXTag+tSecurityResponseType = FIXTag +   { tName = "SecurityResponseType"+   , tnum = 323+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecurityStatusReqID :: FIXTag+tSecurityStatusReqID = FIXTag +   { tName = "SecurityStatusReqID"+   , tnum = 324+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnsolicitedIndicator :: FIXTag+tUnsolicitedIndicator = FIXTag +   { tName = "UnsolicitedIndicator"+   , tnum = 325+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tSecurityTradingStatus :: FIXTag+tSecurityTradingStatus = FIXTag +   { tName = "SecurityTradingStatus"+   , tnum = 326+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tHaltReasonChar :: FIXTag+tHaltReasonChar = FIXTag +   { tName = "HaltReasonChar"+   , tnum = 327+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tInViewOfCommon :: FIXTag+tInViewOfCommon = FIXTag +   { tName = "InViewOfCommon"+   , tnum = 328+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tDueToRelated :: FIXTag+tDueToRelated = FIXTag +   { tName = "DueToRelated"+   , tnum = 329+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tBuyVolume :: FIXTag+tBuyVolume = FIXTag +   { tName = "BuyVolume"+   , tnum = 330+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSellVolume :: FIXTag+tSellVolume = FIXTag +   { tName = "SellVolume"+   , tnum = 331+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tHighPx :: FIXTag+tHighPx = FIXTag +   { tName = "HighPx"+   , tnum = 332+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLowPx :: FIXTag+tLowPx = FIXTag +   { tName = "LowPx"+   , tnum = 333+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAdjustment :: FIXTag+tAdjustment = FIXTag +   { tName = "Adjustment"+   , tnum = 334+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradSesReqID :: FIXTag+tTradSesReqID = FIXTag +   { tName = "TradSesReqID"+   , tnum = 335+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTradingSessionID :: FIXTag+tTradingSessionID = FIXTag +   { tName = "TradingSessionID"+   , tnum = 336+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tContraTrader :: FIXTag+tContraTrader = FIXTag +   { tName = "ContraTrader"+   , tnum = 337+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTradSesMethod :: FIXTag+tTradSesMethod = FIXTag +   { tName = "TradSesMethod"+   , tnum = 338+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradSesMode :: FIXTag+tTradSesMode = FIXTag +   { tName = "TradSesMode"+   , tnum = 339+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradSesStatus :: FIXTag+tTradSesStatus = FIXTag +   { tName = "TradSesStatus"+   , tnum = 340+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradSesStartTime :: FIXTag+tTradSesStartTime = FIXTag +   { tName = "TradSesStartTime"+   , tnum = 341+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tTradSesOpenTime :: FIXTag+tTradSesOpenTime = FIXTag +   { tName = "TradSesOpenTime"+   , tnum = 342+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tTradSesPreCloseTime :: FIXTag+tTradSesPreCloseTime = FIXTag +   { tName = "TradSesPreCloseTime"+   , tnum = 343+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tTradSesCloseTime :: FIXTag+tTradSesCloseTime = FIXTag +   { tName = "TradSesCloseTime"+   , tnum = 344+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tTradSesEndTime :: FIXTag+tTradSesEndTime = FIXTag +   { tName = "TradSesEndTime"+   , tnum = 345+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tNumberOfOrders :: FIXTag+tNumberOfOrders = FIXTag +   { tName = "NumberOfOrders"+   , tnum = 346+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMessageEncoding :: FIXTag+tMessageEncoding = FIXTag +   { tName = "MessageEncoding"+   , tnum = 347+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tEncodedIssuerLen :: FIXTag+tEncodedIssuerLen = FIXTag +   { tName = "EncodedIssuerLen"+   , tnum = 348+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedIssuer :: FIXTag+tEncodedIssuer = FIXTag +   { tName = "EncodedIssuer"+   , tnum = 349+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedSecurityDescLen :: FIXTag+tEncodedSecurityDescLen = FIXTag +   { tName = "EncodedSecurityDescLen"+   , tnum = 350+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedSecurityDesc :: FIXTag+tEncodedSecurityDesc = FIXTag +   { tName = "EncodedSecurityDesc"+   , tnum = 351+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedListExecInstLen :: FIXTag+tEncodedListExecInstLen = FIXTag +   { tName = "EncodedListExecInstLen"+   , tnum = 352+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedListExecInst :: FIXTag+tEncodedListExecInst = FIXTag +   { tName = "EncodedListExecInst"+   , tnum = 353+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedTextLen :: FIXTag+tEncodedTextLen = FIXTag +   { tName = "EncodedTextLen"+   , tnum = 354+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedText :: FIXTag+tEncodedText = FIXTag +   { tName = "EncodedText"+   , tnum = 355+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedSubjectLen :: FIXTag+tEncodedSubjectLen = FIXTag +   { tName = "EncodedSubjectLen"+   , tnum = 356+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedSubject :: FIXTag+tEncodedSubject = FIXTag +   { tName = "EncodedSubject"+   , tnum = 357+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedHeadlineLen :: FIXTag+tEncodedHeadlineLen = FIXTag +   { tName = "EncodedHeadlineLen"+   , tnum = 358+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedHeadline :: FIXTag+tEncodedHeadline = FIXTag +   { tName = "EncodedHeadline"+   , tnum = 359+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedAllocTextLen :: FIXTag+tEncodedAllocTextLen = FIXTag +   { tName = "EncodedAllocTextLen"+   , tnum = 360+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedAllocText :: FIXTag+tEncodedAllocText = FIXTag +   { tName = "EncodedAllocText"+   , tnum = 361+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedUnderlyingIssuerLen :: FIXTag+tEncodedUnderlyingIssuerLen = FIXTag +   { tName = "EncodedUnderlyingIssuerLen"+   , tnum = 362+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedUnderlyingIssuer :: FIXTag+tEncodedUnderlyingIssuer = FIXTag +   { tName = "EncodedUnderlyingIssuer"+   , tnum = 363+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedUnderlyingSecurityDescLen :: FIXTag+tEncodedUnderlyingSecurityDescLen = FIXTag +   { tName = "EncodedUnderlyingSecurityDescLen"+   , tnum = 364+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedUnderlyingSecurityDesc :: FIXTag+tEncodedUnderlyingSecurityDesc = FIXTag +   { tName = "EncodedUnderlyingSecurityDesc"+   , tnum = 365+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tAllocPrice :: FIXTag+tAllocPrice = FIXTag +   { tName = "AllocPrice"+   , tnum = 366+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tQuoteSetValidUntilTime :: FIXTag+tQuoteSetValidUntilTime = FIXTag +   { tName = "QuoteSetValidUntilTime"+   , tnum = 367+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tQuoteEntryRejectReason :: FIXTag+tQuoteEntryRejectReason = FIXTag +   { tName = "QuoteEntryRejectReason"+   , tnum = 368+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLastMsgSeqNumProcessed :: FIXTag+tLastMsgSeqNumProcessed = FIXTag +   { tName = "LastMsgSeqNumProcessed"+   , tnum = 369+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOnBehalfOfSendingTime :: FIXTag+tOnBehalfOfSendingTime = FIXTag +   { tName = "OnBehalfOfSendingTime"+   , tnum = 370+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tRefTagID :: FIXTag+tRefTagID = FIXTag +   { tName = "RefTagID"+   , tnum = 371+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRefMsgType :: FIXTag+tRefMsgType = FIXTag +   { tName = "RefMsgType"+   , tnum = 372+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSessionRejectReason :: FIXTag+tSessionRejectReason = FIXTag +   { tName = "SessionRejectReason"+   , tnum = 373+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tBidRequestTransType :: FIXTag+tBidRequestTransType = FIXTag +   { tName = "BidRequestTransType"+   , tnum = 374+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tContraBroker :: FIXTag+tContraBroker = FIXTag +   { tName = "ContraBroker"+   , tnum = 375+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tComplianceID :: FIXTag+tComplianceID = FIXTag +   { tName = "ComplianceID"+   , tnum = 376+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSolicitedFlag :: FIXTag+tSolicitedFlag = FIXTag +   { tName = "SolicitedFlag"+   , tnum = 377+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tExecRestatementReason :: FIXTag+tExecRestatementReason = FIXTag +   { tName = "ExecRestatementReason"+   , tnum = 378+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tBusinessRejectRefID :: FIXTag+tBusinessRejectRefID = FIXTag +   { tName = "BusinessRejectRefID"+   , tnum = 379+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tBusinessRejectReason :: FIXTag+tBusinessRejectReason = FIXTag +   { tName = "BusinessRejectReason"+   , tnum = 380+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tGrossTradeAmt :: FIXTag+tGrossTradeAmt = FIXTag +   { tName = "GrossTradeAmt"+   , tnum = 381+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoContraBrokers :: FIXTag+tNoContraBrokers = FIXTag +   { tName = "NoContraBrokers"+   , tnum = 382+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMaxMessageSize :: FIXTag+tMaxMessageSize = FIXTag +   { tName = "MaxMessageSize"+   , tnum = 383+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoMsgTypes :: FIXTag+tNoMsgTypes = FIXTag +   { tName = "NoMsgTypes"+   , tnum = 384+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMsgDirection :: FIXTag+tMsgDirection = FIXTag +   { tName = "MsgDirection"+   , tnum = 385+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoTradingSessions :: FIXTag+tNoTradingSessions = FIXTag +   { tName = "NoTradingSessions"+   , tnum = 386+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTotalVolumeTraded :: FIXTag+tTotalVolumeTraded = FIXTag +   { tName = "TotalVolumeTraded"+   , tnum = 387+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tDiscretionInst :: FIXTag+tDiscretionInst = FIXTag +   { tName = "DiscretionInst"+   , tnum = 388+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tDiscretionOffset :: FIXTag+tDiscretionOffset = FIXTag +   { tName = "DiscretionOffset"+   , tnum = 389+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBidID :: FIXTag+tBidID = FIXTag +   { tName = "BidID"+   , tnum = 390+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tClientBidID :: FIXTag+tClientBidID = FIXTag +   { tName = "ClientBidID"+   , tnum = 391+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tListName :: FIXTag+tListName = FIXTag +   { tName = "ListName"+   , tnum = 392+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTotalNumSecurities :: FIXTag+tTotalNumSecurities = FIXTag +   { tName = "TotalNumSecurities"+   , tnum = 393+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tBidType :: FIXTag+tBidType = FIXTag +   { tName = "BidType"+   , tnum = 394+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNumTickets :: FIXTag+tNumTickets = FIXTag +   { tName = "NumTickets"+   , tnum = 395+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSideValue1 :: FIXTag+tSideValue1 = FIXTag +   { tName = "SideValue1"+   , tnum = 396+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSideValue2 :: FIXTag+tSideValue2 = FIXTag +   { tName = "SideValue2"+   , tnum = 397+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoBidDescriptors :: FIXTag+tNoBidDescriptors = FIXTag +   { tName = "NoBidDescriptors"+   , tnum = 398+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tBidDescriptorType :: FIXTag+tBidDescriptorType = FIXTag +   { tName = "BidDescriptorType"+   , tnum = 399+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tBidDescriptor :: FIXTag+tBidDescriptor = FIXTag +   { tName = "BidDescriptor"+   , tnum = 400+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSideValueInd :: FIXTag+tSideValueInd = FIXTag +   { tName = "SideValueInd"+   , tnum = 401+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLiquidityPctLow :: FIXTag+tLiquidityPctLow = FIXTag +   { tName = "LiquidityPctLow"+   , tnum = 402+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLiquidityPctHigh :: FIXTag+tLiquidityPctHigh = FIXTag +   { tName = "LiquidityPctHigh"+   , tnum = 403+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLiquidityValue :: FIXTag+tLiquidityValue = FIXTag +   { tName = "LiquidityValue"+   , tnum = 404+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tEFPTrackingError :: FIXTag+tEFPTrackingError = FIXTag +   { tName = "EFPTrackingError"+   , tnum = 405+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tFairValue :: FIXTag+tFairValue = FIXTag +   { tName = "FairValue"+   , tnum = 406+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOutsideIndexPct :: FIXTag+tOutsideIndexPct = FIXTag +   { tName = "OutsideIndexPct"+   , tnum = 407+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tValueOfFutures :: FIXTag+tValueOfFutures = FIXTag +   { tName = "ValueOfFutures"+   , tnum = 408+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLiquidityIndType :: FIXTag+tLiquidityIndType = FIXTag +   { tName = "LiquidityIndType"+   , tnum = 409+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tWtAverageLiquidity :: FIXTag+tWtAverageLiquidity = FIXTag +   { tName = "WtAverageLiquidity"+   , tnum = 410+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tExchangeForPhysical :: FIXTag+tExchangeForPhysical = FIXTag +   { tName = "ExchangeForPhysical"+   , tnum = 411+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tOutMainCntryUIndex :: FIXTag+tOutMainCntryUIndex = FIXTag +   { tName = "OutMainCntryUIndex"+   , tnum = 412+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCrossPercent :: FIXTag+tCrossPercent = FIXTag +   { tName = "CrossPercent"+   , tnum = 413+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tProgRptReqs :: FIXTag+tProgRptReqs = FIXTag +   { tName = "ProgRptReqs"+   , tnum = 414+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tProgPeriodInterval :: FIXTag+tProgPeriodInterval = FIXTag +   { tName = "ProgPeriodInterval"+   , tnum = 415+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tIncTaxInd :: FIXTag+tIncTaxInd = FIXTag +   { tName = "IncTaxInd"+   , tnum = 416+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNumBidders :: FIXTag+tNumBidders = FIXTag +   { tName = "NumBidders"+   , tnum = 417+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradeType :: FIXTag+tTradeType = FIXTag +   { tName = "TradeType"+   , tnum = 418+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tBasisPxType :: FIXTag+tBasisPxType = FIXTag +   { tName = "BasisPxType"+   , tnum = 419+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoBidComponents :: FIXTag+tNoBidComponents = FIXTag +   { tName = "NoBidComponents"+   , tnum = 420+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCountry :: FIXTag+tCountry = FIXTag +   { tName = "Country"+   , tnum = 421+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTotNoStrikes :: FIXTag+tTotNoStrikes = FIXTag +   { tName = "TotNoStrikes"+   , tnum = 422+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPriceType :: FIXTag+tPriceType = FIXTag +   { tName = "PriceType"+   , tnum = 423+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tDayOrderQty :: FIXTag+tDayOrderQty = FIXTag +   { tName = "DayOrderQty"+   , tnum = 424+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tDayCumQty :: FIXTag+tDayCumQty = FIXTag +   { tName = "DayCumQty"+   , tnum = 425+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tDayAvgPx :: FIXTag+tDayAvgPx = FIXTag +   { tName = "DayAvgPx"+   , tnum = 426+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tGTBookingInst :: FIXTag+tGTBookingInst = FIXTag +   { tName = "GTBookingInst"+   , tnum = 427+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoStrikes :: FIXTag+tNoStrikes = FIXTag +   { tName = "NoStrikes"+   , tnum = 428+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tListStatusType :: FIXTag+tListStatusType = FIXTag +   { tName = "ListStatusType"+   , tnum = 429+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNetGrossInd :: FIXTag+tNetGrossInd = FIXTag +   { tName = "NetGrossInd"+   , tnum = 430+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tListOrderStatus :: FIXTag+tListOrderStatus = FIXTag +   { tName = "ListOrderStatus"+   , tnum = 431+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tExpireDate :: FIXTag+tExpireDate = FIXTag +   { tName = "ExpireDate"+   , tnum = 432+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tListExecInstType :: FIXTag+tListExecInstType = FIXTag +   { tName = "ListExecInstType"+   , tnum = 433+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCxlRejResponseTo :: FIXTag+tCxlRejResponseTo = FIXTag +   { tName = "CxlRejResponseTo"+   , tnum = 434+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tUnderlyingCouponRate :: FIXTag+tUnderlyingCouponRate = FIXTag +   { tName = "UnderlyingCouponRate"+   , tnum = 435+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tUnderlyingContractMultiplier :: FIXTag+tUnderlyingContractMultiplier = FIXTag +   { tName = "UnderlyingContractMultiplier"+   , tnum = 436+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tContraTradeQty :: FIXTag+tContraTradeQty = FIXTag +   { tName = "ContraTradeQty"+   , tnum = 437+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tContraTradeTime :: FIXTag+tContraTradeTime = FIXTag +   { tName = "ContraTradeTime"+   , tnum = 438+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tClearingFirm :: FIXTag+tClearingFirm = FIXTag +   { tName = "ClearingFirm"+   , tnum = 439+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tClearingAccount :: FIXTag+tClearingAccount = FIXTag +   { tName = "ClearingAccount"+   , tnum = 440+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLiquidityNumSecurities :: FIXTag+tLiquidityNumSecurities = FIXTag +   { tName = "LiquidityNumSecurities"+   , tnum = 441+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMultiLegReportingType :: FIXTag+tMultiLegReportingType = FIXTag +   { tName = "MultiLegReportingType"+   , tnum = 442+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tStrikeTime :: FIXTag+tStrikeTime = FIXTag +   { tName = "StrikeTime"+   , tnum = 443+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tListStatusText :: FIXTag+tListStatusText = FIXTag +   { tName = "ListStatusText"+   , tnum = 444+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tEncodedListStatusTextLen :: FIXTag+tEncodedListStatusTextLen = FIXTag +   { tName = "EncodedListStatusTextLen"+   , tnum = 445+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedListStatusText :: FIXTag+tEncodedListStatusText = FIXTag +   { tName = "EncodedListStatusText"+   , tnum = 446+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++headerFIX42 :: FIXTags+headerFIX42 = +   LT.insert (tnum tSenderCompID) tSenderCompID $+   LT.insert (tnum tTargetCompID) tTargetCompID $+   LT.insert (tnum tOnBehalfOfCompID) tOnBehalfOfCompID $+   LT.insert (tnum tDeliverToCompID) tDeliverToCompID $+   LT.insert (tnum tSecureDataLen) tSecureDataLen $+   LT.insert (tnum tSecureData) tSecureData $+   LT.insert (tnum tMsgSeqNum) tMsgSeqNum $+   LT.insert (tnum tSenderSubID) tSenderSubID $+   LT.insert (tnum tSenderLocationID) tSenderLocationID $+   LT.insert (tnum tTargetSubID) tTargetSubID $+   LT.insert (tnum tTargetLocationID) tTargetLocationID $+   LT.insert (tnum tOnBehalfOfSubID) tOnBehalfOfSubID $+   LT.insert (tnum tOnBehalfOfLocationID) tOnBehalfOfLocationID $+   LT.insert (tnum tDeliverToSubID) tDeliverToSubID $+   LT.insert (tnum tDeliverToLocationID) tDeliverToLocationID $+   LT.insert (tnum tPossDupFlag) tPossDupFlag $+   LT.insert (tnum tPossResend) tPossResend $+   LT.insert (tnum tSendingTime) tSendingTime $+   LT.insert (tnum tOrigSendingTime) tOrigSendingTime $+   LT.insert (tnum tXmlDataLen) tXmlDataLen $+   LT.insert (tnum tXmlData) tXmlData $+   LT.insert (tnum tMessageEncoding) tMessageEncoding $+   LT.insert (tnum tLastMsgSeqNumProcessed) tLastMsgSeqNumProcessed $+   LT.insert (tnum tOnBehalfOfSendingTime) tOnBehalfOfSendingTime    LT.new+++trailerFIX42 :: FIXTags+trailerFIX42 = +   LT.insert (tnum tSignatureLength) tSignatureLength $+   LT.insert (tnum tSignature) tSignature    LT.new+++mHeartbeat :: FIXMessageSpec+mHeartbeat = FMSpec+   { msName = "Heartbeat"+   , msType = C.pack "0"+   , msHeader = headerFIX42+   , msBody = mHeartbeatBody+   , msTrailer = trailerFIX42 }+   where+   mHeartbeatBody = +      LT.insert (tnum tTestReqID) tTestReqID       LT.new+++mTestRequest :: FIXMessageSpec+mTestRequest = FMSpec+   { msName = "TestRequest"+   , msType = C.pack "1"+   , msHeader = headerFIX42+   , msBody = mTestRequestBody+   , msTrailer = trailerFIX42 }+   where+   mTestRequestBody = +      LT.insert (tnum tTestReqID) tTestReqID       LT.new+++mResendRequest :: FIXMessageSpec+mResendRequest = FMSpec+   { msName = "ResendRequest"+   , msType = C.pack "2"+   , msHeader = headerFIX42+   , msBody = mResendRequestBody+   , msTrailer = trailerFIX42 }+   where+   mResendRequestBody = +      LT.insert (tnum tBeginSeqNo) tBeginSeqNo $+      LT.insert (tnum tEndSeqNo) tEndSeqNo       LT.new+++mReject :: FIXMessageSpec+mReject = FMSpec+   { msName = "Reject"+   , msType = C.pack "3"+   , msHeader = headerFIX42+   , msBody = mRejectBody+   , msTrailer = trailerFIX42 }+   where+   mRejectBody = +      LT.insert (tnum tRefSeqNum) tRefSeqNum $+      LT.insert (tnum tRefTagID) tRefTagID $+      LT.insert (tnum tRefMsgType) tRefMsgType $+      LT.insert (tnum tSessionRejectReason) tSessionRejectReason $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mSequenceReset :: FIXMessageSpec+mSequenceReset = FMSpec+   { msName = "SequenceReset"+   , msType = C.pack "4"+   , msHeader = headerFIX42+   , msBody = mSequenceResetBody+   , msTrailer = trailerFIX42 }+   where+   mSequenceResetBody = +      LT.insert (tnum tGapFillFlag) tGapFillFlag $+      LT.insert (tnum tNewSeqNo) tNewSeqNo       LT.new+++mLogout :: FIXMessageSpec+mLogout = FMSpec+   { msName = "Logout"+   , msType = C.pack "5"+   , msHeader = headerFIX42+   , msBody = mLogoutBody+   , msTrailer = trailerFIX42 }+   where+   mLogoutBody = +      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mIndicationofInterest :: FIXMessageSpec+mIndicationofInterest = FMSpec+   { msName = "IndicationofInterest"+   , msType = C.pack "6"+   , msHeader = headerFIX42+   , msBody = mIndicationofInterestBody+   , msTrailer = trailerFIX42 }+   where+   mIndicationofInterestBody = +      LT.insert (tnum tIOIid) tIOIid $+      LT.insert (tnum tIOITransType) tIOITransType $+      LT.insert (tnum tIOIRefID) tIOIRefID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tIOIShares) tIOIShares $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tValidUntilTime) tValidUntilTime $+      LT.insert (tnum tIOIQltyInd) tIOIQltyInd $+      LT.insert (tnum tIOINaturalFlag) tIOINaturalFlag $+      LT.insert (tnum tNoIOIQualifiers) gNoIOIQualifiers''' $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tURLLink) tURLLink $+      LT.insert (tnum tNoRoutingIDs) gNoRoutingIDs''' $+      LT.insert (tnum tSpreadToBenchmark) tSpreadToBenchmark $+      LT.insert (tnum tBenchmark) tBenchmark       LT.new+      where+         gNoIOIQualifiers''' = FIXTag+            { tName = "NoIOIQualifiers"+            , tnum = tnum tNoIOIQualifiers+            , tparser = gNoIOIQualifiersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoIOIQualifiersSpec''' }++         gNoIOIQualifiersP''' = groupP gNoIOIQualifiersSpec'''+         gNoIOIQualifiersSpec''' = FGSpec+            { gsLength = tNoIOIQualifiers+            , gsSeperator = tIOIQualifier+            , gsBody = gNoIOIQualifiersBody''' }+            where+            gNoIOIQualifiersBody''' = +               LT.new++         gNoRoutingIDs''' = FIXTag+            { tName = "NoRoutingIDs"+            , tnum = tnum tNoRoutingIDs+            , tparser = gNoRoutingIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRoutingIDsSpec''' }++         gNoRoutingIDsP''' = groupP gNoRoutingIDsSpec'''+         gNoRoutingIDsSpec''' = FGSpec+            { gsLength = tNoRoutingIDs+            , gsSeperator = tRoutingType+            , gsBody = gNoRoutingIDsBody''' }+            where+            gNoRoutingIDsBody''' = +               LT.insert (tnum tRoutingID) tRoutingID                LT.new++++mAdvertisement :: FIXMessageSpec+mAdvertisement = FMSpec+   { msName = "Advertisement"+   , msType = C.pack "7"+   , msHeader = headerFIX42+   , msBody = mAdvertisementBody+   , msTrailer = trailerFIX42 }+   where+   mAdvertisementBody = +      LT.insert (tnum tAdvId) tAdvId $+      LT.insert (tnum tAdvTransType) tAdvTransType $+      LT.insert (tnum tAdvRefID) tAdvRefID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tAdvSide) tAdvSide $+      LT.insert (tnum tShares) tShares $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tURLLink) tURLLink $+      LT.insert (tnum tLastMkt) tLastMkt $+      LT.insert (tnum tTradingSessionID) tTradingSessionID       LT.new+++mExecutionReport :: FIXMessageSpec+mExecutionReport = FMSpec+   { msName = "ExecutionReport"+   , msType = C.pack "8"+   , msHeader = headerFIX42+   , msBody = mExecutionReportBody+   , msTrailer = trailerFIX42 }+   where+   mExecutionReportBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tNoContraBrokers) gNoContraBrokers''' $+      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tExecID) tExecID $+      LT.insert (tnum tExecTransType) tExecTransType $+      LT.insert (tnum tExecRefID) tExecRefID $+      LT.insert (tnum tExecType) tExecType $+      LT.insert (tnum tOrdStatus) tOrdStatus $+      LT.insert (tnum tOrdRejReason) tOrdRejReason $+      LT.insert (tnum tExecRestatementReason) tExecRestatementReason $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tPegDifference) tPegDifference $+      LT.insert (tnum tDiscretionInst) tDiscretionInst $+      LT.insert (tnum tDiscretionOffset) tDiscretionOffset $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tComplianceID) tComplianceID $+      LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tEffectiveTime) tEffectiveTime $+      LT.insert (tnum tExpireDate) tExpireDate $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tRule80A) tRule80A $+      LT.insert (tnum tLastShares) tLastShares $+      LT.insert (tnum tLastPx) tLastPx $+      LT.insert (tnum tLastSpotRate) tLastSpotRate $+      LT.insert (tnum tLastForwardPoints) tLastForwardPoints $+      LT.insert (tnum tLastMkt) tLastMkt $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tLastCapacity) tLastCapacity $+      LT.insert (tnum tLeavesQty) tLeavesQty $+      LT.insert (tnum tCumQty) tCumQty $+      LT.insert (tnum tAvgPx) tAvgPx $+      LT.insert (tnum tDayOrderQty) tDayOrderQty $+      LT.insert (tnum tDayCumQty) tDayCumQty $+      LT.insert (tnum tDayAvgPx) tDayAvgPx $+      LT.insert (tnum tGTBookingInst) tGTBookingInst $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tReportToExch) tReportToExch $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tGrossTradeAmt) tGrossTradeAmt $+      LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tSettlCurrFxRate) tSettlCurrFxRate $+      LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tOpenClose) tOpenClose $+      LT.insert (tnum tMaxShow) tMaxShow $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tFutSettDate2) tFutSettDate2 $+      LT.insert (tnum tOrderQty2) tOrderQty2 $+      LT.insert (tnum tClearingFirm) tClearingFirm $+      LT.insert (tnum tClearingAccount) tClearingAccount $+      LT.insert (tnum tMultiLegReportingType) tMultiLegReportingType       LT.new+      where+         gNoContraBrokers''' = FIXTag+            { tName = "NoContraBrokers"+            , tnum = tnum tNoContraBrokers+            , tparser = gNoContraBrokersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoContraBrokersSpec''' }++         gNoContraBrokersP''' = groupP gNoContraBrokersSpec'''+         gNoContraBrokersSpec''' = FGSpec+            { gsLength = tNoContraBrokers+            , gsSeperator = tContraBroker+            , gsBody = gNoContraBrokersBody''' }+            where+            gNoContraBrokersBody''' = +               LT.insert (tnum tContraTrader) tContraTrader $+               LT.insert (tnum tContraTradeQty) tContraTradeQty $+               LT.insert (tnum tContraTradeTime) tContraTradeTime                LT.new++++mOrderCancelReject :: FIXMessageSpec+mOrderCancelReject = FMSpec+   { msName = "OrderCancelReject"+   , msType = C.pack "9"+   , msHeader = headerFIX42+   , msBody = mOrderCancelRejectBody+   , msTrailer = trailerFIX42 }+   where+   mOrderCancelRejectBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+      LT.insert (tnum tOrdStatus) tOrdStatus $+      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tCxlRejResponseTo) tCxlRejResponseTo $+      LT.insert (tnum tCxlRejReason) tCxlRejReason $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mLogon :: FIXMessageSpec+mLogon = FMSpec+   { msName = "Logon"+   , msType = C.pack "A"+   , msHeader = headerFIX42+   , msBody = mLogonBody+   , msTrailer = trailerFIX42 }+   where+   mLogonBody = +      LT.insert (tnum tEncryptMethod) tEncryptMethod $+      LT.insert (tnum tHeartBtInt) tHeartBtInt $+      LT.insert (tnum tRawDataLength) tRawDataLength $+      LT.insert (tnum tRawData) tRawData $+      LT.insert (tnum tResetSeqNumFlag) tResetSeqNumFlag $+      LT.insert (tnum tMaxMessageSize) tMaxMessageSize $+      LT.insert (tnum tNoMsgTypes) gNoMsgTypes'''       LT.new+      where+         gNoMsgTypes''' = FIXTag+            { tName = "NoMsgTypes"+            , tnum = tnum tNoMsgTypes+            , tparser = gNoMsgTypesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoMsgTypesSpec''' }++         gNoMsgTypesP''' = groupP gNoMsgTypesSpec'''+         gNoMsgTypesSpec''' = FGSpec+            { gsLength = tNoMsgTypes+            , gsSeperator = tRefMsgType+            , gsBody = gNoMsgTypesBody''' }+            where+            gNoMsgTypesBody''' = +               LT.insert (tnum tMsgDirection) tMsgDirection                LT.new++++mNews :: FIXMessageSpec+mNews = FMSpec+   { msName = "News"+   , msType = C.pack "B"+   , msHeader = headerFIX42+   , msBody = mNewsBody+   , msTrailer = trailerFIX42 }+   where+   mNewsBody = +      LT.insert (tnum tOrigTime) tOrigTime $+      LT.insert (tnum tUrgency) tUrgency $+      LT.insert (tnum tHeadline) tHeadline $+      LT.insert (tnum tEncodedHeadlineLen) tEncodedHeadlineLen $+      LT.insert (tnum tEncodedHeadline) tEncodedHeadline $+      LT.insert (tnum tNoRoutingIDs) gNoRoutingIDs''' $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym''' $+      LT.insert (tnum tLinesOfText) gLinesOfText''' $+      LT.insert (tnum tURLLink) tURLLink $+      LT.insert (tnum tRawDataLength) tRawDataLength $+      LT.insert (tnum tRawData) tRawData       LT.new+      where+         gLinesOfText''' = FIXTag+            { tName = "LinesOfText"+            , tnum = tnum tLinesOfText+            , tparser = gLinesOfTextP'''+            , arbitraryValue = arbibtraryFIXGroup gLinesOfTextSpec''' }++         gLinesOfTextP''' = groupP gLinesOfTextSpec'''+         gLinesOfTextSpec''' = FGSpec+            { gsLength = tLinesOfText+            , gsSeperator = tText+            , gsBody = gLinesOfTextBody''' }+            where+            gLinesOfTextBody''' = +               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new++         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tRelatdSym+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tIDSource) tIDSource $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDay) tMaturityDay $+               LT.insert (tnum tPutOrCall) tPutOrCall $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc                LT.new++         gNoRoutingIDs''' = FIXTag+            { tName = "NoRoutingIDs"+            , tnum = tnum tNoRoutingIDs+            , tparser = gNoRoutingIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRoutingIDsSpec''' }++         gNoRoutingIDsP''' = groupP gNoRoutingIDsSpec'''+         gNoRoutingIDsSpec''' = FGSpec+            { gsLength = tNoRoutingIDs+            , gsSeperator = tRoutingType+            , gsBody = gNoRoutingIDsBody''' }+            where+            gNoRoutingIDsBody''' = +               LT.insert (tnum tRoutingID) tRoutingID                LT.new++++mEmail :: FIXMessageSpec+mEmail = FMSpec+   { msName = "Email"+   , msType = C.pack "C"+   , msHeader = headerFIX42+   , msBody = mEmailBody+   , msTrailer = trailerFIX42 }+   where+   mEmailBody = +      LT.insert (tnum tEmailThreadID) tEmailThreadID $+      LT.insert (tnum tEmailType) tEmailType $+      LT.insert (tnum tOrigTime) tOrigTime $+      LT.insert (tnum tSubject) tSubject $+      LT.insert (tnum tEncodedSubjectLen) tEncodedSubjectLen $+      LT.insert (tnum tEncodedSubject) tEncodedSubject $+      LT.insert (tnum tNoRoutingIDs) gNoRoutingIDs''' $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym''' $+      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tLinesOfText) gLinesOfText''' $+      LT.insert (tnum tRawDataLength) tRawDataLength $+      LT.insert (tnum tRawData) tRawData       LT.new+      where+         gLinesOfText''' = FIXTag+            { tName = "LinesOfText"+            , tnum = tnum tLinesOfText+            , tparser = gLinesOfTextP'''+            , arbitraryValue = arbibtraryFIXGroup gLinesOfTextSpec''' }++         gLinesOfTextP''' = groupP gLinesOfTextSpec'''+         gLinesOfTextSpec''' = FGSpec+            { gsLength = tLinesOfText+            , gsSeperator = tText+            , gsBody = gLinesOfTextBody''' }+            where+            gLinesOfTextBody''' = +               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new++         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tRelatdSym+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tIDSource) tIDSource $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDay) tMaturityDay $+               LT.insert (tnum tPutOrCall) tPutOrCall $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc                LT.new++         gNoRoutingIDs''' = FIXTag+            { tName = "NoRoutingIDs"+            , tnum = tnum tNoRoutingIDs+            , tparser = gNoRoutingIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRoutingIDsSpec''' }++         gNoRoutingIDsP''' = groupP gNoRoutingIDsSpec'''+         gNoRoutingIDsSpec''' = FGSpec+            { gsLength = tNoRoutingIDs+            , gsSeperator = tRoutingType+            , gsBody = gNoRoutingIDsBody''' }+            where+            gNoRoutingIDsBody''' = +               LT.insert (tnum tRoutingID) tRoutingID                LT.new++++mNewOrderSingle :: FIXMessageSpec+mNewOrderSingle = FMSpec+   { msName = "NewOrderSingle"+   , msType = C.pack "D"+   , msHeader = headerFIX42+   , msBody = mNewOrderSingleBody+   , msTrailer = trailerFIX42 }+   where+   mNewOrderSingleBody = +      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tNoAllocs) gNoAllocs''' $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $+      LT.insert (tnum tProcessCode) tProcessCode $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPrevClosePx) tPrevClosePx $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tLocateReqd) tLocateReqd $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tComplianceID) tComplianceID $+      LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+      LT.insert (tnum tIOIid) tIOIid $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tEffectiveTime) tEffectiveTime $+      LT.insert (tnum tExpireDate) tExpireDate $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tGTBookingInst) tGTBookingInst $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tRule80A) tRule80A $+      LT.insert (tnum tForexReq) tForexReq $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tFutSettDate2) tFutSettDate2 $+      LT.insert (tnum tOrderQty2) tOrderQty2 $+      LT.insert (tnum tOpenClose) tOpenClose $+      LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+      LT.insert (tnum tCustomerOrFirm) tCustomerOrFirm $+      LT.insert (tnum tMaxShow) tMaxShow $+      LT.insert (tnum tPegDifference) tPegDifference $+      LT.insert (tnum tDiscretionInst) tDiscretionInst $+      LT.insert (tnum tDiscretionOffset) tDiscretionOffset $+      LT.insert (tnum tClearingFirm) tClearingFirm $+      LT.insert (tnum tClearingAccount) tClearingAccount       LT.new+      where+         gNoAllocs''' = FIXTag+            { tName = "NoAllocs"+            , tnum = tnum tNoAllocs+            , tparser = gNoAllocsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }++         gNoAllocsP''' = groupP gNoAllocsSpec'''+         gNoAllocsSpec''' = FGSpec+            { gsLength = tNoAllocs+            , gsSeperator = tAllocAccount+            , gsBody = gNoAllocsBody''' }+            where+            gNoAllocsBody''' = +               LT.insert (tnum tAllocShares) tAllocShares                LT.new++         gNoTradingSessions''' = FIXTag+            { tName = "NoTradingSessions"+            , tnum = tnum tNoTradingSessions+            , tparser = gNoTradingSessionsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }++         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''+         gNoTradingSessionsSpec''' = FGSpec+            { gsLength = tNoTradingSessions+            , gsSeperator = tTradingSessionID+            , gsBody = gNoTradingSessionsBody''' }+            where+            gNoTradingSessionsBody''' = +               LT.new++++mNewOrderList :: FIXMessageSpec+mNewOrderList = FMSpec+   { msName = "NewOrderList"+   , msType = C.pack "E"+   , msHeader = headerFIX42+   , msBody = mNewOrderListBody+   , msTrailer = trailerFIX42 }+   where+   mNewOrderListBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tBidID) tBidID $+      LT.insert (tnum tClientBidID) tClientBidID $+      LT.insert (tnum tProgRptReqs) tProgRptReqs $+      LT.insert (tnum tBidType) tBidType $+      LT.insert (tnum tProgPeriodInterval) tProgPeriodInterval $+      LT.insert (tnum tListExecInstType) tListExecInstType $+      LT.insert (tnum tListExecInst) tListExecInst $+      LT.insert (tnum tEncodedListExecInstLen) tEncodedListExecInstLen $+      LT.insert (tnum tEncodedListExecInst) tEncodedListExecInst $+      LT.insert (tnum tTotNoOrders) tTotNoOrders $+      LT.insert (tnum tNoOrders) gNoOrders'''       LT.new+      where+         gNoOrders''' = FIXTag+            { tName = "NoOrders"+            , tnum = tnum tNoOrders+            , tparser = gNoOrdersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoOrdersSpec''' }++         gNoOrdersP''' = groupP gNoOrdersSpec'''+         gNoOrdersSpec''' = FGSpec+            { gsLength = tNoOrders+            , gsSeperator = tClOrdID+            , gsBody = gNoOrdersBody''' }+            where+            gNoOrdersBody''' = +               LT.insert (tnum tListSeqNo) tListSeqNo $+               LT.insert (tnum tSettlInstMode) tSettlInstMode $+               LT.insert (tnum tClientID) tClientID $+               LT.insert (tnum tExecBroker) tExecBroker $+               LT.insert (tnum tAccount) tAccount $+               LT.insert (tnum tNoAllocs) gNoAllocs'''''' $+               LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+               LT.insert (tnum tFutSettDate) tFutSettDate $+               LT.insert (tnum tHandlInst) tHandlInst $+               LT.insert (tnum tExecInst) tExecInst $+               LT.insert (tnum tMinQty) tMinQty $+               LT.insert (tnum tMaxFloor) tMaxFloor $+               LT.insert (tnum tExDestination) tExDestination $+               LT.insert (tnum tNoTradingSessions) gNoTradingSessions'''''' $+               LT.insert (tnum tProcessCode) tProcessCode $+               LT.insert (tnum tSymbol) tSymbol $+               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tIDSource) tIDSource $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDay) tMaturityDay $+               LT.insert (tnum tPutOrCall) tPutOrCall $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tPrevClosePx) tPrevClosePx $+               LT.insert (tnum tSide) tSide $+               LT.insert (tnum tSideValueInd) tSideValueInd $+               LT.insert (tnum tLocateReqd) tLocateReqd $+               LT.insert (tnum tTransactTime) tTransactTime $+               LT.insert (tnum tOrderQty) tOrderQty $+               LT.insert (tnum tCashOrderQty) tCashOrderQty $+               LT.insert (tnum tOrdType) tOrdType $+               LT.insert (tnum tPrice) tPrice $+               LT.insert (tnum tStopPx) tStopPx $+               LT.insert (tnum tCurrency) tCurrency $+               LT.insert (tnum tComplianceID) tComplianceID $+               LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+               LT.insert (tnum tIOIid) tIOIid $+               LT.insert (tnum tQuoteID) tQuoteID $+               LT.insert (tnum tTimeInForce) tTimeInForce $+               LT.insert (tnum tEffectiveTime) tEffectiveTime $+               LT.insert (tnum tExpireDate) tExpireDate $+               LT.insert (tnum tExpireTime) tExpireTime $+               LT.insert (tnum tGTBookingInst) tGTBookingInst $+               LT.insert (tnum tCommission) tCommission $+               LT.insert (tnum tCommType) tCommType $+               LT.insert (tnum tRule80A) tRule80A $+               LT.insert (tnum tForexReq) tForexReq $+               LT.insert (tnum tSettlCurrency) tSettlCurrency $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText $+               LT.insert (tnum tFutSettDate2) tFutSettDate2 $+               LT.insert (tnum tOrderQty2) tOrderQty2 $+               LT.insert (tnum tOpenClose) tOpenClose $+               LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+               LT.insert (tnum tCustomerOrFirm) tCustomerOrFirm $+               LT.insert (tnum tMaxShow) tMaxShow $+               LT.insert (tnum tPegDifference) tPegDifference $+               LT.insert (tnum tDiscretionInst) tDiscretionInst $+               LT.insert (tnum tDiscretionOffset) tDiscretionOffset $+               LT.insert (tnum tClearingFirm) tClearingFirm $+               LT.insert (tnum tClearingAccount) tClearingAccount                LT.new+               where+                  gNoAllocs'''''' = FIXTag+                     { tName = "NoAllocs"+                     , tnum = tnum tNoAllocs+                     , tparser = gNoAllocsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec'''''' }++                  gNoAllocsP'''''' = groupP gNoAllocsSpec''''''+                  gNoAllocsSpec'''''' = FGSpec+                     { gsLength = tNoAllocs+                     , gsSeperator = tAllocAccount+                     , gsBody = gNoAllocsBody'''''' }+                     where+                     gNoAllocsBody'''''' = +                        LT.insert (tnum tAllocShares) tAllocShares                         LT.new++                  gNoTradingSessions'''''' = FIXTag+                     { tName = "NoTradingSessions"+                     , tnum = tnum tNoTradingSessions+                     , tparser = gNoTradingSessionsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec'''''' }++                  gNoTradingSessionsP'''''' = groupP gNoTradingSessionsSpec''''''+                  gNoTradingSessionsSpec'''''' = FGSpec+                     { gsLength = tNoTradingSessions+                     , gsSeperator = tTradingSessionID+                     , gsBody = gNoTradingSessionsBody'''''' }+                     where+                     gNoTradingSessionsBody'''''' = +                        LT.new+++++mOrderCancelRequest :: FIXMessageSpec+mOrderCancelRequest = FMSpec+   { msName = "OrderCancelRequest"+   , msType = C.pack "F"+   , msHeader = headerFIX42+   , msBody = mOrderCancelRequestBody+   , msTrailer = trailerFIX42 }+   where+   mOrderCancelRequestBody = +      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tComplianceID) tComplianceID $+      LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mOrderCancelReplaceRequest :: FIXMessageSpec+mOrderCancelReplaceRequest = FMSpec+   { msName = "OrderCancelReplaceRequest"+   , msType = C.pack "G"+   , msHeader = headerFIX42+   , msBody = mOrderCancelReplaceRequestBody+   , msTrailer = trailerFIX42 }+   where+   mOrderCancelReplaceRequestBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tNoAllocs) gNoAllocs''' $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tPegDifference) tPegDifference $+      LT.insert (tnum tDiscretionInst) tDiscretionInst $+      LT.insert (tnum tDiscretionOffset) tDiscretionOffset $+      LT.insert (tnum tComplianceID) tComplianceID $+      LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tEffectiveTime) tEffectiveTime $+      LT.insert (tnum tExpireDate) tExpireDate $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tGTBookingInst) tGTBookingInst $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tRule80A) tRule80A $+      LT.insert (tnum tForexReq) tForexReq $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tFutSettDate2) tFutSettDate2 $+      LT.insert (tnum tOrderQty2) tOrderQty2 $+      LT.insert (tnum tOpenClose) tOpenClose $+      LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+      LT.insert (tnum tCustomerOrFirm) tCustomerOrFirm $+      LT.insert (tnum tMaxShow) tMaxShow $+      LT.insert (tnum tLocateReqd) tLocateReqd $+      LT.insert (tnum tClearingFirm) tClearingFirm $+      LT.insert (tnum tClearingAccount) tClearingAccount       LT.new+      where+         gNoAllocs''' = FIXTag+            { tName = "NoAllocs"+            , tnum = tnum tNoAllocs+            , tparser = gNoAllocsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }++         gNoAllocsP''' = groupP gNoAllocsSpec'''+         gNoAllocsSpec''' = FGSpec+            { gsLength = tNoAllocs+            , gsSeperator = tAllocAccount+            , gsBody = gNoAllocsBody''' }+            where+            gNoAllocsBody''' = +               LT.insert (tnum tAllocShares) tAllocShares                LT.new++         gNoTradingSessions''' = FIXTag+            { tName = "NoTradingSessions"+            , tnum = tnum tNoTradingSessions+            , tparser = gNoTradingSessionsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }++         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''+         gNoTradingSessionsSpec''' = FGSpec+            { gsLength = tNoTradingSessions+            , gsSeperator = tTradingSessionID+            , gsBody = gNoTradingSessionsBody''' }+            where+            gNoTradingSessionsBody''' = +               LT.new++++mOrderStatusRequest :: FIXMessageSpec+mOrderStatusRequest = FMSpec+   { msName = "OrderStatusRequest"+   , msType = C.pack "H"+   , msHeader = headerFIX42+   , msBody = mOrderStatusRequestBody+   , msTrailer = trailerFIX42 }+   where+   mOrderStatusRequestBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tSide) tSide       LT.new+++mAllocation :: FIXMessageSpec+mAllocation = FMSpec+   { msName = "Allocation"+   , msType = C.pack "J"+   , msHeader = headerFIX42+   , msBody = mAllocationBody+   , msTrailer = trailerFIX42 }+   where+   mAllocationBody = +      LT.insert (tnum tAllocID) tAllocID $+      LT.insert (tnum tAllocTransType) tAllocTransType $+      LT.insert (tnum tRefAllocID) tRefAllocID $+      LT.insert (tnum tAllocLinkID) tAllocLinkID $+      LT.insert (tnum tAllocLinkType) tAllocLinkType $+      LT.insert (tnum tNoOrders) gNoOrders''' $+      LT.insert (tnum tNoExecs) gNoExecs''' $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tShares) tShares $+      LT.insert (tnum tLastMkt) tLastMkt $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tAvgPx) tAvgPx $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tAvgPrxPrecision) tAvgPrxPrecision $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tGrossTradeAmt) tGrossTradeAmt $+      LT.insert (tnum tNetMoney) tNetMoney $+      LT.insert (tnum tOpenClose) tOpenClose $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tNumDaysInterest) tNumDaysInterest $+      LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $+      LT.insert (tnum tNoAllocs) gNoAllocs'''       LT.new+      where+         gNoAllocs''' = FIXTag+            { tName = "NoAllocs"+            , tnum = tnum tNoAllocs+            , tparser = gNoAllocsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }++         gNoAllocsP''' = groupP gNoAllocsSpec'''+         gNoAllocsSpec''' = FGSpec+            { gsLength = tNoAllocs+            , gsSeperator = tAllocAccount+            , gsBody = gNoAllocsBody''' }+            where+            gNoAllocsBody''' = +               LT.insert (tnum tAllocPrice) tAllocPrice $+               LT.insert (tnum tAllocShares) tAllocShares $+               LT.insert (tnum tProcessCode) tProcessCode $+               LT.insert (tnum tBrokerOfCredit) tBrokerOfCredit $+               LT.insert (tnum tNotifyBrokerOfCredit) tNotifyBrokerOfCredit $+               LT.insert (tnum tAllocHandlInst) tAllocHandlInst $+               LT.insert (tnum tAllocText) tAllocText $+               LT.insert (tnum tEncodedAllocTextLen) tEncodedAllocTextLen $+               LT.insert (tnum tEncodedAllocText) tEncodedAllocText $+               LT.insert (tnum tExecBroker) tExecBroker $+               LT.insert (tnum tClientID) tClientID $+               LT.insert (tnum tCommission) tCommission $+               LT.insert (tnum tCommType) tCommType $+               LT.insert (tnum tAllocAvgPx) tAllocAvgPx $+               LT.insert (tnum tAllocNetMoney) tAllocNetMoney $+               LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $+               LT.insert (tnum tSettlCurrency) tSettlCurrency $+               LT.insert (tnum tSettlCurrFxRate) tSettlCurrFxRate $+               LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $+               LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+               LT.insert (tnum tSettlInstMode) tSettlInstMode $+               LT.insert (tnum tNoMiscFees) gNoMiscFees''''''                LT.new+               where+                  gNoMiscFees'''''' = FIXTag+                     { tName = "NoMiscFees"+                     , tnum = tnum tNoMiscFees+                     , tparser = gNoMiscFeesP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec'''''' }++                  gNoMiscFeesP'''''' = groupP gNoMiscFeesSpec''''''+                  gNoMiscFeesSpec'''''' = FGSpec+                     { gsLength = tNoMiscFees+                     , gsSeperator = tMiscFeeAmt+                     , gsBody = gNoMiscFeesBody'''''' }+                     where+                     gNoMiscFeesBody'''''' = +                        LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $+                        LT.insert (tnum tMiscFeeType) tMiscFeeType                         LT.new+++         gNoExecs''' = FIXTag+            { tName = "NoExecs"+            , tnum = tnum tNoExecs+            , tparser = gNoExecsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoExecsSpec''' }++         gNoExecsP''' = groupP gNoExecsSpec'''+         gNoExecsSpec''' = FGSpec+            { gsLength = tNoExecs+            , gsSeperator = tLastShares+            , gsBody = gNoExecsBody''' }+            where+            gNoExecsBody''' = +               LT.insert (tnum tExecID) tExecID $+               LT.insert (tnum tLastPx) tLastPx $+               LT.insert (tnum tLastCapacity) tLastCapacity                LT.new++         gNoOrders''' = FIXTag+            { tName = "NoOrders"+            , tnum = tnum tNoOrders+            , tparser = gNoOrdersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoOrdersSpec''' }++         gNoOrdersP''' = groupP gNoOrdersSpec'''+         gNoOrdersSpec''' = FGSpec+            { gsLength = tNoOrders+            , gsSeperator = tClOrdID+            , gsBody = gNoOrdersBody''' }+            where+            gNoOrdersBody''' = +               LT.insert (tnum tOrderID) tOrderID $+               LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+               LT.insert (tnum tListID) tListID $+               LT.insert (tnum tWaveNo) tWaveNo                LT.new++++mListCancelRequest :: FIXMessageSpec+mListCancelRequest = FMSpec+   { msName = "ListCancelRequest"+   , msType = C.pack "K"+   , msHeader = headerFIX42+   , msBody = mListCancelRequestBody+   , msTrailer = trailerFIX42 }+   where+   mListCancelRequestBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mListExecute :: FIXMessageSpec+mListExecute = FMSpec+   { msName = "ListExecute"+   , msType = C.pack "L"+   , msHeader = headerFIX42+   , msBody = mListExecuteBody+   , msTrailer = trailerFIX42 }+   where+   mListExecuteBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tClientBidID) tClientBidID $+      LT.insert (tnum tBidID) tBidID $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mListStatusRequest :: FIXMessageSpec+mListStatusRequest = FMSpec+   { msName = "ListStatusRequest"+   , msType = C.pack "M"+   , msHeader = headerFIX42+   , msBody = mListStatusRequestBody+   , msTrailer = trailerFIX42 }+   where+   mListStatusRequestBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mListStatus :: FIXMessageSpec+mListStatus = FMSpec+   { msName = "ListStatus"+   , msType = C.pack "N"+   , msHeader = headerFIX42+   , msBody = mListStatusBody+   , msTrailer = trailerFIX42 }+   where+   mListStatusBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tListStatusType) tListStatusType $+      LT.insert (tnum tNoRpts) tNoRpts $+      LT.insert (tnum tListOrderStatus) tListOrderStatus $+      LT.insert (tnum tRptSeq) tRptSeq $+      LT.insert (tnum tListStatusText) tListStatusText $+      LT.insert (tnum tEncodedListStatusTextLen) tEncodedListStatusTextLen $+      LT.insert (tnum tEncodedListStatusText) tEncodedListStatusText $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tTotNoOrders) tTotNoOrders $+      LT.insert (tnum tNoOrders) gNoOrders'''       LT.new+      where+         gNoOrders''' = FIXTag+            { tName = "NoOrders"+            , tnum = tnum tNoOrders+            , tparser = gNoOrdersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoOrdersSpec''' }++         gNoOrdersP''' = groupP gNoOrdersSpec'''+         gNoOrdersSpec''' = FGSpec+            { gsLength = tNoOrders+            , gsSeperator = tClOrdID+            , gsBody = gNoOrdersBody''' }+            where+            gNoOrdersBody''' = +               LT.insert (tnum tCumQty) tCumQty $+               LT.insert (tnum tOrdStatus) tOrdStatus $+               LT.insert (tnum tLeavesQty) tLeavesQty $+               LT.insert (tnum tCxlQty) tCxlQty $+               LT.insert (tnum tAvgPx) tAvgPx $+               LT.insert (tnum tOrdRejReason) tOrdRejReason $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new++++mAllocationACK :: FIXMessageSpec+mAllocationACK = FMSpec+   { msName = "AllocationACK"+   , msType = C.pack "P"+   , msHeader = headerFIX42+   , msBody = mAllocationACKBody+   , msTrailer = trailerFIX42 }+   where+   mAllocationACKBody = +      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tAllocID) tAllocID $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tAllocStatus) tAllocStatus $+      LT.insert (tnum tAllocRejCode) tAllocRejCode $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mDontKnowTrade :: FIXMessageSpec+mDontKnowTrade = FMSpec+   { msName = "DontKnowTrade"+   , msType = C.pack "Q"+   , msHeader = headerFIX42+   , msBody = mDontKnowTradeBody+   , msTrailer = trailerFIX42 }+   where+   mDontKnowTradeBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tExecID) tExecID $+      LT.insert (tnum tDKReason) tDKReason $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tLastShares) tLastShares $+      LT.insert (tnum tLastPx) tLastPx $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mQuoteRequest :: FIXMessageSpec+mQuoteRequest = FMSpec+   { msName = "QuoteRequest"+   , msType = C.pack "R"+   , msHeader = headerFIX42+   , msBody = mQuoteRequestBody+   , msTrailer = trailerFIX42 }+   where+   mQuoteRequestBody = +      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym'''       LT.new+      where+         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tSymbol+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tIDSource) tIDSource $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDay) tMaturityDay $+               LT.insert (tnum tPutOrCall) tPutOrCall $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tPrevClosePx) tPrevClosePx $+               LT.insert (tnum tQuoteRequestType) tQuoteRequestType $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tSide) tSide $+               LT.insert (tnum tOrderQty) tOrderQty $+               LT.insert (tnum tFutSettDate) tFutSettDate $+               LT.insert (tnum tOrdType) tOrdType $+               LT.insert (tnum tFutSettDate2) tFutSettDate2 $+               LT.insert (tnum tOrderQty2) tOrderQty2 $+               LT.insert (tnum tExpireTime) tExpireTime $+               LT.insert (tnum tTransactTime) tTransactTime $+               LT.insert (tnum tCurrency) tCurrency                LT.new++++mQuote :: FIXMessageSpec+mQuote = FMSpec+   { msName = "Quote"+   , msType = C.pack "S"+   , msHeader = headerFIX42+   , msBody = mQuoteBody+   , msTrailer = trailerFIX42 }+   where+   mQuoteBody = +      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tQuoteResponseLevel) tQuoteResponseLevel $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tBidPx) tBidPx $+      LT.insert (tnum tOfferPx) tOfferPx $+      LT.insert (tnum tBidSize) tBidSize $+      LT.insert (tnum tOfferSize) tOfferSize $+      LT.insert (tnum tValidUntilTime) tValidUntilTime $+      LT.insert (tnum tBidSpotRate) tBidSpotRate $+      LT.insert (tnum tOfferSpotRate) tOfferSpotRate $+      LT.insert (tnum tBidForwardPoints) tBidForwardPoints $+      LT.insert (tnum tOfferForwardPoints) tOfferForwardPoints $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tFutSettDate2) tFutSettDate2 $+      LT.insert (tnum tOrderQty2) tOrderQty2 $+      LT.insert (tnum tCurrency) tCurrency       LT.new+++mSettlementInstructions :: FIXMessageSpec+mSettlementInstructions = FMSpec+   { msName = "SettlementInstructions"+   , msType = C.pack "T"+   , msHeader = headerFIX42+   , msBody = mSettlementInstructionsBody+   , msTrailer = trailerFIX42 }+   where+   mSettlementInstructionsBody = +      LT.insert (tnum tSettlInstID) tSettlInstID $+      LT.insert (tnum tSettlInstTransType) tSettlInstTransType $+      LT.insert (tnum tSettlInstRefID) tSettlInstRefID $+      LT.insert (tnum tSettlInstMode) tSettlInstMode $+      LT.insert (tnum tSettlInstSource) tSettlInstSource $+      LT.insert (tnum tAllocAccount) tAllocAccount $+      LT.insert (tnum tSettlLocation) tSettlLocation $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tAllocID) tAllocID $+      LT.insert (tnum tLastMkt) tLastMkt $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tEffectiveTime) tEffectiveTime $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tClientID) tClientID $+      LT.insert (tnum tExecBroker) tExecBroker $+      LT.insert (tnum tStandInstDbType) tStandInstDbType $+      LT.insert (tnum tStandInstDbName) tStandInstDbName $+      LT.insert (tnum tStandInstDbID) tStandInstDbID $+      LT.insert (tnum tSettlDeliveryType) tSettlDeliveryType $+      LT.insert (tnum tSettlDepositoryCode) tSettlDepositoryCode $+      LT.insert (tnum tSettlBrkrCode) tSettlBrkrCode $+      LT.insert (tnum tSettlInstCode) tSettlInstCode $+      LT.insert (tnum tSecuritySettlAgentName) tSecuritySettlAgentName $+      LT.insert (tnum tSecuritySettlAgentCode) tSecuritySettlAgentCode $+      LT.insert (tnum tSecuritySettlAgentAcctNum) tSecuritySettlAgentAcctNum $+      LT.insert (tnum tSecuritySettlAgentAcctName) tSecuritySettlAgentAcctName $+      LT.insert (tnum tSecuritySettlAgentContactName) tSecuritySettlAgentContactName $+      LT.insert (tnum tSecuritySettlAgentContactPhone) tSecuritySettlAgentContactPhone $+      LT.insert (tnum tCashSettlAgentName) tCashSettlAgentName $+      LT.insert (tnum tCashSettlAgentCode) tCashSettlAgentCode $+      LT.insert (tnum tCashSettlAgentAcctNum) tCashSettlAgentAcctNum $+      LT.insert (tnum tCashSettlAgentAcctName) tCashSettlAgentAcctName $+      LT.insert (tnum tCashSettlAgentContactName) tCashSettlAgentContactName $+      LT.insert (tnum tCashSettlAgentContactPhone) tCashSettlAgentContactPhone       LT.new+++mMarketDataRequest :: FIXMessageSpec+mMarketDataRequest = FMSpec+   { msName = "MarketDataRequest"+   , msType = C.pack "V"+   , msHeader = headerFIX42+   , msBody = mMarketDataRequestBody+   , msTrailer = trailerFIX42 }+   where+   mMarketDataRequestBody = +      LT.insert (tnum tMDReqID) tMDReqID $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $+      LT.insert (tnum tMarketDepth) tMarketDepth $+      LT.insert (tnum tMDUpdateType) tMDUpdateType $+      LT.insert (tnum tAggregatedBook) tAggregatedBook $+      LT.insert (tnum tNoMDEntryTypes) gNoMDEntryTypes''' $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym'''       LT.new+      where+         gNoMDEntryTypes''' = FIXTag+            { tName = "NoMDEntryTypes"+            , tnum = tnum tNoMDEntryTypes+            , tparser = gNoMDEntryTypesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoMDEntryTypesSpec''' }++         gNoMDEntryTypesP''' = groupP gNoMDEntryTypesSpec'''+         gNoMDEntryTypesSpec''' = FGSpec+            { gsLength = tNoMDEntryTypes+            , gsSeperator = tMDEntryType+            , gsBody = gNoMDEntryTypesBody''' }+            where+            gNoMDEntryTypesBody''' = +               LT.new++         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tSymbol+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tIDSource) tIDSource $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDay) tMaturityDay $+               LT.insert (tnum tPutOrCall) tPutOrCall $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tTradingSessionID) tTradingSessionID                LT.new++++mMarketDataSnapshotFullRefresh :: FIXMessageSpec+mMarketDataSnapshotFullRefresh = FMSpec+   { msName = "MarketDataSnapshotFullRefresh"+   , msType = C.pack "W"+   , msHeader = headerFIX42+   , msBody = mMarketDataSnapshotFullRefreshBody+   , msTrailer = trailerFIX42 }+   where+   mMarketDataSnapshotFullRefreshBody = +      LT.insert (tnum tMDReqID) tMDReqID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tFinancialStatus) tFinancialStatus $+      LT.insert (tnum tCorporateAction) tCorporateAction $+      LT.insert (tnum tTotalVolumeTraded) tTotalVolumeTraded $+      LT.insert (tnum tNoMDEntries) gNoMDEntries'''       LT.new+      where+         gNoMDEntries''' = FIXTag+            { tName = "NoMDEntries"+            , tnum = tnum tNoMDEntries+            , tparser = gNoMDEntriesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoMDEntriesSpec''' }++         gNoMDEntriesP''' = groupP gNoMDEntriesSpec'''+         gNoMDEntriesSpec''' = FGSpec+            { gsLength = tNoMDEntries+            , gsSeperator = tMDEntryType+            , gsBody = gNoMDEntriesBody''' }+            where+            gNoMDEntriesBody''' = +               LT.insert (tnum tMDEntryPx) tMDEntryPx $+               LT.insert (tnum tCurrency) tCurrency $+               LT.insert (tnum tMDEntrySize) tMDEntrySize $+               LT.insert (tnum tMDEntryDate) tMDEntryDate $+               LT.insert (tnum tMDEntryTime) tMDEntryTime $+               LT.insert (tnum tTickDirection) tTickDirection $+               LT.insert (tnum tMDMkt) tMDMkt $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tQuoteCondition) tQuoteCondition $+               LT.insert (tnum tTradeCondition) tTradeCondition $+               LT.insert (tnum tMDEntryOriginator) tMDEntryOriginator $+               LT.insert (tnum tLocationID) tLocationID $+               LT.insert (tnum tDeskID) tDeskID $+               LT.insert (tnum tOpenCloseSettleFlag) tOpenCloseSettleFlag $+               LT.insert (tnum tTimeInForce) tTimeInForce $+               LT.insert (tnum tExpireDate) tExpireDate $+               LT.insert (tnum tExpireTime) tExpireTime $+               LT.insert (tnum tMinQty) tMinQty $+               LT.insert (tnum tExecInst) tExecInst $+               LT.insert (tnum tSellerDays) tSellerDays $+               LT.insert (tnum tOrderID) tOrderID $+               LT.insert (tnum tQuoteEntryID) tQuoteEntryID $+               LT.insert (tnum tMDEntryBuyer) tMDEntryBuyer $+               LT.insert (tnum tMDEntrySeller) tMDEntrySeller $+               LT.insert (tnum tNumberOfOrders) tNumberOfOrders $+               LT.insert (tnum tMDEntryPositionNo) tMDEntryPositionNo $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new++++mMarketDataIncrementalRefresh :: FIXMessageSpec+mMarketDataIncrementalRefresh = FMSpec+   { msName = "MarketDataIncrementalRefresh"+   , msType = C.pack "X"+   , msHeader = headerFIX42+   , msBody = mMarketDataIncrementalRefreshBody+   , msTrailer = trailerFIX42 }+   where+   mMarketDataIncrementalRefreshBody = +      LT.insert (tnum tMDReqID) tMDReqID $+      LT.insert (tnum tNoMDEntries) gNoMDEntries'''       LT.new+      where+         gNoMDEntries''' = FIXTag+            { tName = "NoMDEntries"+            , tnum = tnum tNoMDEntries+            , tparser = gNoMDEntriesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoMDEntriesSpec''' }++         gNoMDEntriesP''' = groupP gNoMDEntriesSpec'''+         gNoMDEntriesSpec''' = FGSpec+            { gsLength = tNoMDEntries+            , gsSeperator = tMDUpdateAction+            , gsBody = gNoMDEntriesBody''' }+            where+            gNoMDEntriesBody''' = +               LT.insert (tnum tDeleteReason) tDeleteReason $+               LT.insert (tnum tMDEntryType) tMDEntryType $+               LT.insert (tnum tMDEntryID) tMDEntryID $+               LT.insert (tnum tMDEntryRefID) tMDEntryRefID $+               LT.insert (tnum tSymbol) tSymbol $+               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tIDSource) tIDSource $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDay) tMaturityDay $+               LT.insert (tnum tPutOrCall) tPutOrCall $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tFinancialStatus) tFinancialStatus $+               LT.insert (tnum tCorporateAction) tCorporateAction $+               LT.insert (tnum tMDEntryPx) tMDEntryPx $+               LT.insert (tnum tCurrency) tCurrency $+               LT.insert (tnum tMDEntrySize) tMDEntrySize $+               LT.insert (tnum tMDEntryDate) tMDEntryDate $+               LT.insert (tnum tMDEntryTime) tMDEntryTime $+               LT.insert (tnum tTickDirection) tTickDirection $+               LT.insert (tnum tMDMkt) tMDMkt $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tQuoteCondition) tQuoteCondition $+               LT.insert (tnum tTradeCondition) tTradeCondition $+               LT.insert (tnum tMDEntryOriginator) tMDEntryOriginator $+               LT.insert (tnum tLocationID) tLocationID $+               LT.insert (tnum tDeskID) tDeskID $+               LT.insert (tnum tOpenCloseSettleFlag) tOpenCloseSettleFlag $+               LT.insert (tnum tTimeInForce) tTimeInForce $+               LT.insert (tnum tExpireDate) tExpireDate $+               LT.insert (tnum tExpireTime) tExpireTime $+               LT.insert (tnum tMinQty) tMinQty $+               LT.insert (tnum tExecInst) tExecInst $+               LT.insert (tnum tSellerDays) tSellerDays $+               LT.insert (tnum tOrderID) tOrderID $+               LT.insert (tnum tQuoteEntryID) tQuoteEntryID $+               LT.insert (tnum tMDEntryBuyer) tMDEntryBuyer $+               LT.insert (tnum tMDEntrySeller) tMDEntrySeller $+               LT.insert (tnum tNumberOfOrders) tNumberOfOrders $+               LT.insert (tnum tMDEntryPositionNo) tMDEntryPositionNo $+               LT.insert (tnum tTotalVolumeTraded) tTotalVolumeTraded $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new++++mMarketDataRequestReject :: FIXMessageSpec+mMarketDataRequestReject = FMSpec+   { msName = "MarketDataRequestReject"+   , msType = C.pack "Y"+   , msHeader = headerFIX42+   , msBody = mMarketDataRequestRejectBody+   , msTrailer = trailerFIX42 }+   where+   mMarketDataRequestRejectBody = +      LT.insert (tnum tMDReqID) tMDReqID $+      LT.insert (tnum tMDReqRejReason) tMDReqRejReason $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mQuoteCancel :: FIXMessageSpec+mQuoteCancel = FMSpec+   { msName = "QuoteCancel"+   , msType = C.pack "Z"+   , msHeader = headerFIX42+   , msBody = mQuoteCancelBody+   , msTrailer = trailerFIX42 }+   where+   mQuoteCancelBody = +      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tQuoteCancelType) tQuoteCancelType $+      LT.insert (tnum tQuoteResponseLevel) tQuoteResponseLevel $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tNoQuoteEntries) gNoQuoteEntries'''       LT.new+      where+         gNoQuoteEntries''' = FIXTag+            { tName = "NoQuoteEntries"+            , tnum = tnum tNoQuoteEntries+            , tparser = gNoQuoteEntriesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoQuoteEntriesSpec''' }++         gNoQuoteEntriesP''' = groupP gNoQuoteEntriesSpec'''+         gNoQuoteEntriesSpec''' = FGSpec+            { gsLength = tNoQuoteEntries+            , gsSeperator = tSymbol+            , gsBody = gNoQuoteEntriesBody''' }+            where+            gNoQuoteEntriesBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tIDSource) tIDSource $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDay) tMaturityDay $+               LT.insert (tnum tPutOrCall) tPutOrCall $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol                LT.new++++mQuoteStatusRequest :: FIXMessageSpec+mQuoteStatusRequest = FMSpec+   { msName = "QuoteStatusRequest"+   , msType = C.pack "a"+   , msHeader = headerFIX42+   , msBody = mQuoteStatusRequestBody+   , msTrailer = trailerFIX42 }+   where+   mQuoteStatusRequestBody = +      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tTradingSessionID) tTradingSessionID       LT.new+++mQuoteAcknowledgement :: FIXMessageSpec+mQuoteAcknowledgement = FMSpec+   { msName = "QuoteAcknowledgement"+   , msType = C.pack "b"+   , msHeader = headerFIX42+   , msBody = mQuoteAcknowledgementBody+   , msTrailer = trailerFIX42 }+   where+   mQuoteAcknowledgementBody = +      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tQuoteAckStatus) tQuoteAckStatus $+      LT.insert (tnum tQuoteRejectReason) tQuoteRejectReason $+      LT.insert (tnum tQuoteResponseLevel) tQuoteResponseLevel $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tNoQuoteSets) gNoQuoteSets'''       LT.new+      where+         gNoQuoteSets''' = FIXTag+            { tName = "NoQuoteSets"+            , tnum = tnum tNoQuoteSets+            , tparser = gNoQuoteSetsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoQuoteSetsSpec''' }++         gNoQuoteSetsP''' = groupP gNoQuoteSetsSpec'''+         gNoQuoteSetsSpec''' = FGSpec+            { gsLength = tNoQuoteSets+            , gsSeperator = tQuoteSetID+            , gsBody = gNoQuoteSetsBody''' }+            where+            gNoQuoteSetsBody''' = +               LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $+               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingIDSource) tUnderlyingIDSource $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDay) tUnderlyingMaturityDay $+               LT.insert (tnum tUnderlyingPutOrCall) tUnderlyingPutOrCall $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tTotQuoteEntries) tTotQuoteEntries $+               LT.insert (tnum tNoQuoteEntries) gNoQuoteEntries''''''                LT.new+               where+                  gNoQuoteEntries'''''' = FIXTag+                     { tName = "NoQuoteEntries"+                     , tnum = tnum tNoQuoteEntries+                     , tparser = gNoQuoteEntriesP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoQuoteEntriesSpec'''''' }++                  gNoQuoteEntriesP'''''' = groupP gNoQuoteEntriesSpec''''''+                  gNoQuoteEntriesSpec'''''' = FGSpec+                     { gsLength = tNoQuoteEntries+                     , gsSeperator = tQuoteEntryID+                     , gsBody = gNoQuoteEntriesBody'''''' }+                     where+                     gNoQuoteEntriesBody'''''' = +                        LT.insert (tnum tSymbol) tSymbol $+                        LT.insert (tnum tSymbolSfx) tSymbolSfx $+                        LT.insert (tnum tSecurityID) tSecurityID $+                        LT.insert (tnum tIDSource) tIDSource $+                        LT.insert (tnum tSecurityType) tSecurityType $+                        LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+                        LT.insert (tnum tMaturityDay) tMaturityDay $+                        LT.insert (tnum tPutOrCall) tPutOrCall $+                        LT.insert (tnum tStrikePrice) tStrikePrice $+                        LT.insert (tnum tOptAttribute) tOptAttribute $+                        LT.insert (tnum tContractMultiplier) tContractMultiplier $+                        LT.insert (tnum tCouponRate) tCouponRate $+                        LT.insert (tnum tSecurityExchange) tSecurityExchange $+                        LT.insert (tnum tIssuer) tIssuer $+                        LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+                        LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+                        LT.insert (tnum tSecurityDesc) tSecurityDesc $+                        LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+                        LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+                        LT.insert (tnum tQuoteEntryRejectReason) tQuoteEntryRejectReason                         LT.new+++++mSecurityDefinitionRequest :: FIXMessageSpec+mSecurityDefinitionRequest = FMSpec+   { msName = "SecurityDefinitionRequest"+   , msType = C.pack "c"+   , msHeader = headerFIX42+   , msBody = mSecurityDefinitionRequestBody+   , msTrailer = trailerFIX42 }+   where+   mSecurityDefinitionRequestBody = +      LT.insert (tnum tSecurityReqID) tSecurityReqID $+      LT.insert (tnum tSecurityRequestType) tSecurityRequestType $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym'''       LT.new+      where+         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingIDSource) tUnderlyingIDSource $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDay) tUnderlyingMaturityDay $+               LT.insert (tnum tUnderlyingPutOrCall) tUnderlyingPutOrCall $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tRatioQty) tRatioQty $+               LT.insert (tnum tSide) tSide $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency                LT.new++++mSecurityDefinition :: FIXMessageSpec+mSecurityDefinition = FMSpec+   { msName = "SecurityDefinition"+   , msType = C.pack "d"+   , msHeader = headerFIX42+   , msBody = mSecurityDefinitionBody+   , msTrailer = trailerFIX42 }+   where+   mSecurityDefinitionBody = +      LT.insert (tnum tSecurityReqID) tSecurityReqID $+      LT.insert (tnum tSecurityResponseID) tSecurityResponseID $+      LT.insert (tnum tSecurityResponseType) tSecurityResponseType $+      LT.insert (tnum tTotalNumSecurities) tTotalNumSecurities $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym'''       LT.new+      where+         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingIDSource) tUnderlyingIDSource $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDay) tUnderlyingMaturityDay $+               LT.insert (tnum tUnderlyingPutOrCall) tUnderlyingPutOrCall $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tRatioQty) tRatioQty $+               LT.insert (tnum tSide) tSide $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency                LT.new++++mSecurityStatusRequest :: FIXMessageSpec+mSecurityStatusRequest = FMSpec+   { msName = "SecurityStatusRequest"+   , msType = C.pack "e"+   , msHeader = headerFIX42+   , msBody = mSecurityStatusRequestBody+   , msTrailer = trailerFIX42 }+   where+   mSecurityStatusRequestBody = +      LT.insert (tnum tSecurityStatusReqID) tSecurityStatusReqID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $+      LT.insert (tnum tTradingSessionID) tTradingSessionID       LT.new+++mSecurityStatus :: FIXMessageSpec+mSecurityStatus = FMSpec+   { msName = "SecurityStatus"+   , msType = C.pack "f"+   , msHeader = headerFIX42+   , msBody = mSecurityStatusBody+   , msTrailer = trailerFIX42 }+   where+   mSecurityStatusBody = +      LT.insert (tnum tSecurityStatusReqID) tSecurityStatusReqID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tIDSource) tIDSource $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDay) tMaturityDay $+      LT.insert (tnum tPutOrCall) tPutOrCall $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tUnsolicitedIndicator) tUnsolicitedIndicator $+      LT.insert (tnum tSecurityTradingStatus) tSecurityTradingStatus $+      LT.insert (tnum tFinancialStatus) tFinancialStatus $+      LT.insert (tnum tCorporateAction) tCorporateAction $+      LT.insert (tnum tHaltReasonChar) tHaltReasonChar $+      LT.insert (tnum tInViewOfCommon) tInViewOfCommon $+      LT.insert (tnum tDueToRelated) tDueToRelated $+      LT.insert (tnum tBuyVolume) tBuyVolume $+      LT.insert (tnum tSellVolume) tSellVolume $+      LT.insert (tnum tHighPx) tHighPx $+      LT.insert (tnum tLowPx) tLowPx $+      LT.insert (tnum tLastPx) tLastPx $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tAdjustment) tAdjustment       LT.new+++mTradingSessionStatusRequest :: FIXMessageSpec+mTradingSessionStatusRequest = FMSpec+   { msName = "TradingSessionStatusRequest"+   , msType = C.pack "g"+   , msHeader = headerFIX42+   , msBody = mTradingSessionStatusRequestBody+   , msTrailer = trailerFIX42 }+   where+   mTradingSessionStatusRequestBody = +      LT.insert (tnum tTradSesReqID) tTradSesReqID $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradSesMethod) tTradSesMethod $+      LT.insert (tnum tTradSesMode) tTradSesMode $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType       LT.new+++mTradingSessionStatus :: FIXMessageSpec+mTradingSessionStatus = FMSpec+   { msName = "TradingSessionStatus"+   , msType = C.pack "h"+   , msHeader = headerFIX42+   , msBody = mTradingSessionStatusBody+   , msTrailer = trailerFIX42 }+   where+   mTradingSessionStatusBody = +      LT.insert (tnum tTradSesReqID) tTradSesReqID $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradSesMethod) tTradSesMethod $+      LT.insert (tnum tTradSesMode) tTradSesMode $+      LT.insert (tnum tUnsolicitedIndicator) tUnsolicitedIndicator $+      LT.insert (tnum tTradSesStatus) tTradSesStatus $+      LT.insert (tnum tTradSesStartTime) tTradSesStartTime $+      LT.insert (tnum tTradSesOpenTime) tTradSesOpenTime $+      LT.insert (tnum tTradSesPreCloseTime) tTradSesPreCloseTime $+      LT.insert (tnum tTradSesCloseTime) tTradSesCloseTime $+      LT.insert (tnum tTradSesEndTime) tTradSesEndTime $+      LT.insert (tnum tTotalVolumeTraded) tTotalVolumeTraded $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mMassQuote :: FIXMessageSpec+mMassQuote = FMSpec+   { msName = "MassQuote"+   , msType = C.pack "i"+   , msHeader = headerFIX42+   , msBody = mMassQuoteBody+   , msTrailer = trailerFIX42 }+   where+   mMassQuoteBody = +      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tQuoteResponseLevel) tQuoteResponseLevel $+      LT.insert (tnum tDefBidSize) tDefBidSize $+      LT.insert (tnum tDefOfferSize) tDefOfferSize $+      LT.insert (tnum tNoQuoteSets) gNoQuoteSets'''       LT.new+      where+         gNoQuoteSets''' = FIXTag+            { tName = "NoQuoteSets"+            , tnum = tnum tNoQuoteSets+            , tparser = gNoQuoteSetsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoQuoteSetsSpec''' }++         gNoQuoteSetsP''' = groupP gNoQuoteSetsSpec'''+         gNoQuoteSetsSpec''' = FGSpec+            { gsLength = tNoQuoteSets+            , gsSeperator = tQuoteSetID+            , gsBody = gNoQuoteSetsBody''' }+            where+            gNoQuoteSetsBody''' = +               LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $+               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingIDSource) tUnderlyingIDSource $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDay) tUnderlyingMaturityDay $+               LT.insert (tnum tUnderlyingPutOrCall) tUnderlyingPutOrCall $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tQuoteSetValidUntilTime) tQuoteSetValidUntilTime $+               LT.insert (tnum tTotQuoteEntries) tTotQuoteEntries $+               LT.insert (tnum tNoQuoteEntries) gNoQuoteEntries''''''                LT.new+               where+                  gNoQuoteEntries'''''' = FIXTag+                     { tName = "NoQuoteEntries"+                     , tnum = tnum tNoQuoteEntries+                     , tparser = gNoQuoteEntriesP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoQuoteEntriesSpec'''''' }++                  gNoQuoteEntriesP'''''' = groupP gNoQuoteEntriesSpec''''''+                  gNoQuoteEntriesSpec'''''' = FGSpec+                     { gsLength = tNoQuoteEntries+                     , gsSeperator = tQuoteEntryID+                     , gsBody = gNoQuoteEntriesBody'''''' }+                     where+                     gNoQuoteEntriesBody'''''' = +                        LT.insert (tnum tSymbol) tSymbol $+                        LT.insert (tnum tSymbolSfx) tSymbolSfx $+                        LT.insert (tnum tSecurityID) tSecurityID $+                        LT.insert (tnum tIDSource) tIDSource $+                        LT.insert (tnum tSecurityType) tSecurityType $+                        LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+                        LT.insert (tnum tMaturityDay) tMaturityDay $+                        LT.insert (tnum tPutOrCall) tPutOrCall $+                        LT.insert (tnum tStrikePrice) tStrikePrice $+                        LT.insert (tnum tOptAttribute) tOptAttribute $+                        LT.insert (tnum tContractMultiplier) tContractMultiplier $+                        LT.insert (tnum tCouponRate) tCouponRate $+                        LT.insert (tnum tSecurityExchange) tSecurityExchange $+                        LT.insert (tnum tIssuer) tIssuer $+                        LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+                        LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+                        LT.insert (tnum tSecurityDesc) tSecurityDesc $+                        LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+                        LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+                        LT.insert (tnum tBidPx) tBidPx $+                        LT.insert (tnum tOfferPx) tOfferPx $+                        LT.insert (tnum tBidSize) tBidSize $+                        LT.insert (tnum tOfferSize) tOfferSize $+                        LT.insert (tnum tValidUntilTime) tValidUntilTime $+                        LT.insert (tnum tBidSpotRate) tBidSpotRate $+                        LT.insert (tnum tOfferSpotRate) tOfferSpotRate $+                        LT.insert (tnum tBidForwardPoints) tBidForwardPoints $+                        LT.insert (tnum tOfferForwardPoints) tOfferForwardPoints $+                        LT.insert (tnum tTransactTime) tTransactTime $+                        LT.insert (tnum tTradingSessionID) tTradingSessionID $+                        LT.insert (tnum tFutSettDate) tFutSettDate $+                        LT.insert (tnum tOrdType) tOrdType $+                        LT.insert (tnum tFutSettDate2) tFutSettDate2 $+                        LT.insert (tnum tOrderQty2) tOrderQty2 $+                        LT.insert (tnum tCurrency) tCurrency                         LT.new+++++mBusinessMessageReject :: FIXMessageSpec+mBusinessMessageReject = FMSpec+   { msName = "BusinessMessageReject"+   , msType = C.pack "j"+   , msHeader = headerFIX42+   , msBody = mBusinessMessageRejectBody+   , msTrailer = trailerFIX42 }+   where+   mBusinessMessageRejectBody = +      LT.insert (tnum tRefSeqNum) tRefSeqNum $+      LT.insert (tnum tRefMsgType) tRefMsgType $+      LT.insert (tnum tBusinessRejectRefID) tBusinessRejectRefID $+      LT.insert (tnum tBusinessRejectReason) tBusinessRejectReason $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mBidRequest :: FIXMessageSpec+mBidRequest = FMSpec+   { msName = "BidRequest"+   , msType = C.pack "k"+   , msHeader = headerFIX42+   , msBody = mBidRequestBody+   , msTrailer = trailerFIX42 }+   where+   mBidRequestBody = +      LT.insert (tnum tBidID) tBidID $+      LT.insert (tnum tClientBidID) tClientBidID $+      LT.insert (tnum tBidRequestTransType) tBidRequestTransType $+      LT.insert (tnum tListName) tListName $+      LT.insert (tnum tTotalNumSecurities) tTotalNumSecurities $+      LT.insert (tnum tBidType) tBidType $+      LT.insert (tnum tNumTickets) tNumTickets $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tSideValue1) tSideValue1 $+      LT.insert (tnum tSideValue2) tSideValue2 $+      LT.insert (tnum tNoBidDescriptors) gNoBidDescriptors''' $+      LT.insert (tnum tNoBidComponents) gNoBidComponents''' $+      LT.insert (tnum tLiquidityIndType) tLiquidityIndType $+      LT.insert (tnum tWtAverageLiquidity) tWtAverageLiquidity $+      LT.insert (tnum tExchangeForPhysical) tExchangeForPhysical $+      LT.insert (tnum tOutMainCntryUIndex) tOutMainCntryUIndex $+      LT.insert (tnum tCrossPercent) tCrossPercent $+      LT.insert (tnum tProgRptReqs) tProgRptReqs $+      LT.insert (tnum tProgPeriodInterval) tProgPeriodInterval $+      LT.insert (tnum tIncTaxInd) tIncTaxInd $+      LT.insert (tnum tForexReq) tForexReq $+      LT.insert (tnum tNumBidders) tNumBidders $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTradeType) tTradeType $+      LT.insert (tnum tBasisPxType) tBasisPxType $+      LT.insert (tnum tStrikeTime) tStrikeTime $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoBidComponents''' = FIXTag+            { tName = "NoBidComponents"+            , tnum = tnum tNoBidComponents+            , tparser = gNoBidComponentsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoBidComponentsSpec''' }++         gNoBidComponentsP''' = groupP gNoBidComponentsSpec'''+         gNoBidComponentsSpec''' = FGSpec+            { gsLength = tNoBidComponents+            , gsSeperator = tListID+            , gsBody = gNoBidComponentsBody''' }+            where+            gNoBidComponentsBody''' = +               LT.insert (tnum tSide) tSide $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tNetGrossInd) tNetGrossInd $+               LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+               LT.insert (tnum tFutSettDate) tFutSettDate $+               LT.insert (tnum tAccount) tAccount                LT.new++         gNoBidDescriptors''' = FIXTag+            { tName = "NoBidDescriptors"+            , tnum = tnum tNoBidDescriptors+            , tparser = gNoBidDescriptorsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoBidDescriptorsSpec''' }++         gNoBidDescriptorsP''' = groupP gNoBidDescriptorsSpec'''+         gNoBidDescriptorsSpec''' = FGSpec+            { gsLength = tNoBidDescriptors+            , gsSeperator = tBidDescriptorType+            , gsBody = gNoBidDescriptorsBody''' }+            where+            gNoBidDescriptorsBody''' = +               LT.insert (tnum tBidDescriptor) tBidDescriptor $+               LT.insert (tnum tSideValueInd) tSideValueInd $+               LT.insert (tnum tLiquidityValue) tLiquidityValue $+               LT.insert (tnum tLiquidityNumSecurities) tLiquidityNumSecurities $+               LT.insert (tnum tLiquidityPctLow) tLiquidityPctLow $+               LT.insert (tnum tLiquidityPctHigh) tLiquidityPctHigh $+               LT.insert (tnum tEFPTrackingError) tEFPTrackingError $+               LT.insert (tnum tFairValue) tFairValue $+               LT.insert (tnum tOutsideIndexPct) tOutsideIndexPct $+               LT.insert (tnum tValueOfFutures) tValueOfFutures                LT.new++++mBidResponse :: FIXMessageSpec+mBidResponse = FMSpec+   { msName = "BidResponse"+   , msType = C.pack "l"+   , msHeader = headerFIX42+   , msBody = mBidResponseBody+   , msTrailer = trailerFIX42 }+   where+   mBidResponseBody = +      LT.insert (tnum tBidID) tBidID $+      LT.insert (tnum tClientBidID) tClientBidID $+      LT.insert (tnum tNoBidComponents) gNoBidComponents'''       LT.new+      where+         gNoBidComponents''' = FIXTag+            { tName = "NoBidComponents"+            , tnum = tnum tNoBidComponents+            , tparser = gNoBidComponentsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoBidComponentsSpec''' }++         gNoBidComponentsP''' = groupP gNoBidComponentsSpec'''+         gNoBidComponentsSpec''' = FGSpec+            { gsLength = tNoBidComponents+            , gsSeperator = tCommission+            , gsBody = gNoBidComponentsBody''' }+            where+            gNoBidComponentsBody''' = +               LT.insert (tnum tCommType) tCommType $+               LT.insert (tnum tListID) tListID $+               LT.insert (tnum tCountry) tCountry $+               LT.insert (tnum tSide) tSide $+               LT.insert (tnum tPrice) tPrice $+               LT.insert (tnum tPriceType) tPriceType $+               LT.insert (tnum tFairValue) tFairValue $+               LT.insert (tnum tNetGrossInd) tNetGrossInd $+               LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+               LT.insert (tnum tFutSettDate) tFutSettDate $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new++++mListStrikePrice :: FIXMessageSpec+mListStrikePrice = FMSpec+   { msName = "ListStrikePrice"+   , msType = C.pack "m"+   , msHeader = headerFIX42+   , msBody = mListStrikePriceBody+   , msTrailer = trailerFIX42 }+   where+   mListStrikePriceBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tTotNoStrikes) tTotNoStrikes $+      LT.insert (tnum tNoStrikes) gNoStrikes'''       LT.new+      where+         gNoStrikes''' = FIXTag+            { tName = "NoStrikes"+            , tnum = tnum tNoStrikes+            , tparser = gNoStrikesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStrikesSpec''' }++         gNoStrikesP''' = groupP gNoStrikesSpec'''+         gNoStrikesSpec''' = FGSpec+            { gsLength = tNoStrikes+            , gsSeperator = tSymbol+            , gsBody = gNoStrikesBody''' }+            where+            gNoStrikesBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tIDSource) tIDSource $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDay) tMaturityDay $+               LT.insert (tnum tPutOrCall) tPutOrCall $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tPrevClosePx) tPrevClosePx $+               LT.insert (tnum tClOrdID) tClOrdID $+               LT.insert (tnum tSide) tSide $+               LT.insert (tnum tPrice) tPrice $+               LT.insert (tnum tCurrency) tCurrency $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new++++fix42 :: FIXSpec+fix42 = FSpec+   { fsVersion = "FIX.4.2"+   , fsHeader = headerFIX42+   , fsTrailer = trailerFIX42+   , fsMessages = fix42Messages +   , fsTags = fix42Tags }+   where+      fix42Messages =+          LT.insert (msType mHeartbeat) mHeartbeat $+          LT.insert (msType mTestRequest) mTestRequest $+          LT.insert (msType mResendRequest) mResendRequest $+          LT.insert (msType mReject) mReject $+          LT.insert (msType mSequenceReset) mSequenceReset $+          LT.insert (msType mLogout) mLogout $+          LT.insert (msType mIndicationofInterest) mIndicationofInterest $+          LT.insert (msType mAdvertisement) mAdvertisement $+          LT.insert (msType mExecutionReport) mExecutionReport $+          LT.insert (msType mOrderCancelReject) mOrderCancelReject $+          LT.insert (msType mLogon) mLogon $+          LT.insert (msType mNews) mNews $+          LT.insert (msType mEmail) mEmail $+          LT.insert (msType mNewOrderSingle) mNewOrderSingle $+          LT.insert (msType mNewOrderList) mNewOrderList $+          LT.insert (msType mOrderCancelRequest) mOrderCancelRequest $+          LT.insert (msType mOrderCancelReplaceRequest) mOrderCancelReplaceRequest $+          LT.insert (msType mOrderStatusRequest) mOrderStatusRequest $+          LT.insert (msType mAllocation) mAllocation $+          LT.insert (msType mListCancelRequest) mListCancelRequest $+          LT.insert (msType mListExecute) mListExecute $+          LT.insert (msType mListStatusRequest) mListStatusRequest $+          LT.insert (msType mListStatus) mListStatus $+          LT.insert (msType mAllocationACK) mAllocationACK $+          LT.insert (msType mDontKnowTrade) mDontKnowTrade $+          LT.insert (msType mQuoteRequest) mQuoteRequest $+          LT.insert (msType mQuote) mQuote $+          LT.insert (msType mSettlementInstructions) mSettlementInstructions $+          LT.insert (msType mMarketDataRequest) mMarketDataRequest $+          LT.insert (msType mMarketDataSnapshotFullRefresh) mMarketDataSnapshotFullRefresh $+          LT.insert (msType mMarketDataIncrementalRefresh) mMarketDataIncrementalRefresh $+          LT.insert (msType mMarketDataRequestReject) mMarketDataRequestReject $+          LT.insert (msType mQuoteCancel) mQuoteCancel $+          LT.insert (msType mQuoteStatusRequest) mQuoteStatusRequest $+          LT.insert (msType mQuoteAcknowledgement) mQuoteAcknowledgement $+          LT.insert (msType mSecurityDefinitionRequest) mSecurityDefinitionRequest $+          LT.insert (msType mSecurityDefinition) mSecurityDefinition $+          LT.insert (msType mSecurityStatusRequest) mSecurityStatusRequest $+          LT.insert (msType mSecurityStatus) mSecurityStatus $+          LT.insert (msType mTradingSessionStatusRequest) mTradingSessionStatusRequest $+          LT.insert (msType mTradingSessionStatus) mTradingSessionStatus $+          LT.insert (msType mMassQuote) mMassQuote $+          LT.insert (msType mBusinessMessageReject) mBusinessMessageReject $+          LT.insert (msType mBidRequest) mBidRequest $+          LT.insert (msType mBidResponse) mBidResponse $+          LT.insert (msType mListStrikePrice) mListStrikePrice           LT.new +      fix42Tags =+          LT.insert (tnum tAccount) tAccount $+          LT.insert (tnum tAdvId) tAdvId $+          LT.insert (tnum tAdvRefID) tAdvRefID $+          LT.insert (tnum tAdvSide) tAdvSide $+          LT.insert (tnum tAdvTransType) tAdvTransType $+          LT.insert (tnum tAvgPx) tAvgPx $+          LT.insert (tnum tBeginSeqNo) tBeginSeqNo $+          LT.insert (tnum tBeginString) tBeginString $+          LT.insert (tnum tBodyLength) tBodyLength $+          LT.insert (tnum tCheckSum) tCheckSum $+          LT.insert (tnum tClOrdID) tClOrdID $+          LT.insert (tnum tCommission) tCommission $+          LT.insert (tnum tCommType) tCommType $+          LT.insert (tnum tCumQty) tCumQty $+          LT.insert (tnum tCurrency) tCurrency $+          LT.insert (tnum tEndSeqNo) tEndSeqNo $+          LT.insert (tnum tExecID) tExecID $+          LT.insert (tnum tExecInst) tExecInst $+          LT.insert (tnum tExecRefID) tExecRefID $+          LT.insert (tnum tExecTransType) tExecTransType $+          LT.insert (tnum tHandlInst) tHandlInst $+          LT.insert (tnum tIDSource) tIDSource $+          LT.insert (tnum tIOIid) tIOIid $+          LT.insert (tnum tIOIQltyInd) tIOIQltyInd $+          LT.insert (tnum tIOIRefID) tIOIRefID $+          LT.insert (tnum tIOIShares) tIOIShares $+          LT.insert (tnum tIOITransType) tIOITransType $+          LT.insert (tnum tLastCapacity) tLastCapacity $+          LT.insert (tnum tLastMkt) tLastMkt $+          LT.insert (tnum tLastPx) tLastPx $+          LT.insert (tnum tLastShares) tLastShares $+          LT.insert (tnum tLinesOfText) tLinesOfText $+          LT.insert (tnum tMsgSeqNum) tMsgSeqNum $+          LT.insert (tnum tMsgType) tMsgType $+          LT.insert (tnum tNewSeqNo) tNewSeqNo $+          LT.insert (tnum tOrderID) tOrderID $+          LT.insert (tnum tOrderQty) tOrderQty $+          LT.insert (tnum tOrdStatus) tOrdStatus $+          LT.insert (tnum tOrdType) tOrdType $+          LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+          LT.insert (tnum tOrigTime) tOrigTime $+          LT.insert (tnum tPossDupFlag) tPossDupFlag $+          LT.insert (tnum tPrice) tPrice $+          LT.insert (tnum tRefSeqNum) tRefSeqNum $+          LT.insert (tnum tRelatdSym) tRelatdSym $+          LT.insert (tnum tRule80A) tRule80A $+          LT.insert (tnum tSecurityID) tSecurityID $+          LT.insert (tnum tSenderCompID) tSenderCompID $+          LT.insert (tnum tSenderSubID) tSenderSubID $+          LT.insert (tnum tSendingTime) tSendingTime $+          LT.insert (tnum tShares) tShares $+          LT.insert (tnum tSide) tSide $+          LT.insert (tnum tSymbol) tSymbol $+          LT.insert (tnum tTargetCompID) tTargetCompID $+          LT.insert (tnum tTargetSubID) tTargetSubID $+          LT.insert (tnum tText) tText $+          LT.insert (tnum tTimeInForce) tTimeInForce $+          LT.insert (tnum tTransactTime) tTransactTime $+          LT.insert (tnum tUrgency) tUrgency $+          LT.insert (tnum tValidUntilTime) tValidUntilTime $+          LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+          LT.insert (tnum tFutSettDate) tFutSettDate $+          LT.insert (tnum tSymbolSfx) tSymbolSfx $+          LT.insert (tnum tListID) tListID $+          LT.insert (tnum tListSeqNo) tListSeqNo $+          LT.insert (tnum tTotNoOrders) tTotNoOrders $+          LT.insert (tnum tListExecInst) tListExecInst $+          LT.insert (tnum tAllocID) tAllocID $+          LT.insert (tnum tAllocTransType) tAllocTransType $+          LT.insert (tnum tRefAllocID) tRefAllocID $+          LT.insert (tnum tNoOrders) tNoOrders $+          LT.insert (tnum tAvgPrxPrecision) tAvgPrxPrecision $+          LT.insert (tnum tTradeDate) tTradeDate $+          LT.insert (tnum tExecBroker) tExecBroker $+          LT.insert (tnum tOpenClose) tOpenClose $+          LT.insert (tnum tNoAllocs) tNoAllocs $+          LT.insert (tnum tAllocAccount) tAllocAccount $+          LT.insert (tnum tAllocShares) tAllocShares $+          LT.insert (tnum tProcessCode) tProcessCode $+          LT.insert (tnum tNoRpts) tNoRpts $+          LT.insert (tnum tRptSeq) tRptSeq $+          LT.insert (tnum tCxlQty) tCxlQty $+          LT.insert (tnum tAllocStatus) tAllocStatus $+          LT.insert (tnum tAllocRejCode) tAllocRejCode $+          LT.insert (tnum tSignature) tSignature $+          LT.insert (tnum tSecureDataLen) tSecureDataLen $+          LT.insert (tnum tSecureData) tSecureData $+          LT.insert (tnum tBrokerOfCredit) tBrokerOfCredit $+          LT.insert (tnum tSignatureLength) tSignatureLength $+          LT.insert (tnum tEmailType) tEmailType $+          LT.insert (tnum tRawDataLength) tRawDataLength $+          LT.insert (tnum tRawData) tRawData $+          LT.insert (tnum tPossResend) tPossResend $+          LT.insert (tnum tEncryptMethod) tEncryptMethod $+          LT.insert (tnum tStopPx) tStopPx $+          LT.insert (tnum tExDestination) tExDestination $+          LT.insert (tnum tCxlRejReason) tCxlRejReason $+          LT.insert (tnum tOrdRejReason) tOrdRejReason $+          LT.insert (tnum tIOIQualifier) tIOIQualifier $+          LT.insert (tnum tWaveNo) tWaveNo $+          LT.insert (tnum tIssuer) tIssuer $+          LT.insert (tnum tSecurityDesc) tSecurityDesc $+          LT.insert (tnum tHeartBtInt) tHeartBtInt $+          LT.insert (tnum tClientID) tClientID $+          LT.insert (tnum tMinQty) tMinQty $+          LT.insert (tnum tMaxFloor) tMaxFloor $+          LT.insert (tnum tTestReqID) tTestReqID $+          LT.insert (tnum tReportToExch) tReportToExch $+          LT.insert (tnum tLocateReqd) tLocateReqd $+          LT.insert (tnum tOnBehalfOfCompID) tOnBehalfOfCompID $+          LT.insert (tnum tOnBehalfOfSubID) tOnBehalfOfSubID $+          LT.insert (tnum tQuoteID) tQuoteID $+          LT.insert (tnum tNetMoney) tNetMoney $+          LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $+          LT.insert (tnum tSettlCurrency) tSettlCurrency $+          LT.insert (tnum tForexReq) tForexReq $+          LT.insert (tnum tOrigSendingTime) tOrigSendingTime $+          LT.insert (tnum tGapFillFlag) tGapFillFlag $+          LT.insert (tnum tNoExecs) tNoExecs $+          LT.insert (tnum tExpireTime) tExpireTime $+          LT.insert (tnum tDKReason) tDKReason $+          LT.insert (tnum tDeliverToCompID) tDeliverToCompID $+          LT.insert (tnum tDeliverToSubID) tDeliverToSubID $+          LT.insert (tnum tIOINaturalFlag) tIOINaturalFlag $+          LT.insert (tnum tQuoteReqID) tQuoteReqID $+          LT.insert (tnum tBidPx) tBidPx $+          LT.insert (tnum tOfferPx) tOfferPx $+          LT.insert (tnum tBidSize) tBidSize $+          LT.insert (tnum tOfferSize) tOfferSize $+          LT.insert (tnum tNoMiscFees) tNoMiscFees $+          LT.insert (tnum tMiscFeeAmt) tMiscFeeAmt $+          LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $+          LT.insert (tnum tMiscFeeType) tMiscFeeType $+          LT.insert (tnum tPrevClosePx) tPrevClosePx $+          LT.insert (tnum tResetSeqNumFlag) tResetSeqNumFlag $+          LT.insert (tnum tSenderLocationID) tSenderLocationID $+          LT.insert (tnum tTargetLocationID) tTargetLocationID $+          LT.insert (tnum tOnBehalfOfLocationID) tOnBehalfOfLocationID $+          LT.insert (tnum tDeliverToLocationID) tDeliverToLocationID $+          LT.insert (tnum tNoRelatedSym) tNoRelatedSym $+          LT.insert (tnum tSubject) tSubject $+          LT.insert (tnum tHeadline) tHeadline $+          LT.insert (tnum tURLLink) tURLLink $+          LT.insert (tnum tExecType) tExecType $+          LT.insert (tnum tLeavesQty) tLeavesQty $+          LT.insert (tnum tCashOrderQty) tCashOrderQty $+          LT.insert (tnum tAllocAvgPx) tAllocAvgPx $+          LT.insert (tnum tAllocNetMoney) tAllocNetMoney $+          LT.insert (tnum tSettlCurrFxRate) tSettlCurrFxRate $+          LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $+          LT.insert (tnum tNumDaysInterest) tNumDaysInterest $+          LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $+          LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+          LT.insert (tnum tSettlInstMode) tSettlInstMode $+          LT.insert (tnum tAllocText) tAllocText $+          LT.insert (tnum tSettlInstID) tSettlInstID $+          LT.insert (tnum tSettlInstTransType) tSettlInstTransType $+          LT.insert (tnum tEmailThreadID) tEmailThreadID $+          LT.insert (tnum tSettlInstSource) tSettlInstSource $+          LT.insert (tnum tSettlLocation) tSettlLocation $+          LT.insert (tnum tSecurityType) tSecurityType $+          LT.insert (tnum tEffectiveTime) tEffectiveTime $+          LT.insert (tnum tStandInstDbType) tStandInstDbType $+          LT.insert (tnum tStandInstDbName) tStandInstDbName $+          LT.insert (tnum tStandInstDbID) tStandInstDbID $+          LT.insert (tnum tSettlDeliveryType) tSettlDeliveryType $+          LT.insert (tnum tSettlDepositoryCode) tSettlDepositoryCode $+          LT.insert (tnum tSettlBrkrCode) tSettlBrkrCode $+          LT.insert (tnum tSettlInstCode) tSettlInstCode $+          LT.insert (tnum tSecuritySettlAgentName) tSecuritySettlAgentName $+          LT.insert (tnum tSecuritySettlAgentCode) tSecuritySettlAgentCode $+          LT.insert (tnum tSecuritySettlAgentAcctNum) tSecuritySettlAgentAcctNum $+          LT.insert (tnum tSecuritySettlAgentAcctName) tSecuritySettlAgentAcctName $+          LT.insert (tnum tSecuritySettlAgentContactName) tSecuritySettlAgentContactName $+          LT.insert (tnum tSecuritySettlAgentContactPhone) tSecuritySettlAgentContactPhone $+          LT.insert (tnum tCashSettlAgentName) tCashSettlAgentName $+          LT.insert (tnum tCashSettlAgentCode) tCashSettlAgentCode $+          LT.insert (tnum tCashSettlAgentAcctNum) tCashSettlAgentAcctNum $+          LT.insert (tnum tCashSettlAgentAcctName) tCashSettlAgentAcctName $+          LT.insert (tnum tCashSettlAgentContactName) tCashSettlAgentContactName $+          LT.insert (tnum tCashSettlAgentContactPhone) tCashSettlAgentContactPhone $+          LT.insert (tnum tBidSpotRate) tBidSpotRate $+          LT.insert (tnum tBidForwardPoints) tBidForwardPoints $+          LT.insert (tnum tOfferSpotRate) tOfferSpotRate $+          LT.insert (tnum tOfferForwardPoints) tOfferForwardPoints $+          LT.insert (tnum tOrderQty2) tOrderQty2 $+          LT.insert (tnum tFutSettDate2) tFutSettDate2 $+          LT.insert (tnum tLastSpotRate) tLastSpotRate $+          LT.insert (tnum tLastForwardPoints) tLastForwardPoints $+          LT.insert (tnum tAllocLinkID) tAllocLinkID $+          LT.insert (tnum tAllocLinkType) tAllocLinkType $+          LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+          LT.insert (tnum tNoIOIQualifiers) tNoIOIQualifiers $+          LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+          LT.insert (tnum tPutOrCall) tPutOrCall $+          LT.insert (tnum tStrikePrice) tStrikePrice $+          LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+          LT.insert (tnum tCustomerOrFirm) tCustomerOrFirm $+          LT.insert (tnum tMaturityDay) tMaturityDay $+          LT.insert (tnum tOptAttribute) tOptAttribute $+          LT.insert (tnum tSecurityExchange) tSecurityExchange $+          LT.insert (tnum tNotifyBrokerOfCredit) tNotifyBrokerOfCredit $+          LT.insert (tnum tAllocHandlInst) tAllocHandlInst $+          LT.insert (tnum tMaxShow) tMaxShow $+          LT.insert (tnum tPegDifference) tPegDifference $+          LT.insert (tnum tXmlDataLen) tXmlDataLen $+          LT.insert (tnum tXmlData) tXmlData $+          LT.insert (tnum tSettlInstRefID) tSettlInstRefID $+          LT.insert (tnum tNoRoutingIDs) tNoRoutingIDs $+          LT.insert (tnum tRoutingType) tRoutingType $+          LT.insert (tnum tRoutingID) tRoutingID $+          LT.insert (tnum tSpreadToBenchmark) tSpreadToBenchmark $+          LT.insert (tnum tBenchmark) tBenchmark $+          LT.insert (tnum tCouponRate) tCouponRate $+          LT.insert (tnum tContractMultiplier) tContractMultiplier $+          LT.insert (tnum tMDReqID) tMDReqID $+          LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $+          LT.insert (tnum tMarketDepth) tMarketDepth $+          LT.insert (tnum tMDUpdateType) tMDUpdateType $+          LT.insert (tnum tAggregatedBook) tAggregatedBook $+          LT.insert (tnum tNoMDEntryTypes) tNoMDEntryTypes $+          LT.insert (tnum tNoMDEntries) tNoMDEntries $+          LT.insert (tnum tMDEntryType) tMDEntryType $+          LT.insert (tnum tMDEntryPx) tMDEntryPx $+          LT.insert (tnum tMDEntrySize) tMDEntrySize $+          LT.insert (tnum tMDEntryDate) tMDEntryDate $+          LT.insert (tnum tMDEntryTime) tMDEntryTime $+          LT.insert (tnum tTickDirection) tTickDirection $+          LT.insert (tnum tMDMkt) tMDMkt $+          LT.insert (tnum tQuoteCondition) tQuoteCondition $+          LT.insert (tnum tTradeCondition) tTradeCondition $+          LT.insert (tnum tMDEntryID) tMDEntryID $+          LT.insert (tnum tMDUpdateAction) tMDUpdateAction $+          LT.insert (tnum tMDEntryRefID) tMDEntryRefID $+          LT.insert (tnum tMDReqRejReason) tMDReqRejReason $+          LT.insert (tnum tMDEntryOriginator) tMDEntryOriginator $+          LT.insert (tnum tLocationID) tLocationID $+          LT.insert (tnum tDeskID) tDeskID $+          LT.insert (tnum tDeleteReason) tDeleteReason $+          LT.insert (tnum tOpenCloseSettleFlag) tOpenCloseSettleFlag $+          LT.insert (tnum tSellerDays) tSellerDays $+          LT.insert (tnum tMDEntryBuyer) tMDEntryBuyer $+          LT.insert (tnum tMDEntrySeller) tMDEntrySeller $+          LT.insert (tnum tMDEntryPositionNo) tMDEntryPositionNo $+          LT.insert (tnum tFinancialStatus) tFinancialStatus $+          LT.insert (tnum tCorporateAction) tCorporateAction $+          LT.insert (tnum tDefBidSize) tDefBidSize $+          LT.insert (tnum tDefOfferSize) tDefOfferSize $+          LT.insert (tnum tNoQuoteEntries) tNoQuoteEntries $+          LT.insert (tnum tNoQuoteSets) tNoQuoteSets $+          LT.insert (tnum tQuoteAckStatus) tQuoteAckStatus $+          LT.insert (tnum tQuoteCancelType) tQuoteCancelType $+          LT.insert (tnum tQuoteEntryID) tQuoteEntryID $+          LT.insert (tnum tQuoteRejectReason) tQuoteRejectReason $+          LT.insert (tnum tQuoteResponseLevel) tQuoteResponseLevel $+          LT.insert (tnum tQuoteSetID) tQuoteSetID $+          LT.insert (tnum tQuoteRequestType) tQuoteRequestType $+          LT.insert (tnum tTotQuoteEntries) tTotQuoteEntries $+          LT.insert (tnum tUnderlyingIDSource) tUnderlyingIDSource $+          LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+          LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+          LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+          LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+          LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+          LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $+          LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+          LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+          LT.insert (tnum tUnderlyingMaturityDay) tUnderlyingMaturityDay $+          LT.insert (tnum tUnderlyingPutOrCall) tUnderlyingPutOrCall $+          LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+          LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+          LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+          LT.insert (tnum tRatioQty) tRatioQty $+          LT.insert (tnum tSecurityReqID) tSecurityReqID $+          LT.insert (tnum tSecurityRequestType) tSecurityRequestType $+          LT.insert (tnum tSecurityResponseID) tSecurityResponseID $+          LT.insert (tnum tSecurityResponseType) tSecurityResponseType $+          LT.insert (tnum tSecurityStatusReqID) tSecurityStatusReqID $+          LT.insert (tnum tUnsolicitedIndicator) tUnsolicitedIndicator $+          LT.insert (tnum tSecurityTradingStatus) tSecurityTradingStatus $+          LT.insert (tnum tHaltReasonChar) tHaltReasonChar $+          LT.insert (tnum tInViewOfCommon) tInViewOfCommon $+          LT.insert (tnum tDueToRelated) tDueToRelated $+          LT.insert (tnum tBuyVolume) tBuyVolume $+          LT.insert (tnum tSellVolume) tSellVolume $+          LT.insert (tnum tHighPx) tHighPx $+          LT.insert (tnum tLowPx) tLowPx $+          LT.insert (tnum tAdjustment) tAdjustment $+          LT.insert (tnum tTradSesReqID) tTradSesReqID $+          LT.insert (tnum tTradingSessionID) tTradingSessionID $+          LT.insert (tnum tContraTrader) tContraTrader $+          LT.insert (tnum tTradSesMethod) tTradSesMethod $+          LT.insert (tnum tTradSesMode) tTradSesMode $+          LT.insert (tnum tTradSesStatus) tTradSesStatus $+          LT.insert (tnum tTradSesStartTime) tTradSesStartTime $+          LT.insert (tnum tTradSesOpenTime) tTradSesOpenTime $+          LT.insert (tnum tTradSesPreCloseTime) tTradSesPreCloseTime $+          LT.insert (tnum tTradSesCloseTime) tTradSesCloseTime $+          LT.insert (tnum tTradSesEndTime) tTradSesEndTime $+          LT.insert (tnum tNumberOfOrders) tNumberOfOrders $+          LT.insert (tnum tMessageEncoding) tMessageEncoding $+          LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+          LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+          LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+          LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+          LT.insert (tnum tEncodedListExecInstLen) tEncodedListExecInstLen $+          LT.insert (tnum tEncodedListExecInst) tEncodedListExecInst $+          LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+          LT.insert (tnum tEncodedText) tEncodedText $+          LT.insert (tnum tEncodedSubjectLen) tEncodedSubjectLen $+          LT.insert (tnum tEncodedSubject) tEncodedSubject $+          LT.insert (tnum tEncodedHeadlineLen) tEncodedHeadlineLen $+          LT.insert (tnum tEncodedHeadline) tEncodedHeadline $+          LT.insert (tnum tEncodedAllocTextLen) tEncodedAllocTextLen $+          LT.insert (tnum tEncodedAllocText) tEncodedAllocText $+          LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+          LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+          LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+          LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+          LT.insert (tnum tAllocPrice) tAllocPrice $+          LT.insert (tnum tQuoteSetValidUntilTime) tQuoteSetValidUntilTime $+          LT.insert (tnum tQuoteEntryRejectReason) tQuoteEntryRejectReason $+          LT.insert (tnum tLastMsgSeqNumProcessed) tLastMsgSeqNumProcessed $+          LT.insert (tnum tOnBehalfOfSendingTime) tOnBehalfOfSendingTime $+          LT.insert (tnum tRefTagID) tRefTagID $+          LT.insert (tnum tRefMsgType) tRefMsgType $+          LT.insert (tnum tSessionRejectReason) tSessionRejectReason $+          LT.insert (tnum tBidRequestTransType) tBidRequestTransType $+          LT.insert (tnum tContraBroker) tContraBroker $+          LT.insert (tnum tComplianceID) tComplianceID $+          LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+          LT.insert (tnum tExecRestatementReason) tExecRestatementReason $+          LT.insert (tnum tBusinessRejectRefID) tBusinessRejectRefID $+          LT.insert (tnum tBusinessRejectReason) tBusinessRejectReason $+          LT.insert (tnum tGrossTradeAmt) tGrossTradeAmt $+          LT.insert (tnum tNoContraBrokers) tNoContraBrokers $+          LT.insert (tnum tMaxMessageSize) tMaxMessageSize $+          LT.insert (tnum tNoMsgTypes) tNoMsgTypes $+          LT.insert (tnum tMsgDirection) tMsgDirection $+          LT.insert (tnum tNoTradingSessions) tNoTradingSessions $+          LT.insert (tnum tTotalVolumeTraded) tTotalVolumeTraded $+          LT.insert (tnum tDiscretionInst) tDiscretionInst $+          LT.insert (tnum tDiscretionOffset) tDiscretionOffset $+          LT.insert (tnum tBidID) tBidID $+          LT.insert (tnum tClientBidID) tClientBidID $+          LT.insert (tnum tListName) tListName $+          LT.insert (tnum tTotalNumSecurities) tTotalNumSecurities $+          LT.insert (tnum tBidType) tBidType $+          LT.insert (tnum tNumTickets) tNumTickets $+          LT.insert (tnum tSideValue1) tSideValue1 $+          LT.insert (tnum tSideValue2) tSideValue2 $+          LT.insert (tnum tNoBidDescriptors) tNoBidDescriptors $+          LT.insert (tnum tBidDescriptorType) tBidDescriptorType $+          LT.insert (tnum tBidDescriptor) tBidDescriptor $+          LT.insert (tnum tSideValueInd) tSideValueInd $+          LT.insert (tnum tLiquidityPctLow) tLiquidityPctLow $+          LT.insert (tnum tLiquidityPctHigh) tLiquidityPctHigh $+          LT.insert (tnum tLiquidityValue) tLiquidityValue $+          LT.insert (tnum tEFPTrackingError) tEFPTrackingError $+          LT.insert (tnum tFairValue) tFairValue $+          LT.insert (tnum tOutsideIndexPct) tOutsideIndexPct $+          LT.insert (tnum tValueOfFutures) tValueOfFutures $+          LT.insert (tnum tLiquidityIndType) tLiquidityIndType $+          LT.insert (tnum tWtAverageLiquidity) tWtAverageLiquidity $+          LT.insert (tnum tExchangeForPhysical) tExchangeForPhysical $+          LT.insert (tnum tOutMainCntryUIndex) tOutMainCntryUIndex $+          LT.insert (tnum tCrossPercent) tCrossPercent $+          LT.insert (tnum tProgRptReqs) tProgRptReqs $+          LT.insert (tnum tProgPeriodInterval) tProgPeriodInterval $+          LT.insert (tnum tIncTaxInd) tIncTaxInd $+          LT.insert (tnum tNumBidders) tNumBidders $+          LT.insert (tnum tTradeType) tTradeType $+          LT.insert (tnum tBasisPxType) tBasisPxType $+          LT.insert (tnum tNoBidComponents) tNoBidComponents $+          LT.insert (tnum tCountry) tCountry $+          LT.insert (tnum tTotNoStrikes) tTotNoStrikes $+          LT.insert (tnum tPriceType) tPriceType $+          LT.insert (tnum tDayOrderQty) tDayOrderQty $+          LT.insert (tnum tDayCumQty) tDayCumQty $+          LT.insert (tnum tDayAvgPx) tDayAvgPx $+          LT.insert (tnum tGTBookingInst) tGTBookingInst $+          LT.insert (tnum tNoStrikes) tNoStrikes $+          LT.insert (tnum tListStatusType) tListStatusType $+          LT.insert (tnum tNetGrossInd) tNetGrossInd $+          LT.insert (tnum tListOrderStatus) tListOrderStatus $+          LT.insert (tnum tExpireDate) tExpireDate $+          LT.insert (tnum tListExecInstType) tListExecInstType $+          LT.insert (tnum tCxlRejResponseTo) tCxlRejResponseTo $+          LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+          LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+          LT.insert (tnum tContraTradeQty) tContraTradeQty $+          LT.insert (tnum tContraTradeTime) tContraTradeTime $+          LT.insert (tnum tClearingFirm) tClearingFirm $+          LT.insert (tnum tClearingAccount) tClearingAccount $+          LT.insert (tnum tLiquidityNumSecurities) tLiquidityNumSecurities $+          LT.insert (tnum tMultiLegReportingType) tMultiLegReportingType $+          LT.insert (tnum tStrikeTime) tStrikeTime $+          LT.insert (tnum tListStatusText) tListStatusText $+          LT.insert (tnum tEncodedListStatusTextLen) tEncodedListStatusTextLen $+          LT.insert (tnum tEncodedListStatusText) tEncodedListStatusText $+          LT.new 
+ src/Data/FIX/Spec/FIX43.hs view
@@ -0,0 +1,12377 @@+module Data.FIX.Spec.FIX43 ( fix43 ) where+import qualified Data.ByteString.Char8 as C+import qualified Data.LookupTable as LT ( new, insert )+import Data.FIX.Message+import Data.FIX.Parser+import Data.Functor ( (<$>) )+import Data.FIX.Arbitrary +import Test.QuickCheck ( arbitrary )+++tAccount :: FIXTag+tAccount = FIXTag +   { tName = "Account"+   , tnum = 1+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAdvId :: FIXTag+tAdvId = FIXTag +   { tName = "AdvId"+   , tnum = 2+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAdvRefID :: FIXTag+tAdvRefID = FIXTag +   { tName = "AdvRefID"+   , tnum = 3+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAdvSide :: FIXTag+tAdvSide = FIXTag +   { tName = "AdvSide"+   , tnum = 4+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAdvTransType :: FIXTag+tAdvTransType = FIXTag +   { tName = "AdvTransType"+   , tnum = 5+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAvgPx :: FIXTag+tAvgPx = FIXTag +   { tName = "AvgPx"+   , tnum = 6+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBeginSeqNo :: FIXTag+tBeginSeqNo = FIXTag +   { tName = "BeginSeqNo"+   , tnum = 7+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tClOrdID :: FIXTag+tClOrdID = FIXTag +   { tName = "ClOrdID"+   , tnum = 11+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCommission :: FIXTag+tCommission = FIXTag +   { tName = "Commission"+   , tnum = 12+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCommType :: FIXTag+tCommType = FIXTag +   { tName = "CommType"+   , tnum = 13+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCumQty :: FIXTag+tCumQty = FIXTag +   { tName = "CumQty"+   , tnum = 14+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCurrency :: FIXTag+tCurrency = FIXTag +   { tName = "Currency"+   , tnum = 15+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tEndSeqNo :: FIXTag+tEndSeqNo = FIXTag +   { tName = "EndSeqNo"+   , tnum = 16+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tExecID :: FIXTag+tExecID = FIXTag +   { tName = "ExecID"+   , tnum = 17+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tExecInst :: FIXTag+tExecInst = FIXTag +   { tName = "ExecInst"+   , tnum = 18+   , tparser = toFIXMultipleValueString+   , arbitraryValue = FIXMultipleValueString <$> arbitrary }++tExecRefID :: FIXTag+tExecRefID = FIXTag +   { tName = "ExecRefID"+   , tnum = 19+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tExecTransType :: FIXTag+tExecTransType = FIXTag +   { tName = "ExecTransType"+   , tnum = 20+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tHandlInst :: FIXTag+tHandlInst = FIXTag +   { tName = "HandlInst"+   , tnum = 21+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSecurityIDSource :: FIXTag+tSecurityIDSource = FIXTag +   { tName = "SecurityIDSource"+   , tnum = 22+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tIOIid :: FIXTag+tIOIid = FIXTag +   { tName = "IOIid"+   , tnum = 23+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tIOIOthSvc :: FIXTag+tIOIOthSvc = FIXTag +   { tName = "IOIOthSvc"+   , tnum = 24+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tIOIQltyInd :: FIXTag+tIOIQltyInd = FIXTag +   { tName = "IOIQltyInd"+   , tnum = 25+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tIOIRefID :: FIXTag+tIOIRefID = FIXTag +   { tName = "IOIRefID"+   , tnum = 26+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tIOIQty :: FIXTag+tIOIQty = FIXTag +   { tName = "IOIQty"+   , tnum = 27+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tIOITransType :: FIXTag+tIOITransType = FIXTag +   { tName = "IOITransType"+   , tnum = 28+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLastCapacity :: FIXTag+tLastCapacity = FIXTag +   { tName = "LastCapacity"+   , tnum = 29+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLastMkt :: FIXTag+tLastMkt = FIXTag +   { tName = "LastMkt"+   , tnum = 30+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLastPx :: FIXTag+tLastPx = FIXTag +   { tName = "LastPx"+   , tnum = 31+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLastQty :: FIXTag+tLastQty = FIXTag +   { tName = "LastQty"+   , tnum = 32+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLinesOfText :: FIXTag+tLinesOfText = FIXTag +   { tName = "LinesOfText"+   , tnum = 33+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMsgSeqNum :: FIXTag+tMsgSeqNum = FIXTag +   { tName = "MsgSeqNum"+   , tnum = 34+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNewSeqNo :: FIXTag+tNewSeqNo = FIXTag +   { tName = "NewSeqNo"+   , tnum = 36+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOrderID :: FIXTag+tOrderID = FIXTag +   { tName = "OrderID"+   , tnum = 37+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tOrderQty :: FIXTag+tOrderQty = FIXTag +   { tName = "OrderQty"+   , tnum = 38+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOrdStatus :: FIXTag+tOrdStatus = FIXTag +   { tName = "OrdStatus"+   , tnum = 39+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOrdType :: FIXTag+tOrdType = FIXTag +   { tName = "OrdType"+   , tnum = 40+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOrigClOrdID :: FIXTag+tOrigClOrdID = FIXTag +   { tName = "OrigClOrdID"+   , tnum = 41+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tOrigTime :: FIXTag+tOrigTime = FIXTag +   { tName = "OrigTime"+   , tnum = 42+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tPossDupFlag :: FIXTag+tPossDupFlag = FIXTag +   { tName = "PossDupFlag"+   , tnum = 43+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tPrice :: FIXTag+tPrice = FIXTag +   { tName = "Price"+   , tnum = 44+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tRefSeqNum :: FIXTag+tRefSeqNum = FIXTag +   { tName = "RefSeqNum"+   , tnum = 45+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRelatdSym :: FIXTag+tRelatdSym = FIXTag +   { tName = "RelatdSym"+   , tnum = 46+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tRule80A :: FIXTag+tRule80A = FIXTag +   { tName = "Rule80A"+   , tnum = 47+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSecurityID :: FIXTag+tSecurityID = FIXTag +   { tName = "SecurityID"+   , tnum = 48+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSenderCompID :: FIXTag+tSenderCompID = FIXTag +   { tName = "SenderCompID"+   , tnum = 49+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSenderSubID :: FIXTag+tSenderSubID = FIXTag +   { tName = "SenderSubID"+   , tnum = 50+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSendingDate :: FIXTag+tSendingDate = FIXTag +   { tName = "SendingDate"+   , tnum = 51+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tSendingTime :: FIXTag+tSendingTime = FIXTag +   { tName = "SendingTime"+   , tnum = 52+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tQuantity :: FIXTag+tQuantity = FIXTag +   { tName = "Quantity"+   , tnum = 53+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSide :: FIXTag+tSide = FIXTag +   { tName = "Side"+   , tnum = 54+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSymbol :: FIXTag+tSymbol = FIXTag +   { tName = "Symbol"+   , tnum = 55+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTargetCompID :: FIXTag+tTargetCompID = FIXTag +   { tName = "TargetCompID"+   , tnum = 56+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTargetSubID :: FIXTag+tTargetSubID = FIXTag +   { tName = "TargetSubID"+   , tnum = 57+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tText :: FIXTag+tText = FIXTag +   { tName = "Text"+   , tnum = 58+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTimeInForce :: FIXTag+tTimeInForce = FIXTag +   { tName = "TimeInForce"+   , tnum = 59+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tTransactTime :: FIXTag+tTransactTime = FIXTag +   { tName = "TransactTime"+   , tnum = 60+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tUrgency :: FIXTag+tUrgency = FIXTag +   { tName = "Urgency"+   , tnum = 61+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tValidUntilTime :: FIXTag+tValidUntilTime = FIXTag +   { tName = "ValidUntilTime"+   , tnum = 62+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tSettlmntTyp :: FIXTag+tSettlmntTyp = FIXTag +   { tName = "SettlmntTyp"+   , tnum = 63+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tFutSettDate :: FIXTag+tFutSettDate = FIXTag +   { tName = "FutSettDate"+   , tnum = 64+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tSymbolSfx :: FIXTag+tSymbolSfx = FIXTag +   { tName = "SymbolSfx"+   , tnum = 65+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tListID :: FIXTag+tListID = FIXTag +   { tName = "ListID"+   , tnum = 66+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tListSeqNo :: FIXTag+tListSeqNo = FIXTag +   { tName = "ListSeqNo"+   , tnum = 67+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTotNoOrders :: FIXTag+tTotNoOrders = FIXTag +   { tName = "TotNoOrders"+   , tnum = 68+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tListExecInst :: FIXTag+tListExecInst = FIXTag +   { tName = "ListExecInst"+   , tnum = 69+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAllocID :: FIXTag+tAllocID = FIXTag +   { tName = "AllocID"+   , tnum = 70+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAllocTransType :: FIXTag+tAllocTransType = FIXTag +   { tName = "AllocTransType"+   , tnum = 71+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tRefAllocID :: FIXTag+tRefAllocID = FIXTag +   { tName = "RefAllocID"+   , tnum = 72+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoOrders :: FIXTag+tNoOrders = FIXTag +   { tName = "NoOrders"+   , tnum = 73+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAvgPrxPrecision :: FIXTag+tAvgPrxPrecision = FIXTag +   { tName = "AvgPrxPrecision"+   , tnum = 74+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradeDate :: FIXTag+tTradeDate = FIXTag +   { tName = "TradeDate"+   , tnum = 75+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tExecBroker :: FIXTag+tExecBroker = FIXTag +   { tName = "ExecBroker"+   , tnum = 76+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tPositionEffect :: FIXTag+tPositionEffect = FIXTag +   { tName = "PositionEffect"+   , tnum = 77+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoAllocs :: FIXTag+tNoAllocs = FIXTag +   { tName = "NoAllocs"+   , tnum = 78+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAllocAccount :: FIXTag+tAllocAccount = FIXTag +   { tName = "AllocAccount"+   , tnum = 79+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAllocQty :: FIXTag+tAllocQty = FIXTag +   { tName = "AllocQty"+   , tnum = 80+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tProcessCode :: FIXTag+tProcessCode = FIXTag +   { tName = "ProcessCode"+   , tnum = 81+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoRpts :: FIXTag+tNoRpts = FIXTag +   { tName = "NoRpts"+   , tnum = 82+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRptSeq :: FIXTag+tRptSeq = FIXTag +   { tName = "RptSeq"+   , tnum = 83+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCxlQty :: FIXTag+tCxlQty = FIXTag +   { tName = "CxlQty"+   , tnum = 84+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoDlvyInst :: FIXTag+tNoDlvyInst = FIXTag +   { tName = "NoDlvyInst"+   , tnum = 85+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tDlvyInst :: FIXTag+tDlvyInst = FIXTag +   { tName = "DlvyInst"+   , tnum = 86+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAllocStatus :: FIXTag+tAllocStatus = FIXTag +   { tName = "AllocStatus"+   , tnum = 87+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAllocRejCode :: FIXTag+tAllocRejCode = FIXTag +   { tName = "AllocRejCode"+   , tnum = 88+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSignature :: FIXTag+tSignature = FIXTag +   { tName = "Signature"+   , tnum = 89+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tSecureDataLen :: FIXTag+tSecureDataLen = FIXTag +   { tName = "SecureDataLen"+   , tnum = 90+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecureData :: FIXTag+tSecureData = FIXTag +   { tName = "SecureData"+   , tnum = 91+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tBrokerOfCredit :: FIXTag+tBrokerOfCredit = FIXTag +   { tName = "BrokerOfCredit"+   , tnum = 92+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSignatureLength :: FIXTag+tSignatureLength = FIXTag +   { tName = "SignatureLength"+   , tnum = 93+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEmailType :: FIXTag+tEmailType = FIXTag +   { tName = "EmailType"+   , tnum = 94+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tRawDataLength :: FIXTag+tRawDataLength = FIXTag +   { tName = "RawDataLength"+   , tnum = 95+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRawData :: FIXTag+tRawData = FIXTag +   { tName = "RawData"+   , tnum = 96+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tPossResend :: FIXTag+tPossResend = FIXTag +   { tName = "PossResend"+   , tnum = 97+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tEncryptMethod :: FIXTag+tEncryptMethod = FIXTag +   { tName = "EncryptMethod"+   , tnum = 98+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tStopPx :: FIXTag+tStopPx = FIXTag +   { tName = "StopPx"+   , tnum = 99+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tExDestination :: FIXTag+tExDestination = FIXTag +   { tName = "ExDestination"+   , tnum = 100+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCxlRejReason :: FIXTag+tCxlRejReason = FIXTag +   { tName = "CxlRejReason"+   , tnum = 102+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOrdRejReason :: FIXTag+tOrdRejReason = FIXTag +   { tName = "OrdRejReason"+   , tnum = 103+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tIOIQualifier :: FIXTag+tIOIQualifier = FIXTag +   { tName = "IOIQualifier"+   , tnum = 104+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tWaveNo :: FIXTag+tWaveNo = FIXTag +   { tName = "WaveNo"+   , tnum = 105+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tIssuer :: FIXTag+tIssuer = FIXTag +   { tName = "Issuer"+   , tnum = 106+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecurityDesc :: FIXTag+tSecurityDesc = FIXTag +   { tName = "SecurityDesc"+   , tnum = 107+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tHeartBtInt :: FIXTag+tHeartBtInt = FIXTag +   { tName = "HeartBtInt"+   , tnum = 108+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tClientID :: FIXTag+tClientID = FIXTag +   { tName = "ClientID"+   , tnum = 109+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMinQty :: FIXTag+tMinQty = FIXTag +   { tName = "MinQty"+   , tnum = 110+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMaxFloor :: FIXTag+tMaxFloor = FIXTag +   { tName = "MaxFloor"+   , tnum = 111+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tTestReqID :: FIXTag+tTestReqID = FIXTag +   { tName = "TestReqID"+   , tnum = 112+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tReportToExch :: FIXTag+tReportToExch = FIXTag +   { tName = "ReportToExch"+   , tnum = 113+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tLocateReqd :: FIXTag+tLocateReqd = FIXTag +   { tName = "LocateReqd"+   , tnum = 114+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tOnBehalfOfCompID :: FIXTag+tOnBehalfOfCompID = FIXTag +   { tName = "OnBehalfOfCompID"+   , tnum = 115+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tOnBehalfOfSubID :: FIXTag+tOnBehalfOfSubID = FIXTag +   { tName = "OnBehalfOfSubID"+   , tnum = 116+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tQuoteID :: FIXTag+tQuoteID = FIXTag +   { tName = "QuoteID"+   , tnum = 117+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNetMoney :: FIXTag+tNetMoney = FIXTag +   { tName = "NetMoney"+   , tnum = 118+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlCurrAmt :: FIXTag+tSettlCurrAmt = FIXTag +   { tName = "SettlCurrAmt"+   , tnum = 119+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlCurrency :: FIXTag+tSettlCurrency = FIXTag +   { tName = "SettlCurrency"+   , tnum = 120+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tForexReq :: FIXTag+tForexReq = FIXTag +   { tName = "ForexReq"+   , tnum = 121+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tOrigSendingTime :: FIXTag+tOrigSendingTime = FIXTag +   { tName = "OrigSendingTime"+   , tnum = 122+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tGapFillFlag :: FIXTag+tGapFillFlag = FIXTag +   { tName = "GapFillFlag"+   , tnum = 123+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tNoExecs :: FIXTag+tNoExecs = FIXTag +   { tName = "NoExecs"+   , tnum = 124+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCxlType :: FIXTag+tCxlType = FIXTag +   { tName = "CxlType"+   , tnum = 125+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tExpireTime :: FIXTag+tExpireTime = FIXTag +   { tName = "ExpireTime"+   , tnum = 126+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tDKReason :: FIXTag+tDKReason = FIXTag +   { tName = "DKReason"+   , tnum = 127+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tDeliverToCompID :: FIXTag+tDeliverToCompID = FIXTag +   { tName = "DeliverToCompID"+   , tnum = 128+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tDeliverToSubID :: FIXTag+tDeliverToSubID = FIXTag +   { tName = "DeliverToSubID"+   , tnum = 129+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tIOINaturalFlag :: FIXTag+tIOINaturalFlag = FIXTag +   { tName = "IOINaturalFlag"+   , tnum = 130+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tQuoteReqID :: FIXTag+tQuoteReqID = FIXTag +   { tName = "QuoteReqID"+   , tnum = 131+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tBidPx :: FIXTag+tBidPx = FIXTag +   { tName = "BidPx"+   , tnum = 132+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOfferPx :: FIXTag+tOfferPx = FIXTag +   { tName = "OfferPx"+   , tnum = 133+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBidSize :: FIXTag+tBidSize = FIXTag +   { tName = "BidSize"+   , tnum = 134+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOfferSize :: FIXTag+tOfferSize = FIXTag +   { tName = "OfferSize"+   , tnum = 135+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoMiscFees :: FIXTag+tNoMiscFees = FIXTag +   { tName = "NoMiscFees"+   , tnum = 136+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMiscFeeAmt :: FIXTag+tMiscFeeAmt = FIXTag +   { tName = "MiscFeeAmt"+   , tnum = 137+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMiscFeeCurr :: FIXTag+tMiscFeeCurr = FIXTag +   { tName = "MiscFeeCurr"+   , tnum = 138+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMiscFeeType :: FIXTag+tMiscFeeType = FIXTag +   { tName = "MiscFeeType"+   , tnum = 139+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tPrevClosePx :: FIXTag+tPrevClosePx = FIXTag +   { tName = "PrevClosePx"+   , tnum = 140+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tResetSeqNumFlag :: FIXTag+tResetSeqNumFlag = FIXTag +   { tName = "ResetSeqNumFlag"+   , tnum = 141+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tSenderLocationID :: FIXTag+tSenderLocationID = FIXTag +   { tName = "SenderLocationID"+   , tnum = 142+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTargetLocationID :: FIXTag+tTargetLocationID = FIXTag +   { tName = "TargetLocationID"+   , tnum = 143+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tOnBehalfOfLocationID :: FIXTag+tOnBehalfOfLocationID = FIXTag +   { tName = "OnBehalfOfLocationID"+   , tnum = 144+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tDeliverToLocationID :: FIXTag+tDeliverToLocationID = FIXTag +   { tName = "DeliverToLocationID"+   , tnum = 145+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoRelatedSym :: FIXTag+tNoRelatedSym = FIXTag +   { tName = "NoRelatedSym"+   , tnum = 146+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSubject :: FIXTag+tSubject = FIXTag +   { tName = "Subject"+   , tnum = 147+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tHeadline :: FIXTag+tHeadline = FIXTag +   { tName = "Headline"+   , tnum = 148+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tURLLink :: FIXTag+tURLLink = FIXTag +   { tName = "URLLink"+   , tnum = 149+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tExecType :: FIXTag+tExecType = FIXTag +   { tName = "ExecType"+   , tnum = 150+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLeavesQty :: FIXTag+tLeavesQty = FIXTag +   { tName = "LeavesQty"+   , tnum = 151+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCashOrderQty :: FIXTag+tCashOrderQty = FIXTag +   { tName = "CashOrderQty"+   , tnum = 152+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAllocAvgPx :: FIXTag+tAllocAvgPx = FIXTag +   { tName = "AllocAvgPx"+   , tnum = 153+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAllocNetMoney :: FIXTag+tAllocNetMoney = FIXTag +   { tName = "AllocNetMoney"+   , tnum = 154+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlCurrFxRate :: FIXTag+tSettlCurrFxRate = FIXTag +   { tName = "SettlCurrFxRate"+   , tnum = 155+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlCurrFxRateCalc :: FIXTag+tSettlCurrFxRateCalc = FIXTag +   { tName = "SettlCurrFxRateCalc"+   , tnum = 156+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNumDaysInterest :: FIXTag+tNumDaysInterest = FIXTag +   { tName = "NumDaysInterest"+   , tnum = 157+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAccruedInterestRate :: FIXTag+tAccruedInterestRate = FIXTag +   { tName = "AccruedInterestRate"+   , tnum = 158+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAccruedInterestAmt :: FIXTag+tAccruedInterestAmt = FIXTag +   { tName = "AccruedInterestAmt"+   , tnum = 159+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlInstMode :: FIXTag+tSettlInstMode = FIXTag +   { tName = "SettlInstMode"+   , tnum = 160+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAllocText :: FIXTag+tAllocText = FIXTag +   { tName = "AllocText"+   , tnum = 161+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlInstID :: FIXTag+tSettlInstID = FIXTag +   { tName = "SettlInstID"+   , tnum = 162+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlInstTransType :: FIXTag+tSettlInstTransType = FIXTag +   { tName = "SettlInstTransType"+   , tnum = 163+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tEmailThreadID :: FIXTag+tEmailThreadID = FIXTag +   { tName = "EmailThreadID"+   , tnum = 164+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlInstSource :: FIXTag+tSettlInstSource = FIXTag +   { tName = "SettlInstSource"+   , tnum = 165+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSettlLocation :: FIXTag+tSettlLocation = FIXTag +   { tName = "SettlLocation"+   , tnum = 166+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecurityType :: FIXTag+tSecurityType = FIXTag +   { tName = "SecurityType"+   , tnum = 167+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tEffectiveTime :: FIXTag+tEffectiveTime = FIXTag +   { tName = "EffectiveTime"+   , tnum = 168+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tStandInstDbType :: FIXTag+tStandInstDbType = FIXTag +   { tName = "StandInstDbType"+   , tnum = 169+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tStandInstDbName :: FIXTag+tStandInstDbName = FIXTag +   { tName = "StandInstDbName"+   , tnum = 170+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tStandInstDbID :: FIXTag+tStandInstDbID = FIXTag +   { tName = "StandInstDbID"+   , tnum = 171+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlDeliveryType :: FIXTag+tSettlDeliveryType = FIXTag +   { tName = "SettlDeliveryType"+   , tnum = 172+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSettlDepositoryCode :: FIXTag+tSettlDepositoryCode = FIXTag +   { tName = "SettlDepositoryCode"+   , tnum = 173+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlBrkrCode :: FIXTag+tSettlBrkrCode = FIXTag +   { tName = "SettlBrkrCode"+   , tnum = 174+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlInstCode :: FIXTag+tSettlInstCode = FIXTag +   { tName = "SettlInstCode"+   , tnum = 175+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecuritySettlAgentName :: FIXTag+tSecuritySettlAgentName = FIXTag +   { tName = "SecuritySettlAgentName"+   , tnum = 176+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecuritySettlAgentCode :: FIXTag+tSecuritySettlAgentCode = FIXTag +   { tName = "SecuritySettlAgentCode"+   , tnum = 177+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecuritySettlAgentAcctNum :: FIXTag+tSecuritySettlAgentAcctNum = FIXTag +   { tName = "SecuritySettlAgentAcctNum"+   , tnum = 178+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecuritySettlAgentAcctName :: FIXTag+tSecuritySettlAgentAcctName = FIXTag +   { tName = "SecuritySettlAgentAcctName"+   , tnum = 179+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecuritySettlAgentContactName :: FIXTag+tSecuritySettlAgentContactName = FIXTag +   { tName = "SecuritySettlAgentContactName"+   , tnum = 180+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecuritySettlAgentContactPhone :: FIXTag+tSecuritySettlAgentContactPhone = FIXTag +   { tName = "SecuritySettlAgentContactPhone"+   , tnum = 181+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashSettlAgentName :: FIXTag+tCashSettlAgentName = FIXTag +   { tName = "CashSettlAgentName"+   , tnum = 182+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashSettlAgentCode :: FIXTag+tCashSettlAgentCode = FIXTag +   { tName = "CashSettlAgentCode"+   , tnum = 183+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashSettlAgentAcctNum :: FIXTag+tCashSettlAgentAcctNum = FIXTag +   { tName = "CashSettlAgentAcctNum"+   , tnum = 184+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashSettlAgentAcctName :: FIXTag+tCashSettlAgentAcctName = FIXTag +   { tName = "CashSettlAgentAcctName"+   , tnum = 185+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashSettlAgentContactName :: FIXTag+tCashSettlAgentContactName = FIXTag +   { tName = "CashSettlAgentContactName"+   , tnum = 186+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashSettlAgentContactPhone :: FIXTag+tCashSettlAgentContactPhone = FIXTag +   { tName = "CashSettlAgentContactPhone"+   , tnum = 187+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tBidSpotRate :: FIXTag+tBidSpotRate = FIXTag +   { tName = "BidSpotRate"+   , tnum = 188+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBidForwardPoints :: FIXTag+tBidForwardPoints = FIXTag +   { tName = "BidForwardPoints"+   , tnum = 189+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOfferSpotRate :: FIXTag+tOfferSpotRate = FIXTag +   { tName = "OfferSpotRate"+   , tnum = 190+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOfferForwardPoints :: FIXTag+tOfferForwardPoints = FIXTag +   { tName = "OfferForwardPoints"+   , tnum = 191+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOrderQty2 :: FIXTag+tOrderQty2 = FIXTag +   { tName = "OrderQty2"+   , tnum = 192+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tFutSettDate2 :: FIXTag+tFutSettDate2 = FIXTag +   { tName = "FutSettDate2"+   , tnum = 193+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tLastSpotRate :: FIXTag+tLastSpotRate = FIXTag +   { tName = "LastSpotRate"+   , tnum = 194+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLastForwardPoints :: FIXTag+tLastForwardPoints = FIXTag +   { tName = "LastForwardPoints"+   , tnum = 195+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAllocLinkID :: FIXTag+tAllocLinkID = FIXTag +   { tName = "AllocLinkID"+   , tnum = 196+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAllocLinkType :: FIXTag+tAllocLinkType = FIXTag +   { tName = "AllocLinkType"+   , tnum = 197+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecondaryOrderID :: FIXTag+tSecondaryOrderID = FIXTag +   { tName = "SecondaryOrderID"+   , tnum = 198+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoIOIQualifiers :: FIXTag+tNoIOIQualifiers = FIXTag +   { tName = "NoIOIQualifiers"+   , tnum = 199+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMaturityMonthYear :: FIXTag+tMaturityMonthYear = FIXTag +   { tName = "MaturityMonthYear"+   , tnum = 200+   , tparser = toFIXMonthYear+   , arbitraryValue = FIXMonthYear <$> arbitrary }++tPutOrCall :: FIXTag+tPutOrCall = FIXTag +   { tName = "PutOrCall"+   , tnum = 201+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tStrikePrice :: FIXTag+tStrikePrice = FIXTag +   { tName = "StrikePrice"+   , tnum = 202+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCoveredOrUncovered :: FIXTag+tCoveredOrUncovered = FIXTag +   { tName = "CoveredOrUncovered"+   , tnum = 203+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCustomerOrFirm :: FIXTag+tCustomerOrFirm = FIXTag +   { tName = "CustomerOrFirm"+   , tnum = 204+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMaturityDay :: FIXTag+tMaturityDay = FIXTag +   { tName = "MaturityDay"+   , tnum = 205+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOptAttribute :: FIXTag+tOptAttribute = FIXTag +   { tName = "OptAttribute"+   , tnum = 206+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSecurityExchange :: FIXTag+tSecurityExchange = FIXTag +   { tName = "SecurityExchange"+   , tnum = 207+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNotifyBrokerOfCredit :: FIXTag+tNotifyBrokerOfCredit = FIXTag +   { tName = "NotifyBrokerOfCredit"+   , tnum = 208+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tAllocHandlInst :: FIXTag+tAllocHandlInst = FIXTag +   { tName = "AllocHandlInst"+   , tnum = 209+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMaxShow :: FIXTag+tMaxShow = FIXTag +   { tName = "MaxShow"+   , tnum = 210+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tPegDifference :: FIXTag+tPegDifference = FIXTag +   { tName = "PegDifference"+   , tnum = 211+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tXmlDataLen :: FIXTag+tXmlDataLen = FIXTag +   { tName = "XmlDataLen"+   , tnum = 212+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tXmlData :: FIXTag+tXmlData = FIXTag +   { tName = "XmlData"+   , tnum = 213+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tSettlInstRefID :: FIXTag+tSettlInstRefID = FIXTag +   { tName = "SettlInstRefID"+   , tnum = 214+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoRoutingIDs :: FIXTag+tNoRoutingIDs = FIXTag +   { tName = "NoRoutingIDs"+   , tnum = 215+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRoutingType :: FIXTag+tRoutingType = FIXTag +   { tName = "RoutingType"+   , tnum = 216+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRoutingID :: FIXTag+tRoutingID = FIXTag +   { tName = "RoutingID"+   , tnum = 217+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSpread :: FIXTag+tSpread = FIXTag +   { tName = "Spread"+   , tnum = 218+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBenchmark :: FIXTag+tBenchmark = FIXTag +   { tName = "Benchmark"+   , tnum = 219+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tBenchmarkCurveCurrency :: FIXTag+tBenchmarkCurveCurrency = FIXTag +   { tName = "BenchmarkCurveCurrency"+   , tnum = 220+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tBenchmarkCurveName :: FIXTag+tBenchmarkCurveName = FIXTag +   { tName = "BenchmarkCurveName"+   , tnum = 221+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tBenchmarkCurvePoint :: FIXTag+tBenchmarkCurvePoint = FIXTag +   { tName = "BenchmarkCurvePoint"+   , tnum = 222+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCouponRate :: FIXTag+tCouponRate = FIXTag +   { tName = "CouponRate"+   , tnum = 223+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCouponPaymentDate :: FIXTag+tCouponPaymentDate = FIXTag +   { tName = "CouponPaymentDate"+   , tnum = 224+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tIssueDate :: FIXTag+tIssueDate = FIXTag +   { tName = "IssueDate"+   , tnum = 225+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tRepurchaseTerm :: FIXTag+tRepurchaseTerm = FIXTag +   { tName = "RepurchaseTerm"+   , tnum = 226+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRepurchaseRate :: FIXTag+tRepurchaseRate = FIXTag +   { tName = "RepurchaseRate"+   , tnum = 227+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tFactor :: FIXTag+tFactor = FIXTag +   { tName = "Factor"+   , tnum = 228+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tTradeOriginationDate :: FIXTag+tTradeOriginationDate = FIXTag +   { tName = "TradeOriginationDate"+   , tnum = 229+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tExDate :: FIXTag+tExDate = FIXTag +   { tName = "ExDate"+   , tnum = 230+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tContractMultiplier :: FIXTag+tContractMultiplier = FIXTag +   { tName = "ContractMultiplier"+   , tnum = 231+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoStipulations :: FIXTag+tNoStipulations = FIXTag +   { tName = "NoStipulations"+   , tnum = 232+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tStipulationType :: FIXTag+tStipulationType = FIXTag +   { tName = "StipulationType"+   , tnum = 233+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tStipulationValue :: FIXTag+tStipulationValue = FIXTag +   { tName = "StipulationValue"+   , tnum = 234+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tYieldType :: FIXTag+tYieldType = FIXTag +   { tName = "YieldType"+   , tnum = 235+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tYield :: FIXTag+tYield = FIXTag +   { tName = "Yield"+   , tnum = 236+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tTotalTakedown :: FIXTag+tTotalTakedown = FIXTag +   { tName = "TotalTakedown"+   , tnum = 237+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tConcession :: FIXTag+tConcession = FIXTag +   { tName = "Concession"+   , tnum = 238+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tRepoCollateralSecurityType :: FIXTag+tRepoCollateralSecurityType = FIXTag +   { tName = "RepoCollateralSecurityType"+   , tnum = 239+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRedemptionDate :: FIXTag+tRedemptionDate = FIXTag +   { tName = "RedemptionDate"+   , tnum = 240+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tUnderlyingCouponPaymentDate :: FIXTag+tUnderlyingCouponPaymentDate = FIXTag +   { tName = "UnderlyingCouponPaymentDate"+   , tnum = 241+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tUnderlyingIssueDate :: FIXTag+tUnderlyingIssueDate = FIXTag +   { tName = "UnderlyingIssueDate"+   , tnum = 242+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tUnderlyingRepoCollateralSecurityType :: FIXTag+tUnderlyingRepoCollateralSecurityType = FIXTag +   { tName = "UnderlyingRepoCollateralSecurityType"+   , tnum = 243+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUnderlyingRepurchaseTerm :: FIXTag+tUnderlyingRepurchaseTerm = FIXTag +   { tName = "UnderlyingRepurchaseTerm"+   , tnum = 244+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUnderlyingRepurchaseRate :: FIXTag+tUnderlyingRepurchaseRate = FIXTag +   { tName = "UnderlyingRepurchaseRate"+   , tnum = 245+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tUnderlyingFactor :: FIXTag+tUnderlyingFactor = FIXTag +   { tName = "UnderlyingFactor"+   , tnum = 246+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tUnderlyingRedemptionDate :: FIXTag+tUnderlyingRedemptionDate = FIXTag +   { tName = "UnderlyingRedemptionDate"+   , tnum = 247+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tLegCouponPaymentDate :: FIXTag+tLegCouponPaymentDate = FIXTag +   { tName = "LegCouponPaymentDate"+   , tnum = 248+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tLegIssueDate :: FIXTag+tLegIssueDate = FIXTag +   { tName = "LegIssueDate"+   , tnum = 249+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tLegRepoCollateralSecurityType :: FIXTag+tLegRepoCollateralSecurityType = FIXTag +   { tName = "LegRepoCollateralSecurityType"+   , tnum = 250+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLegRepurchaseTerm :: FIXTag+tLegRepurchaseTerm = FIXTag +   { tName = "LegRepurchaseTerm"+   , tnum = 251+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLegRepurchaseRate :: FIXTag+tLegRepurchaseRate = FIXTag +   { tName = "LegRepurchaseRate"+   , tnum = 252+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLegFactor :: FIXTag+tLegFactor = FIXTag +   { tName = "LegFactor"+   , tnum = 253+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLegRedemptionDate :: FIXTag+tLegRedemptionDate = FIXTag +   { tName = "LegRedemptionDate"+   , tnum = 254+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tCreditRating :: FIXTag+tCreditRating = FIXTag +   { tName = "CreditRating"+   , tnum = 255+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingCreditRating :: FIXTag+tUnderlyingCreditRating = FIXTag +   { tName = "UnderlyingCreditRating"+   , tnum = 256+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegCreditRating :: FIXTag+tLegCreditRating = FIXTag +   { tName = "LegCreditRating"+   , tnum = 257+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTradedFlatSwitch :: FIXTag+tTradedFlatSwitch = FIXTag +   { tName = "TradedFlatSwitch"+   , tnum = 258+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tBasisFeatureDate :: FIXTag+tBasisFeatureDate = FIXTag +   { tName = "BasisFeatureDate"+   , tnum = 259+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tBasisFeaturePrice :: FIXTag+tBasisFeaturePrice = FIXTag +   { tName = "BasisFeaturePrice"+   , tnum = 260+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMDReqID :: FIXTag+tMDReqID = FIXTag +   { tName = "MDReqID"+   , tnum = 262+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSubscriptionRequestType :: FIXTag+tSubscriptionRequestType = FIXTag +   { tName = "SubscriptionRequestType"+   , tnum = 263+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMarketDepth :: FIXTag+tMarketDepth = FIXTag +   { tName = "MarketDepth"+   , tnum = 264+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMDUpdateType :: FIXTag+tMDUpdateType = FIXTag +   { tName = "MDUpdateType"+   , tnum = 265+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAggregatedBook :: FIXTag+tAggregatedBook = FIXTag +   { tName = "AggregatedBook"+   , tnum = 266+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tNoMDEntryTypes :: FIXTag+tNoMDEntryTypes = FIXTag +   { tName = "NoMDEntryTypes"+   , tnum = 267+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoMDEntries :: FIXTag+tNoMDEntries = FIXTag +   { tName = "NoMDEntries"+   , tnum = 268+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMDEntryType :: FIXTag+tMDEntryType = FIXTag +   { tName = "MDEntryType"+   , tnum = 269+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMDEntryPx :: FIXTag+tMDEntryPx = FIXTag +   { tName = "MDEntryPx"+   , tnum = 270+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMDEntrySize :: FIXTag+tMDEntrySize = FIXTag +   { tName = "MDEntrySize"+   , tnum = 271+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMDEntryDate :: FIXTag+tMDEntryDate = FIXTag +   { tName = "MDEntryDate"+   , tnum = 272+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tMDEntryTime :: FIXTag+tMDEntryTime = FIXTag +   { tName = "MDEntryTime"+   , tnum = 273+   , tparser = toFIXTimeOnly+   , arbitraryValue = FIXTimeOnly <$> arbitrary }++tTickDirection :: FIXTag+tTickDirection = FIXTag +   { tName = "TickDirection"+   , tnum = 274+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMDMkt :: FIXTag+tMDMkt = FIXTag +   { tName = "MDMkt"+   , tnum = 275+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tQuoteCondition :: FIXTag+tQuoteCondition = FIXTag +   { tName = "QuoteCondition"+   , tnum = 276+   , tparser = toFIXMultipleValueString+   , arbitraryValue = FIXMultipleValueString <$> arbitrary }++tTradeCondition :: FIXTag+tTradeCondition = FIXTag +   { tName = "TradeCondition"+   , tnum = 277+   , tparser = toFIXMultipleValueString+   , arbitraryValue = FIXMultipleValueString <$> arbitrary }++tMDEntryID :: FIXTag+tMDEntryID = FIXTag +   { tName = "MDEntryID"+   , tnum = 278+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMDUpdateAction :: FIXTag+tMDUpdateAction = FIXTag +   { tName = "MDUpdateAction"+   , tnum = 279+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMDEntryRefID :: FIXTag+tMDEntryRefID = FIXTag +   { tName = "MDEntryRefID"+   , tnum = 280+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMDReqRejReason :: FIXTag+tMDReqRejReason = FIXTag +   { tName = "MDReqRejReason"+   , tnum = 281+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMDEntryOriginator :: FIXTag+tMDEntryOriginator = FIXTag +   { tName = "MDEntryOriginator"+   , tnum = 282+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLocationID :: FIXTag+tLocationID = FIXTag +   { tName = "LocationID"+   , tnum = 283+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tDeskID :: FIXTag+tDeskID = FIXTag +   { tName = "DeskID"+   , tnum = 284+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tDeleteReason :: FIXTag+tDeleteReason = FIXTag +   { tName = "DeleteReason"+   , tnum = 285+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOpenCloseSettleFlag :: FIXTag+tOpenCloseSettleFlag = FIXTag +   { tName = "OpenCloseSettleFlag"+   , tnum = 286+   , tparser = toFIXMultipleValueString+   , arbitraryValue = FIXMultipleValueString <$> arbitrary }++tSellerDays :: FIXTag+tSellerDays = FIXTag +   { tName = "SellerDays"+   , tnum = 287+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMDEntryBuyer :: FIXTag+tMDEntryBuyer = FIXTag +   { tName = "MDEntryBuyer"+   , tnum = 288+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMDEntrySeller :: FIXTag+tMDEntrySeller = FIXTag +   { tName = "MDEntrySeller"+   , tnum = 289+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMDEntryPositionNo :: FIXTag+tMDEntryPositionNo = FIXTag +   { tName = "MDEntryPositionNo"+   , tnum = 290+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tFinancialStatus :: FIXTag+tFinancialStatus = FIXTag +   { tName = "FinancialStatus"+   , tnum = 291+   , tparser = toFIXMultipleValueString+   , arbitraryValue = FIXMultipleValueString <$> arbitrary }++tCorporateAction :: FIXTag+tCorporateAction = FIXTag +   { tName = "CorporateAction"+   , tnum = 292+   , tparser = toFIXMultipleValueString+   , arbitraryValue = FIXMultipleValueString <$> arbitrary }++tDefBidSize :: FIXTag+tDefBidSize = FIXTag +   { tName = "DefBidSize"+   , tnum = 293+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tDefOfferSize :: FIXTag+tDefOfferSize = FIXTag +   { tName = "DefOfferSize"+   , tnum = 294+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoQuoteEntries :: FIXTag+tNoQuoteEntries = FIXTag +   { tName = "NoQuoteEntries"+   , tnum = 295+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoQuoteSets :: FIXTag+tNoQuoteSets = FIXTag +   { tName = "NoQuoteSets"+   , tnum = 296+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tQuoteStatus :: FIXTag+tQuoteStatus = FIXTag +   { tName = "QuoteStatus"+   , tnum = 297+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tQuoteCancelType :: FIXTag+tQuoteCancelType = FIXTag +   { tName = "QuoteCancelType"+   , tnum = 298+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tQuoteEntryID :: FIXTag+tQuoteEntryID = FIXTag +   { tName = "QuoteEntryID"+   , tnum = 299+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tQuoteRejectReason :: FIXTag+tQuoteRejectReason = FIXTag +   { tName = "QuoteRejectReason"+   , tnum = 300+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tQuoteResponseLevel :: FIXTag+tQuoteResponseLevel = FIXTag +   { tName = "QuoteResponseLevel"+   , tnum = 301+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tQuoteSetID :: FIXTag+tQuoteSetID = FIXTag +   { tName = "QuoteSetID"+   , tnum = 302+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tQuoteRequestType :: FIXTag+tQuoteRequestType = FIXTag +   { tName = "QuoteRequestType"+   , tnum = 303+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTotQuoteEntries :: FIXTag+tTotQuoteEntries = FIXTag +   { tName = "TotQuoteEntries"+   , tnum = 304+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUnderlyingSecurityIDSource :: FIXTag+tUnderlyingSecurityIDSource = FIXTag +   { tName = "UnderlyingSecurityIDSource"+   , tnum = 305+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingIssuer :: FIXTag+tUnderlyingIssuer = FIXTag +   { tName = "UnderlyingIssuer"+   , tnum = 306+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingSecurityDesc :: FIXTag+tUnderlyingSecurityDesc = FIXTag +   { tName = "UnderlyingSecurityDesc"+   , tnum = 307+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingSecurityExchange :: FIXTag+tUnderlyingSecurityExchange = FIXTag +   { tName = "UnderlyingSecurityExchange"+   , tnum = 308+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingSecurityID :: FIXTag+tUnderlyingSecurityID = FIXTag +   { tName = "UnderlyingSecurityID"+   , tnum = 309+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingSecurityType :: FIXTag+tUnderlyingSecurityType = FIXTag +   { tName = "UnderlyingSecurityType"+   , tnum = 310+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingSymbol :: FIXTag+tUnderlyingSymbol = FIXTag +   { tName = "UnderlyingSymbol"+   , tnum = 311+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingSymbolSfx :: FIXTag+tUnderlyingSymbolSfx = FIXTag +   { tName = "UnderlyingSymbolSfx"+   , tnum = 312+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingMaturityMonthYear :: FIXTag+tUnderlyingMaturityMonthYear = FIXTag +   { tName = "UnderlyingMaturityMonthYear"+   , tnum = 313+   , tparser = toFIXMonthYear+   , arbitraryValue = FIXMonthYear <$> arbitrary }++tUnderlyingMaturityDay :: FIXTag+tUnderlyingMaturityDay = FIXTag +   { tName = "UnderlyingMaturityDay"+   , tnum = 314+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUnderlyingPutOrCall :: FIXTag+tUnderlyingPutOrCall = FIXTag +   { tName = "UnderlyingPutOrCall"+   , tnum = 315+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUnderlyingStrikePrice :: FIXTag+tUnderlyingStrikePrice = FIXTag +   { tName = "UnderlyingStrikePrice"+   , tnum = 316+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tUnderlyingOptAttribute :: FIXTag+tUnderlyingOptAttribute = FIXTag +   { tName = "UnderlyingOptAttribute"+   , tnum = 317+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tUnderlyingCurrency :: FIXTag+tUnderlyingCurrency = FIXTag +   { tName = "UnderlyingCurrency"+   , tnum = 318+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tRatioQty :: FIXTag+tRatioQty = FIXTag +   { tName = "RatioQty"+   , tnum = 319+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSecurityReqID :: FIXTag+tSecurityReqID = FIXTag +   { tName = "SecurityReqID"+   , tnum = 320+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecurityRequestType :: FIXTag+tSecurityRequestType = FIXTag +   { tName = "SecurityRequestType"+   , tnum = 321+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecurityResponseID :: FIXTag+tSecurityResponseID = FIXTag +   { tName = "SecurityResponseID"+   , tnum = 322+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecurityResponseType :: FIXTag+tSecurityResponseType = FIXTag +   { tName = "SecurityResponseType"+   , tnum = 323+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecurityStatusReqID :: FIXTag+tSecurityStatusReqID = FIXTag +   { tName = "SecurityStatusReqID"+   , tnum = 324+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnsolicitedIndicator :: FIXTag+tUnsolicitedIndicator = FIXTag +   { tName = "UnsolicitedIndicator"+   , tnum = 325+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tSecurityTradingStatus :: FIXTag+tSecurityTradingStatus = FIXTag +   { tName = "SecurityTradingStatus"+   , tnum = 326+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tHaltReasonChar :: FIXTag+tHaltReasonChar = FIXTag +   { tName = "HaltReasonChar"+   , tnum = 327+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tInViewOfCommon :: FIXTag+tInViewOfCommon = FIXTag +   { tName = "InViewOfCommon"+   , tnum = 328+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tDueToRelated :: FIXTag+tDueToRelated = FIXTag +   { tName = "DueToRelated"+   , tnum = 329+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tBuyVolume :: FIXTag+tBuyVolume = FIXTag +   { tName = "BuyVolume"+   , tnum = 330+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSellVolume :: FIXTag+tSellVolume = FIXTag +   { tName = "SellVolume"+   , tnum = 331+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tHighPx :: FIXTag+tHighPx = FIXTag +   { tName = "HighPx"+   , tnum = 332+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLowPx :: FIXTag+tLowPx = FIXTag +   { tName = "LowPx"+   , tnum = 333+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAdjustment :: FIXTag+tAdjustment = FIXTag +   { tName = "Adjustment"+   , tnum = 334+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradSesReqID :: FIXTag+tTradSesReqID = FIXTag +   { tName = "TradSesReqID"+   , tnum = 335+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTradingSessionID :: FIXTag+tTradingSessionID = FIXTag +   { tName = "TradingSessionID"+   , tnum = 336+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tContraTrader :: FIXTag+tContraTrader = FIXTag +   { tName = "ContraTrader"+   , tnum = 337+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTradSesMethod :: FIXTag+tTradSesMethod = FIXTag +   { tName = "TradSesMethod"+   , tnum = 338+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradSesMode :: FIXTag+tTradSesMode = FIXTag +   { tName = "TradSesMode"+   , tnum = 339+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradSesStatus :: FIXTag+tTradSesStatus = FIXTag +   { tName = "TradSesStatus"+   , tnum = 340+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradSesStartTime :: FIXTag+tTradSesStartTime = FIXTag +   { tName = "TradSesStartTime"+   , tnum = 341+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tTradSesOpenTime :: FIXTag+tTradSesOpenTime = FIXTag +   { tName = "TradSesOpenTime"+   , tnum = 342+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tTradSesPreCloseTime :: FIXTag+tTradSesPreCloseTime = FIXTag +   { tName = "TradSesPreCloseTime"+   , tnum = 343+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tTradSesCloseTime :: FIXTag+tTradSesCloseTime = FIXTag +   { tName = "TradSesCloseTime"+   , tnum = 344+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tTradSesEndTime :: FIXTag+tTradSesEndTime = FIXTag +   { tName = "TradSesEndTime"+   , tnum = 345+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tNumberOfOrders :: FIXTag+tNumberOfOrders = FIXTag +   { tName = "NumberOfOrders"+   , tnum = 346+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMessageEncoding :: FIXTag+tMessageEncoding = FIXTag +   { tName = "MessageEncoding"+   , tnum = 347+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tEncodedIssuerLen :: FIXTag+tEncodedIssuerLen = FIXTag +   { tName = "EncodedIssuerLen"+   , tnum = 348+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedIssuer :: FIXTag+tEncodedIssuer = FIXTag +   { tName = "EncodedIssuer"+   , tnum = 349+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedSecurityDescLen :: FIXTag+tEncodedSecurityDescLen = FIXTag +   { tName = "EncodedSecurityDescLen"+   , tnum = 350+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedSecurityDesc :: FIXTag+tEncodedSecurityDesc = FIXTag +   { tName = "EncodedSecurityDesc"+   , tnum = 351+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedListExecInstLen :: FIXTag+tEncodedListExecInstLen = FIXTag +   { tName = "EncodedListExecInstLen"+   , tnum = 352+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedListExecInst :: FIXTag+tEncodedListExecInst = FIXTag +   { tName = "EncodedListExecInst"+   , tnum = 353+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedTextLen :: FIXTag+tEncodedTextLen = FIXTag +   { tName = "EncodedTextLen"+   , tnum = 354+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedText :: FIXTag+tEncodedText = FIXTag +   { tName = "EncodedText"+   , tnum = 355+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedSubjectLen :: FIXTag+tEncodedSubjectLen = FIXTag +   { tName = "EncodedSubjectLen"+   , tnum = 356+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedSubject :: FIXTag+tEncodedSubject = FIXTag +   { tName = "EncodedSubject"+   , tnum = 357+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedHeadlineLen :: FIXTag+tEncodedHeadlineLen = FIXTag +   { tName = "EncodedHeadlineLen"+   , tnum = 358+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedHeadline :: FIXTag+tEncodedHeadline = FIXTag +   { tName = "EncodedHeadline"+   , tnum = 359+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedAllocTextLen :: FIXTag+tEncodedAllocTextLen = FIXTag +   { tName = "EncodedAllocTextLen"+   , tnum = 360+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedAllocText :: FIXTag+tEncodedAllocText = FIXTag +   { tName = "EncodedAllocText"+   , tnum = 361+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedUnderlyingIssuerLen :: FIXTag+tEncodedUnderlyingIssuerLen = FIXTag +   { tName = "EncodedUnderlyingIssuerLen"+   , tnum = 362+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedUnderlyingIssuer :: FIXTag+tEncodedUnderlyingIssuer = FIXTag +   { tName = "EncodedUnderlyingIssuer"+   , tnum = 363+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedUnderlyingSecurityDescLen :: FIXTag+tEncodedUnderlyingSecurityDescLen = FIXTag +   { tName = "EncodedUnderlyingSecurityDescLen"+   , tnum = 364+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedUnderlyingSecurityDesc :: FIXTag+tEncodedUnderlyingSecurityDesc = FIXTag +   { tName = "EncodedUnderlyingSecurityDesc"+   , tnum = 365+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tAllocPrice :: FIXTag+tAllocPrice = FIXTag +   { tName = "AllocPrice"+   , tnum = 366+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tQuoteSetValidUntilTime :: FIXTag+tQuoteSetValidUntilTime = FIXTag +   { tName = "QuoteSetValidUntilTime"+   , tnum = 367+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tQuoteEntryRejectReason :: FIXTag+tQuoteEntryRejectReason = FIXTag +   { tName = "QuoteEntryRejectReason"+   , tnum = 368+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLastMsgSeqNumProcessed :: FIXTag+tLastMsgSeqNumProcessed = FIXTag +   { tName = "LastMsgSeqNumProcessed"+   , tnum = 369+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOnBehalfOfSendingTime :: FIXTag+tOnBehalfOfSendingTime = FIXTag +   { tName = "OnBehalfOfSendingTime"+   , tnum = 370+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tRefTagID :: FIXTag+tRefTagID = FIXTag +   { tName = "RefTagID"+   , tnum = 371+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRefMsgType :: FIXTag+tRefMsgType = FIXTag +   { tName = "RefMsgType"+   , tnum = 372+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSessionRejectReason :: FIXTag+tSessionRejectReason = FIXTag +   { tName = "SessionRejectReason"+   , tnum = 373+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tBidRequestTransType :: FIXTag+tBidRequestTransType = FIXTag +   { tName = "BidRequestTransType"+   , tnum = 374+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tContraBroker :: FIXTag+tContraBroker = FIXTag +   { tName = "ContraBroker"+   , tnum = 375+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tComplianceID :: FIXTag+tComplianceID = FIXTag +   { tName = "ComplianceID"+   , tnum = 376+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSolicitedFlag :: FIXTag+tSolicitedFlag = FIXTag +   { tName = "SolicitedFlag"+   , tnum = 377+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tExecRestatementReason :: FIXTag+tExecRestatementReason = FIXTag +   { tName = "ExecRestatementReason"+   , tnum = 378+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tBusinessRejectRefID :: FIXTag+tBusinessRejectRefID = FIXTag +   { tName = "BusinessRejectRefID"+   , tnum = 379+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tBusinessRejectReason :: FIXTag+tBusinessRejectReason = FIXTag +   { tName = "BusinessRejectReason"+   , tnum = 380+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tGrossTradeAmt :: FIXTag+tGrossTradeAmt = FIXTag +   { tName = "GrossTradeAmt"+   , tnum = 381+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoContraBrokers :: FIXTag+tNoContraBrokers = FIXTag +   { tName = "NoContraBrokers"+   , tnum = 382+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMaxMessageSize :: FIXTag+tMaxMessageSize = FIXTag +   { tName = "MaxMessageSize"+   , tnum = 383+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoMsgTypes :: FIXTag+tNoMsgTypes = FIXTag +   { tName = "NoMsgTypes"+   , tnum = 384+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMsgDirection :: FIXTag+tMsgDirection = FIXTag +   { tName = "MsgDirection"+   , tnum = 385+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoTradingSessions :: FIXTag+tNoTradingSessions = FIXTag +   { tName = "NoTradingSessions"+   , tnum = 386+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTotalVolumeTraded :: FIXTag+tTotalVolumeTraded = FIXTag +   { tName = "TotalVolumeTraded"+   , tnum = 387+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tDiscretionInst :: FIXTag+tDiscretionInst = FIXTag +   { tName = "DiscretionInst"+   , tnum = 388+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tDiscretionOffset :: FIXTag+tDiscretionOffset = FIXTag +   { tName = "DiscretionOffset"+   , tnum = 389+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBidID :: FIXTag+tBidID = FIXTag +   { tName = "BidID"+   , tnum = 390+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tClientBidID :: FIXTag+tClientBidID = FIXTag +   { tName = "ClientBidID"+   , tnum = 391+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tListName :: FIXTag+tListName = FIXTag +   { tName = "ListName"+   , tnum = 392+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTotalNumSecurities :: FIXTag+tTotalNumSecurities = FIXTag +   { tName = "TotalNumSecurities"+   , tnum = 393+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tBidType :: FIXTag+tBidType = FIXTag +   { tName = "BidType"+   , tnum = 394+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNumTickets :: FIXTag+tNumTickets = FIXTag +   { tName = "NumTickets"+   , tnum = 395+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSideValue1 :: FIXTag+tSideValue1 = FIXTag +   { tName = "SideValue1"+   , tnum = 396+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSideValue2 :: FIXTag+tSideValue2 = FIXTag +   { tName = "SideValue2"+   , tnum = 397+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoBidDescriptors :: FIXTag+tNoBidDescriptors = FIXTag +   { tName = "NoBidDescriptors"+   , tnum = 398+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tBidDescriptorType :: FIXTag+tBidDescriptorType = FIXTag +   { tName = "BidDescriptorType"+   , tnum = 399+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tBidDescriptor :: FIXTag+tBidDescriptor = FIXTag +   { tName = "BidDescriptor"+   , tnum = 400+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSideValueInd :: FIXTag+tSideValueInd = FIXTag +   { tName = "SideValueInd"+   , tnum = 401+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLiquidityPctLow :: FIXTag+tLiquidityPctLow = FIXTag +   { tName = "LiquidityPctLow"+   , tnum = 402+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLiquidityPctHigh :: FIXTag+tLiquidityPctHigh = FIXTag +   { tName = "LiquidityPctHigh"+   , tnum = 403+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLiquidityValue :: FIXTag+tLiquidityValue = FIXTag +   { tName = "LiquidityValue"+   , tnum = 404+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tEFPTrackingError :: FIXTag+tEFPTrackingError = FIXTag +   { tName = "EFPTrackingError"+   , tnum = 405+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tFairValue :: FIXTag+tFairValue = FIXTag +   { tName = "FairValue"+   , tnum = 406+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOutsideIndexPct :: FIXTag+tOutsideIndexPct = FIXTag +   { tName = "OutsideIndexPct"+   , tnum = 407+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tValueOfFutures :: FIXTag+tValueOfFutures = FIXTag +   { tName = "ValueOfFutures"+   , tnum = 408+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLiquidityIndType :: FIXTag+tLiquidityIndType = FIXTag +   { tName = "LiquidityIndType"+   , tnum = 409+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tWtAverageLiquidity :: FIXTag+tWtAverageLiquidity = FIXTag +   { tName = "WtAverageLiquidity"+   , tnum = 410+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tExchangeForPhysical :: FIXTag+tExchangeForPhysical = FIXTag +   { tName = "ExchangeForPhysical"+   , tnum = 411+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tOutMainCntryUIndex :: FIXTag+tOutMainCntryUIndex = FIXTag +   { tName = "OutMainCntryUIndex"+   , tnum = 412+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCrossPercent :: FIXTag+tCrossPercent = FIXTag +   { tName = "CrossPercent"+   , tnum = 413+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tProgRptReqs :: FIXTag+tProgRptReqs = FIXTag +   { tName = "ProgRptReqs"+   , tnum = 414+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tProgPeriodInterval :: FIXTag+tProgPeriodInterval = FIXTag +   { tName = "ProgPeriodInterval"+   , tnum = 415+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tIncTaxInd :: FIXTag+tIncTaxInd = FIXTag +   { tName = "IncTaxInd"+   , tnum = 416+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNumBidders :: FIXTag+tNumBidders = FIXTag +   { tName = "NumBidders"+   , tnum = 417+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradeType :: FIXTag+tTradeType = FIXTag +   { tName = "TradeType"+   , tnum = 418+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tBasisPxType :: FIXTag+tBasisPxType = FIXTag +   { tName = "BasisPxType"+   , tnum = 419+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoBidComponents :: FIXTag+tNoBidComponents = FIXTag +   { tName = "NoBidComponents"+   , tnum = 420+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCountry :: FIXTag+tCountry = FIXTag +   { tName = "Country"+   , tnum = 421+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTotNoStrikes :: FIXTag+tTotNoStrikes = FIXTag +   { tName = "TotNoStrikes"+   , tnum = 422+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPriceType :: FIXTag+tPriceType = FIXTag +   { tName = "PriceType"+   , tnum = 423+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tDayOrderQty :: FIXTag+tDayOrderQty = FIXTag +   { tName = "DayOrderQty"+   , tnum = 424+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tDayCumQty :: FIXTag+tDayCumQty = FIXTag +   { tName = "DayCumQty"+   , tnum = 425+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tDayAvgPx :: FIXTag+tDayAvgPx = FIXTag +   { tName = "DayAvgPx"+   , tnum = 426+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tGTBookingInst :: FIXTag+tGTBookingInst = FIXTag +   { tName = "GTBookingInst"+   , tnum = 427+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoStrikes :: FIXTag+tNoStrikes = FIXTag +   { tName = "NoStrikes"+   , tnum = 428+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tListStatusType :: FIXTag+tListStatusType = FIXTag +   { tName = "ListStatusType"+   , tnum = 429+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNetGrossInd :: FIXTag+tNetGrossInd = FIXTag +   { tName = "NetGrossInd"+   , tnum = 430+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tListOrderStatus :: FIXTag+tListOrderStatus = FIXTag +   { tName = "ListOrderStatus"+   , tnum = 431+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tExpireDate :: FIXTag+tExpireDate = FIXTag +   { tName = "ExpireDate"+   , tnum = 432+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tListExecInstType :: FIXTag+tListExecInstType = FIXTag +   { tName = "ListExecInstType"+   , tnum = 433+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCxlRejResponseTo :: FIXTag+tCxlRejResponseTo = FIXTag +   { tName = "CxlRejResponseTo"+   , tnum = 434+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tUnderlyingCouponRate :: FIXTag+tUnderlyingCouponRate = FIXTag +   { tName = "UnderlyingCouponRate"+   , tnum = 435+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tUnderlyingContractMultiplier :: FIXTag+tUnderlyingContractMultiplier = FIXTag +   { tName = "UnderlyingContractMultiplier"+   , tnum = 436+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tContraTradeQty :: FIXTag+tContraTradeQty = FIXTag +   { tName = "ContraTradeQty"+   , tnum = 437+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tContraTradeTime :: FIXTag+tContraTradeTime = FIXTag +   { tName = "ContraTradeTime"+   , tnum = 438+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tClearingFirm :: FIXTag+tClearingFirm = FIXTag +   { tName = "ClearingFirm"+   , tnum = 439+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tClearingAccount :: FIXTag+tClearingAccount = FIXTag +   { tName = "ClearingAccount"+   , tnum = 440+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLiquidityNumSecurities :: FIXTag+tLiquidityNumSecurities = FIXTag +   { tName = "LiquidityNumSecurities"+   , tnum = 441+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMultiLegReportingType :: FIXTag+tMultiLegReportingType = FIXTag +   { tName = "MultiLegReportingType"+   , tnum = 442+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tStrikeTime :: FIXTag+tStrikeTime = FIXTag +   { tName = "StrikeTime"+   , tnum = 443+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tListStatusText :: FIXTag+tListStatusText = FIXTag +   { tName = "ListStatusText"+   , tnum = 444+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tEncodedListStatusTextLen :: FIXTag+tEncodedListStatusTextLen = FIXTag +   { tName = "EncodedListStatusTextLen"+   , tnum = 445+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedListStatusText :: FIXTag+tEncodedListStatusText = FIXTag +   { tName = "EncodedListStatusText"+   , tnum = 446+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tPartyIDSource :: FIXTag+tPartyIDSource = FIXTag +   { tName = "PartyIDSource"+   , tnum = 447+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tPartyID :: FIXTag+tPartyID = FIXTag +   { tName = "PartyID"+   , tnum = 448+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTotalVolumeTradedDate :: FIXTag+tTotalVolumeTradedDate = FIXTag +   { tName = "TotalVolumeTradedDate"+   , tnum = 449+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tTotalVolumeTradedTime :: FIXTag+tTotalVolumeTradedTime = FIXTag +   { tName = "TotalVolumeTradedTime"+   , tnum = 450+   , tparser = toFIXTimeOnly+   , arbitraryValue = FIXTimeOnly <$> arbitrary }++tNetChgPrevDay :: FIXTag+tNetChgPrevDay = FIXTag +   { tName = "NetChgPrevDay"+   , tnum = 451+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tPartyRole :: FIXTag+tPartyRole = FIXTag +   { tName = "PartyRole"+   , tnum = 452+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoPartyIDs :: FIXTag+tNoPartyIDs = FIXTag +   { tName = "NoPartyIDs"+   , tnum = 453+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoSecurityAltID :: FIXTag+tNoSecurityAltID = FIXTag +   { tName = "NoSecurityAltID"+   , tnum = 454+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecurityAltID :: FIXTag+tSecurityAltID = FIXTag +   { tName = "SecurityAltID"+   , tnum = 455+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecurityAltIDSource :: FIXTag+tSecurityAltIDSource = FIXTag +   { tName = "SecurityAltIDSource"+   , tnum = 456+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoUnderlyingSecurityAltID :: FIXTag+tNoUnderlyingSecurityAltID = FIXTag +   { tName = "NoUnderlyingSecurityAltID"+   , tnum = 457+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUnderlyingSecurityAltID :: FIXTag+tUnderlyingSecurityAltID = FIXTag +   { tName = "UnderlyingSecurityAltID"+   , tnum = 458+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingSecurityAltIDSource :: FIXTag+tUnderlyingSecurityAltIDSource = FIXTag +   { tName = "UnderlyingSecurityAltIDSource"+   , tnum = 459+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tProduct :: FIXTag+tProduct = FIXTag +   { tName = "Product"+   , tnum = 460+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCFICode :: FIXTag+tCFICode = FIXTag +   { tName = "CFICode"+   , tnum = 461+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingProduct :: FIXTag+tUnderlyingProduct = FIXTag +   { tName = "UnderlyingProduct"+   , tnum = 462+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUnderlyingCFICode :: FIXTag+tUnderlyingCFICode = FIXTag +   { tName = "UnderlyingCFICode"+   , tnum = 463+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTestMessageIndicator :: FIXTag+tTestMessageIndicator = FIXTag +   { tName = "TestMessageIndicator"+   , tnum = 464+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tQuantityType :: FIXTag+tQuantityType = FIXTag +   { tName = "QuantityType"+   , tnum = 465+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tBookingRefID :: FIXTag+tBookingRefID = FIXTag +   { tName = "BookingRefID"+   , tnum = 466+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tIndividualAllocID :: FIXTag+tIndividualAllocID = FIXTag +   { tName = "IndividualAllocID"+   , tnum = 467+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tRoundingDirection :: FIXTag+tRoundingDirection = FIXTag +   { tName = "RoundingDirection"+   , tnum = 468+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tRoundingModulus :: FIXTag+tRoundingModulus = FIXTag +   { tName = "RoundingModulus"+   , tnum = 469+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCountryOfIssue :: FIXTag+tCountryOfIssue = FIXTag +   { tName = "CountryOfIssue"+   , tnum = 470+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tStateOrProvinceOfIssue :: FIXTag+tStateOrProvinceOfIssue = FIXTag +   { tName = "StateOrProvinceOfIssue"+   , tnum = 471+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLocaleOfIssue :: FIXTag+tLocaleOfIssue = FIXTag +   { tName = "LocaleOfIssue"+   , tnum = 472+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoRegistDtls :: FIXTag+tNoRegistDtls = FIXTag +   { tName = "NoRegistDtls"+   , tnum = 473+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMailingDtls :: FIXTag+tMailingDtls = FIXTag +   { tName = "MailingDtls"+   , tnum = 474+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tInvestorCountryOfResidence :: FIXTag+tInvestorCountryOfResidence = FIXTag +   { tName = "InvestorCountryOfResidence"+   , tnum = 475+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tPaymentRef :: FIXTag+tPaymentRef = FIXTag +   { tName = "PaymentRef"+   , tnum = 476+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tDistribPaymentMethod :: FIXTag+tDistribPaymentMethod = FIXTag +   { tName = "DistribPaymentMethod"+   , tnum = 477+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCashDistribCurr :: FIXTag+tCashDistribCurr = FIXTag +   { tName = "CashDistribCurr"+   , tnum = 478+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCommCurrency :: FIXTag+tCommCurrency = FIXTag +   { tName = "CommCurrency"+   , tnum = 479+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCancellationRights :: FIXTag+tCancellationRights = FIXTag +   { tName = "CancellationRights"+   , tnum = 480+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMoneyLaunderingStatus :: FIXTag+tMoneyLaunderingStatus = FIXTag +   { tName = "MoneyLaunderingStatus"+   , tnum = 481+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMailingInst :: FIXTag+tMailingInst = FIXTag +   { tName = "MailingInst"+   , tnum = 482+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTransBkdTime :: FIXTag+tTransBkdTime = FIXTag +   { tName = "TransBkdTime"+   , tnum = 483+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tExecPriceType :: FIXTag+tExecPriceType = FIXTag +   { tName = "ExecPriceType"+   , tnum = 484+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tExecPriceAdjustment :: FIXTag+tExecPriceAdjustment = FIXTag +   { tName = "ExecPriceAdjustment"+   , tnum = 485+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tDateOfBirth :: FIXTag+tDateOfBirth = FIXTag +   { tName = "DateOfBirth"+   , tnum = 486+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tTradeReportTransType :: FIXTag+tTradeReportTransType = FIXTag +   { tName = "TradeReportTransType"+   , tnum = 487+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCardHolderName :: FIXTag+tCardHolderName = FIXTag +   { tName = "CardHolderName"+   , tnum = 488+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCardNumber :: FIXTag+tCardNumber = FIXTag +   { tName = "CardNumber"+   , tnum = 489+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCardExpDate :: FIXTag+tCardExpDate = FIXTag +   { tName = "CardExpDate"+   , tnum = 490+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tCardIssNo :: FIXTag+tCardIssNo = FIXTag +   { tName = "CardIssNo"+   , tnum = 491+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tPaymentMethod :: FIXTag+tPaymentMethod = FIXTag +   { tName = "PaymentMethod"+   , tnum = 492+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRegistAcctType :: FIXTag+tRegistAcctType = FIXTag +   { tName = "RegistAcctType"+   , tnum = 493+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tDesignation :: FIXTag+tDesignation = FIXTag +   { tName = "Designation"+   , tnum = 494+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTaxAdvantageType :: FIXTag+tTaxAdvantageType = FIXTag +   { tName = "TaxAdvantageType"+   , tnum = 495+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRegistRejReasonText :: FIXTag+tRegistRejReasonText = FIXTag +   { tName = "RegistRejReasonText"+   , tnum = 496+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tFundRenewWaiv :: FIXTag+tFundRenewWaiv = FIXTag +   { tName = "FundRenewWaiv"+   , tnum = 497+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCashDistribAgentName :: FIXTag+tCashDistribAgentName = FIXTag +   { tName = "CashDistribAgentName"+   , tnum = 498+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashDistribAgentCode :: FIXTag+tCashDistribAgentCode = FIXTag +   { tName = "CashDistribAgentCode"+   , tnum = 499+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashDistribAgentAcctNumber :: FIXTag+tCashDistribAgentAcctNumber = FIXTag +   { tName = "CashDistribAgentAcctNumber"+   , tnum = 500+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashDistribPayRef :: FIXTag+tCashDistribPayRef = FIXTag +   { tName = "CashDistribPayRef"+   , tnum = 501+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashDistribAgentAcctName :: FIXTag+tCashDistribAgentAcctName = FIXTag +   { tName = "CashDistribAgentAcctName"+   , tnum = 502+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCardStartDate :: FIXTag+tCardStartDate = FIXTag +   { tName = "CardStartDate"+   , tnum = 503+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tPaymentDate :: FIXTag+tPaymentDate = FIXTag +   { tName = "PaymentDate"+   , tnum = 504+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tPaymentRemitterID :: FIXTag+tPaymentRemitterID = FIXTag +   { tName = "PaymentRemitterID"+   , tnum = 505+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tRegistStatus :: FIXTag+tRegistStatus = FIXTag +   { tName = "RegistStatus"+   , tnum = 506+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tRegistRejReasonCode :: FIXTag+tRegistRejReasonCode = FIXTag +   { tName = "RegistRejReasonCode"+   , tnum = 507+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRegistRefID :: FIXTag+tRegistRefID = FIXTag +   { tName = "RegistRefID"+   , tnum = 508+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tRegistDetls :: FIXTag+tRegistDetls = FIXTag +   { tName = "RegistDetls"+   , tnum = 509+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoDistribInsts :: FIXTag+tNoDistribInsts = FIXTag +   { tName = "NoDistribInsts"+   , tnum = 510+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRegistEmail :: FIXTag+tRegistEmail = FIXTag +   { tName = "RegistEmail"+   , tnum = 511+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tDistribPercentage :: FIXTag+tDistribPercentage = FIXTag +   { tName = "DistribPercentage"+   , tnum = 512+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tRegistID :: FIXTag+tRegistID = FIXTag +   { tName = "RegistID"+   , tnum = 513+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tRegistTransType :: FIXTag+tRegistTransType = FIXTag +   { tName = "RegistTransType"+   , tnum = 514+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tExecValuationPoint :: FIXTag+tExecValuationPoint = FIXTag +   { tName = "ExecValuationPoint"+   , tnum = 515+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tOrderPercent :: FIXTag+tOrderPercent = FIXTag +   { tName = "OrderPercent"+   , tnum = 516+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOwnershipType :: FIXTag+tOwnershipType = FIXTag +   { tName = "OwnershipType"+   , tnum = 517+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoContAmts :: FIXTag+tNoContAmts = FIXTag +   { tName = "NoContAmts"+   , tnum = 518+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tContAmtType :: FIXTag+tContAmtType = FIXTag +   { tName = "ContAmtType"+   , tnum = 519+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tContAmtValue :: FIXTag+tContAmtValue = FIXTag +   { tName = "ContAmtValue"+   , tnum = 520+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tContAmtCurr :: FIXTag+tContAmtCurr = FIXTag +   { tName = "ContAmtCurr"+   , tnum = 521+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tOwnerType :: FIXTag+tOwnerType = FIXTag +   { tName = "OwnerType"+   , tnum = 522+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPartySubID :: FIXTag+tPartySubID = FIXTag +   { tName = "PartySubID"+   , tnum = 523+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNestedPartyID :: FIXTag+tNestedPartyID = FIXTag +   { tName = "NestedPartyID"+   , tnum = 524+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNestedPartyIDSource :: FIXTag+tNestedPartyIDSource = FIXTag +   { tName = "NestedPartyIDSource"+   , tnum = 525+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSecondaryClOrdID :: FIXTag+tSecondaryClOrdID = FIXTag +   { tName = "SecondaryClOrdID"+   , tnum = 526+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecondaryExecID :: FIXTag+tSecondaryExecID = FIXTag +   { tName = "SecondaryExecID"+   , tnum = 527+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tOrderCapacity :: FIXTag+tOrderCapacity = FIXTag +   { tName = "OrderCapacity"+   , tnum = 528+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOrderRestrictions :: FIXTag+tOrderRestrictions = FIXTag +   { tName = "OrderRestrictions"+   , tnum = 529+   , tparser = toFIXMultipleValueString+   , arbitraryValue = FIXMultipleValueString <$> arbitrary }++tMassCancelRequestType :: FIXTag+tMassCancelRequestType = FIXTag +   { tName = "MassCancelRequestType"+   , tnum = 530+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMassCancelResponse :: FIXTag+tMassCancelResponse = FIXTag +   { tName = "MassCancelResponse"+   , tnum = 531+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMassCancelRejectReason :: FIXTag+tMassCancelRejectReason = FIXTag +   { tName = "MassCancelRejectReason"+   , tnum = 532+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tTotalAffectedOrders :: FIXTag+tTotalAffectedOrders = FIXTag +   { tName = "TotalAffectedOrders"+   , tnum = 533+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoAffectedOrders :: FIXTag+tNoAffectedOrders = FIXTag +   { tName = "NoAffectedOrders"+   , tnum = 534+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAffectedOrderID :: FIXTag+tAffectedOrderID = FIXTag +   { tName = "AffectedOrderID"+   , tnum = 535+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAffectedSecondaryOrderID :: FIXTag+tAffectedSecondaryOrderID = FIXTag +   { tName = "AffectedSecondaryOrderID"+   , tnum = 536+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tQuoteType :: FIXTag+tQuoteType = FIXTag +   { tName = "QuoteType"+   , tnum = 537+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNestedPartyRole :: FIXTag+tNestedPartyRole = FIXTag +   { tName = "NestedPartyRole"+   , tnum = 538+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoNestedPartyIDs :: FIXTag+tNoNestedPartyIDs = FIXTag +   { tName = "NoNestedPartyIDs"+   , tnum = 539+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTotalAccruedInterestAmt :: FIXTag+tTotalAccruedInterestAmt = FIXTag +   { tName = "TotalAccruedInterestAmt"+   , tnum = 540+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMaturityDate :: FIXTag+tMaturityDate = FIXTag +   { tName = "MaturityDate"+   , tnum = 541+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tUnderlyingMaturityDate :: FIXTag+tUnderlyingMaturityDate = FIXTag +   { tName = "UnderlyingMaturityDate"+   , tnum = 542+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tInstrRegistry :: FIXTag+tInstrRegistry = FIXTag +   { tName = "InstrRegistry"+   , tnum = 543+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashMargin :: FIXTag+tCashMargin = FIXTag +   { tName = "CashMargin"+   , tnum = 544+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNestedPartySubID :: FIXTag+tNestedPartySubID = FIXTag +   { tName = "NestedPartySubID"+   , tnum = 545+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tScope :: FIXTag+tScope = FIXTag +   { tName = "Scope"+   , tnum = 546+   , tparser = toFIXMultipleValueString+   , arbitraryValue = FIXMultipleValueString <$> arbitrary }++tMDImplicitDelete :: FIXTag+tMDImplicitDelete = FIXTag +   { tName = "MDImplicitDelete"+   , tnum = 547+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tCrossID :: FIXTag+tCrossID = FIXTag +   { tName = "CrossID"+   , tnum = 548+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCrossType :: FIXTag+tCrossType = FIXTag +   { tName = "CrossType"+   , tnum = 549+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCrossPrioritization :: FIXTag+tCrossPrioritization = FIXTag +   { tName = "CrossPrioritization"+   , tnum = 550+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOrigCrossID :: FIXTag+tOrigCrossID = FIXTag +   { tName = "OrigCrossID"+   , tnum = 551+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoSides :: FIXTag+tNoSides = FIXTag +   { tName = "NoSides"+   , tnum = 552+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUsername :: FIXTag+tUsername = FIXTag +   { tName = "Username"+   , tnum = 553+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tPassword :: FIXTag+tPassword = FIXTag +   { tName = "Password"+   , tnum = 554+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoLegs :: FIXTag+tNoLegs = FIXTag +   { tName = "NoLegs"+   , tnum = 555+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLegCurrency :: FIXTag+tLegCurrency = FIXTag +   { tName = "LegCurrency"+   , tnum = 556+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTotalNumSecurityTypes :: FIXTag+tTotalNumSecurityTypes = FIXTag +   { tName = "TotalNumSecurityTypes"+   , tnum = 557+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoSecurityTypes :: FIXTag+tNoSecurityTypes = FIXTag +   { tName = "NoSecurityTypes"+   , tnum = 558+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecurityListRequestType :: FIXTag+tSecurityListRequestType = FIXTag +   { tName = "SecurityListRequestType"+   , tnum = 559+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecurityRequestResult :: FIXTag+tSecurityRequestResult = FIXTag +   { tName = "SecurityRequestResult"+   , tnum = 560+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRoundLot :: FIXTag+tRoundLot = FIXTag +   { tName = "RoundLot"+   , tnum = 561+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMinTradeVol :: FIXTag+tMinTradeVol = FIXTag +   { tName = "MinTradeVol"+   , tnum = 562+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMultiLegRptTypeReq :: FIXTag+tMultiLegRptTypeReq = FIXTag +   { tName = "MultiLegRptTypeReq"+   , tnum = 563+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLegPositionEffect :: FIXTag+tLegPositionEffect = FIXTag +   { tName = "LegPositionEffect"+   , tnum = 564+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLegCoveredOrUncovered :: FIXTag+tLegCoveredOrUncovered = FIXTag +   { tName = "LegCoveredOrUncovered"+   , tnum = 565+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLegPrice :: FIXTag+tLegPrice = FIXTag +   { tName = "LegPrice"+   , tnum = 566+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tTradSesStatusRejReason :: FIXTag+tTradSesStatusRejReason = FIXTag +   { tName = "TradSesStatusRejReason"+   , tnum = 567+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradeRequestID :: FIXTag+tTradeRequestID = FIXTag +   { tName = "TradeRequestID"+   , tnum = 568+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTradeRequestType :: FIXTag+tTradeRequestType = FIXTag +   { tName = "TradeRequestType"+   , tnum = 569+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPreviouslyReported :: FIXTag+tPreviouslyReported = FIXTag +   { tName = "PreviouslyReported"+   , tnum = 570+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tTradeReportID :: FIXTag+tTradeReportID = FIXTag +   { tName = "TradeReportID"+   , tnum = 571+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTradeReportRefID :: FIXTag+tTradeReportRefID = FIXTag +   { tName = "TradeReportRefID"+   , tnum = 572+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMatchStatus :: FIXTag+tMatchStatus = FIXTag +   { tName = "MatchStatus"+   , tnum = 573+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMatchType :: FIXTag+tMatchType = FIXTag +   { tName = "MatchType"+   , tnum = 574+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tOddLot :: FIXTag+tOddLot = FIXTag +   { tName = "OddLot"+   , tnum = 575+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tNoClearingInstructions :: FIXTag+tNoClearingInstructions = FIXTag +   { tName = "NoClearingInstructions"+   , tnum = 576+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tClearingInstruction :: FIXTag+tClearingInstruction = FIXTag +   { tName = "ClearingInstruction"+   , tnum = 577+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradeInputSource :: FIXTag+tTradeInputSource = FIXTag +   { tName = "TradeInputSource"+   , tnum = 578+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTradeInputDevice :: FIXTag+tTradeInputDevice = FIXTag +   { tName = "TradeInputDevice"+   , tnum = 579+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoDates :: FIXTag+tNoDates = FIXTag +   { tName = "NoDates"+   , tnum = 580+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAccountType :: FIXTag+tAccountType = FIXTag +   { tName = "AccountType"+   , tnum = 581+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCustOrderCapacity :: FIXTag+tCustOrderCapacity = FIXTag +   { tName = "CustOrderCapacity"+   , tnum = 582+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tClOrdLinkID :: FIXTag+tClOrdLinkID = FIXTag +   { tName = "ClOrdLinkID"+   , tnum = 583+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMassStatusReqID :: FIXTag+tMassStatusReqID = FIXTag +   { tName = "MassStatusReqID"+   , tnum = 584+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMassStatusReqType :: FIXTag+tMassStatusReqType = FIXTag +   { tName = "MassStatusReqType"+   , tnum = 585+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOrigOrdModTime :: FIXTag+tOrigOrdModTime = FIXTag +   { tName = "OrigOrdModTime"+   , tnum = 586+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tLegSettlmntTyp :: FIXTag+tLegSettlmntTyp = FIXTag +   { tName = "LegSettlmntTyp"+   , tnum = 587+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLegFutSettDate :: FIXTag+tLegFutSettDate = FIXTag +   { tName = "LegFutSettDate"+   , tnum = 588+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tDayBookingInst :: FIXTag+tDayBookingInst = FIXTag +   { tName = "DayBookingInst"+   , tnum = 589+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tBookingUnit :: FIXTag+tBookingUnit = FIXTag +   { tName = "BookingUnit"+   , tnum = 590+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tPreallocMethod :: FIXTag+tPreallocMethod = FIXTag +   { tName = "PreallocMethod"+   , tnum = 591+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tUnderlyingCountryOfIssue :: FIXTag+tUnderlyingCountryOfIssue = FIXTag +   { tName = "UnderlyingCountryOfIssue"+   , tnum = 592+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingStateOrProvinceOfIssue :: FIXTag+tUnderlyingStateOrProvinceOfIssue = FIXTag +   { tName = "UnderlyingStateOrProvinceOfIssue"+   , tnum = 593+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingLocaleOfIssue :: FIXTag+tUnderlyingLocaleOfIssue = FIXTag +   { tName = "UnderlyingLocaleOfIssue"+   , tnum = 594+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingInstrRegistry :: FIXTag+tUnderlyingInstrRegistry = FIXTag +   { tName = "UnderlyingInstrRegistry"+   , tnum = 595+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegCountryOfIssue :: FIXTag+tLegCountryOfIssue = FIXTag +   { tName = "LegCountryOfIssue"+   , tnum = 596+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegStateOrProvinceOfIssue :: FIXTag+tLegStateOrProvinceOfIssue = FIXTag +   { tName = "LegStateOrProvinceOfIssue"+   , tnum = 597+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegLocaleOfIssue :: FIXTag+tLegLocaleOfIssue = FIXTag +   { tName = "LegLocaleOfIssue"+   , tnum = 598+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegInstrRegistry :: FIXTag+tLegInstrRegistry = FIXTag +   { tName = "LegInstrRegistry"+   , tnum = 599+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegSymbol :: FIXTag+tLegSymbol = FIXTag +   { tName = "LegSymbol"+   , tnum = 600+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegSymbolSfx :: FIXTag+tLegSymbolSfx = FIXTag +   { tName = "LegSymbolSfx"+   , tnum = 601+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegSecurityID :: FIXTag+tLegSecurityID = FIXTag +   { tName = "LegSecurityID"+   , tnum = 602+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegSecurityIDSource :: FIXTag+tLegSecurityIDSource = FIXTag +   { tName = "LegSecurityIDSource"+   , tnum = 603+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoLegSecurityAltID :: FIXTag+tNoLegSecurityAltID = FIXTag +   { tName = "NoLegSecurityAltID"+   , tnum = 604+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegSecurityAltID :: FIXTag+tLegSecurityAltID = FIXTag +   { tName = "LegSecurityAltID"+   , tnum = 605+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegSecurityAltIDSource :: FIXTag+tLegSecurityAltIDSource = FIXTag +   { tName = "LegSecurityAltIDSource"+   , tnum = 606+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegProduct :: FIXTag+tLegProduct = FIXTag +   { tName = "LegProduct"+   , tnum = 607+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLegCFICode :: FIXTag+tLegCFICode = FIXTag +   { tName = "LegCFICode"+   , tnum = 608+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegSecurityType :: FIXTag+tLegSecurityType = FIXTag +   { tName = "LegSecurityType"+   , tnum = 609+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegMaturityMonthYear :: FIXTag+tLegMaturityMonthYear = FIXTag +   { tName = "LegMaturityMonthYear"+   , tnum = 610+   , tparser = toFIXMonthYear+   , arbitraryValue = FIXMonthYear <$> arbitrary }++tLegMaturityDate :: FIXTag+tLegMaturityDate = FIXTag +   { tName = "LegMaturityDate"+   , tnum = 611+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tLegStrikePrice :: FIXTag+tLegStrikePrice = FIXTag +   { tName = "LegStrikePrice"+   , tnum = 612+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLegOptAttribute :: FIXTag+tLegOptAttribute = FIXTag +   { tName = "LegOptAttribute"+   , tnum = 613+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLegContractMultiplier :: FIXTag+tLegContractMultiplier = FIXTag +   { tName = "LegContractMultiplier"+   , tnum = 614+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLegCouponRate :: FIXTag+tLegCouponRate = FIXTag +   { tName = "LegCouponRate"+   , tnum = 615+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLegSecurityExchange :: FIXTag+tLegSecurityExchange = FIXTag +   { tName = "LegSecurityExchange"+   , tnum = 616+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegIssuer :: FIXTag+tLegIssuer = FIXTag +   { tName = "LegIssuer"+   , tnum = 617+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tEncodedLegIssuerLen :: FIXTag+tEncodedLegIssuerLen = FIXTag +   { tName = "EncodedLegIssuerLen"+   , tnum = 618+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedLegIssuer :: FIXTag+tEncodedLegIssuer = FIXTag +   { tName = "EncodedLegIssuer"+   , tnum = 619+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tLegSecurityDesc :: FIXTag+tLegSecurityDesc = FIXTag +   { tName = "LegSecurityDesc"+   , tnum = 620+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tEncodedLegSecurityDescLen :: FIXTag+tEncodedLegSecurityDescLen = FIXTag +   { tName = "EncodedLegSecurityDescLen"+   , tnum = 621+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedLegSecurityDesc :: FIXTag+tEncodedLegSecurityDesc = FIXTag +   { tName = "EncodedLegSecurityDesc"+   , tnum = 622+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tLegRatioQty :: FIXTag+tLegRatioQty = FIXTag +   { tName = "LegRatioQty"+   , tnum = 623+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLegSide :: FIXTag+tLegSide = FIXTag +   { tName = "LegSide"+   , tnum = 624+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tTradingSessionSubID :: FIXTag+tTradingSessionSubID = FIXTag +   { tName = "TradingSessionSubID"+   , tnum = 625+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAllocType :: FIXTag+tAllocType = FIXTag +   { tName = "AllocType"+   , tnum = 626+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoHops :: FIXTag+tNoHops = FIXTag +   { tName = "NoHops"+   , tnum = 627+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tHopCompID :: FIXTag+tHopCompID = FIXTag +   { tName = "HopCompID"+   , tnum = 628+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tHopSendingTime :: FIXTag+tHopSendingTime = FIXTag +   { tName = "HopSendingTime"+   , tnum = 629+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tHopRefID :: FIXTag+tHopRefID = FIXTag +   { tName = "HopRefID"+   , tnum = 630+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMidPx :: FIXTag+tMidPx = FIXTag +   { tName = "MidPx"+   , tnum = 631+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBidYield :: FIXTag+tBidYield = FIXTag +   { tName = "BidYield"+   , tnum = 632+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMidYield :: FIXTag+tMidYield = FIXTag +   { tName = "MidYield"+   , tnum = 633+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOfferYield :: FIXTag+tOfferYield = FIXTag +   { tName = "OfferYield"+   , tnum = 634+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tClearingFeeIndicator :: FIXTag+tClearingFeeIndicator = FIXTag +   { tName = "ClearingFeeIndicator"+   , tnum = 635+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tWorkingIndicator :: FIXTag+tWorkingIndicator = FIXTag +   { tName = "WorkingIndicator"+   , tnum = 636+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tLegLastPx :: FIXTag+tLegLastPx = FIXTag +   { tName = "LegLastPx"+   , tnum = 637+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tPriorityIndicator :: FIXTag+tPriorityIndicator = FIXTag +   { tName = "PriorityIndicator"+   , tnum = 638+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPriceImprovement :: FIXTag+tPriceImprovement = FIXTag +   { tName = "PriceImprovement"+   , tnum = 639+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tPrice2 :: FIXTag+tPrice2 = FIXTag +   { tName = "Price2"+   , tnum = 640+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLastForwardPoints2 :: FIXTag+tLastForwardPoints2 = FIXTag +   { tName = "LastForwardPoints2"+   , tnum = 641+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBidForwardPoints2 :: FIXTag+tBidForwardPoints2 = FIXTag +   { tName = "BidForwardPoints2"+   , tnum = 642+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOfferForwardPoints2 :: FIXTag+tOfferForwardPoints2 = FIXTag +   { tName = "OfferForwardPoints2"+   , tnum = 643+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tRFQReqID :: FIXTag+tRFQReqID = FIXTag +   { tName = "RFQReqID"+   , tnum = 644+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMktBidPx :: FIXTag+tMktBidPx = FIXTag +   { tName = "MktBidPx"+   , tnum = 645+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMktOfferPx :: FIXTag+tMktOfferPx = FIXTag +   { tName = "MktOfferPx"+   , tnum = 646+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMinBidSize :: FIXTag+tMinBidSize = FIXTag +   { tName = "MinBidSize"+   , tnum = 647+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMinOfferSize :: FIXTag+tMinOfferSize = FIXTag +   { tName = "MinOfferSize"+   , tnum = 648+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tQuoteStatusReqID :: FIXTag+tQuoteStatusReqID = FIXTag +   { tName = "QuoteStatusReqID"+   , tnum = 649+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegalConfirm :: FIXTag+tLegalConfirm = FIXTag +   { tName = "LegalConfirm"+   , tnum = 650+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tUnderlyingLastPx :: FIXTag+tUnderlyingLastPx = FIXTag +   { tName = "UnderlyingLastPx"+   , tnum = 651+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tUnderlyingLastQty :: FIXTag+tUnderlyingLastQty = FIXTag +   { tName = "UnderlyingLastQty"+   , tnum = 652+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSecDefStatus :: FIXTag+tSecDefStatus = FIXTag +   { tName = "SecDefStatus"+   , tnum = 653+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLegRefID :: FIXTag+tLegRefID = FIXTag +   { tName = "LegRefID"+   , tnum = 654+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tContraLegRefID :: FIXTag+tContraLegRefID = FIXTag +   { tName = "ContraLegRefID"+   , tnum = 655+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlCurrBidFxRate :: FIXTag+tSettlCurrBidFxRate = FIXTag +   { tName = "SettlCurrBidFxRate"+   , tnum = 656+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlCurrOfferFxRate :: FIXTag+tSettlCurrOfferFxRate = FIXTag +   { tName = "SettlCurrOfferFxRate"+   , tnum = 657+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tQuoteRequestRejectReason :: FIXTag+tQuoteRequestRejectReason = FIXTag +   { tName = "QuoteRequestRejectReason"+   , tnum = 658+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSideComplianceID :: FIXTag+tSideComplianceID = FIXTag +   { tName = "SideComplianceID"+   , tnum = 659+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++headerFIX43 :: FIXTags+headerFIX43 = +   LT.insert (tnum tSenderCompID) tSenderCompID $+   LT.insert (tnum tTargetCompID) tTargetCompID $+   LT.insert (tnum tOnBehalfOfCompID) tOnBehalfOfCompID $+   LT.insert (tnum tDeliverToCompID) tDeliverToCompID $+   LT.insert (tnum tSecureDataLen) tSecureDataLen $+   LT.insert (tnum tSecureData) tSecureData $+   LT.insert (tnum tMsgSeqNum) tMsgSeqNum $+   LT.insert (tnum tSenderSubID) tSenderSubID $+   LT.insert (tnum tSenderLocationID) tSenderLocationID $+   LT.insert (tnum tTargetSubID) tTargetSubID $+   LT.insert (tnum tTargetLocationID) tTargetLocationID $+   LT.insert (tnum tOnBehalfOfSubID) tOnBehalfOfSubID $+   LT.insert (tnum tOnBehalfOfLocationID) tOnBehalfOfLocationID $+   LT.insert (tnum tDeliverToSubID) tDeliverToSubID $+   LT.insert (tnum tDeliverToLocationID) tDeliverToLocationID $+   LT.insert (tnum tPossDupFlag) tPossDupFlag $+   LT.insert (tnum tPossResend) tPossResend $+   LT.insert (tnum tSendingTime) tSendingTime $+   LT.insert (tnum tOrigSendingTime) tOrigSendingTime $+   LT.insert (tnum tXmlDataLen) tXmlDataLen $+   LT.insert (tnum tXmlData) tXmlData $+   LT.insert (tnum tMessageEncoding) tMessageEncoding $+   LT.insert (tnum tLastMsgSeqNumProcessed) tLastMsgSeqNumProcessed $+   LT.insert (tnum tOnBehalfOfSendingTime) tOnBehalfOfSendingTime $+   LT.insert (tnum tNoHops) gNoHops''    LT.new+   where+      gNoHops'' = FIXTag+         { tName = "NoHops"+         , tnum = tnum tNoHops+         , tparser = gNoHopsP''+         , arbitraryValue = arbibtraryFIXGroup gNoHopsSpec'' }++      gNoHopsP'' = groupP gNoHopsSpec''+      gNoHopsSpec'' = FGSpec+         { gsLength = tNoHops+         , gsSeperator = tHopCompID+         , gsBody = gNoHopsBody'' }+         where+         gNoHopsBody'' = +            LT.insert (tnum tHopSendingTime) tHopSendingTime $+            LT.insert (tnum tHopRefID) tHopRefID             LT.new++++trailerFIX43 :: FIXTags+trailerFIX43 = +   LT.insert (tnum tSignatureLength) tSignatureLength $+   LT.insert (tnum tSignature) tSignature    LT.new+++mHeartbeat :: FIXMessageSpec+mHeartbeat = FMSpec+   { msName = "Heartbeat"+   , msType = C.pack "0"+   , msHeader = headerFIX43+   , msBody = mHeartbeatBody+   , msTrailer = trailerFIX43 }+   where+   mHeartbeatBody = +      LT.insert (tnum tTestReqID) tTestReqID       LT.new+++mTestRequest :: FIXMessageSpec+mTestRequest = FMSpec+   { msName = "TestRequest"+   , msType = C.pack "1"+   , msHeader = headerFIX43+   , msBody = mTestRequestBody+   , msTrailer = trailerFIX43 }+   where+   mTestRequestBody = +      LT.insert (tnum tTestReqID) tTestReqID       LT.new+++mResendRequest :: FIXMessageSpec+mResendRequest = FMSpec+   { msName = "ResendRequest"+   , msType = C.pack "2"+   , msHeader = headerFIX43+   , msBody = mResendRequestBody+   , msTrailer = trailerFIX43 }+   where+   mResendRequestBody = +      LT.insert (tnum tBeginSeqNo) tBeginSeqNo $+      LT.insert (tnum tEndSeqNo) tEndSeqNo       LT.new+++mReject :: FIXMessageSpec+mReject = FMSpec+   { msName = "Reject"+   , msType = C.pack "3"+   , msHeader = headerFIX43+   , msBody = mRejectBody+   , msTrailer = trailerFIX43 }+   where+   mRejectBody = +      LT.insert (tnum tRefSeqNum) tRefSeqNum $+      LT.insert (tnum tRefTagID) tRefTagID $+      LT.insert (tnum tRefMsgType) tRefMsgType $+      LT.insert (tnum tSessionRejectReason) tSessionRejectReason $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mSequenceReset :: FIXMessageSpec+mSequenceReset = FMSpec+   { msName = "SequenceReset"+   , msType = C.pack "4"+   , msHeader = headerFIX43+   , msBody = mSequenceResetBody+   , msTrailer = trailerFIX43 }+   where+   mSequenceResetBody = +      LT.insert (tnum tGapFillFlag) tGapFillFlag $+      LT.insert (tnum tNewSeqNo) tNewSeqNo       LT.new+++mLogout :: FIXMessageSpec+mLogout = FMSpec+   { msName = "Logout"+   , msType = C.pack "5"+   , msHeader = headerFIX43+   , msBody = mLogoutBody+   , msTrailer = trailerFIX43 }+   where+   mLogoutBody = +      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mIOI :: FIXMessageSpec+mIOI = FMSpec+   { msName = "IOI"+   , msType = C.pack "6"+   , msHeader = headerFIX43+   , msBody = mIOIBody+   , msTrailer = trailerFIX43 }+   where+   mIOIBody = +      LT.insert (tnum tIOIid) tIOIid $+      LT.insert (tnum tIOITransType) tIOITransType $+      LT.insert (tnum tIOIRefID) tIOIRefID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tQuantityType) tQuantityType $+      LT.insert (tnum tIOIQty) tIOIQty $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tValidUntilTime) tValidUntilTime $+      LT.insert (tnum tIOIQltyInd) tIOIQltyInd $+      LT.insert (tnum tIOINaturalFlag) tIOINaturalFlag $+      LT.insert (tnum tNoIOIQualifiers) gNoIOIQualifiers''' $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tURLLink) tURLLink $+      LT.insert (tnum tNoRoutingIDs) gNoRoutingIDs''' $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tBenchmark) tBenchmark       LT.new+      where+         gNoIOIQualifiers''' = FIXTag+            { tName = "NoIOIQualifiers"+            , tnum = tnum tNoIOIQualifiers+            , tparser = gNoIOIQualifiersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoIOIQualifiersSpec''' }++         gNoIOIQualifiersP''' = groupP gNoIOIQualifiersSpec'''+         gNoIOIQualifiersSpec''' = FGSpec+            { gsLength = tNoIOIQualifiers+            , gsSeperator = tIOIQualifier+            , gsBody = gNoIOIQualifiersBody''' }+            where+            gNoIOIQualifiersBody''' = +               LT.new++         gNoRoutingIDs''' = FIXTag+            { tName = "NoRoutingIDs"+            , tnum = tnum tNoRoutingIDs+            , tparser = gNoRoutingIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRoutingIDsSpec''' }++         gNoRoutingIDsP''' = groupP gNoRoutingIDsSpec'''+         gNoRoutingIDsSpec''' = FGSpec+            { gsLength = tNoRoutingIDs+            , gsSeperator = tRoutingType+            , gsBody = gNoRoutingIDsBody''' }+            where+            gNoRoutingIDsBody''' = +               LT.insert (tnum tRoutingID) tRoutingID                LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++++mAdvertisement :: FIXMessageSpec+mAdvertisement = FMSpec+   { msName = "Advertisement"+   , msType = C.pack "7"+   , msHeader = headerFIX43+   , msBody = mAdvertisementBody+   , msTrailer = trailerFIX43 }+   where+   mAdvertisementBody = +      LT.insert (tnum tAdvId) tAdvId $+      LT.insert (tnum tAdvTransType) tAdvTransType $+      LT.insert (tnum tAdvRefID) tAdvRefID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tAdvSide) tAdvSide $+      LT.insert (tnum tQuantity) tQuantity $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tURLLink) tURLLink $+      LT.insert (tnum tLastMkt) tLastMkt $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID       LT.new+      where+         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++++mExecutionReport :: FIXMessageSpec+mExecutionReport = FMSpec+   { msName = "ExecutionReport"+   , msType = C.pack "8"+   , msHeader = headerFIX43+   , msBody = mExecutionReportBody+   , msTrailer = trailerFIX43 }+   where+   mExecutionReportBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tSecondaryExecID) tSecondaryExecID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+      LT.insert (tnum tNoContraBrokers) gNoContraBrokers''' $+      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tCrossID) tCrossID $+      LT.insert (tnum tOrigCrossID) tOrigCrossID $+      LT.insert (tnum tCrossType) tCrossType $+      LT.insert (tnum tExecID) tExecID $+      LT.insert (tnum tExecRefID) tExecRefID $+      LT.insert (tnum tExecType) tExecType $+      LT.insert (tnum tOrdStatus) tOrdStatus $+      LT.insert (tnum tWorkingIndicator) tWorkingIndicator $+      LT.insert (tnum tOrdRejReason) tOrdRejReason $+      LT.insert (tnum tExecRestatementReason) tExecRestatementReason $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tDayBookingInst) tDayBookingInst $+      LT.insert (tnum tBookingUnit) tBookingUnit $+      LT.insert (tnum tPreallocMethod) tPreallocMethod $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tCashMargin) tCashMargin $+      LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tNoStipulations) gNoStipulations''' $+      LT.insert (tnum tQuantityType) tQuantityType $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrderPercent) tOrderPercent $+      LT.insert (tnum tRoundingDirection) tRoundingDirection $+      LT.insert (tnum tRoundingModulus) tRoundingModulus $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tPegDifference) tPegDifference $+      LT.insert (tnum tDiscretionInst) tDiscretionInst $+      LT.insert (tnum tDiscretionOffset) tDiscretionOffset $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tComplianceID) tComplianceID $+      LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tEffectiveTime) tEffectiveTime $+      LT.insert (tnum tExpireDate) tExpireDate $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tOrderCapacity) tOrderCapacity $+      LT.insert (tnum tOrderRestrictions) tOrderRestrictions $+      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+      LT.insert (tnum tRule80A) tRule80A $+      LT.insert (tnum tLastQty) tLastQty $+      LT.insert (tnum tUnderlyingLastQty) tUnderlyingLastQty $+      LT.insert (tnum tLastPx) tLastPx $+      LT.insert (tnum tUnderlyingLastPx) tUnderlyingLastPx $+      LT.insert (tnum tLastSpotRate) tLastSpotRate $+      LT.insert (tnum tLastForwardPoints) tLastForwardPoints $+      LT.insert (tnum tLastMkt) tLastMkt $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tLastCapacity) tLastCapacity $+      LT.insert (tnum tLeavesQty) tLeavesQty $+      LT.insert (tnum tCumQty) tCumQty $+      LT.insert (tnum tAvgPx) tAvgPx $+      LT.insert (tnum tDayOrderQty) tDayOrderQty $+      LT.insert (tnum tDayCumQty) tDayCumQty $+      LT.insert (tnum tDayAvgPx) tDayAvgPx $+      LT.insert (tnum tGTBookingInst) tGTBookingInst $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tReportToExch) tReportToExch $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tCommCurrency) tCommCurrency $+      LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tYieldType) tYieldType $+      LT.insert (tnum tYield) tYield $+      LT.insert (tnum tGrossTradeAmt) tGrossTradeAmt $+      LT.insert (tnum tNumDaysInterest) tNumDaysInterest $+      LT.insert (tnum tExDate) tExDate $+      LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $+      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+      LT.insert (tnum tTradedFlatSwitch) tTradedFlatSwitch $+      LT.insert (tnum tBasisFeatureDate) tBasisFeatureDate $+      LT.insert (tnum tBasisFeaturePrice) tBasisFeaturePrice $+      LT.insert (tnum tConcession) tConcession $+      LT.insert (tnum tTotalTakedown) tTotalTakedown $+      LT.insert (tnum tNetMoney) tNetMoney $+      LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tSettlCurrFxRate) tSettlCurrFxRate $+      LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tPositionEffect) tPositionEffect $+      LT.insert (tnum tMaxShow) tMaxShow $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tFutSettDate2) tFutSettDate2 $+      LT.insert (tnum tOrderQty2) tOrderQty2 $+      LT.insert (tnum tLastForwardPoints2) tLastForwardPoints2 $+      LT.insert (tnum tMultiLegReportingType) tMultiLegReportingType $+      LT.insert (tnum tCancellationRights) tCancellationRights $+      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $+      LT.insert (tnum tRegistID) tRegistID $+      LT.insert (tnum tDesignation) tDesignation $+      LT.insert (tnum tTransBkdTime) tTransBkdTime $+      LT.insert (tnum tExecValuationPoint) tExecValuationPoint $+      LT.insert (tnum tExecPriceType) tExecPriceType $+      LT.insert (tnum tExecPriceAdjustment) tExecPriceAdjustment $+      LT.insert (tnum tPriorityIndicator) tPriorityIndicator $+      LT.insert (tnum tPriceImprovement) tPriceImprovement $+      LT.insert (tnum tNoContAmts) gNoContAmts''' $+      LT.insert (tnum tNoLegs) gNoLegs'''       LT.new+      where+         gNoContAmts''' = FIXTag+            { tName = "NoContAmts"+            , tnum = tnum tNoContAmts+            , tparser = gNoContAmtsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoContAmtsSpec''' }++         gNoContAmtsP''' = groupP gNoContAmtsSpec'''+         gNoContAmtsSpec''' = FGSpec+            { gsLength = tNoContAmts+            , gsSeperator = tContAmtType+            , gsBody = gNoContAmtsBody''' }+            where+            gNoContAmtsBody''' = +               LT.insert (tnum tContAmtValue) tContAmtValue $+               LT.insert (tnum tContAmtCurr) tContAmtCurr                LT.new++         gNoContraBrokers''' = FIXTag+            { tName = "NoContraBrokers"+            , tnum = tnum tNoContraBrokers+            , tparser = gNoContraBrokersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoContraBrokersSpec''' }++         gNoContraBrokersP''' = groupP gNoContraBrokersSpec'''+         gNoContraBrokersSpec''' = FGSpec+            { gsLength = tNoContraBrokers+            , gsSeperator = tContraBroker+            , gsBody = gNoContraBrokersBody''' }+            where+            gNoContraBrokersBody''' = +               LT.insert (tnum tContraTrader) tContraTrader $+               LT.insert (tnum tContraTradeQty) tContraTradeQty $+               LT.insert (tnum tContraTradeTime) tContraTradeTime $+               LT.insert (tnum tContraLegRefID) tContraLegRefID                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegPositionEffect) tLegPositionEffect $+               LT.insert (tnum tLegCoveredOrUncovered) tLegCoveredOrUncovered $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $+               LT.insert (tnum tLegRefID) tLegRefID $+               LT.insert (tnum tLegPrice) tLegPrice $+               LT.insert (tnum tLegSettlmntTyp) tLegSettlmntTyp $+               LT.insert (tnum tLegFutSettDate) tLegFutSettDate $+               LT.insert (tnum tLegLastPx) tLegLastPx                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new++                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNestedPartySubID) tNestedPartySubID                         LT.new+++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tPartySubID) tPartySubID                LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoStipulations''' = FIXTag+            { tName = "NoStipulations"+            , tnum = tnum tNoStipulations+            , tparser = gNoStipulationsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }++         gNoStipulationsP''' = groupP gNoStipulationsSpec'''+         gNoStipulationsSpec''' = FGSpec+            { gsLength = tNoStipulations+            , gsSeperator = tStipulationType+            , gsBody = gNoStipulationsBody''' }+            where+            gNoStipulationsBody''' = +               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new++++mOrderCancelReject :: FIXMessageSpec+mOrderCancelReject = FMSpec+   { msName = "OrderCancelReject"+   , msType = C.pack "9"+   , msHeader = headerFIX43+   , msBody = mOrderCancelRejectBody+   , msTrailer = trailerFIX43 }+   where+   mOrderCancelRejectBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+      LT.insert (tnum tOrdStatus) tOrdStatus $+      LT.insert (tnum tWorkingIndicator) tWorkingIndicator $+      LT.insert (tnum tOrigOrdModTime) tOrigOrdModTime $+      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tCxlRejResponseTo) tCxlRejResponseTo $+      LT.insert (tnum tCxlRejReason) tCxlRejReason $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mLogon :: FIXMessageSpec+mLogon = FMSpec+   { msName = "Logon"+   , msType = C.pack "A"+   , msHeader = headerFIX43+   , msBody = mLogonBody+   , msTrailer = trailerFIX43 }+   where+   mLogonBody = +      LT.insert (tnum tEncryptMethod) tEncryptMethod $+      LT.insert (tnum tHeartBtInt) tHeartBtInt $+      LT.insert (tnum tRawDataLength) tRawDataLength $+      LT.insert (tnum tRawData) tRawData $+      LT.insert (tnum tResetSeqNumFlag) tResetSeqNumFlag $+      LT.insert (tnum tMaxMessageSize) tMaxMessageSize $+      LT.insert (tnum tNoMsgTypes) gNoMsgTypes''' $+      LT.insert (tnum tTestMessageIndicator) tTestMessageIndicator $+      LT.insert (tnum tUsername) tUsername $+      LT.insert (tnum tPassword) tPassword       LT.new+      where+         gNoMsgTypes''' = FIXTag+            { tName = "NoMsgTypes"+            , tnum = tnum tNoMsgTypes+            , tparser = gNoMsgTypesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoMsgTypesSpec''' }++         gNoMsgTypesP''' = groupP gNoMsgTypesSpec'''+         gNoMsgTypesSpec''' = FGSpec+            { gsLength = tNoMsgTypes+            , gsSeperator = tRefMsgType+            , gsBody = gNoMsgTypesBody''' }+            where+            gNoMsgTypesBody''' = +               LT.insert (tnum tMsgDirection) tMsgDirection                LT.new++++mNews :: FIXMessageSpec+mNews = FMSpec+   { msName = "News"+   , msType = C.pack "B"+   , msHeader = headerFIX43+   , msBody = mNewsBody+   , msTrailer = trailerFIX43 }+   where+   mNewsBody = +      LT.insert (tnum tOrigTime) tOrigTime $+      LT.insert (tnum tUrgency) tUrgency $+      LT.insert (tnum tHeadline) tHeadline $+      LT.insert (tnum tEncodedHeadlineLen) tEncodedHeadlineLen $+      LT.insert (tnum tEncodedHeadline) tEncodedHeadline $+      LT.insert (tnum tNoRoutingIDs) gNoRoutingIDs''' $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym''' $+      LT.insert (tnum tLinesOfText) gLinesOfText''' $+      LT.insert (tnum tURLLink) tURLLink $+      LT.insert (tnum tRawDataLength) tRawDataLength $+      LT.insert (tnum tRawData) tRawData       LT.new+      where+         gLinesOfText''' = FIXTag+            { tName = "LinesOfText"+            , tnum = tnum tLinesOfText+            , tparser = gLinesOfTextP'''+            , arbitraryValue = arbibtraryFIXGroup gLinesOfTextSpec''' }++         gLinesOfTextP''' = groupP gLinesOfTextSpec'''+         gLinesOfTextSpec''' = FGSpec+            { gsLength = tLinesOfText+            , gsSeperator = tText+            , gsBody = gLinesOfTextBody''' }+            where+            gLinesOfTextBody''' = +               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new++         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tSymbol+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc                LT.new+               where+                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new+++         gNoRoutingIDs''' = FIXTag+            { tName = "NoRoutingIDs"+            , tnum = tnum tNoRoutingIDs+            , tparser = gNoRoutingIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRoutingIDsSpec''' }++         gNoRoutingIDsP''' = groupP gNoRoutingIDsSpec'''+         gNoRoutingIDsSpec''' = FGSpec+            { gsLength = tNoRoutingIDs+            , gsSeperator = tRoutingType+            , gsBody = gNoRoutingIDsBody''' }+            where+            gNoRoutingIDsBody''' = +               LT.insert (tnum tRoutingID) tRoutingID                LT.new++++mEmail :: FIXMessageSpec+mEmail = FMSpec+   { msName = "Email"+   , msType = C.pack "C"+   , msHeader = headerFIX43+   , msBody = mEmailBody+   , msTrailer = trailerFIX43 }+   where+   mEmailBody = +      LT.insert (tnum tEmailThreadID) tEmailThreadID $+      LT.insert (tnum tEmailType) tEmailType $+      LT.insert (tnum tOrigTime) tOrigTime $+      LT.insert (tnum tSubject) tSubject $+      LT.insert (tnum tEncodedSubjectLen) tEncodedSubjectLen $+      LT.insert (tnum tEncodedSubject) tEncodedSubject $+      LT.insert (tnum tNoRoutingIDs) gNoRoutingIDs''' $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym''' $+      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tLinesOfText) gLinesOfText''' $+      LT.insert (tnum tRawDataLength) tRawDataLength $+      LT.insert (tnum tRawData) tRawData       LT.new+      where+         gLinesOfText''' = FIXTag+            { tName = "LinesOfText"+            , tnum = tnum tLinesOfText+            , tparser = gLinesOfTextP'''+            , arbitraryValue = arbibtraryFIXGroup gLinesOfTextSpec''' }++         gLinesOfTextP''' = groupP gLinesOfTextSpec'''+         gLinesOfTextSpec''' = FGSpec+            { gsLength = tLinesOfText+            , gsSeperator = tText+            , gsBody = gLinesOfTextBody''' }+            where+            gLinesOfTextBody''' = +               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new++         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tSymbol+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc                LT.new+               where+                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new+++         gNoRoutingIDs''' = FIXTag+            { tName = "NoRoutingIDs"+            , tnum = tnum tNoRoutingIDs+            , tparser = gNoRoutingIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRoutingIDsSpec''' }++         gNoRoutingIDsP''' = groupP gNoRoutingIDsSpec'''+         gNoRoutingIDsSpec''' = FGSpec+            { gsLength = tNoRoutingIDs+            , gsSeperator = tRoutingType+            , gsBody = gNoRoutingIDsBody''' }+            where+            gNoRoutingIDsBody''' = +               LT.insert (tnum tRoutingID) tRoutingID                LT.new++++mNewOrderSingle :: FIXMessageSpec+mNewOrderSingle = FMSpec+   { msName = "NewOrderSingle"+   , msType = C.pack "D"+   , msHeader = headerFIX43+   , msBody = mNewOrderSingleBody+   , msTrailer = trailerFIX43 }+   where+   mNewOrderSingleBody = +      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tDayBookingInst) tDayBookingInst $+      LT.insert (tnum tBookingUnit) tBookingUnit $+      LT.insert (tnum tPreallocMethod) tPreallocMethod $+      LT.insert (tnum tNoAllocs) gNoAllocs''' $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tCashMargin) tCashMargin $+      LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $+      LT.insert (tnum tProcessCode) tProcessCode $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPrevClosePx) tPrevClosePx $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tLocateReqd) tLocateReqd $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tNoStipulations) gNoStipulations''' $+      LT.insert (tnum tQuantityType) tQuantityType $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrderPercent) tOrderPercent $+      LT.insert (tnum tRoundingDirection) tRoundingDirection $+      LT.insert (tnum tRoundingModulus) tRoundingModulus $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tYieldType) tYieldType $+      LT.insert (tnum tYield) tYield $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tComplianceID) tComplianceID $+      LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+      LT.insert (tnum tIOIid) tIOIid $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tEffectiveTime) tEffectiveTime $+      LT.insert (tnum tExpireDate) tExpireDate $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tGTBookingInst) tGTBookingInst $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tCommCurrency) tCommCurrency $+      LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+      LT.insert (tnum tOrderCapacity) tOrderCapacity $+      LT.insert (tnum tOrderRestrictions) tOrderRestrictions $+      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+      LT.insert (tnum tRule80A) tRule80A $+      LT.insert (tnum tForexReq) tForexReq $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tFutSettDate2) tFutSettDate2 $+      LT.insert (tnum tOrderQty2) tOrderQty2 $+      LT.insert (tnum tPrice2) tPrice2 $+      LT.insert (tnum tPositionEffect) tPositionEffect $+      LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+      LT.insert (tnum tMaxShow) tMaxShow $+      LT.insert (tnum tPegDifference) tPegDifference $+      LT.insert (tnum tDiscretionInst) tDiscretionInst $+      LT.insert (tnum tDiscretionOffset) tDiscretionOffset $+      LT.insert (tnum tCancellationRights) tCancellationRights $+      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $+      LT.insert (tnum tRegistID) tRegistID $+      LT.insert (tnum tDesignation) tDesignation $+      LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $+      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+      LT.insert (tnum tNetMoney) tNetMoney       LT.new+      where+         gNoAllocs''' = FIXTag+            { tName = "NoAllocs"+            , tnum = tnum tNoAllocs+            , tparser = gNoAllocsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }++         gNoAllocsP''' = groupP gNoAllocsSpec'''+         gNoAllocsSpec''' = FGSpec+            { gsLength = tNoAllocs+            , gsSeperator = tAllocAccount+            , gsBody = gNoAllocsBody''' }+            where+            gNoAllocsBody''' = +               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $+               LT.insert (tnum tAllocQty) tAllocQty                LT.new+               where+                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNestedPartySubID) tNestedPartySubID                         LT.new+++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tPartySubID) tPartySubID                LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoStipulations''' = FIXTag+            { tName = "NoStipulations"+            , tnum = tnum tNoStipulations+            , tparser = gNoStipulationsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }++         gNoStipulationsP''' = groupP gNoStipulationsSpec'''+         gNoStipulationsSpec''' = FGSpec+            { gsLength = tNoStipulations+            , gsSeperator = tStipulationType+            , gsBody = gNoStipulationsBody''' }+            where+            gNoStipulationsBody''' = +               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new++         gNoTradingSessions''' = FIXTag+            { tName = "NoTradingSessions"+            , tnum = tnum tNoTradingSessions+            , tparser = gNoTradingSessionsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }++         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''+         gNoTradingSessionsSpec''' = FGSpec+            { gsLength = tNoTradingSessions+            , gsSeperator = tTradingSessionID+            , gsBody = gNoTradingSessionsBody''' }+            where+            gNoTradingSessionsBody''' = +               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new++++mNewOrderList :: FIXMessageSpec+mNewOrderList = FMSpec+   { msName = "NewOrderList"+   , msType = C.pack "E"+   , msHeader = headerFIX43+   , msBody = mNewOrderListBody+   , msTrailer = trailerFIX43 }+   where+   mNewOrderListBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tBidID) tBidID $+      LT.insert (tnum tClientBidID) tClientBidID $+      LT.insert (tnum tProgRptReqs) tProgRptReqs $+      LT.insert (tnum tBidType) tBidType $+      LT.insert (tnum tProgPeriodInterval) tProgPeriodInterval $+      LT.insert (tnum tCancellationRights) tCancellationRights $+      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $+      LT.insert (tnum tRegistID) tRegistID $+      LT.insert (tnum tListExecInstType) tListExecInstType $+      LT.insert (tnum tListExecInst) tListExecInst $+      LT.insert (tnum tEncodedListExecInstLen) tEncodedListExecInstLen $+      LT.insert (tnum tEncodedListExecInst) tEncodedListExecInst $+      LT.insert (tnum tTotNoOrders) tTotNoOrders $+      LT.insert (tnum tNoOrders) gNoOrders'''       LT.new+      where+         gNoOrders''' = FIXTag+            { tName = "NoOrders"+            , tnum = tnum tNoOrders+            , tparser = gNoOrdersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoOrdersSpec''' }++         gNoOrdersP''' = groupP gNoOrdersSpec'''+         gNoOrdersSpec''' = FGSpec+            { gsLength = tNoOrders+            , gsSeperator = tClOrdID+            , gsBody = gNoOrdersBody''' }+            where+            gNoOrdersBody''' = +               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+               LT.insert (tnum tListSeqNo) tListSeqNo $+               LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+               LT.insert (tnum tSettlInstMode) tSettlInstMode $+               LT.insert (tnum tNoPartyIDs) gNoPartyIDs'''''' $+               LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+               LT.insert (tnum tAccount) tAccount $+               LT.insert (tnum tAccountType) tAccountType $+               LT.insert (tnum tDayBookingInst) tDayBookingInst $+               LT.insert (tnum tBookingUnit) tBookingUnit $+               LT.insert (tnum tPreallocMethod) tPreallocMethod $+               LT.insert (tnum tNoAllocs) gNoAllocs'''''' $+               LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+               LT.insert (tnum tFutSettDate) tFutSettDate $+               LT.insert (tnum tCashMargin) tCashMargin $+               LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+               LT.insert (tnum tHandlInst) tHandlInst $+               LT.insert (tnum tExecInst) tExecInst $+               LT.insert (tnum tMinQty) tMinQty $+               LT.insert (tnum tMaxFloor) tMaxFloor $+               LT.insert (tnum tExDestination) tExDestination $+               LT.insert (tnum tNoTradingSessions) gNoTradingSessions'''''' $+               LT.insert (tnum tProcessCode) tProcessCode $+               LT.insert (tnum tSymbol) tSymbol $+               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tPrevClosePx) tPrevClosePx $+               LT.insert (tnum tSide) tSide $+               LT.insert (tnum tSideValueInd) tSideValueInd $+               LT.insert (tnum tLocateReqd) tLocateReqd $+               LT.insert (tnum tTransactTime) tTransactTime $+               LT.insert (tnum tNoStipulations) gNoStipulations'''''' $+               LT.insert (tnum tQuantityType) tQuantityType $+               LT.insert (tnum tOrderQty) tOrderQty $+               LT.insert (tnum tCashOrderQty) tCashOrderQty $+               LT.insert (tnum tOrderPercent) tOrderPercent $+               LT.insert (tnum tRoundingDirection) tRoundingDirection $+               LT.insert (tnum tRoundingModulus) tRoundingModulus $+               LT.insert (tnum tOrdType) tOrdType $+               LT.insert (tnum tPriceType) tPriceType $+               LT.insert (tnum tPrice) tPrice $+               LT.insert (tnum tStopPx) tStopPx $+               LT.insert (tnum tSpread) tSpread $+               LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+               LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+               LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+               LT.insert (tnum tYieldType) tYieldType $+               LT.insert (tnum tYield) tYield $+               LT.insert (tnum tCurrency) tCurrency $+               LT.insert (tnum tComplianceID) tComplianceID $+               LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+               LT.insert (tnum tIOIid) tIOIid $+               LT.insert (tnum tQuoteID) tQuoteID $+               LT.insert (tnum tTimeInForce) tTimeInForce $+               LT.insert (tnum tEffectiveTime) tEffectiveTime $+               LT.insert (tnum tExpireDate) tExpireDate $+               LT.insert (tnum tExpireTime) tExpireTime $+               LT.insert (tnum tGTBookingInst) tGTBookingInst $+               LT.insert (tnum tCommission) tCommission $+               LT.insert (tnum tCommType) tCommType $+               LT.insert (tnum tCommCurrency) tCommCurrency $+               LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+               LT.insert (tnum tOrderCapacity) tOrderCapacity $+               LT.insert (tnum tOrderRestrictions) tOrderRestrictions $+               LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+               LT.insert (tnum tRule80A) tRule80A $+               LT.insert (tnum tForexReq) tForexReq $+               LT.insert (tnum tSettlCurrency) tSettlCurrency $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText $+               LT.insert (tnum tFutSettDate2) tFutSettDate2 $+               LT.insert (tnum tOrderQty2) tOrderQty2 $+               LT.insert (tnum tPrice2) tPrice2 $+               LT.insert (tnum tPositionEffect) tPositionEffect $+               LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+               LT.insert (tnum tMaxShow) tMaxShow $+               LT.insert (tnum tPegDifference) tPegDifference $+               LT.insert (tnum tDiscretionInst) tDiscretionInst $+               LT.insert (tnum tDiscretionOffset) tDiscretionOffset $+               LT.insert (tnum tDesignation) tDesignation $+               LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $+               LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+               LT.insert (tnum tNetMoney) tNetMoney                LT.new+               where+                  gNoAllocs'''''' = FIXTag+                     { tName = "NoAllocs"+                     , tnum = tnum tNoAllocs+                     , tparser = gNoAllocsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec'''''' }++                  gNoAllocsP'''''' = groupP gNoAllocsSpec''''''+                  gNoAllocsSpec'''''' = FGSpec+                     { gsLength = tNoAllocs+                     , gsSeperator = tAllocAccount+                     , gsBody = gNoAllocsBody'''''' }+                     where+                     gNoAllocsBody'''''' = +                        LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+                        LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''''' $+                        LT.insert (tnum tAllocQty) tAllocQty                         LT.new+                        where+                           gNoNestedPartyIDs''''''''' = FIXTag+                              { tName = "NoNestedPartyIDs"+                              , tnum = tnum tNoNestedPartyIDs+                              , tparser = gNoNestedPartyIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec''''''''' }++                           gNoNestedPartyIDsP''''''''' = groupP gNoNestedPartyIDsSpec'''''''''+                           gNoNestedPartyIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartyIDs+                              , gsSeperator = tNestedPartyID+                              , gsBody = gNoNestedPartyIDsBody''''''''' }+                              where+                              gNoNestedPartyIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                                 LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                                 LT.insert (tnum tNestedPartySubID) tNestedPartySubID                                  LT.new+++                  gNoPartyIDs'''''' = FIXTag+                     { tName = "NoPartyIDs"+                     , tnum = tnum tNoPartyIDs+                     , tparser = gNoPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec'''''' }++                  gNoPartyIDsP'''''' = groupP gNoPartyIDsSpec''''''+                  gNoPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartyIDs+                     , gsSeperator = tPartyID+                     , gsBody = gNoPartyIDsBody'''''' }+                     where+                     gNoPartyIDsBody'''''' = +                        LT.insert (tnum tPartyIDSource) tPartyIDSource $+                        LT.insert (tnum tPartyRole) tPartyRole $+                        LT.insert (tnum tPartySubID) tPartySubID                         LT.new++                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new++                  gNoStipulations'''''' = FIXTag+                     { tName = "NoStipulations"+                     , tnum = tnum tNoStipulations+                     , tparser = gNoStipulationsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec'''''' }++                  gNoStipulationsP'''''' = groupP gNoStipulationsSpec''''''+                  gNoStipulationsSpec'''''' = FGSpec+                     { gsLength = tNoStipulations+                     , gsSeperator = tStipulationType+                     , gsBody = gNoStipulationsBody'''''' }+                     where+                     gNoStipulationsBody'''''' = +                        LT.insert (tnum tStipulationValue) tStipulationValue                         LT.new++                  gNoTradingSessions'''''' = FIXTag+                     { tName = "NoTradingSessions"+                     , tnum = tnum tNoTradingSessions+                     , tparser = gNoTradingSessionsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec'''''' }++                  gNoTradingSessionsP'''''' = groupP gNoTradingSessionsSpec''''''+                  gNoTradingSessionsSpec'''''' = FGSpec+                     { gsLength = tNoTradingSessions+                     , gsSeperator = tTradingSessionID+                     , gsBody = gNoTradingSessionsBody'''''' }+                     where+                     gNoTradingSessionsBody'''''' = +                        LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                         LT.new+++++mOrderCancelRequest :: FIXMessageSpec+mOrderCancelRequest = FMSpec+   { msName = "OrderCancelRequest"+   , msType = C.pack "F"+   , msHeader = headerFIX43+   , msBody = mOrderCancelRequestBody+   , msTrailer = trailerFIX43 }+   where+   mOrderCancelRequestBody = +      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tOrigOrdModTime) tOrigOrdModTime $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrderPercent) tOrderPercent $+      LT.insert (tnum tRoundingDirection) tRoundingDirection $+      LT.insert (tnum tRoundingModulus) tRoundingModulus $+      LT.insert (tnum tComplianceID) tComplianceID $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tPartySubID) tPartySubID                LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++++mOrderCancelReplaceRequest :: FIXMessageSpec+mOrderCancelReplaceRequest = FMSpec+   { msName = "OrderCancelReplaceRequest"+   , msType = C.pack "G"+   , msHeader = headerFIX43+   , msBody = mOrderCancelReplaceRequestBody+   , msTrailer = trailerFIX43 }+   where+   mOrderCancelReplaceRequestBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tOrigOrdModTime) tOrigOrdModTime $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tDayBookingInst) tDayBookingInst $+      LT.insert (tnum tBookingUnit) tBookingUnit $+      LT.insert (tnum tPreallocMethod) tPreallocMethod $+      LT.insert (tnum tNoAllocs) gNoAllocs''' $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tCashMargin) tCashMargin $+      LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tQuantityType) tQuantityType $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrderPercent) tOrderPercent $+      LT.insert (tnum tRoundingDirection) tRoundingDirection $+      LT.insert (tnum tRoundingModulus) tRoundingModulus $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tYieldType) tYieldType $+      LT.insert (tnum tYield) tYield $+      LT.insert (tnum tPegDifference) tPegDifference $+      LT.insert (tnum tDiscretionInst) tDiscretionInst $+      LT.insert (tnum tDiscretionOffset) tDiscretionOffset $+      LT.insert (tnum tComplianceID) tComplianceID $+      LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tEffectiveTime) tEffectiveTime $+      LT.insert (tnum tExpireDate) tExpireDate $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tGTBookingInst) tGTBookingInst $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tCommCurrency) tCommCurrency $+      LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+      LT.insert (tnum tOrderCapacity) tOrderCapacity $+      LT.insert (tnum tOrderRestrictions) tOrderRestrictions $+      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+      LT.insert (tnum tRule80A) tRule80A $+      LT.insert (tnum tForexReq) tForexReq $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tFutSettDate2) tFutSettDate2 $+      LT.insert (tnum tOrderQty2) tOrderQty2 $+      LT.insert (tnum tPrice2) tPrice2 $+      LT.insert (tnum tPositionEffect) tPositionEffect $+      LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+      LT.insert (tnum tMaxShow) tMaxShow $+      LT.insert (tnum tLocateReqd) tLocateReqd $+      LT.insert (tnum tCancellationRights) tCancellationRights $+      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $+      LT.insert (tnum tRegistID) tRegistID $+      LT.insert (tnum tDesignation) tDesignation $+      LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $+      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+      LT.insert (tnum tNetMoney) tNetMoney       LT.new+      where+         gNoAllocs''' = FIXTag+            { tName = "NoAllocs"+            , tnum = tnum tNoAllocs+            , tparser = gNoAllocsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }++         gNoAllocsP''' = groupP gNoAllocsSpec'''+         gNoAllocsSpec''' = FGSpec+            { gsLength = tNoAllocs+            , gsSeperator = tAllocAccount+            , gsBody = gNoAllocsBody''' }+            where+            gNoAllocsBody''' = +               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $+               LT.insert (tnum tAllocQty) tAllocQty                LT.new+               where+                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNestedPartySubID) tNestedPartySubID                         LT.new+++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tPartySubID) tPartySubID                LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoTradingSessions''' = FIXTag+            { tName = "NoTradingSessions"+            , tnum = tnum tNoTradingSessions+            , tparser = gNoTradingSessionsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }++         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''+         gNoTradingSessionsSpec''' = FGSpec+            { gsLength = tNoTradingSessions+            , gsSeperator = tTradingSessionID+            , gsBody = gNoTradingSessionsBody''' }+            where+            gNoTradingSessionsBody''' = +               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new++++mOrderStatusRequest :: FIXMessageSpec+mOrderStatusRequest = FMSpec+   { msName = "OrderStatusRequest"+   , msType = C.pack "H"+   , msHeader = headerFIX43+   , msBody = mOrderStatusRequestBody+   , msTrailer = trailerFIX43 }+   where+   mOrderStatusRequestBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tSide) tSide       LT.new+      where+         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tPartySubID) tPartySubID                LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++++mAllocation :: FIXMessageSpec+mAllocation = FMSpec+   { msName = "Allocation"+   , msType = C.pack "J"+   , msHeader = headerFIX43+   , msBody = mAllocationBody+   , msTrailer = trailerFIX43 }+   where+   mAllocationBody = +      LT.insert (tnum tAllocID) tAllocID $+      LT.insert (tnum tAllocTransType) tAllocTransType $+      LT.insert (tnum tAllocType) tAllocType $+      LT.insert (tnum tRefAllocID) tRefAllocID $+      LT.insert (tnum tAllocLinkID) tAllocLinkID $+      LT.insert (tnum tAllocLinkType) tAllocLinkType $+      LT.insert (tnum tBookingRefID) tBookingRefID $+      LT.insert (tnum tNoOrders) gNoOrders''' $+      LT.insert (tnum tNoExecs) gNoExecs''' $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tQuantity) tQuantity $+      LT.insert (tnum tLastMkt) tLastMkt $+      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tAvgPx) tAvgPx $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tAvgPrxPrecision) tAvgPrxPrecision $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tGrossTradeAmt) tGrossTradeAmt $+      LT.insert (tnum tConcession) tConcession $+      LT.insert (tnum tTotalTakedown) tTotalTakedown $+      LT.insert (tnum tNetMoney) tNetMoney $+      LT.insert (tnum tPositionEffect) tPositionEffect $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tNumDaysInterest) tNumDaysInterest $+      LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $+      LT.insert (tnum tTotalAccruedInterestAmt) tTotalAccruedInterestAmt $+      LT.insert (tnum tLegalConfirm) tLegalConfirm $+      LT.insert (tnum tNoAllocs) gNoAllocs'''       LT.new+      where+         gNoAllocs''' = FIXTag+            { tName = "NoAllocs"+            , tnum = tnum tNoAllocs+            , tparser = gNoAllocsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }++         gNoAllocsP''' = groupP gNoAllocsSpec'''+         gNoAllocsSpec''' = FGSpec+            { gsLength = tNoAllocs+            , gsSeperator = tAllocAccount+            , gsBody = gNoAllocsBody''' }+            where+            gNoAllocsBody''' = +               LT.insert (tnum tAllocPrice) tAllocPrice $+               LT.insert (tnum tAllocQty) tAllocQty $+               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+               LT.insert (tnum tProcessCode) tProcessCode $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $+               LT.insert (tnum tNotifyBrokerOfCredit) tNotifyBrokerOfCredit $+               LT.insert (tnum tAllocHandlInst) tAllocHandlInst $+               LT.insert (tnum tAllocText) tAllocText $+               LT.insert (tnum tEncodedAllocTextLen) tEncodedAllocTextLen $+               LT.insert (tnum tEncodedAllocText) tEncodedAllocText $+               LT.insert (tnum tCommission) tCommission $+               LT.insert (tnum tCommType) tCommType $+               LT.insert (tnum tCommCurrency) tCommCurrency $+               LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+               LT.insert (tnum tAllocAvgPx) tAllocAvgPx $+               LT.insert (tnum tAllocNetMoney) tAllocNetMoney $+               LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $+               LT.insert (tnum tSettlCurrency) tSettlCurrency $+               LT.insert (tnum tSettlCurrFxRate) tSettlCurrFxRate $+               LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $+               LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+               LT.insert (tnum tSettlInstMode) tSettlInstMode $+               LT.insert (tnum tNoMiscFees) gNoMiscFees''''''                LT.new+               where+                  gNoMiscFees'''''' = FIXTag+                     { tName = "NoMiscFees"+                     , tnum = tnum tNoMiscFees+                     , tparser = gNoMiscFeesP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec'''''' }++                  gNoMiscFeesP'''''' = groupP gNoMiscFeesSpec''''''+                  gNoMiscFeesSpec'''''' = FGSpec+                     { gsLength = tNoMiscFees+                     , gsSeperator = tMiscFeeAmt+                     , gsBody = gNoMiscFeesBody'''''' }+                     where+                     gNoMiscFeesBody'''''' = +                        LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $+                        LT.insert (tnum tMiscFeeType) tMiscFeeType                         LT.new++                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNestedPartySubID) tNestedPartySubID                         LT.new+++         gNoExecs''' = FIXTag+            { tName = "NoExecs"+            , tnum = tnum tNoExecs+            , tparser = gNoExecsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoExecsSpec''' }++         gNoExecsP''' = groupP gNoExecsSpec'''+         gNoExecsSpec''' = FGSpec+            { gsLength = tNoExecs+            , gsSeperator = tLastQty+            , gsBody = gNoExecsBody''' }+            where+            gNoExecsBody''' = +               LT.insert (tnum tExecID) tExecID $+               LT.insert (tnum tSecondaryExecID) tSecondaryExecID $+               LT.insert (tnum tLastPx) tLastPx $+               LT.insert (tnum tLastCapacity) tLastCapacity                LT.new++         gNoOrders''' = FIXTag+            { tName = "NoOrders"+            , tnum = tnum tNoOrders+            , tparser = gNoOrdersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoOrdersSpec''' }++         gNoOrdersP''' = groupP gNoOrdersSpec'''+         gNoOrdersSpec''' = FGSpec+            { gsLength = tNoOrders+            , gsSeperator = tClOrdID+            , gsBody = gNoOrdersBody''' }+            where+            gNoOrdersBody''' = +               LT.insert (tnum tOrderID) tOrderID $+               LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+               LT.insert (tnum tListID) tListID                LT.new++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tPartySubID) tPartySubID                LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++++mListCancelRequest :: FIXMessageSpec+mListCancelRequest = FMSpec+   { msName = "ListCancelRequest"+   , msType = C.pack "K"+   , msHeader = headerFIX43+   , msBody = mListCancelRequestBody+   , msTrailer = trailerFIX43 }+   where+   mListCancelRequestBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mListExecute :: FIXMessageSpec+mListExecute = FMSpec+   { msName = "ListExecute"+   , msType = C.pack "L"+   , msHeader = headerFIX43+   , msBody = mListExecuteBody+   , msTrailer = trailerFIX43 }+   where+   mListExecuteBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tClientBidID) tClientBidID $+      LT.insert (tnum tBidID) tBidID $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mListStatusRequest :: FIXMessageSpec+mListStatusRequest = FMSpec+   { msName = "ListStatusRequest"+   , msType = C.pack "M"+   , msHeader = headerFIX43+   , msBody = mListStatusRequestBody+   , msTrailer = trailerFIX43 }+   where+   mListStatusRequestBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mListStatus :: FIXMessageSpec+mListStatus = FMSpec+   { msName = "ListStatus"+   , msType = C.pack "N"+   , msHeader = headerFIX43+   , msBody = mListStatusBody+   , msTrailer = trailerFIX43 }+   where+   mListStatusBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tListStatusType) tListStatusType $+      LT.insert (tnum tNoRpts) tNoRpts $+      LT.insert (tnum tListOrderStatus) tListOrderStatus $+      LT.insert (tnum tRptSeq) tRptSeq $+      LT.insert (tnum tListStatusText) tListStatusText $+      LT.insert (tnum tEncodedListStatusTextLen) tEncodedListStatusTextLen $+      LT.insert (tnum tEncodedListStatusText) tEncodedListStatusText $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tTotNoOrders) tTotNoOrders $+      LT.insert (tnum tNoOrders) gNoOrders'''       LT.new+      where+         gNoOrders''' = FIXTag+            { tName = "NoOrders"+            , tnum = tnum tNoOrders+            , tparser = gNoOrdersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoOrdersSpec''' }++         gNoOrdersP''' = groupP gNoOrdersSpec'''+         gNoOrdersSpec''' = FGSpec+            { gsLength = tNoOrders+            , gsSeperator = tClOrdID+            , gsBody = gNoOrdersBody''' }+            where+            gNoOrdersBody''' = +               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+               LT.insert (tnum tCumQty) tCumQty $+               LT.insert (tnum tOrdStatus) tOrdStatus $+               LT.insert (tnum tWorkingIndicator) tWorkingIndicator $+               LT.insert (tnum tLeavesQty) tLeavesQty $+               LT.insert (tnum tCxlQty) tCxlQty $+               LT.insert (tnum tAvgPx) tAvgPx $+               LT.insert (tnum tOrdRejReason) tOrdRejReason $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new++++mAllocationAck :: FIXMessageSpec+mAllocationAck = FMSpec+   { msName = "AllocationAck"+   , msType = C.pack "P"+   , msHeader = headerFIX43+   , msBody = mAllocationAckBody+   , msTrailer = trailerFIX43 }+   where+   mAllocationAckBody = +      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAllocID) tAllocID $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tAllocStatus) tAllocStatus $+      LT.insert (tnum tAllocRejCode) tAllocRejCode $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tLegalConfirm) tLegalConfirm       LT.new+      where+         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tPartySubID) tPartySubID                LT.new++++mDontKnowTrade :: FIXMessageSpec+mDontKnowTrade = FMSpec+   { msName = "DontKnowTrade"+   , msType = C.pack "Q"+   , msHeader = headerFIX43+   , msBody = mDontKnowTradeBody+   , msTrailer = trailerFIX43 }+   where+   mDontKnowTradeBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tExecID) tExecID $+      LT.insert (tnum tDKReason) tDKReason $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrderPercent) tOrderPercent $+      LT.insert (tnum tRoundingDirection) tRoundingDirection $+      LT.insert (tnum tRoundingModulus) tRoundingModulus $+      LT.insert (tnum tLastQty) tLastQty $+      LT.insert (tnum tLastPx) tLastPx $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++++mQuoteRequest :: FIXMessageSpec+mQuoteRequest = FMSpec+   { msName = "QuoteRequest"+   , msType = C.pack "R"+   , msHeader = headerFIX43+   , msBody = mQuoteRequestBody+   , msTrailer = trailerFIX43 }+   where+   mQuoteRequestBody = +      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tRFQReqID) tRFQReqID $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym''' $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tSymbol+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tPrevClosePx) tPrevClosePx $+               LT.insert (tnum tQuoteRequestType) tQuoteRequestType $+               LT.insert (tnum tQuoteType) tQuoteType $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+               LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+               LT.insert (tnum tNoStipulations) gNoStipulations'''''' $+               LT.insert (tnum tSide) tSide $+               LT.insert (tnum tQuantityType) tQuantityType $+               LT.insert (tnum tOrderQty) tOrderQty $+               LT.insert (tnum tCashOrderQty) tCashOrderQty $+               LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+               LT.insert (tnum tFutSettDate) tFutSettDate $+               LT.insert (tnum tOrdType) tOrdType $+               LT.insert (tnum tFutSettDate2) tFutSettDate2 $+               LT.insert (tnum tOrderQty2) tOrderQty2 $+               LT.insert (tnum tExpireTime) tExpireTime $+               LT.insert (tnum tTransactTime) tTransactTime $+               LT.insert (tnum tCurrency) tCurrency $+               LT.insert (tnum tSpread) tSpread $+               LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+               LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+               LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+               LT.insert (tnum tPriceType) tPriceType $+               LT.insert (tnum tPrice) tPrice $+               LT.insert (tnum tPrice2) tPrice2 $+               LT.insert (tnum tYieldType) tYieldType $+               LT.insert (tnum tYield) tYield                LT.new+               where+                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new++                  gNoStipulations'''''' = FIXTag+                     { tName = "NoStipulations"+                     , tnum = tnum tNoStipulations+                     , tparser = gNoStipulationsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec'''''' }++                  gNoStipulationsP'''''' = groupP gNoStipulationsSpec''''''+                  gNoStipulationsSpec'''''' = FGSpec+                     { gsLength = tNoStipulations+                     , gsSeperator = tStipulationType+                     , gsBody = gNoStipulationsBody'''''' }+                     where+                     gNoStipulationsBody'''''' = +                        LT.insert (tnum tStipulationValue) tStipulationValue                         LT.new+++++mQuote :: FIXMessageSpec+mQuote = FMSpec+   { msName = "Quote"+   , msType = C.pack "S"+   , msHeader = headerFIX43+   , msBody = mQuoteBody+   , msTrailer = trailerFIX43 }+   where+   mQuoteBody = +      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tQuoteType) tQuoteType $+      LT.insert (tnum tQuoteResponseLevel) tQuoteResponseLevel $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tBidPx) tBidPx $+      LT.insert (tnum tOfferPx) tOfferPx $+      LT.insert (tnum tMktBidPx) tMktBidPx $+      LT.insert (tnum tMktOfferPx) tMktOfferPx $+      LT.insert (tnum tMinBidSize) tMinBidSize $+      LT.insert (tnum tBidSize) tBidSize $+      LT.insert (tnum tMinOfferSize) tMinOfferSize $+      LT.insert (tnum tOfferSize) tOfferSize $+      LT.insert (tnum tValidUntilTime) tValidUntilTime $+      LT.insert (tnum tBidSpotRate) tBidSpotRate $+      LT.insert (tnum tOfferSpotRate) tOfferSpotRate $+      LT.insert (tnum tBidForwardPoints) tBidForwardPoints $+      LT.insert (tnum tOfferForwardPoints) tOfferForwardPoints $+      LT.insert (tnum tMidPx) tMidPx $+      LT.insert (tnum tBidYield) tBidYield $+      LT.insert (tnum tMidYield) tMidYield $+      LT.insert (tnum tOfferYield) tOfferYield $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tFutSettDate2) tFutSettDate2 $+      LT.insert (tnum tOrderQty2) tOrderQty2 $+      LT.insert (tnum tBidForwardPoints2) tBidForwardPoints2 $+      LT.insert (tnum tOfferForwardPoints2) tOfferForwardPoints2 $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tSettlCurrBidFxRate) tSettlCurrBidFxRate $+      LT.insert (tnum tSettlCurrOfferFxRate) tSettlCurrOfferFxRate $+      LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tPartySubID) tPartySubID                LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++++mSettlementInstructions :: FIXMessageSpec+mSettlementInstructions = FMSpec+   { msName = "SettlementInstructions"+   , msType = C.pack "T"+   , msHeader = headerFIX43+   , msBody = mSettlementInstructionsBody+   , msTrailer = trailerFIX43 }+   where+   mSettlementInstructionsBody = +      LT.insert (tnum tSettlInstID) tSettlInstID $+      LT.insert (tnum tSettlInstTransType) tSettlInstTransType $+      LT.insert (tnum tSettlInstRefID) tSettlInstRefID $+      LT.insert (tnum tSettlInstMode) tSettlInstMode $+      LT.insert (tnum tSettlInstSource) tSettlInstSource $+      LT.insert (tnum tAllocAccount) tAllocAccount $+      LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tAllocID) tAllocID $+      LT.insert (tnum tLastMkt) tLastMkt $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tEffectiveTime) tEffectiveTime $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tStandInstDbType) tStandInstDbType $+      LT.insert (tnum tStandInstDbName) tStandInstDbName $+      LT.insert (tnum tStandInstDbID) tStandInstDbID $+      LT.insert (tnum tSettlDeliveryType) tSettlDeliveryType $+      LT.insert (tnum tSettlDepositoryCode) tSettlDepositoryCode $+      LT.insert (tnum tSettlBrkrCode) tSettlBrkrCode $+      LT.insert (tnum tSettlInstCode) tSettlInstCode $+      LT.insert (tnum tSecuritySettlAgentName) tSecuritySettlAgentName $+      LT.insert (tnum tSecuritySettlAgentCode) tSecuritySettlAgentCode $+      LT.insert (tnum tSecuritySettlAgentAcctNum) tSecuritySettlAgentAcctNum $+      LT.insert (tnum tSecuritySettlAgentAcctName) tSecuritySettlAgentAcctName $+      LT.insert (tnum tSecuritySettlAgentContactName) tSecuritySettlAgentContactName $+      LT.insert (tnum tSecuritySettlAgentContactPhone) tSecuritySettlAgentContactPhone $+      LT.insert (tnum tCashSettlAgentName) tCashSettlAgentName $+      LT.insert (tnum tCashSettlAgentCode) tCashSettlAgentCode $+      LT.insert (tnum tCashSettlAgentAcctNum) tCashSettlAgentAcctNum $+      LT.insert (tnum tCashSettlAgentAcctName) tCashSettlAgentAcctName $+      LT.insert (tnum tCashSettlAgentContactName) tCashSettlAgentContactName $+      LT.insert (tnum tCashSettlAgentContactPhone) tCashSettlAgentContactPhone $+      LT.insert (tnum tPaymentMethod) tPaymentMethod $+      LT.insert (tnum tPaymentRef) tPaymentRef $+      LT.insert (tnum tCardHolderName) tCardHolderName $+      LT.insert (tnum tCardNumber) tCardNumber $+      LT.insert (tnum tCardStartDate) tCardStartDate $+      LT.insert (tnum tCardExpDate) tCardExpDate $+      LT.insert (tnum tCardIssNo) tCardIssNo $+      LT.insert (tnum tPaymentDate) tPaymentDate $+      LT.insert (tnum tPaymentRemitterID) tPaymentRemitterID       LT.new+      where+         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tPartySubID) tPartySubID                LT.new++++mMarketDataRequest :: FIXMessageSpec+mMarketDataRequest = FMSpec+   { msName = "MarketDataRequest"+   , msType = C.pack "V"+   , msHeader = headerFIX43+   , msBody = mMarketDataRequestBody+   , msTrailer = trailerFIX43 }+   where+   mMarketDataRequestBody = +      LT.insert (tnum tMDReqID) tMDReqID $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $+      LT.insert (tnum tMarketDepth) tMarketDepth $+      LT.insert (tnum tMDUpdateType) tMDUpdateType $+      LT.insert (tnum tAggregatedBook) tAggregatedBook $+      LT.insert (tnum tOpenCloseSettleFlag) tOpenCloseSettleFlag $+      LT.insert (tnum tScope) tScope $+      LT.insert (tnum tMDImplicitDelete) tMDImplicitDelete $+      LT.insert (tnum tNoMDEntryTypes) gNoMDEntryTypes''' $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym''' $+      LT.insert (tnum tNoTradingSessions) gNoTradingSessions'''       LT.new+      where+         gNoMDEntryTypes''' = FIXTag+            { tName = "NoMDEntryTypes"+            , tnum = tnum tNoMDEntryTypes+            , tparser = gNoMDEntryTypesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoMDEntryTypesSpec''' }++         gNoMDEntryTypesP''' = groupP gNoMDEntryTypesSpec'''+         gNoMDEntryTypesSpec''' = FGSpec+            { gsLength = tNoMDEntryTypes+            , gsSeperator = tMDEntryType+            , gsBody = gNoMDEntryTypesBody''' }+            where+            gNoMDEntryTypesBody''' = +               LT.new++         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tSymbol+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc                LT.new+               where+                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new+++         gNoTradingSessions''' = FIXTag+            { tName = "NoTradingSessions"+            , tnum = tnum tNoTradingSessions+            , tparser = gNoTradingSessionsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }++         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''+         gNoTradingSessionsSpec''' = FGSpec+            { gsLength = tNoTradingSessions+            , gsSeperator = tTradingSessionID+            , gsBody = gNoTradingSessionsBody''' }+            where+            gNoTradingSessionsBody''' = +               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new++++mMarketDataSnapshotFullRefresh :: FIXMessageSpec+mMarketDataSnapshotFullRefresh = FMSpec+   { msName = "MarketDataSnapshotFullRefresh"+   , msType = C.pack "W"+   , msHeader = headerFIX43+   , msBody = mMarketDataSnapshotFullRefreshBody+   , msTrailer = trailerFIX43 }+   where+   mMarketDataSnapshotFullRefreshBody = +      LT.insert (tnum tMDReqID) tMDReqID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tFinancialStatus) tFinancialStatus $+      LT.insert (tnum tCorporateAction) tCorporateAction $+      LT.insert (tnum tTotalVolumeTraded) tTotalVolumeTraded $+      LT.insert (tnum tTotalVolumeTradedDate) tTotalVolumeTradedDate $+      LT.insert (tnum tTotalVolumeTradedTime) tTotalVolumeTradedTime $+      LT.insert (tnum tNetChgPrevDay) tNetChgPrevDay $+      LT.insert (tnum tNoMDEntries) gNoMDEntries'''       LT.new+      where+         gNoMDEntries''' = FIXTag+            { tName = "NoMDEntries"+            , tnum = tnum tNoMDEntries+            , tparser = gNoMDEntriesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoMDEntriesSpec''' }++         gNoMDEntriesP''' = groupP gNoMDEntriesSpec'''+         gNoMDEntriesSpec''' = FGSpec+            { gsLength = tNoMDEntries+            , gsSeperator = tMDEntryType+            , gsBody = gNoMDEntriesBody''' }+            where+            gNoMDEntriesBody''' = +               LT.insert (tnum tMDEntryPx) tMDEntryPx $+               LT.insert (tnum tCurrency) tCurrency $+               LT.insert (tnum tMDEntrySize) tMDEntrySize $+               LT.insert (tnum tMDEntryDate) tMDEntryDate $+               LT.insert (tnum tMDEntryTime) tMDEntryTime $+               LT.insert (tnum tTickDirection) tTickDirection $+               LT.insert (tnum tMDMkt) tMDMkt $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+               LT.insert (tnum tQuoteCondition) tQuoteCondition $+               LT.insert (tnum tTradeCondition) tTradeCondition $+               LT.insert (tnum tMDEntryOriginator) tMDEntryOriginator $+               LT.insert (tnum tLocationID) tLocationID $+               LT.insert (tnum tDeskID) tDeskID $+               LT.insert (tnum tOpenCloseSettleFlag) tOpenCloseSettleFlag $+               LT.insert (tnum tTimeInForce) tTimeInForce $+               LT.insert (tnum tExpireDate) tExpireDate $+               LT.insert (tnum tExpireTime) tExpireTime $+               LT.insert (tnum tMinQty) tMinQty $+               LT.insert (tnum tExecInst) tExecInst $+               LT.insert (tnum tSellerDays) tSellerDays $+               LT.insert (tnum tOrderID) tOrderID $+               LT.insert (tnum tQuoteEntryID) tQuoteEntryID $+               LT.insert (tnum tMDEntryBuyer) tMDEntryBuyer $+               LT.insert (tnum tMDEntrySeller) tMDEntrySeller $+               LT.insert (tnum tNumberOfOrders) tNumberOfOrders $+               LT.insert (tnum tMDEntryPositionNo) tMDEntryPositionNo $+               LT.insert (tnum tScope) tScope $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++++mMarketDataIncrementalRefresh :: FIXMessageSpec+mMarketDataIncrementalRefresh = FMSpec+   { msName = "MarketDataIncrementalRefresh"+   , msType = C.pack "X"+   , msHeader = headerFIX43+   , msBody = mMarketDataIncrementalRefreshBody+   , msTrailer = trailerFIX43 }+   where+   mMarketDataIncrementalRefreshBody = +      LT.insert (tnum tMDReqID) tMDReqID $+      LT.insert (tnum tNoMDEntries) gNoMDEntries'''       LT.new+      where+         gNoMDEntries''' = FIXTag+            { tName = "NoMDEntries"+            , tnum = tnum tNoMDEntries+            , tparser = gNoMDEntriesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoMDEntriesSpec''' }++         gNoMDEntriesP''' = groupP gNoMDEntriesSpec'''+         gNoMDEntriesSpec''' = FGSpec+            { gsLength = tNoMDEntries+            , gsSeperator = tMDUpdateAction+            , gsBody = gNoMDEntriesBody''' }+            where+            gNoMDEntriesBody''' = +               LT.insert (tnum tDeleteReason) tDeleteReason $+               LT.insert (tnum tMDEntryType) tMDEntryType $+               LT.insert (tnum tMDEntryID) tMDEntryID $+               LT.insert (tnum tMDEntryRefID) tMDEntryRefID $+               LT.insert (tnum tSymbol) tSymbol $+               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tFinancialStatus) tFinancialStatus $+               LT.insert (tnum tCorporateAction) tCorporateAction $+               LT.insert (tnum tMDEntryPx) tMDEntryPx $+               LT.insert (tnum tCurrency) tCurrency $+               LT.insert (tnum tMDEntrySize) tMDEntrySize $+               LT.insert (tnum tMDEntryDate) tMDEntryDate $+               LT.insert (tnum tMDEntryTime) tMDEntryTime $+               LT.insert (tnum tTickDirection) tTickDirection $+               LT.insert (tnum tMDMkt) tMDMkt $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+               LT.insert (tnum tQuoteCondition) tQuoteCondition $+               LT.insert (tnum tTradeCondition) tTradeCondition $+               LT.insert (tnum tMDEntryOriginator) tMDEntryOriginator $+               LT.insert (tnum tLocationID) tLocationID $+               LT.insert (tnum tDeskID) tDeskID $+               LT.insert (tnum tOpenCloseSettleFlag) tOpenCloseSettleFlag $+               LT.insert (tnum tTimeInForce) tTimeInForce $+               LT.insert (tnum tExpireDate) tExpireDate $+               LT.insert (tnum tExpireTime) tExpireTime $+               LT.insert (tnum tMinQty) tMinQty $+               LT.insert (tnum tExecInst) tExecInst $+               LT.insert (tnum tSellerDays) tSellerDays $+               LT.insert (tnum tOrderID) tOrderID $+               LT.insert (tnum tQuoteEntryID) tQuoteEntryID $+               LT.insert (tnum tMDEntryBuyer) tMDEntryBuyer $+               LT.insert (tnum tMDEntrySeller) tMDEntrySeller $+               LT.insert (tnum tNumberOfOrders) tNumberOfOrders $+               LT.insert (tnum tMDEntryPositionNo) tMDEntryPositionNo $+               LT.insert (tnum tScope) tScope $+               LT.insert (tnum tTotalVolumeTraded) tTotalVolumeTraded $+               LT.insert (tnum tTotalVolumeTradedDate) tTotalVolumeTradedDate $+               LT.insert (tnum tTotalVolumeTradedTime) tTotalVolumeTradedTime $+               LT.insert (tnum tNetChgPrevDay) tNetChgPrevDay $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new+               where+                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new+++++mMarketDataRequestReject :: FIXMessageSpec+mMarketDataRequestReject = FMSpec+   { msName = "MarketDataRequestReject"+   , msType = C.pack "Y"+   , msHeader = headerFIX43+   , msBody = mMarketDataRequestRejectBody+   , msTrailer = trailerFIX43 }+   where+   mMarketDataRequestRejectBody = +      LT.insert (tnum tMDReqID) tMDReqID $+      LT.insert (tnum tMDReqRejReason) tMDReqRejReason $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mQuoteCancel :: FIXMessageSpec+mQuoteCancel = FMSpec+   { msName = "QuoteCancel"+   , msType = C.pack "Z"+   , msHeader = headerFIX43+   , msBody = mQuoteCancelBody+   , msTrailer = trailerFIX43 }+   where+   mQuoteCancelBody = +      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tQuoteCancelType) tQuoteCancelType $+      LT.insert (tnum tQuoteResponseLevel) tQuoteResponseLevel $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tNoQuoteEntries) gNoQuoteEntries'''       LT.new+      where+         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tPartySubID) tPartySubID                LT.new++         gNoQuoteEntries''' = FIXTag+            { tName = "NoQuoteEntries"+            , tnum = tnum tNoQuoteEntries+            , tparser = gNoQuoteEntriesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoQuoteEntriesSpec''' }++         gNoQuoteEntriesP''' = groupP gNoQuoteEntriesSpec'''+         gNoQuoteEntriesSpec''' = FGSpec+            { gsLength = tNoQuoteEntries+            , gsSeperator = tSymbol+            , gsBody = gNoQuoteEntriesBody''' }+            where+            gNoQuoteEntriesBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc                LT.new+               where+                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new+++++mQuoteStatusRequest :: FIXMessageSpec+mQuoteStatusRequest = FMSpec+   { msName = "QuoteStatusRequest"+   , msType = C.pack "a"+   , msHeader = headerFIX43+   , msBody = mQuoteStatusRequestBody+   , msTrailer = trailerFIX43 }+   where+   mQuoteStatusRequestBody = +      LT.insert (tnum tQuoteStatusReqID) tQuoteStatusReqID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType       LT.new+      where+         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tPartySubID) tPartySubID                LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++++mMassQuoteAcknowledgement :: FIXMessageSpec+mMassQuoteAcknowledgement = FMSpec+   { msName = "MassQuoteAcknowledgement"+   , msType = C.pack "b"+   , msHeader = headerFIX43+   , msBody = mMassQuoteAcknowledgementBody+   , msTrailer = trailerFIX43 }+   where+   mMassQuoteAcknowledgementBody = +      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tQuoteStatus) tQuoteStatus $+      LT.insert (tnum tQuoteRejectReason) tQuoteRejectReason $+      LT.insert (tnum tQuoteResponseLevel) tQuoteResponseLevel $+      LT.insert (tnum tQuoteType) tQuoteType $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tNoQuoteSets) gNoQuoteSets'''       LT.new+      where+         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tPartySubID) tPartySubID                LT.new++         gNoQuoteSets''' = FIXTag+            { tName = "NoQuoteSets"+            , tnum = tnum tNoQuoteSets+            , tparser = gNoQuoteSetsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoQuoteSetsSpec''' }++         gNoQuoteSetsP''' = groupP gNoQuoteSetsSpec'''+         gNoQuoteSetsSpec''' = FGSpec+            { gsLength = tNoQuoteSets+            , gsSeperator = tQuoteSetID+            , gsBody = gNoQuoteSetsBody''' }+            where+            gNoQuoteSetsBody''' = +               LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $+               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tTotQuoteEntries) tTotQuoteEntries $+               LT.insert (tnum tNoQuoteEntries) gNoQuoteEntries''''''                LT.new+               where+                  gNoQuoteEntries'''''' = FIXTag+                     { tName = "NoQuoteEntries"+                     , tnum = tnum tNoQuoteEntries+                     , tparser = gNoQuoteEntriesP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoQuoteEntriesSpec'''''' }++                  gNoQuoteEntriesP'''''' = groupP gNoQuoteEntriesSpec''''''+                  gNoQuoteEntriesSpec'''''' = FGSpec+                     { gsLength = tNoQuoteEntries+                     , gsSeperator = tQuoteEntryID+                     , gsBody = gNoQuoteEntriesBody'''''' }+                     where+                     gNoQuoteEntriesBody'''''' = +                        LT.insert (tnum tSymbol) tSymbol $+                        LT.insert (tnum tSymbolSfx) tSymbolSfx $+                        LT.insert (tnum tSecurityID) tSecurityID $+                        LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+                        LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''''''''' $+                        LT.insert (tnum tProduct) tProduct $+                        LT.insert (tnum tCFICode) tCFICode $+                        LT.insert (tnum tSecurityType) tSecurityType $+                        LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+                        LT.insert (tnum tMaturityDate) tMaturityDate $+                        LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+                        LT.insert (tnum tIssueDate) tIssueDate $+                        LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+                        LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+                        LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+                        LT.insert (tnum tFactor) tFactor $+                        LT.insert (tnum tCreditRating) tCreditRating $+                        LT.insert (tnum tInstrRegistry) tInstrRegistry $+                        LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+                        LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+                        LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+                        LT.insert (tnum tRedemptionDate) tRedemptionDate $+                        LT.insert (tnum tStrikePrice) tStrikePrice $+                        LT.insert (tnum tOptAttribute) tOptAttribute $+                        LT.insert (tnum tContractMultiplier) tContractMultiplier $+                        LT.insert (tnum tCouponRate) tCouponRate $+                        LT.insert (tnum tSecurityExchange) tSecurityExchange $+                        LT.insert (tnum tIssuer) tIssuer $+                        LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+                        LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+                        LT.insert (tnum tSecurityDesc) tSecurityDesc $+                        LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+                        LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+                        LT.insert (tnum tBidPx) tBidPx $+                        LT.insert (tnum tOfferPx) tOfferPx $+                        LT.insert (tnum tBidSize) tBidSize $+                        LT.insert (tnum tOfferSize) tOfferSize $+                        LT.insert (tnum tValidUntilTime) tValidUntilTime $+                        LT.insert (tnum tBidSpotRate) tBidSpotRate $+                        LT.insert (tnum tOfferSpotRate) tOfferSpotRate $+                        LT.insert (tnum tBidForwardPoints) tBidForwardPoints $+                        LT.insert (tnum tOfferForwardPoints) tOfferForwardPoints $+                        LT.insert (tnum tMidPx) tMidPx $+                        LT.insert (tnum tBidYield) tBidYield $+                        LT.insert (tnum tMidYield) tMidYield $+                        LT.insert (tnum tOfferYield) tOfferYield $+                        LT.insert (tnum tTransactTime) tTransactTime $+                        LT.insert (tnum tTradingSessionID) tTradingSessionID $+                        LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+                        LT.insert (tnum tFutSettDate) tFutSettDate $+                        LT.insert (tnum tOrdType) tOrdType $+                        LT.insert (tnum tFutSettDate2) tFutSettDate2 $+                        LT.insert (tnum tOrderQty2) tOrderQty2 $+                        LT.insert (tnum tBidForwardPoints2) tBidForwardPoints2 $+                        LT.insert (tnum tOfferForwardPoints2) tOfferForwardPoints2 $+                        LT.insert (tnum tCurrency) tCurrency $+                        LT.insert (tnum tQuoteEntryRejectReason) tQuoteEntryRejectReason                         LT.new+                        where+                           gNoSecurityAltID''''''''' = FIXTag+                              { tName = "NoSecurityAltID"+                              , tnum = tnum tNoSecurityAltID+                              , tparser = gNoSecurityAltIDP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''''''''' }++                           gNoSecurityAltIDP''''''''' = groupP gNoSecurityAltIDSpec'''''''''+                           gNoSecurityAltIDSpec''''''''' = FGSpec+                              { gsLength = tNoSecurityAltID+                              , gsSeperator = tSecurityAltID+                              , gsBody = gNoSecurityAltIDBody''''''''' }+                              where+                              gNoSecurityAltIDBody''''''''' = +                                 LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                                  LT.new+++                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new+++++mSecurityDefinitionRequest :: FIXMessageSpec+mSecurityDefinitionRequest = FMSpec+   { msName = "SecurityDefinitionRequest"+   , msType = C.pack "c"+   , msHeader = headerFIX43+   , msBody = mSecurityDefinitionRequestBody+   , msTrailer = trailerFIX43 }+   where+   mSecurityDefinitionRequestBody = +      LT.insert (tnum tSecurityReqID) tSecurityReqID $+      LT.insert (tnum tSecurityRequestType) tSecurityRequestType $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType       LT.new+      where+         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++++mSecurityDefinition :: FIXMessageSpec+mSecurityDefinition = FMSpec+   { msName = "SecurityDefinition"+   , msType = C.pack "d"+   , msHeader = headerFIX43+   , msBody = mSecurityDefinitionBody+   , msTrailer = trailerFIX43 }+   where+   mSecurityDefinitionBody = +      LT.insert (tnum tSecurityReqID) tSecurityReqID $+      LT.insert (tnum tSecurityResponseID) tSecurityResponseID $+      LT.insert (tnum tSecurityResponseType) tSecurityResponseType $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tRoundLot) tRoundLot $+      LT.insert (tnum tMinTradeVol) tMinTradeVol       LT.new+      where+         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++++mSecurityStatusRequest :: FIXMessageSpec+mSecurityStatusRequest = FMSpec+   { msName = "SecurityStatusRequest"+   , msType = C.pack "e"+   , msHeader = headerFIX43+   , msBody = mSecurityStatusRequestBody+   , msTrailer = trailerFIX43 }+   where+   mSecurityStatusRequestBody = +      LT.insert (tnum tSecurityStatusReqID) tSecurityStatusReqID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID       LT.new+      where+         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++++mSecurityStatus :: FIXMessageSpec+mSecurityStatus = FMSpec+   { msName = "SecurityStatus"+   , msType = C.pack "f"+   , msHeader = headerFIX43+   , msBody = mSecurityStatusBody+   , msTrailer = trailerFIX43 }+   where+   mSecurityStatusBody = +      LT.insert (tnum tSecurityStatusReqID) tSecurityStatusReqID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tUnsolicitedIndicator) tUnsolicitedIndicator $+      LT.insert (tnum tSecurityTradingStatus) tSecurityTradingStatus $+      LT.insert (tnum tFinancialStatus) tFinancialStatus $+      LT.insert (tnum tCorporateAction) tCorporateAction $+      LT.insert (tnum tHaltReasonChar) tHaltReasonChar $+      LT.insert (tnum tInViewOfCommon) tInViewOfCommon $+      LT.insert (tnum tDueToRelated) tDueToRelated $+      LT.insert (tnum tBuyVolume) tBuyVolume $+      LT.insert (tnum tSellVolume) tSellVolume $+      LT.insert (tnum tHighPx) tHighPx $+      LT.insert (tnum tLowPx) tLowPx $+      LT.insert (tnum tLastPx) tLastPx $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tAdjustment) tAdjustment $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++++mTradingSessionStatusRequest :: FIXMessageSpec+mTradingSessionStatusRequest = FMSpec+   { msName = "TradingSessionStatusRequest"+   , msType = C.pack "g"+   , msHeader = headerFIX43+   , msBody = mTradingSessionStatusRequestBody+   , msTrailer = trailerFIX43 }+   where+   mTradingSessionStatusRequestBody = +      LT.insert (tnum tTradSesReqID) tTradSesReqID $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tTradSesMethod) tTradSesMethod $+      LT.insert (tnum tTradSesMode) tTradSesMode $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType       LT.new+++mTradingSessionStatus :: FIXMessageSpec+mTradingSessionStatus = FMSpec+   { msName = "TradingSessionStatus"+   , msType = C.pack "h"+   , msHeader = headerFIX43+   , msBody = mTradingSessionStatusBody+   , msTrailer = trailerFIX43 }+   where+   mTradingSessionStatusBody = +      LT.insert (tnum tTradSesReqID) tTradSesReqID $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tTradSesMethod) tTradSesMethod $+      LT.insert (tnum tTradSesMode) tTradSesMode $+      LT.insert (tnum tUnsolicitedIndicator) tUnsolicitedIndicator $+      LT.insert (tnum tTradSesStatus) tTradSesStatus $+      LT.insert (tnum tTradSesStatusRejReason) tTradSesStatusRejReason $+      LT.insert (tnum tTradSesStartTime) tTradSesStartTime $+      LT.insert (tnum tTradSesOpenTime) tTradSesOpenTime $+      LT.insert (tnum tTradSesPreCloseTime) tTradSesPreCloseTime $+      LT.insert (tnum tTradSesCloseTime) tTradSesCloseTime $+      LT.insert (tnum tTradSesEndTime) tTradSesEndTime $+      LT.insert (tnum tTotalVolumeTraded) tTotalVolumeTraded $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mMassQuote :: FIXMessageSpec+mMassQuote = FMSpec+   { msName = "MassQuote"+   , msType = C.pack "i"+   , msHeader = headerFIX43+   , msBody = mMassQuoteBody+   , msTrailer = trailerFIX43 }+   where+   mMassQuoteBody = +      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tQuoteType) tQuoteType $+      LT.insert (tnum tQuoteResponseLevel) tQuoteResponseLevel $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tDefBidSize) tDefBidSize $+      LT.insert (tnum tDefOfferSize) tDefOfferSize $+      LT.insert (tnum tNoQuoteSets) gNoQuoteSets'''       LT.new+      where+         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tPartySubID) tPartySubID                LT.new++         gNoQuoteSets''' = FIXTag+            { tName = "NoQuoteSets"+            , tnum = tnum tNoQuoteSets+            , tparser = gNoQuoteSetsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoQuoteSetsSpec''' }++         gNoQuoteSetsP''' = groupP gNoQuoteSetsSpec'''+         gNoQuoteSetsSpec''' = FGSpec+            { gsLength = tNoQuoteSets+            , gsSeperator = tQuoteSetID+            , gsBody = gNoQuoteSetsBody''' }+            where+            gNoQuoteSetsBody''' = +               LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $+               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tQuoteSetValidUntilTime) tQuoteSetValidUntilTime $+               LT.insert (tnum tTotQuoteEntries) tTotQuoteEntries $+               LT.insert (tnum tNoQuoteEntries) gNoQuoteEntries''''''                LT.new+               where+                  gNoQuoteEntries'''''' = FIXTag+                     { tName = "NoQuoteEntries"+                     , tnum = tnum tNoQuoteEntries+                     , tparser = gNoQuoteEntriesP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoQuoteEntriesSpec'''''' }++                  gNoQuoteEntriesP'''''' = groupP gNoQuoteEntriesSpec''''''+                  gNoQuoteEntriesSpec'''''' = FGSpec+                     { gsLength = tNoQuoteEntries+                     , gsSeperator = tQuoteEntryID+                     , gsBody = gNoQuoteEntriesBody'''''' }+                     where+                     gNoQuoteEntriesBody'''''' = +                        LT.insert (tnum tSymbol) tSymbol $+                        LT.insert (tnum tSymbolSfx) tSymbolSfx $+                        LT.insert (tnum tSecurityID) tSecurityID $+                        LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+                        LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''''''''' $+                        LT.insert (tnum tProduct) tProduct $+                        LT.insert (tnum tCFICode) tCFICode $+                        LT.insert (tnum tSecurityType) tSecurityType $+                        LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+                        LT.insert (tnum tMaturityDate) tMaturityDate $+                        LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+                        LT.insert (tnum tIssueDate) tIssueDate $+                        LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+                        LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+                        LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+                        LT.insert (tnum tFactor) tFactor $+                        LT.insert (tnum tCreditRating) tCreditRating $+                        LT.insert (tnum tInstrRegistry) tInstrRegistry $+                        LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+                        LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+                        LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+                        LT.insert (tnum tRedemptionDate) tRedemptionDate $+                        LT.insert (tnum tStrikePrice) tStrikePrice $+                        LT.insert (tnum tOptAttribute) tOptAttribute $+                        LT.insert (tnum tContractMultiplier) tContractMultiplier $+                        LT.insert (tnum tCouponRate) tCouponRate $+                        LT.insert (tnum tSecurityExchange) tSecurityExchange $+                        LT.insert (tnum tIssuer) tIssuer $+                        LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+                        LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+                        LT.insert (tnum tSecurityDesc) tSecurityDesc $+                        LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+                        LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+                        LT.insert (tnum tBidPx) tBidPx $+                        LT.insert (tnum tOfferPx) tOfferPx $+                        LT.insert (tnum tBidSize) tBidSize $+                        LT.insert (tnum tOfferSize) tOfferSize $+                        LT.insert (tnum tValidUntilTime) tValidUntilTime $+                        LT.insert (tnum tBidSpotRate) tBidSpotRate $+                        LT.insert (tnum tOfferSpotRate) tOfferSpotRate $+                        LT.insert (tnum tBidForwardPoints) tBidForwardPoints $+                        LT.insert (tnum tOfferForwardPoints) tOfferForwardPoints $+                        LT.insert (tnum tMidPx) tMidPx $+                        LT.insert (tnum tBidYield) tBidYield $+                        LT.insert (tnum tMidYield) tMidYield $+                        LT.insert (tnum tOfferYield) tOfferYield $+                        LT.insert (tnum tTransactTime) tTransactTime $+                        LT.insert (tnum tTradingSessionID) tTradingSessionID $+                        LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+                        LT.insert (tnum tFutSettDate) tFutSettDate $+                        LT.insert (tnum tOrdType) tOrdType $+                        LT.insert (tnum tFutSettDate2) tFutSettDate2 $+                        LT.insert (tnum tOrderQty2) tOrderQty2 $+                        LT.insert (tnum tBidForwardPoints2) tBidForwardPoints2 $+                        LT.insert (tnum tOfferForwardPoints2) tOfferForwardPoints2 $+                        LT.insert (tnum tCurrency) tCurrency                         LT.new+                        where+                           gNoSecurityAltID''''''''' = FIXTag+                              { tName = "NoSecurityAltID"+                              , tnum = tnum tNoSecurityAltID+                              , tparser = gNoSecurityAltIDP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''''''''' }++                           gNoSecurityAltIDP''''''''' = groupP gNoSecurityAltIDSpec'''''''''+                           gNoSecurityAltIDSpec''''''''' = FGSpec+                              { gsLength = tNoSecurityAltID+                              , gsSeperator = tSecurityAltID+                              , gsBody = gNoSecurityAltIDBody''''''''' }+                              where+                              gNoSecurityAltIDBody''''''''' = +                                 LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                                  LT.new+++                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new+++++mBusinessMessageReject :: FIXMessageSpec+mBusinessMessageReject = FMSpec+   { msName = "BusinessMessageReject"+   , msType = C.pack "j"+   , msHeader = headerFIX43+   , msBody = mBusinessMessageRejectBody+   , msTrailer = trailerFIX43 }+   where+   mBusinessMessageRejectBody = +      LT.insert (tnum tRefSeqNum) tRefSeqNum $+      LT.insert (tnum tRefMsgType) tRefMsgType $+      LT.insert (tnum tBusinessRejectRefID) tBusinessRejectRefID $+      LT.insert (tnum tBusinessRejectReason) tBusinessRejectReason $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mBidRequest :: FIXMessageSpec+mBidRequest = FMSpec+   { msName = "BidRequest"+   , msType = C.pack "k"+   , msHeader = headerFIX43+   , msBody = mBidRequestBody+   , msTrailer = trailerFIX43 }+   where+   mBidRequestBody = +      LT.insert (tnum tBidID) tBidID $+      LT.insert (tnum tClientBidID) tClientBidID $+      LT.insert (tnum tBidRequestTransType) tBidRequestTransType $+      LT.insert (tnum tListName) tListName $+      LT.insert (tnum tTotalNumSecurities) tTotalNumSecurities $+      LT.insert (tnum tBidType) tBidType $+      LT.insert (tnum tNumTickets) tNumTickets $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tSideValue1) tSideValue1 $+      LT.insert (tnum tSideValue2) tSideValue2 $+      LT.insert (tnum tNoBidDescriptors) gNoBidDescriptors''' $+      LT.insert (tnum tNoBidComponents) gNoBidComponents''' $+      LT.insert (tnum tLiquidityIndType) tLiquidityIndType $+      LT.insert (tnum tWtAverageLiquidity) tWtAverageLiquidity $+      LT.insert (tnum tExchangeForPhysical) tExchangeForPhysical $+      LT.insert (tnum tOutMainCntryUIndex) tOutMainCntryUIndex $+      LT.insert (tnum tCrossPercent) tCrossPercent $+      LT.insert (tnum tProgRptReqs) tProgRptReqs $+      LT.insert (tnum tProgPeriodInterval) tProgPeriodInterval $+      LT.insert (tnum tIncTaxInd) tIncTaxInd $+      LT.insert (tnum tForexReq) tForexReq $+      LT.insert (tnum tNumBidders) tNumBidders $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTradeType) tTradeType $+      LT.insert (tnum tBasisPxType) tBasisPxType $+      LT.insert (tnum tStrikeTime) tStrikeTime $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoBidComponents''' = FIXTag+            { tName = "NoBidComponents"+            , tnum = tnum tNoBidComponents+            , tparser = gNoBidComponentsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoBidComponentsSpec''' }++         gNoBidComponentsP''' = groupP gNoBidComponentsSpec'''+         gNoBidComponentsSpec''' = FGSpec+            { gsLength = tNoBidComponents+            , gsSeperator = tListID+            , gsBody = gNoBidComponentsBody''' }+            where+            gNoBidComponentsBody''' = +               LT.insert (tnum tSide) tSide $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+               LT.insert (tnum tNetGrossInd) tNetGrossInd $+               LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+               LT.insert (tnum tFutSettDate) tFutSettDate $+               LT.insert (tnum tAccount) tAccount                LT.new++         gNoBidDescriptors''' = FIXTag+            { tName = "NoBidDescriptors"+            , tnum = tnum tNoBidDescriptors+            , tparser = gNoBidDescriptorsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoBidDescriptorsSpec''' }++         gNoBidDescriptorsP''' = groupP gNoBidDescriptorsSpec'''+         gNoBidDescriptorsSpec''' = FGSpec+            { gsLength = tNoBidDescriptors+            , gsSeperator = tBidDescriptorType+            , gsBody = gNoBidDescriptorsBody''' }+            where+            gNoBidDescriptorsBody''' = +               LT.insert (tnum tBidDescriptor) tBidDescriptor $+               LT.insert (tnum tSideValueInd) tSideValueInd $+               LT.insert (tnum tLiquidityValue) tLiquidityValue $+               LT.insert (tnum tLiquidityNumSecurities) tLiquidityNumSecurities $+               LT.insert (tnum tLiquidityPctLow) tLiquidityPctLow $+               LT.insert (tnum tLiquidityPctHigh) tLiquidityPctHigh $+               LT.insert (tnum tEFPTrackingError) tEFPTrackingError $+               LT.insert (tnum tFairValue) tFairValue $+               LT.insert (tnum tOutsideIndexPct) tOutsideIndexPct $+               LT.insert (tnum tValueOfFutures) tValueOfFutures                LT.new++++mBidResponse :: FIXMessageSpec+mBidResponse = FMSpec+   { msName = "BidResponse"+   , msType = C.pack "l"+   , msHeader = headerFIX43+   , msBody = mBidResponseBody+   , msTrailer = trailerFIX43 }+   where+   mBidResponseBody = +      LT.insert (tnum tBidID) tBidID $+      LT.insert (tnum tClientBidID) tClientBidID $+      LT.insert (tnum tNoBidComponents) gNoBidComponents'''       LT.new+      where+         gNoBidComponents''' = FIXTag+            { tName = "NoBidComponents"+            , tnum = tnum tNoBidComponents+            , tparser = gNoBidComponentsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoBidComponentsSpec''' }++         gNoBidComponentsP''' = groupP gNoBidComponentsSpec'''+         gNoBidComponentsSpec''' = FGSpec+            { gsLength = tNoBidComponents+            , gsSeperator = tCommission+            , gsBody = gNoBidComponentsBody''' }+            where+            gNoBidComponentsBody''' = +               LT.insert (tnum tCommType) tCommType $+               LT.insert (tnum tCommCurrency) tCommCurrency $+               LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+               LT.insert (tnum tListID) tListID $+               LT.insert (tnum tCountry) tCountry $+               LT.insert (tnum tSide) tSide $+               LT.insert (tnum tPrice) tPrice $+               LT.insert (tnum tPriceType) tPriceType $+               LT.insert (tnum tFairValue) tFairValue $+               LT.insert (tnum tNetGrossInd) tNetGrossInd $+               LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+               LT.insert (tnum tFutSettDate) tFutSettDate $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new++++mListStrikePrice :: FIXMessageSpec+mListStrikePrice = FMSpec+   { msName = "ListStrikePrice"+   , msType = C.pack "m"+   , msHeader = headerFIX43+   , msBody = mListStrikePriceBody+   , msTrailer = trailerFIX43 }+   where+   mListStrikePriceBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tTotNoStrikes) tTotNoStrikes $+      LT.insert (tnum tNoStrikes) gNoStrikes'''       LT.new+      where+         gNoStrikes''' = FIXTag+            { tName = "NoStrikes"+            , tnum = tnum tNoStrikes+            , tparser = gNoStrikesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStrikesSpec''' }++         gNoStrikesP''' = groupP gNoStrikesSpec'''+         gNoStrikesSpec''' = FGSpec+            { gsLength = tNoStrikes+            , gsSeperator = tSymbol+            , gsBody = gNoStrikesBody''' }+            where+            gNoStrikesBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tPrevClosePx) tPrevClosePx $+               LT.insert (tnum tClOrdID) tClOrdID $+               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+               LT.insert (tnum tSide) tSide $+               LT.insert (tnum tPrice) tPrice $+               LT.insert (tnum tCurrency) tCurrency $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new+               where+                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new+++++mRegistrationInstructions :: FIXMessageSpec+mRegistrationInstructions = FMSpec+   { msName = "RegistrationInstructions"+   , msType = C.pack "o"+   , msHeader = headerFIX43+   , msBody = mRegistrationInstructionsBody+   , msTrailer = trailerFIX43 }+   where+   mRegistrationInstructionsBody = +      LT.insert (tnum tRegistID) tRegistID $+      LT.insert (tnum tRegistTransType) tRegistTransType $+      LT.insert (tnum tRegistRefID) tRegistRefID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tRegistAcctType) tRegistAcctType $+      LT.insert (tnum tTaxAdvantageType) tTaxAdvantageType $+      LT.insert (tnum tOwnershipType) tOwnershipType $+      LT.insert (tnum tNoRegistDtls) gNoRegistDtls''' $+      LT.insert (tnum tNoDistribInsts) gNoDistribInsts'''       LT.new+      where+         gNoDistribInsts''' = FIXTag+            { tName = "NoDistribInsts"+            , tnum = tnum tNoDistribInsts+            , tparser = gNoDistribInstsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoDistribInstsSpec''' }++         gNoDistribInstsP''' = groupP gNoDistribInstsSpec'''+         gNoDistribInstsSpec''' = FGSpec+            { gsLength = tNoDistribInsts+            , gsSeperator = tDistribPaymentMethod+            , gsBody = gNoDistribInstsBody''' }+            where+            gNoDistribInstsBody''' = +               LT.insert (tnum tDistribPercentage) tDistribPercentage $+               LT.insert (tnum tCashDistribCurr) tCashDistribCurr $+               LT.insert (tnum tCashDistribAgentName) tCashDistribAgentName $+               LT.insert (tnum tCashDistribAgentCode) tCashDistribAgentCode $+               LT.insert (tnum tCashDistribAgentAcctNumber) tCashDistribAgentAcctNumber $+               LT.insert (tnum tCashDistribPayRef) tCashDistribPayRef                LT.new++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tPartySubID) tPartySubID                LT.new++         gNoRegistDtls''' = FIXTag+            { tName = "NoRegistDtls"+            , tnum = tnum tNoRegistDtls+            , tparser = gNoRegistDtlsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRegistDtlsSpec''' }++         gNoRegistDtlsP''' = groupP gNoRegistDtlsSpec'''+         gNoRegistDtlsSpec''' = FGSpec+            { gsLength = tNoRegistDtls+            , gsSeperator = tRegistDetls+            , gsBody = gNoRegistDtlsBody''' }+            where+            gNoRegistDtlsBody''' = +               LT.insert (tnum tRegistEmail) tRegistEmail $+               LT.insert (tnum tMailingDtls) tMailingDtls $+               LT.insert (tnum tMailingInst) tMailingInst $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $+               LT.insert (tnum tOwnerType) tOwnerType $+               LT.insert (tnum tDateOfBirth) tDateOfBirth $+               LT.insert (tnum tInvestorCountryOfResidence) tInvestorCountryOfResidence                LT.new+               where+                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNestedPartySubID) tNestedPartySubID                         LT.new+++++mRegistrationInstructionsResponse :: FIXMessageSpec+mRegistrationInstructionsResponse = FMSpec+   { msName = "RegistrationInstructionsResponse"+   , msType = C.pack "p"+   , msHeader = headerFIX43+   , msBody = mRegistrationInstructionsResponseBody+   , msTrailer = trailerFIX43 }+   where+   mRegistrationInstructionsResponseBody = +      LT.insert (tnum tRegistID) tRegistID $+      LT.insert (tnum tRegistTransType) tRegistTransType $+      LT.insert (tnum tRegistRefID) tRegistRefID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tRegistStatus) tRegistStatus $+      LT.insert (tnum tRegistRejReasonCode) tRegistRejReasonCode $+      LT.insert (tnum tRegistRejReasonText) tRegistRejReasonText       LT.new+      where+         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tPartySubID) tPartySubID                LT.new++++mOrderMassCancelRequest :: FIXMessageSpec+mOrderMassCancelRequest = FMSpec+   { msName = "OrderMassCancelRequest"+   , msType = C.pack "q"+   , msHeader = headerFIX43+   , msBody = mOrderMassCancelRequestBody+   , msTrailer = trailerFIX43 }+   where+   mOrderMassCancelRequestBody = +      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tMassCancelRequestType) tMassCancelRequestType $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $+      LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+      LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+      LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+      LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''' $+      LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+      LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+      LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+      LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+      LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+      LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+      LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+      LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+      LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+      LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+      LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+      LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+      LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+      LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+      LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+      LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+      LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+      LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+      LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+      LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+      LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+      LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+      LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+      LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+      LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+      LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+      LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+      LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoUnderlyingSecurityAltID''' = FIXTag+            { tName = "NoUnderlyingSecurityAltID"+            , tnum = tnum tNoUnderlyingSecurityAltID+            , tparser = gNoUnderlyingSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''' }++         gNoUnderlyingSecurityAltIDP''' = groupP gNoUnderlyingSecurityAltIDSpec'''+         gNoUnderlyingSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoUnderlyingSecurityAltID+            , gsSeperator = tUnderlyingSecurityAltID+            , gsBody = gNoUnderlyingSecurityAltIDBody''' }+            where+            gNoUnderlyingSecurityAltIDBody''' = +               LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                LT.new++++mOrderMassCancelReport :: FIXMessageSpec+mOrderMassCancelReport = FMSpec+   { msName = "OrderMassCancelReport"+   , msType = C.pack "r"+   , msHeader = headerFIX43+   , msBody = mOrderMassCancelReportBody+   , msTrailer = trailerFIX43 }+   where+   mOrderMassCancelReportBody = +      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+      LT.insert (tnum tMassCancelRequestType) tMassCancelRequestType $+      LT.insert (tnum tMassCancelResponse) tMassCancelResponse $+      LT.insert (tnum tMassCancelRejectReason) tMassCancelRejectReason $+      LT.insert (tnum tTotalAffectedOrders) tTotalAffectedOrders $+      LT.insert (tnum tNoAffectedOrders) gNoAffectedOrders''' $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $+      LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+      LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+      LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+      LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''' $+      LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+      LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+      LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+      LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+      LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+      LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+      LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+      LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+      LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+      LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+      LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+      LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+      LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+      LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+      LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+      LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+      LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+      LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+      LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+      LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+      LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+      LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+      LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+      LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+      LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+      LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+      LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+      LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoAffectedOrders''' = FIXTag+            { tName = "NoAffectedOrders"+            , tnum = tnum tNoAffectedOrders+            , tparser = gNoAffectedOrdersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoAffectedOrdersSpec''' }++         gNoAffectedOrdersP''' = groupP gNoAffectedOrdersSpec'''+         gNoAffectedOrdersSpec''' = FGSpec+            { gsLength = tNoAffectedOrders+            , gsSeperator = tOrigClOrdID+            , gsBody = gNoAffectedOrdersBody''' }+            where+            gNoAffectedOrdersBody''' = +               LT.insert (tnum tAffectedOrderID) tAffectedOrderID $+               LT.insert (tnum tAffectedSecondaryOrderID) tAffectedSecondaryOrderID                LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoUnderlyingSecurityAltID''' = FIXTag+            { tName = "NoUnderlyingSecurityAltID"+            , tnum = tnum tNoUnderlyingSecurityAltID+            , tparser = gNoUnderlyingSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''' }++         gNoUnderlyingSecurityAltIDP''' = groupP gNoUnderlyingSecurityAltIDSpec'''+         gNoUnderlyingSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoUnderlyingSecurityAltID+            , gsSeperator = tUnderlyingSecurityAltID+            , gsBody = gNoUnderlyingSecurityAltIDBody''' }+            where+            gNoUnderlyingSecurityAltIDBody''' = +               LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                LT.new++++mNewOrderCross :: FIXMessageSpec+mNewOrderCross = FMSpec+   { msName = "NewOrderCross"+   , msType = C.pack "s"+   , msHeader = headerFIX43+   , msBody = mNewOrderCrossBody+   , msTrailer = trailerFIX43 }+   where+   mNewOrderCrossBody = +      LT.insert (tnum tCrossID) tCrossID $+      LT.insert (tnum tCrossType) tCrossType $+      LT.insert (tnum tCrossPrioritization) tCrossPrioritization $+      LT.insert (tnum tNoSides) gNoSides''' $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $+      LT.insert (tnum tProcessCode) tProcessCode $+      LT.insert (tnum tPrevClosePx) tPrevClosePx $+      LT.insert (tnum tLocateReqd) tLocateReqd $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tNoStipulations) gNoStipulations''' $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tYieldType) tYieldType $+      LT.insert (tnum tYield) tYield $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tComplianceID) tComplianceID $+      LT.insert (tnum tIOIid) tIOIid $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tEffectiveTime) tEffectiveTime $+      LT.insert (tnum tExpireDate) tExpireDate $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tGTBookingInst) tGTBookingInst $+      LT.insert (tnum tMaxShow) tMaxShow $+      LT.insert (tnum tPegDifference) tPegDifference $+      LT.insert (tnum tDiscretionInst) tDiscretionInst $+      LT.insert (tnum tDiscretionOffset) tDiscretionOffset $+      LT.insert (tnum tCancellationRights) tCancellationRights $+      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $+      LT.insert (tnum tRegistID) tRegistID $+      LT.insert (tnum tDesignation) tDesignation $+      LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $+      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+      LT.insert (tnum tNetMoney) tNetMoney       LT.new+      where+         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoSides''' = FIXTag+            { tName = "NoSides"+            , tnum = tnum tNoSides+            , tparser = gNoSidesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSidesSpec''' }++         gNoSidesP''' = groupP gNoSidesSpec'''+         gNoSidesSpec''' = FGSpec+            { gsLength = tNoSides+            , gsSeperator = tSide+            , gsBody = gNoSidesBody''' }+            where+            gNoSidesBody''' = +               LT.insert (tnum tClOrdID) tClOrdID $+               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+               LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+               LT.insert (tnum tNoPartyIDs) gNoPartyIDs'''''' $+               LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+               LT.insert (tnum tAccount) tAccount $+               LT.insert (tnum tAccountType) tAccountType $+               LT.insert (tnum tDayBookingInst) tDayBookingInst $+               LT.insert (tnum tBookingUnit) tBookingUnit $+               LT.insert (tnum tPreallocMethod) tPreallocMethod $+               LT.insert (tnum tNoAllocs) gNoAllocs'''''' $+               LT.insert (tnum tQuantityType) tQuantityType $+               LT.insert (tnum tOrderQty) tOrderQty $+               LT.insert (tnum tCashOrderQty) tCashOrderQty $+               LT.insert (tnum tOrderPercent) tOrderPercent $+               LT.insert (tnum tRoundingDirection) tRoundingDirection $+               LT.insert (tnum tRoundingModulus) tRoundingModulus $+               LT.insert (tnum tCommission) tCommission $+               LT.insert (tnum tCommType) tCommType $+               LT.insert (tnum tCommCurrency) tCommCurrency $+               LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+               LT.insert (tnum tOrderCapacity) tOrderCapacity $+               LT.insert (tnum tOrderRestrictions) tOrderRestrictions $+               LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+               LT.insert (tnum tForexReq) tForexReq $+               LT.insert (tnum tSettlCurrency) tSettlCurrency $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText $+               LT.insert (tnum tPositionEffect) tPositionEffect $+               LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+               LT.insert (tnum tCashMargin) tCashMargin $+               LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+               LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+               LT.insert (tnum tSideComplianceID) tSideComplianceID                LT.new+               where+                  gNoAllocs'''''' = FIXTag+                     { tName = "NoAllocs"+                     , tnum = tnum tNoAllocs+                     , tparser = gNoAllocsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec'''''' }++                  gNoAllocsP'''''' = groupP gNoAllocsSpec''''''+                  gNoAllocsSpec'''''' = FGSpec+                     { gsLength = tNoAllocs+                     , gsSeperator = tAllocAccount+                     , gsBody = gNoAllocsBody'''''' }+                     where+                     gNoAllocsBody'''''' = +                        LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+                        LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''''' $+                        LT.insert (tnum tAllocQty) tAllocQty                         LT.new+                        where+                           gNoNestedPartyIDs''''''''' = FIXTag+                              { tName = "NoNestedPartyIDs"+                              , tnum = tnum tNoNestedPartyIDs+                              , tparser = gNoNestedPartyIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec''''''''' }++                           gNoNestedPartyIDsP''''''''' = groupP gNoNestedPartyIDsSpec'''''''''+                           gNoNestedPartyIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartyIDs+                              , gsSeperator = tNestedPartyID+                              , gsBody = gNoNestedPartyIDsBody''''''''' }+                              where+                              gNoNestedPartyIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                                 LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                                 LT.insert (tnum tNestedPartySubID) tNestedPartySubID                                  LT.new+++                  gNoPartyIDs'''''' = FIXTag+                     { tName = "NoPartyIDs"+                     , tnum = tnum tNoPartyIDs+                     , tparser = gNoPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec'''''' }++                  gNoPartyIDsP'''''' = groupP gNoPartyIDsSpec''''''+                  gNoPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartyIDs+                     , gsSeperator = tPartyID+                     , gsBody = gNoPartyIDsBody'''''' }+                     where+                     gNoPartyIDsBody'''''' = +                        LT.insert (tnum tPartyIDSource) tPartyIDSource $+                        LT.insert (tnum tPartyRole) tPartyRole $+                        LT.insert (tnum tPartySubID) tPartySubID                         LT.new+++         gNoStipulations''' = FIXTag+            { tName = "NoStipulations"+            , tnum = tnum tNoStipulations+            , tparser = gNoStipulationsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }++         gNoStipulationsP''' = groupP gNoStipulationsSpec'''+         gNoStipulationsSpec''' = FGSpec+            { gsLength = tNoStipulations+            , gsSeperator = tStipulationType+            , gsBody = gNoStipulationsBody''' }+            where+            gNoStipulationsBody''' = +               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new++         gNoTradingSessions''' = FIXTag+            { tName = "NoTradingSessions"+            , tnum = tnum tNoTradingSessions+            , tparser = gNoTradingSessionsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }++         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''+         gNoTradingSessionsSpec''' = FGSpec+            { gsLength = tNoTradingSessions+            , gsSeperator = tTradingSessionID+            , gsBody = gNoTradingSessionsBody''' }+            where+            gNoTradingSessionsBody''' = +               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new++++mCrossOrderCancelRequest :: FIXMessageSpec+mCrossOrderCancelRequest = FMSpec+   { msName = "CrossOrderCancelRequest"+   , msType = C.pack "u"+   , msHeader = headerFIX43+   , msBody = mCrossOrderCancelRequestBody+   , msTrailer = trailerFIX43 }+   where+   mCrossOrderCancelRequestBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tCrossID) tCrossID $+      LT.insert (tnum tOrigCrossID) tOrigCrossID $+      LT.insert (tnum tCrossType) tCrossType $+      LT.insert (tnum tCrossPrioritization) tCrossPrioritization $+      LT.insert (tnum tNoSides) gNoSides''' $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tTransactTime) tTransactTime       LT.new+      where+         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoSides''' = FIXTag+            { tName = "NoSides"+            , tnum = tnum tNoSides+            , tparser = gNoSidesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSidesSpec''' }++         gNoSidesP''' = groupP gNoSidesSpec'''+         gNoSidesSpec''' = FGSpec+            { gsLength = tNoSides+            , gsSeperator = tSide+            , gsBody = gNoSidesBody''' }+            where+            gNoSidesBody''' = +               LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+               LT.insert (tnum tClOrdID) tClOrdID $+               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+               LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+               LT.insert (tnum tOrigOrdModTime) tOrigOrdModTime $+               LT.insert (tnum tNoPartyIDs) gNoPartyIDs'''''' $+               LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+               LT.insert (tnum tOrderQty) tOrderQty $+               LT.insert (tnum tCashOrderQty) tCashOrderQty $+               LT.insert (tnum tOrderPercent) tOrderPercent $+               LT.insert (tnum tRoundingDirection) tRoundingDirection $+               LT.insert (tnum tRoundingModulus) tRoundingModulus $+               LT.insert (tnum tComplianceID) tComplianceID $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new+               where+                  gNoPartyIDs'''''' = FIXTag+                     { tName = "NoPartyIDs"+                     , tnum = tnum tNoPartyIDs+                     , tparser = gNoPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec'''''' }++                  gNoPartyIDsP'''''' = groupP gNoPartyIDsSpec''''''+                  gNoPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartyIDs+                     , gsSeperator = tPartyID+                     , gsBody = gNoPartyIDsBody'''''' }+                     where+                     gNoPartyIDsBody'''''' = +                        LT.insert (tnum tPartyIDSource) tPartyIDSource $+                        LT.insert (tnum tPartyRole) tPartyRole $+                        LT.insert (tnum tPartySubID) tPartySubID                         LT.new+++++mCrossOrderCancelReplaceRequest :: FIXMessageSpec+mCrossOrderCancelReplaceRequest = FMSpec+   { msName = "CrossOrderCancelReplaceRequest"+   , msType = C.pack "t"+   , msHeader = headerFIX43+   , msBody = mCrossOrderCancelReplaceRequestBody+   , msTrailer = trailerFIX43 }+   where+   mCrossOrderCancelReplaceRequestBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tCrossID) tCrossID $+      LT.insert (tnum tOrigCrossID) tOrigCrossID $+      LT.insert (tnum tCrossType) tCrossType $+      LT.insert (tnum tCrossPrioritization) tCrossPrioritization $+      LT.insert (tnum tNoSides) gNoSides''' $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $+      LT.insert (tnum tProcessCode) tProcessCode $+      LT.insert (tnum tPrevClosePx) tPrevClosePx $+      LT.insert (tnum tLocateReqd) tLocateReqd $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tNoStipulations) gNoStipulations''' $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tYieldType) tYieldType $+      LT.insert (tnum tYield) tYield $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tComplianceID) tComplianceID $+      LT.insert (tnum tIOIid) tIOIid $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tEffectiveTime) tEffectiveTime $+      LT.insert (tnum tExpireDate) tExpireDate $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tGTBookingInst) tGTBookingInst $+      LT.insert (tnum tMaxShow) tMaxShow $+      LT.insert (tnum tPegDifference) tPegDifference $+      LT.insert (tnum tDiscretionInst) tDiscretionInst $+      LT.insert (tnum tDiscretionOffset) tDiscretionOffset $+      LT.insert (tnum tCancellationRights) tCancellationRights $+      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $+      LT.insert (tnum tRegistID) tRegistID $+      LT.insert (tnum tDesignation) tDesignation $+      LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $+      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+      LT.insert (tnum tNetMoney) tNetMoney       LT.new+      where+         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoSides''' = FIXTag+            { tName = "NoSides"+            , tnum = tnum tNoSides+            , tparser = gNoSidesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSidesSpec''' }++         gNoSidesP''' = groupP gNoSidesSpec'''+         gNoSidesSpec''' = FGSpec+            { gsLength = tNoSides+            , gsSeperator = tSide+            , gsBody = gNoSidesBody''' }+            where+            gNoSidesBody''' = +               LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+               LT.insert (tnum tClOrdID) tClOrdID $+               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+               LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+               LT.insert (tnum tOrigOrdModTime) tOrigOrdModTime $+               LT.insert (tnum tNoPartyIDs) gNoPartyIDs'''''' $+               LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+               LT.insert (tnum tAccount) tAccount $+               LT.insert (tnum tAccountType) tAccountType $+               LT.insert (tnum tDayBookingInst) tDayBookingInst $+               LT.insert (tnum tBookingUnit) tBookingUnit $+               LT.insert (tnum tPreallocMethod) tPreallocMethod $+               LT.insert (tnum tNoAllocs) gNoAllocs'''''' $+               LT.insert (tnum tQuantityType) tQuantityType $+               LT.insert (tnum tOrderQty) tOrderQty $+               LT.insert (tnum tCashOrderQty) tCashOrderQty $+               LT.insert (tnum tOrderPercent) tOrderPercent $+               LT.insert (tnum tRoundingDirection) tRoundingDirection $+               LT.insert (tnum tRoundingModulus) tRoundingModulus $+               LT.insert (tnum tCommission) tCommission $+               LT.insert (tnum tCommType) tCommType $+               LT.insert (tnum tCommCurrency) tCommCurrency $+               LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+               LT.insert (tnum tOrderCapacity) tOrderCapacity $+               LT.insert (tnum tOrderRestrictions) tOrderRestrictions $+               LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+               LT.insert (tnum tForexReq) tForexReq $+               LT.insert (tnum tSettlCurrency) tSettlCurrency $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText $+               LT.insert (tnum tPositionEffect) tPositionEffect $+               LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+               LT.insert (tnum tCashMargin) tCashMargin $+               LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+               LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+               LT.insert (tnum tSideComplianceID) tSideComplianceID                LT.new+               where+                  gNoAllocs'''''' = FIXTag+                     { tName = "NoAllocs"+                     , tnum = tnum tNoAllocs+                     , tparser = gNoAllocsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec'''''' }++                  gNoAllocsP'''''' = groupP gNoAllocsSpec''''''+                  gNoAllocsSpec'''''' = FGSpec+                     { gsLength = tNoAllocs+                     , gsSeperator = tAllocAccount+                     , gsBody = gNoAllocsBody'''''' }+                     where+                     gNoAllocsBody'''''' = +                        LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+                        LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''''' $+                        LT.insert (tnum tAllocQty) tAllocQty                         LT.new+                        where+                           gNoNestedPartyIDs''''''''' = FIXTag+                              { tName = "NoNestedPartyIDs"+                              , tnum = tnum tNoNestedPartyIDs+                              , tparser = gNoNestedPartyIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec''''''''' }++                           gNoNestedPartyIDsP''''''''' = groupP gNoNestedPartyIDsSpec'''''''''+                           gNoNestedPartyIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartyIDs+                              , gsSeperator = tNestedPartyID+                              , gsBody = gNoNestedPartyIDsBody''''''''' }+                              where+                              gNoNestedPartyIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                                 LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                                 LT.insert (tnum tNestedPartySubID) tNestedPartySubID                                  LT.new+++                  gNoPartyIDs'''''' = FIXTag+                     { tName = "NoPartyIDs"+                     , tnum = tnum tNoPartyIDs+                     , tparser = gNoPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec'''''' }++                  gNoPartyIDsP'''''' = groupP gNoPartyIDsSpec''''''+                  gNoPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartyIDs+                     , gsSeperator = tPartyID+                     , gsBody = gNoPartyIDsBody'''''' }+                     where+                     gNoPartyIDsBody'''''' = +                        LT.insert (tnum tPartyIDSource) tPartyIDSource $+                        LT.insert (tnum tPartyRole) tPartyRole $+                        LT.insert (tnum tPartySubID) tPartySubID                         LT.new+++         gNoStipulations''' = FIXTag+            { tName = "NoStipulations"+            , tnum = tnum tNoStipulations+            , tparser = gNoStipulationsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }++         gNoStipulationsP''' = groupP gNoStipulationsSpec'''+         gNoStipulationsSpec''' = FGSpec+            { gsLength = tNoStipulations+            , gsSeperator = tStipulationType+            , gsBody = gNoStipulationsBody''' }+            where+            gNoStipulationsBody''' = +               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new++         gNoTradingSessions''' = FIXTag+            { tName = "NoTradingSessions"+            , tnum = tnum tNoTradingSessions+            , tparser = gNoTradingSessionsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }++         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''+         gNoTradingSessionsSpec''' = FGSpec+            { gsLength = tNoTradingSessions+            , gsSeperator = tTradingSessionID+            , gsBody = gNoTradingSessionsBody''' }+            where+            gNoTradingSessionsBody''' = +               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new++++mSecurityTypeRequest :: FIXMessageSpec+mSecurityTypeRequest = FMSpec+   { msName = "SecurityTypeRequest"+   , msType = C.pack "v"+   , msHeader = headerFIX43+   , msBody = mSecurityTypeRequestBody+   , msTrailer = trailerFIX43 }+   where+   mSecurityTypeRequestBody = +      LT.insert (tnum tSecurityReqID) tSecurityReqID $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID       LT.new+++mSecurityTypes :: FIXMessageSpec+mSecurityTypes = FMSpec+   { msName = "SecurityTypes"+   , msType = C.pack "w"+   , msHeader = headerFIX43+   , msBody = mSecurityTypesBody+   , msTrailer = trailerFIX43 }+   where+   mSecurityTypesBody = +      LT.insert (tnum tSecurityReqID) tSecurityReqID $+      LT.insert (tnum tSecurityResponseID) tSecurityResponseID $+      LT.insert (tnum tSecurityResponseType) tSecurityResponseType $+      LT.insert (tnum tTotalNumSecurityTypes) tTotalNumSecurityTypes $+      LT.insert (tnum tNoSecurityTypes) gNoSecurityTypes''' $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType       LT.new+      where+         gNoSecurityTypes''' = FIXTag+            { tName = "NoSecurityTypes"+            , tnum = tnum tNoSecurityTypes+            , tparser = gNoSecurityTypesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityTypesSpec''' }++         gNoSecurityTypesP''' = groupP gNoSecurityTypesSpec'''+         gNoSecurityTypesSpec''' = FGSpec+            { gsLength = tNoSecurityTypes+            , gsSeperator = tSecurityType+            , gsBody = gNoSecurityTypesBody''' }+            where+            gNoSecurityTypesBody''' = +               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode                LT.new++++mSecurityListRequest :: FIXMessageSpec+mSecurityListRequest = FMSpec+   { msName = "SecurityListRequest"+   , msType = C.pack "x"+   , msHeader = headerFIX43+   , msBody = mSecurityListRequestBody+   , msTrailer = trailerFIX43 }+   where+   mSecurityListRequestBody = +      LT.insert (tnum tSecurityReqID) tSecurityReqID $+      LT.insert (tnum tSecurityListRequestType) tSecurityListRequestType $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType       LT.new+      where+         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++++mSecurityList :: FIXMessageSpec+mSecurityList = FMSpec+   { msName = "SecurityList"+   , msType = C.pack "y"+   , msHeader = headerFIX43+   , msBody = mSecurityListBody+   , msTrailer = trailerFIX43 }+   where+   mSecurityListBody = +      LT.insert (tnum tSecurityReqID) tSecurityReqID $+      LT.insert (tnum tSecurityResponseID) tSecurityResponseID $+      LT.insert (tnum tSecurityRequestResult) tSecurityRequestResult $+      LT.insert (tnum tTotalNumSecurities) tTotalNumSecurities $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym'''       LT.new+      where+         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tSymbol+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tCurrency) tCurrency $+               LT.insert (tnum tNoLegs) gNoLegs'''''' $+               LT.insert (tnum tRoundLot) tRoundLot $+               LT.insert (tnum tMinTradeVol) tMinTradeVol $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new+               where+                  gNoLegs'''''' = FIXTag+                     { tName = "NoLegs"+                     , tnum = tnum tNoLegs+                     , tparser = gNoLegsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec'''''' }++                  gNoLegsP'''''' = groupP gNoLegsSpec''''''+                  gNoLegsSpec'''''' = FGSpec+                     { gsLength = tNoLegs+                     , gsSeperator = tLegSymbol+                     , gsBody = gNoLegsBody'''''' }+                     where+                     gNoLegsBody'''''' = +                        LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+                        LT.insert (tnum tLegSecurityID) tLegSecurityID $+                        LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+                        LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID''''''''' $+                        LT.insert (tnum tLegProduct) tLegProduct $+                        LT.insert (tnum tLegCFICode) tLegCFICode $+                        LT.insert (tnum tLegSecurityType) tLegSecurityType $+                        LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+                        LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+                        LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+                        LT.insert (tnum tLegIssueDate) tLegIssueDate $+                        LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+                        LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+                        LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+                        LT.insert (tnum tLegFactor) tLegFactor $+                        LT.insert (tnum tLegCreditRating) tLegCreditRating $+                        LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+                        LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+                        LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+                        LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+                        LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+                        LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+                        LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+                        LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+                        LT.insert (tnum tLegCouponRate) tLegCouponRate $+                        LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+                        LT.insert (tnum tLegIssuer) tLegIssuer $+                        LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+                        LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+                        LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+                        LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+                        LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+                        LT.insert (tnum tLegRatioQty) tLegRatioQty $+                        LT.insert (tnum tLegSide) tLegSide $+                        LT.insert (tnum tLegCurrency) tLegCurrency                         LT.new+                        where+                           gNoLegSecurityAltID''''''''' = FIXTag+                              { tName = "NoLegSecurityAltID"+                              , tnum = tnum tNoLegSecurityAltID+                              , tparser = gNoLegSecurityAltIDP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec''''''''' }++                           gNoLegSecurityAltIDP''''''''' = groupP gNoLegSecurityAltIDSpec'''''''''+                           gNoLegSecurityAltIDSpec''''''''' = FGSpec+                              { gsLength = tNoLegSecurityAltID+                              , gsSeperator = tLegSecurityAltID+                              , gsBody = gNoLegSecurityAltIDBody''''''''' }+                              where+                              gNoLegSecurityAltIDBody''''''''' = +                                 LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                                  LT.new+++                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new+++++mDerivativeSecurityListRequest :: FIXMessageSpec+mDerivativeSecurityListRequest = FMSpec+   { msName = "DerivativeSecurityListRequest"+   , msType = C.pack "z"+   , msHeader = headerFIX43+   , msBody = mDerivativeSecurityListRequestBody+   , msTrailer = trailerFIX43 }+   where+   mDerivativeSecurityListRequestBody = +      LT.insert (tnum tSecurityReqID) tSecurityReqID $+      LT.insert (tnum tSecurityListRequestType) tSecurityListRequestType $+      LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $+      LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+      LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+      LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+      LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''' $+      LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+      LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+      LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+      LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+      LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+      LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+      LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+      LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+      LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+      LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+      LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+      LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+      LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+      LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+      LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+      LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+      LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+      LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+      LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+      LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+      LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+      LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+      LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+      LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+      LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+      LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+      LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+      LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType       LT.new+      where+         gNoUnderlyingSecurityAltID''' = FIXTag+            { tName = "NoUnderlyingSecurityAltID"+            , tnum = tnum tNoUnderlyingSecurityAltID+            , tparser = gNoUnderlyingSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''' }++         gNoUnderlyingSecurityAltIDP''' = groupP gNoUnderlyingSecurityAltIDSpec'''+         gNoUnderlyingSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoUnderlyingSecurityAltID+            , gsSeperator = tUnderlyingSecurityAltID+            , gsBody = gNoUnderlyingSecurityAltIDBody''' }+            where+            gNoUnderlyingSecurityAltIDBody''' = +               LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                LT.new++++mDerivativeSecurityList :: FIXMessageSpec+mDerivativeSecurityList = FMSpec+   { msName = "DerivativeSecurityList"+   , msType = C.pack "AA"+   , msHeader = headerFIX43+   , msBody = mDerivativeSecurityListBody+   , msTrailer = trailerFIX43 }+   where+   mDerivativeSecurityListBody = +      LT.insert (tnum tSecurityReqID) tSecurityReqID $+      LT.insert (tnum tSecurityResponseID) tSecurityResponseID $+      LT.insert (tnum tSecurityRequestResult) tSecurityRequestResult $+      LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $+      LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+      LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+      LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+      LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''' $+      LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+      LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+      LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+      LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+      LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+      LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+      LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+      LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+      LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+      LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+      LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+      LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+      LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+      LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+      LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+      LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+      LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+      LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+      LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+      LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+      LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+      LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+      LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+      LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+      LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+      LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+      LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+      LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+      LT.insert (tnum tTotalNumSecurities) tTotalNumSecurities $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym'''       LT.new+      where+         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tSymbol+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tCurrency) tCurrency $+               LT.insert (tnum tNoLegs) gNoLegs'''''' $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new+               where+                  gNoLegs'''''' = FIXTag+                     { tName = "NoLegs"+                     , tnum = tnum tNoLegs+                     , tparser = gNoLegsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec'''''' }++                  gNoLegsP'''''' = groupP gNoLegsSpec''''''+                  gNoLegsSpec'''''' = FGSpec+                     { gsLength = tNoLegs+                     , gsSeperator = tLegSymbol+                     , gsBody = gNoLegsBody'''''' }+                     where+                     gNoLegsBody'''''' = +                        LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+                        LT.insert (tnum tLegSecurityID) tLegSecurityID $+                        LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+                        LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID''''''''' $+                        LT.insert (tnum tLegProduct) tLegProduct $+                        LT.insert (tnum tLegCFICode) tLegCFICode $+                        LT.insert (tnum tLegSecurityType) tLegSecurityType $+                        LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+                        LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+                        LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+                        LT.insert (tnum tLegIssueDate) tLegIssueDate $+                        LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+                        LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+                        LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+                        LT.insert (tnum tLegFactor) tLegFactor $+                        LT.insert (tnum tLegCreditRating) tLegCreditRating $+                        LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+                        LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+                        LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+                        LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+                        LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+                        LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+                        LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+                        LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+                        LT.insert (tnum tLegCouponRate) tLegCouponRate $+                        LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+                        LT.insert (tnum tLegIssuer) tLegIssuer $+                        LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+                        LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+                        LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+                        LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+                        LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+                        LT.insert (tnum tLegRatioQty) tLegRatioQty $+                        LT.insert (tnum tLegSide) tLegSide $+                        LT.insert (tnum tLegCurrency) tLegCurrency                         LT.new+                        where+                           gNoLegSecurityAltID''''''''' = FIXTag+                              { tName = "NoLegSecurityAltID"+                              , tnum = tnum tNoLegSecurityAltID+                              , tparser = gNoLegSecurityAltIDP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec''''''''' }++                           gNoLegSecurityAltIDP''''''''' = groupP gNoLegSecurityAltIDSpec'''''''''+                           gNoLegSecurityAltIDSpec''''''''' = FGSpec+                              { gsLength = tNoLegSecurityAltID+                              , gsSeperator = tLegSecurityAltID+                              , gsBody = gNoLegSecurityAltIDBody''''''''' }+                              where+                              gNoLegSecurityAltIDBody''''''''' = +                                 LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                                  LT.new+++                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new+++         gNoUnderlyingSecurityAltID''' = FIXTag+            { tName = "NoUnderlyingSecurityAltID"+            , tnum = tnum tNoUnderlyingSecurityAltID+            , tparser = gNoUnderlyingSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''' }++         gNoUnderlyingSecurityAltIDP''' = groupP gNoUnderlyingSecurityAltIDSpec'''+         gNoUnderlyingSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoUnderlyingSecurityAltID+            , gsSeperator = tUnderlyingSecurityAltID+            , gsBody = gNoUnderlyingSecurityAltIDBody''' }+            where+            gNoUnderlyingSecurityAltIDBody''' = +               LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                LT.new++++mNewOrderMultileg :: FIXMessageSpec+mNewOrderMultileg = FMSpec+   { msName = "NewOrderMultileg"+   , msType = C.pack "AB"+   , msHeader = headerFIX43+   , msBody = mNewOrderMultilegBody+   , msTrailer = trailerFIX43 }+   where+   mNewOrderMultilegBody = +      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tDayBookingInst) tDayBookingInst $+      LT.insert (tnum tBookingUnit) tBookingUnit $+      LT.insert (tnum tPreallocMethod) tPreallocMethod $+      LT.insert (tnum tNoAllocs) gNoAllocs''' $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tCashMargin) tCashMargin $+      LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $+      LT.insert (tnum tProcessCode) tProcessCode $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPrevClosePx) tPrevClosePx $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tLocateReqd) tLocateReqd $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tQuantityType) tQuantityType $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrderPercent) tOrderPercent $+      LT.insert (tnum tRoundingDirection) tRoundingDirection $+      LT.insert (tnum tRoundingModulus) tRoundingModulus $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tComplianceID) tComplianceID $+      LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+      LT.insert (tnum tIOIid) tIOIid $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tEffectiveTime) tEffectiveTime $+      LT.insert (tnum tExpireDate) tExpireDate $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tGTBookingInst) tGTBookingInst $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tCommCurrency) tCommCurrency $+      LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+      LT.insert (tnum tOrderCapacity) tOrderCapacity $+      LT.insert (tnum tOrderRestrictions) tOrderRestrictions $+      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+      LT.insert (tnum tForexReq) tForexReq $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tPositionEffect) tPositionEffect $+      LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+      LT.insert (tnum tMaxShow) tMaxShow $+      LT.insert (tnum tPegDifference) tPegDifference $+      LT.insert (tnum tDiscretionInst) tDiscretionInst $+      LT.insert (tnum tDiscretionOffset) tDiscretionOffset $+      LT.insert (tnum tCancellationRights) tCancellationRights $+      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $+      LT.insert (tnum tRegistID) tRegistID $+      LT.insert (tnum tDesignation) tDesignation $+      LT.insert (tnum tMultiLegRptTypeReq) tMultiLegRptTypeReq $+      LT.insert (tnum tNetMoney) tNetMoney       LT.new+      where+         gNoAllocs''' = FIXTag+            { tName = "NoAllocs"+            , tnum = tnum tNoAllocs+            , tparser = gNoAllocsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }++         gNoAllocsP''' = groupP gNoAllocsSpec'''+         gNoAllocsSpec''' = FGSpec+            { gsLength = tNoAllocs+            , gsSeperator = tAllocAccount+            , gsBody = gNoAllocsBody''' }+            where+            gNoAllocsBody''' = +               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+               LT.insert (tnum tAllocQty) tAllocQty                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegPositionEffect) tLegPositionEffect $+               LT.insert (tnum tLegCoveredOrUncovered) tLegCoveredOrUncovered $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $+               LT.insert (tnum tLegRefID) tLegRefID $+               LT.insert (tnum tLegPrice) tLegPrice $+               LT.insert (tnum tLegSettlmntTyp) tLegSettlmntTyp $+               LT.insert (tnum tLegFutSettDate) tLegFutSettDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new++                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNestedPartySubID) tNestedPartySubID                         LT.new+++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tPartySubID) tPartySubID                LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoTradingSessions''' = FIXTag+            { tName = "NoTradingSessions"+            , tnum = tnum tNoTradingSessions+            , tparser = gNoTradingSessionsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }++         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''+         gNoTradingSessionsSpec''' = FGSpec+            { gsLength = tNoTradingSessions+            , gsSeperator = tTradingSessionID+            , gsBody = gNoTradingSessionsBody''' }+            where+            gNoTradingSessionsBody''' = +               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new++++mMultilegOrderCancelReplaceRequest :: FIXMessageSpec+mMultilegOrderCancelReplaceRequest = FMSpec+   { msName = "MultilegOrderCancelReplaceRequest"+   , msType = C.pack "AC"+   , msHeader = headerFIX43+   , msBody = mMultilegOrderCancelReplaceRequestBody+   , msTrailer = trailerFIX43 }+   where+   mMultilegOrderCancelReplaceRequestBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+      LT.insert (tnum tOrigOrdModTime) tOrigOrdModTime $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tDayBookingInst) tDayBookingInst $+      LT.insert (tnum tBookingUnit) tBookingUnit $+      LT.insert (tnum tPreallocMethod) tPreallocMethod $+      LT.insert (tnum tNoAllocs) gNoAllocs''' $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tCashMargin) tCashMargin $+      LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $+      LT.insert (tnum tProcessCode) tProcessCode $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPrevClosePx) tPrevClosePx $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tLocateReqd) tLocateReqd $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tQuantityType) tQuantityType $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrderPercent) tOrderPercent $+      LT.insert (tnum tRoundingDirection) tRoundingDirection $+      LT.insert (tnum tRoundingModulus) tRoundingModulus $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tComplianceID) tComplianceID $+      LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+      LT.insert (tnum tIOIid) tIOIid $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tEffectiveTime) tEffectiveTime $+      LT.insert (tnum tExpireDate) tExpireDate $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tGTBookingInst) tGTBookingInst $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tCommCurrency) tCommCurrency $+      LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+      LT.insert (tnum tOrderCapacity) tOrderCapacity $+      LT.insert (tnum tOrderRestrictions) tOrderRestrictions $+      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+      LT.insert (tnum tForexReq) tForexReq $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tPositionEffect) tPositionEffect $+      LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+      LT.insert (tnum tMaxShow) tMaxShow $+      LT.insert (tnum tPegDifference) tPegDifference $+      LT.insert (tnum tDiscretionInst) tDiscretionInst $+      LT.insert (tnum tDiscretionOffset) tDiscretionOffset $+      LT.insert (tnum tCancellationRights) tCancellationRights $+      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $+      LT.insert (tnum tRegistID) tRegistID $+      LT.insert (tnum tDesignation) tDesignation $+      LT.insert (tnum tMultiLegRptTypeReq) tMultiLegRptTypeReq $+      LT.insert (tnum tNetMoney) tNetMoney       LT.new+      where+         gNoAllocs''' = FIXTag+            { tName = "NoAllocs"+            , tnum = tnum tNoAllocs+            , tparser = gNoAllocsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }++         gNoAllocsP''' = groupP gNoAllocsSpec'''+         gNoAllocsSpec''' = FGSpec+            { gsLength = tNoAllocs+            , gsSeperator = tAllocAccount+            , gsBody = gNoAllocsBody''' }+            where+            gNoAllocsBody''' = +               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+               LT.insert (tnum tAllocQty) tAllocQty                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegPositionEffect) tLegPositionEffect $+               LT.insert (tnum tLegCoveredOrUncovered) tLegCoveredOrUncovered $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $+               LT.insert (tnum tLegRefID) tLegRefID $+               LT.insert (tnum tLegPrice) tLegPrice $+               LT.insert (tnum tLegSettlmntTyp) tLegSettlmntTyp $+               LT.insert (tnum tLegFutSettDate) tLegFutSettDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new++                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNestedPartySubID) tNestedPartySubID                         LT.new+++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tPartySubID) tPartySubID                LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoTradingSessions''' = FIXTag+            { tName = "NoTradingSessions"+            , tnum = tnum tNoTradingSessions+            , tparser = gNoTradingSessionsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }++         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''+         gNoTradingSessionsSpec''' = FGSpec+            { gsLength = tNoTradingSessions+            , gsSeperator = tTradingSessionID+            , gsBody = gNoTradingSessionsBody''' }+            where+            gNoTradingSessionsBody''' = +               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new++++mTradeCaptureReportRequest :: FIXMessageSpec+mTradeCaptureReportRequest = FMSpec+   { msName = "TradeCaptureReportRequest"+   , msType = C.pack "AD"+   , msHeader = headerFIX43+   , msBody = mTradeCaptureReportRequestBody+   , msTrailer = trailerFIX43 }+   where+   mTradeCaptureReportRequestBody = +      LT.insert (tnum tTradeRequestID) tTradeRequestID $+      LT.insert (tnum tTradeRequestType) tTradeRequestType $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $+      LT.insert (tnum tExecID) tExecID $+      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tMatchStatus) tMatchStatus $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tNoDates) gNoDates''' $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tTradeInputSource) tTradeInputSource $+      LT.insert (tnum tTradeInputDevice) tTradeInputDevice       LT.new+      where+         gNoDates''' = FIXTag+            { tName = "NoDates"+            , tnum = tnum tNoDates+            , tparser = gNoDatesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoDatesSpec''' }++         gNoDatesP''' = groupP gNoDatesSpec'''+         gNoDatesSpec''' = FGSpec+            { gsLength = tNoDates+            , gsSeperator = tTradeDate+            , gsBody = gNoDatesBody''' }+            where+            gNoDatesBody''' = +               LT.insert (tnum tTransactTime) tTransactTime                LT.new++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tPartySubID) tPartySubID                LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++++mTradeCaptureReport :: FIXMessageSpec+mTradeCaptureReport = FMSpec+   { msName = "TradeCaptureReport"+   , msType = C.pack "AE"+   , msHeader = headerFIX43+   , msBody = mTradeCaptureReportBody+   , msTrailer = trailerFIX43 }+   where+   mTradeCaptureReportBody = +      LT.insert (tnum tTradeReportID) tTradeReportID $+      LT.insert (tnum tTradeReportTransType) tTradeReportTransType $+      LT.insert (tnum tTradeRequestID) tTradeRequestID $+      LT.insert (tnum tExecType) tExecType $+      LT.insert (tnum tTradeReportRefID) tTradeReportRefID $+      LT.insert (tnum tExecID) tExecID $+      LT.insert (tnum tSecondaryExecID) tSecondaryExecID $+      LT.insert (tnum tExecRestatementReason) tExecRestatementReason $+      LT.insert (tnum tPreviouslyReported) tPreviouslyReported $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrderPercent) tOrderPercent $+      LT.insert (tnum tRoundingDirection) tRoundingDirection $+      LT.insert (tnum tRoundingModulus) tRoundingModulus $+      LT.insert (tnum tLastQty) tLastQty $+      LT.insert (tnum tLastPx) tLastPx $+      LT.insert (tnum tLastSpotRate) tLastSpotRate $+      LT.insert (tnum tLastForwardPoints) tLastForwardPoints $+      LT.insert (tnum tLastMkt) tLastMkt $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tMatchStatus) tMatchStatus $+      LT.insert (tnum tMatchType) tMatchType $+      LT.insert (tnum tNoSides) gNoSides'''       LT.new+      where+         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoSides''' = FIXTag+            { tName = "NoSides"+            , tnum = tnum tNoSides+            , tparser = gNoSidesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSidesSpec''' }++         gNoSidesP''' = groupP gNoSidesSpec'''+         gNoSidesSpec''' = FGSpec+            { gsLength = tNoSides+            , gsSeperator = tSide+            , gsBody = gNoSidesBody''' }+            where+            gNoSidesBody''' = +               LT.insert (tnum tOrderID) tOrderID $+               LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+               LT.insert (tnum tClOrdID) tClOrdID $+               LT.insert (tnum tNoPartyIDs) gNoPartyIDs'''''' $+               LT.insert (tnum tAccount) tAccount $+               LT.insert (tnum tAccountType) tAccountType $+               LT.insert (tnum tProcessCode) tProcessCode $+               LT.insert (tnum tOddLot) tOddLot $+               LT.insert (tnum tNoClearingInstructions) gNoClearingInstructions'''''' $+               LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+               LT.insert (tnum tTradeInputSource) tTradeInputSource $+               LT.insert (tnum tTradeInputDevice) tTradeInputDevice $+               LT.insert (tnum tCurrency) tCurrency $+               LT.insert (tnum tComplianceID) tComplianceID $+               LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+               LT.insert (tnum tOrderCapacity) tOrderCapacity $+               LT.insert (tnum tOrderRestrictions) tOrderRestrictions $+               LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+               LT.insert (tnum tTransBkdTime) tTransBkdTime $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+               LT.insert (tnum tCommission) tCommission $+               LT.insert (tnum tCommType) tCommType $+               LT.insert (tnum tCommCurrency) tCommCurrency $+               LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+               LT.insert (tnum tGrossTradeAmt) tGrossTradeAmt $+               LT.insert (tnum tNumDaysInterest) tNumDaysInterest $+               LT.insert (tnum tExDate) tExDate $+               LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $+               LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+               LT.insert (tnum tConcession) tConcession $+               LT.insert (tnum tTotalTakedown) tTotalTakedown $+               LT.insert (tnum tNetMoney) tNetMoney $+               LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $+               LT.insert (tnum tSettlCurrency) tSettlCurrency $+               LT.insert (tnum tSettlCurrFxRate) tSettlCurrFxRate $+               LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $+               LT.insert (tnum tPositionEffect) tPositionEffect $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText $+               LT.insert (tnum tMultiLegReportingType) tMultiLegReportingType $+               LT.insert (tnum tNoContAmts) gNoContAmts'''''' $+               LT.insert (tnum tNoMiscFees) gNoMiscFees''''''                LT.new+               where+                  gNoClearingInstructions'''''' = FIXTag+                     { tName = "NoClearingInstructions"+                     , tnum = tnum tNoClearingInstructions+                     , tparser = gNoClearingInstructionsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoClearingInstructionsSpec'''''' }++                  gNoClearingInstructionsP'''''' = groupP gNoClearingInstructionsSpec''''''+                  gNoClearingInstructionsSpec'''''' = FGSpec+                     { gsLength = tNoClearingInstructions+                     , gsSeperator = tClearingInstruction+                     , gsBody = gNoClearingInstructionsBody'''''' }+                     where+                     gNoClearingInstructionsBody'''''' = +                        LT.new++                  gNoContAmts'''''' = FIXTag+                     { tName = "NoContAmts"+                     , tnum = tnum tNoContAmts+                     , tparser = gNoContAmtsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoContAmtsSpec'''''' }++                  gNoContAmtsP'''''' = groupP gNoContAmtsSpec''''''+                  gNoContAmtsSpec'''''' = FGSpec+                     { gsLength = tNoContAmts+                     , gsSeperator = tContAmtType+                     , gsBody = gNoContAmtsBody'''''' }+                     where+                     gNoContAmtsBody'''''' = +                        LT.insert (tnum tContAmtValue) tContAmtValue $+                        LT.insert (tnum tContAmtCurr) tContAmtCurr                         LT.new++                  gNoMiscFees'''''' = FIXTag+                     { tName = "NoMiscFees"+                     , tnum = tnum tNoMiscFees+                     , tparser = gNoMiscFeesP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec'''''' }++                  gNoMiscFeesP'''''' = groupP gNoMiscFeesSpec''''''+                  gNoMiscFeesSpec'''''' = FGSpec+                     { gsLength = tNoMiscFees+                     , gsSeperator = tMiscFeeAmt+                     , gsBody = gNoMiscFeesBody'''''' }+                     where+                     gNoMiscFeesBody'''''' = +                        LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $+                        LT.insert (tnum tMiscFeeType) tMiscFeeType                         LT.new++                  gNoPartyIDs'''''' = FIXTag+                     { tName = "NoPartyIDs"+                     , tnum = tnum tNoPartyIDs+                     , tparser = gNoPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec'''''' }++                  gNoPartyIDsP'''''' = groupP gNoPartyIDsSpec''''''+                  gNoPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartyIDs+                     , gsSeperator = tPartyID+                     , gsBody = gNoPartyIDsBody'''''' }+                     where+                     gNoPartyIDsBody'''''' = +                        LT.insert (tnum tPartyIDSource) tPartyIDSource $+                        LT.insert (tnum tPartyRole) tPartyRole $+                        LT.insert (tnum tPartySubID) tPartySubID                         LT.new+++++mOrderMassStatusRequest :: FIXMessageSpec+mOrderMassStatusRequest = FMSpec+   { msName = "OrderMassStatusRequest"+   , msType = C.pack "AF"+   , msHeader = headerFIX43+   , msBody = mOrderMassStatusRequestBody+   , msTrailer = trailerFIX43 }+   where+   mOrderMassStatusRequestBody = +      LT.insert (tnum tMassStatusReqID) tMassStatusReqID $+      LT.insert (tnum tMassStatusReqType) tMassStatusReqType $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $+      LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+      LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+      LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+      LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''' $+      LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+      LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+      LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+      LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+      LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+      LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+      LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+      LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+      LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+      LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+      LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+      LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+      LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+      LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+      LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+      LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+      LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+      LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+      LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+      LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+      LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+      LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+      LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+      LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+      LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+      LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+      LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+      LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+      LT.insert (tnum tSide) tSide       LT.new+      where+         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tPartySubID) tPartySubID                LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoUnderlyingSecurityAltID''' = FIXTag+            { tName = "NoUnderlyingSecurityAltID"+            , tnum = tnum tNoUnderlyingSecurityAltID+            , tparser = gNoUnderlyingSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''' }++         gNoUnderlyingSecurityAltIDP''' = groupP gNoUnderlyingSecurityAltIDSpec'''+         gNoUnderlyingSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoUnderlyingSecurityAltID+            , gsSeperator = tUnderlyingSecurityAltID+            , gsBody = gNoUnderlyingSecurityAltIDBody''' }+            where+            gNoUnderlyingSecurityAltIDBody''' = +               LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                LT.new++++mQuoteRequestReject :: FIXMessageSpec+mQuoteRequestReject = FMSpec+   { msName = "QuoteRequestReject"+   , msType = C.pack "AG"+   , msHeader = headerFIX43+   , msBody = mQuoteRequestRejectBody+   , msTrailer = trailerFIX43 }+   where+   mQuoteRequestRejectBody = +      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tRFQReqID) tRFQReqID $+      LT.insert (tnum tQuoteRequestRejectReason) tQuoteRequestRejectReason $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym''' $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tSymbol+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tPrevClosePx) tPrevClosePx $+               LT.insert (tnum tQuoteRequestType) tQuoteRequestType $+               LT.insert (tnum tQuoteType) tQuoteType $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+               LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+               LT.insert (tnum tNoStipulations) gNoStipulations'''''' $+               LT.insert (tnum tSide) tSide $+               LT.insert (tnum tQuantityType) tQuantityType $+               LT.insert (tnum tOrderQty) tOrderQty $+               LT.insert (tnum tCashOrderQty) tCashOrderQty $+               LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+               LT.insert (tnum tFutSettDate) tFutSettDate $+               LT.insert (tnum tOrdType) tOrdType $+               LT.insert (tnum tFutSettDate2) tFutSettDate2 $+               LT.insert (tnum tOrderQty2) tOrderQty2 $+               LT.insert (tnum tExpireTime) tExpireTime $+               LT.insert (tnum tTransactTime) tTransactTime $+               LT.insert (tnum tCurrency) tCurrency $+               LT.insert (tnum tSpread) tSpread $+               LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+               LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+               LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+               LT.insert (tnum tPriceType) tPriceType $+               LT.insert (tnum tPrice) tPrice $+               LT.insert (tnum tPrice2) tPrice2 $+               LT.insert (tnum tYieldType) tYieldType $+               LT.insert (tnum tYield) tYield                LT.new+               where+                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new++                  gNoStipulations'''''' = FIXTag+                     { tName = "NoStipulations"+                     , tnum = tnum tNoStipulations+                     , tparser = gNoStipulationsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec'''''' }++                  gNoStipulationsP'''''' = groupP gNoStipulationsSpec''''''+                  gNoStipulationsSpec'''''' = FGSpec+                     { gsLength = tNoStipulations+                     , gsSeperator = tStipulationType+                     , gsBody = gNoStipulationsBody'''''' }+                     where+                     gNoStipulationsBody'''''' = +                        LT.insert (tnum tStipulationValue) tStipulationValue                         LT.new+++++mRFQRequest :: FIXMessageSpec+mRFQRequest = FMSpec+   { msName = "RFQRequest"+   , msType = C.pack "AH"+   , msHeader = headerFIX43+   , msBody = mRFQRequestBody+   , msTrailer = trailerFIX43 }+   where+   mRFQRequestBody = +      LT.insert (tnum tRFQReqID) tRFQReqID $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym''' $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType       LT.new+      where+         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tSymbol+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tPrevClosePx) tPrevClosePx $+               LT.insert (tnum tQuoteRequestType) tQuoteRequestType $+               LT.insert (tnum tQuoteType) tQuoteType $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new+               where+                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new+++++mQuoteStatusReport :: FIXMessageSpec+mQuoteStatusReport = FMSpec+   { msName = "QuoteStatusReport"+   , msType = C.pack "AI"+   , msHeader = headerFIX43+   , msBody = mQuoteStatusReportBody+   , msTrailer = trailerFIX43 }+   where+   mQuoteStatusReportBody = +      LT.insert (tnum tQuoteStatusReqID) tQuoteStatusReqID $+      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tQuoteType) tQuoteType $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tBidPx) tBidPx $+      LT.insert (tnum tOfferPx) tOfferPx $+      LT.insert (tnum tMktBidPx) tMktBidPx $+      LT.insert (tnum tMktOfferPx) tMktOfferPx $+      LT.insert (tnum tMinBidSize) tMinBidSize $+      LT.insert (tnum tBidSize) tBidSize $+      LT.insert (tnum tMinOfferSize) tMinOfferSize $+      LT.insert (tnum tOfferSize) tOfferSize $+      LT.insert (tnum tValidUntilTime) tValidUntilTime $+      LT.insert (tnum tBidSpotRate) tBidSpotRate $+      LT.insert (tnum tOfferSpotRate) tOfferSpotRate $+      LT.insert (tnum tBidForwardPoints) tBidForwardPoints $+      LT.insert (tnum tOfferForwardPoints) tOfferForwardPoints $+      LT.insert (tnum tMidPx) tMidPx $+      LT.insert (tnum tBidYield) tBidYield $+      LT.insert (tnum tMidYield) tMidYield $+      LT.insert (tnum tOfferYield) tOfferYield $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tFutSettDate) tFutSettDate $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tFutSettDate2) tFutSettDate2 $+      LT.insert (tnum tOrderQty2) tOrderQty2 $+      LT.insert (tnum tBidForwardPoints2) tBidForwardPoints2 $+      LT.insert (tnum tOfferForwardPoints2) tOfferForwardPoints2 $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tSettlCurrBidFxRate) tSettlCurrBidFxRate $+      LT.insert (tnum tSettlCurrOfferFxRate) tSettlCurrOfferFxRate $+      LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tQuoteStatus) tQuoteStatus       LT.new+      where+         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tPartySubID) tPartySubID                LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++++fix43 :: FIXSpec+fix43 = FSpec+   { fsVersion = "FIX.4.3"+   , fsHeader = headerFIX43+   , fsTrailer = trailerFIX43+   , fsMessages = fix43Messages +   , fsTags = fix43Tags }+   where+      fix43Messages =+          LT.insert (msType mHeartbeat) mHeartbeat $+          LT.insert (msType mTestRequest) mTestRequest $+          LT.insert (msType mResendRequest) mResendRequest $+          LT.insert (msType mReject) mReject $+          LT.insert (msType mSequenceReset) mSequenceReset $+          LT.insert (msType mLogout) mLogout $+          LT.insert (msType mIOI) mIOI $+          LT.insert (msType mAdvertisement) mAdvertisement $+          LT.insert (msType mExecutionReport) mExecutionReport $+          LT.insert (msType mOrderCancelReject) mOrderCancelReject $+          LT.insert (msType mLogon) mLogon $+          LT.insert (msType mNews) mNews $+          LT.insert (msType mEmail) mEmail $+          LT.insert (msType mNewOrderSingle) mNewOrderSingle $+          LT.insert (msType mNewOrderList) mNewOrderList $+          LT.insert (msType mOrderCancelRequest) mOrderCancelRequest $+          LT.insert (msType mOrderCancelReplaceRequest) mOrderCancelReplaceRequest $+          LT.insert (msType mOrderStatusRequest) mOrderStatusRequest $+          LT.insert (msType mAllocation) mAllocation $+          LT.insert (msType mListCancelRequest) mListCancelRequest $+          LT.insert (msType mListExecute) mListExecute $+          LT.insert (msType mListStatusRequest) mListStatusRequest $+          LT.insert (msType mListStatus) mListStatus $+          LT.insert (msType mAllocationAck) mAllocationAck $+          LT.insert (msType mDontKnowTrade) mDontKnowTrade $+          LT.insert (msType mQuoteRequest) mQuoteRequest $+          LT.insert (msType mQuote) mQuote $+          LT.insert (msType mSettlementInstructions) mSettlementInstructions $+          LT.insert (msType mMarketDataRequest) mMarketDataRequest $+          LT.insert (msType mMarketDataSnapshotFullRefresh) mMarketDataSnapshotFullRefresh $+          LT.insert (msType mMarketDataIncrementalRefresh) mMarketDataIncrementalRefresh $+          LT.insert (msType mMarketDataRequestReject) mMarketDataRequestReject $+          LT.insert (msType mQuoteCancel) mQuoteCancel $+          LT.insert (msType mQuoteStatusRequest) mQuoteStatusRequest $+          LT.insert (msType mMassQuoteAcknowledgement) mMassQuoteAcknowledgement $+          LT.insert (msType mSecurityDefinitionRequest) mSecurityDefinitionRequest $+          LT.insert (msType mSecurityDefinition) mSecurityDefinition $+          LT.insert (msType mSecurityStatusRequest) mSecurityStatusRequest $+          LT.insert (msType mSecurityStatus) mSecurityStatus $+          LT.insert (msType mTradingSessionStatusRequest) mTradingSessionStatusRequest $+          LT.insert (msType mTradingSessionStatus) mTradingSessionStatus $+          LT.insert (msType mMassQuote) mMassQuote $+          LT.insert (msType mBusinessMessageReject) mBusinessMessageReject $+          LT.insert (msType mBidRequest) mBidRequest $+          LT.insert (msType mBidResponse) mBidResponse $+          LT.insert (msType mListStrikePrice) mListStrikePrice $+          LT.insert (msType mRegistrationInstructions) mRegistrationInstructions $+          LT.insert (msType mRegistrationInstructionsResponse) mRegistrationInstructionsResponse $+          LT.insert (msType mOrderMassCancelRequest) mOrderMassCancelRequest $+          LT.insert (msType mOrderMassCancelReport) mOrderMassCancelReport $+          LT.insert (msType mNewOrderCross) mNewOrderCross $+          LT.insert (msType mCrossOrderCancelRequest) mCrossOrderCancelRequest $+          LT.insert (msType mCrossOrderCancelReplaceRequest) mCrossOrderCancelReplaceRequest $+          LT.insert (msType mSecurityTypeRequest) mSecurityTypeRequest $+          LT.insert (msType mSecurityTypes) mSecurityTypes $+          LT.insert (msType mSecurityListRequest) mSecurityListRequest $+          LT.insert (msType mSecurityList) mSecurityList $+          LT.insert (msType mDerivativeSecurityListRequest) mDerivativeSecurityListRequest $+          LT.insert (msType mDerivativeSecurityList) mDerivativeSecurityList $+          LT.insert (msType mNewOrderMultileg) mNewOrderMultileg $+          LT.insert (msType mMultilegOrderCancelReplaceRequest) mMultilegOrderCancelReplaceRequest $+          LT.insert (msType mTradeCaptureReportRequest) mTradeCaptureReportRequest $+          LT.insert (msType mTradeCaptureReport) mTradeCaptureReport $+          LT.insert (msType mOrderMassStatusRequest) mOrderMassStatusRequest $+          LT.insert (msType mQuoteRequestReject) mQuoteRequestReject $+          LT.insert (msType mRFQRequest) mRFQRequest $+          LT.insert (msType mQuoteStatusReport) mQuoteStatusReport           LT.new +      fix43Tags =+          LT.insert (tnum tAccount) tAccount $+          LT.insert (tnum tAdvId) tAdvId $+          LT.insert (tnum tAdvRefID) tAdvRefID $+          LT.insert (tnum tAdvSide) tAdvSide $+          LT.insert (tnum tAdvTransType) tAdvTransType $+          LT.insert (tnum tAvgPx) tAvgPx $+          LT.insert (tnum tBeginSeqNo) tBeginSeqNo $+          LT.insert (tnum tBeginString) tBeginString $+          LT.insert (tnum tBodyLength) tBodyLength $+          LT.insert (tnum tCheckSum) tCheckSum $+          LT.insert (tnum tClOrdID) tClOrdID $+          LT.insert (tnum tCommission) tCommission $+          LT.insert (tnum tCommType) tCommType $+          LT.insert (tnum tCumQty) tCumQty $+          LT.insert (tnum tCurrency) tCurrency $+          LT.insert (tnum tEndSeqNo) tEndSeqNo $+          LT.insert (tnum tExecID) tExecID $+          LT.insert (tnum tExecInst) tExecInst $+          LT.insert (tnum tExecRefID) tExecRefID $+          LT.insert (tnum tExecTransType) tExecTransType $+          LT.insert (tnum tHandlInst) tHandlInst $+          LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+          LT.insert (tnum tIOIid) tIOIid $+          LT.insert (tnum tIOIOthSvc) tIOIOthSvc $+          LT.insert (tnum tIOIQltyInd) tIOIQltyInd $+          LT.insert (tnum tIOIRefID) tIOIRefID $+          LT.insert (tnum tIOIQty) tIOIQty $+          LT.insert (tnum tIOITransType) tIOITransType $+          LT.insert (tnum tLastCapacity) tLastCapacity $+          LT.insert (tnum tLastMkt) tLastMkt $+          LT.insert (tnum tLastPx) tLastPx $+          LT.insert (tnum tLastQty) tLastQty $+          LT.insert (tnum tLinesOfText) tLinesOfText $+          LT.insert (tnum tMsgSeqNum) tMsgSeqNum $+          LT.insert (tnum tMsgType) tMsgType $+          LT.insert (tnum tNewSeqNo) tNewSeqNo $+          LT.insert (tnum tOrderID) tOrderID $+          LT.insert (tnum tOrderQty) tOrderQty $+          LT.insert (tnum tOrdStatus) tOrdStatus $+          LT.insert (tnum tOrdType) tOrdType $+          LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+          LT.insert (tnum tOrigTime) tOrigTime $+          LT.insert (tnum tPossDupFlag) tPossDupFlag $+          LT.insert (tnum tPrice) tPrice $+          LT.insert (tnum tRefSeqNum) tRefSeqNum $+          LT.insert (tnum tRelatdSym) tRelatdSym $+          LT.insert (tnum tRule80A) tRule80A $+          LT.insert (tnum tSecurityID) tSecurityID $+          LT.insert (tnum tSenderCompID) tSenderCompID $+          LT.insert (tnum tSenderSubID) tSenderSubID $+          LT.insert (tnum tSendingDate) tSendingDate $+          LT.insert (tnum tSendingTime) tSendingTime $+          LT.insert (tnum tQuantity) tQuantity $+          LT.insert (tnum tSide) tSide $+          LT.insert (tnum tSymbol) tSymbol $+          LT.insert (tnum tTargetCompID) tTargetCompID $+          LT.insert (tnum tTargetSubID) tTargetSubID $+          LT.insert (tnum tText) tText $+          LT.insert (tnum tTimeInForce) tTimeInForce $+          LT.insert (tnum tTransactTime) tTransactTime $+          LT.insert (tnum tUrgency) tUrgency $+          LT.insert (tnum tValidUntilTime) tValidUntilTime $+          LT.insert (tnum tSettlmntTyp) tSettlmntTyp $+          LT.insert (tnum tFutSettDate) tFutSettDate $+          LT.insert (tnum tSymbolSfx) tSymbolSfx $+          LT.insert (tnum tListID) tListID $+          LT.insert (tnum tListSeqNo) tListSeqNo $+          LT.insert (tnum tTotNoOrders) tTotNoOrders $+          LT.insert (tnum tListExecInst) tListExecInst $+          LT.insert (tnum tAllocID) tAllocID $+          LT.insert (tnum tAllocTransType) tAllocTransType $+          LT.insert (tnum tRefAllocID) tRefAllocID $+          LT.insert (tnum tNoOrders) tNoOrders $+          LT.insert (tnum tAvgPrxPrecision) tAvgPrxPrecision $+          LT.insert (tnum tTradeDate) tTradeDate $+          LT.insert (tnum tExecBroker) tExecBroker $+          LT.insert (tnum tPositionEffect) tPositionEffect $+          LT.insert (tnum tNoAllocs) tNoAllocs $+          LT.insert (tnum tAllocAccount) tAllocAccount $+          LT.insert (tnum tAllocQty) tAllocQty $+          LT.insert (tnum tProcessCode) tProcessCode $+          LT.insert (tnum tNoRpts) tNoRpts $+          LT.insert (tnum tRptSeq) tRptSeq $+          LT.insert (tnum tCxlQty) tCxlQty $+          LT.insert (tnum tNoDlvyInst) tNoDlvyInst $+          LT.insert (tnum tDlvyInst) tDlvyInst $+          LT.insert (tnum tAllocStatus) tAllocStatus $+          LT.insert (tnum tAllocRejCode) tAllocRejCode $+          LT.insert (tnum tSignature) tSignature $+          LT.insert (tnum tSecureDataLen) tSecureDataLen $+          LT.insert (tnum tSecureData) tSecureData $+          LT.insert (tnum tBrokerOfCredit) tBrokerOfCredit $+          LT.insert (tnum tSignatureLength) tSignatureLength $+          LT.insert (tnum tEmailType) tEmailType $+          LT.insert (tnum tRawDataLength) tRawDataLength $+          LT.insert (tnum tRawData) tRawData $+          LT.insert (tnum tPossResend) tPossResend $+          LT.insert (tnum tEncryptMethod) tEncryptMethod $+          LT.insert (tnum tStopPx) tStopPx $+          LT.insert (tnum tExDestination) tExDestination $+          LT.insert (tnum tCxlRejReason) tCxlRejReason $+          LT.insert (tnum tOrdRejReason) tOrdRejReason $+          LT.insert (tnum tIOIQualifier) tIOIQualifier $+          LT.insert (tnum tWaveNo) tWaveNo $+          LT.insert (tnum tIssuer) tIssuer $+          LT.insert (tnum tSecurityDesc) tSecurityDesc $+          LT.insert (tnum tHeartBtInt) tHeartBtInt $+          LT.insert (tnum tClientID) tClientID $+          LT.insert (tnum tMinQty) tMinQty $+          LT.insert (tnum tMaxFloor) tMaxFloor $+          LT.insert (tnum tTestReqID) tTestReqID $+          LT.insert (tnum tReportToExch) tReportToExch $+          LT.insert (tnum tLocateReqd) tLocateReqd $+          LT.insert (tnum tOnBehalfOfCompID) tOnBehalfOfCompID $+          LT.insert (tnum tOnBehalfOfSubID) tOnBehalfOfSubID $+          LT.insert (tnum tQuoteID) tQuoteID $+          LT.insert (tnum tNetMoney) tNetMoney $+          LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $+          LT.insert (tnum tSettlCurrency) tSettlCurrency $+          LT.insert (tnum tForexReq) tForexReq $+          LT.insert (tnum tOrigSendingTime) tOrigSendingTime $+          LT.insert (tnum tGapFillFlag) tGapFillFlag $+          LT.insert (tnum tNoExecs) tNoExecs $+          LT.insert (tnum tCxlType) tCxlType $+          LT.insert (tnum tExpireTime) tExpireTime $+          LT.insert (tnum tDKReason) tDKReason $+          LT.insert (tnum tDeliverToCompID) tDeliverToCompID $+          LT.insert (tnum tDeliverToSubID) tDeliverToSubID $+          LT.insert (tnum tIOINaturalFlag) tIOINaturalFlag $+          LT.insert (tnum tQuoteReqID) tQuoteReqID $+          LT.insert (tnum tBidPx) tBidPx $+          LT.insert (tnum tOfferPx) tOfferPx $+          LT.insert (tnum tBidSize) tBidSize $+          LT.insert (tnum tOfferSize) tOfferSize $+          LT.insert (tnum tNoMiscFees) tNoMiscFees $+          LT.insert (tnum tMiscFeeAmt) tMiscFeeAmt $+          LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $+          LT.insert (tnum tMiscFeeType) tMiscFeeType $+          LT.insert (tnum tPrevClosePx) tPrevClosePx $+          LT.insert (tnum tResetSeqNumFlag) tResetSeqNumFlag $+          LT.insert (tnum tSenderLocationID) tSenderLocationID $+          LT.insert (tnum tTargetLocationID) tTargetLocationID $+          LT.insert (tnum tOnBehalfOfLocationID) tOnBehalfOfLocationID $+          LT.insert (tnum tDeliverToLocationID) tDeliverToLocationID $+          LT.insert (tnum tNoRelatedSym) tNoRelatedSym $+          LT.insert (tnum tSubject) tSubject $+          LT.insert (tnum tHeadline) tHeadline $+          LT.insert (tnum tURLLink) tURLLink $+          LT.insert (tnum tExecType) tExecType $+          LT.insert (tnum tLeavesQty) tLeavesQty $+          LT.insert (tnum tCashOrderQty) tCashOrderQty $+          LT.insert (tnum tAllocAvgPx) tAllocAvgPx $+          LT.insert (tnum tAllocNetMoney) tAllocNetMoney $+          LT.insert (tnum tSettlCurrFxRate) tSettlCurrFxRate $+          LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $+          LT.insert (tnum tNumDaysInterest) tNumDaysInterest $+          LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $+          LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+          LT.insert (tnum tSettlInstMode) tSettlInstMode $+          LT.insert (tnum tAllocText) tAllocText $+          LT.insert (tnum tSettlInstID) tSettlInstID $+          LT.insert (tnum tSettlInstTransType) tSettlInstTransType $+          LT.insert (tnum tEmailThreadID) tEmailThreadID $+          LT.insert (tnum tSettlInstSource) tSettlInstSource $+          LT.insert (tnum tSettlLocation) tSettlLocation $+          LT.insert (tnum tSecurityType) tSecurityType $+          LT.insert (tnum tEffectiveTime) tEffectiveTime $+          LT.insert (tnum tStandInstDbType) tStandInstDbType $+          LT.insert (tnum tStandInstDbName) tStandInstDbName $+          LT.insert (tnum tStandInstDbID) tStandInstDbID $+          LT.insert (tnum tSettlDeliveryType) tSettlDeliveryType $+          LT.insert (tnum tSettlDepositoryCode) tSettlDepositoryCode $+          LT.insert (tnum tSettlBrkrCode) tSettlBrkrCode $+          LT.insert (tnum tSettlInstCode) tSettlInstCode $+          LT.insert (tnum tSecuritySettlAgentName) tSecuritySettlAgentName $+          LT.insert (tnum tSecuritySettlAgentCode) tSecuritySettlAgentCode $+          LT.insert (tnum tSecuritySettlAgentAcctNum) tSecuritySettlAgentAcctNum $+          LT.insert (tnum tSecuritySettlAgentAcctName) tSecuritySettlAgentAcctName $+          LT.insert (tnum tSecuritySettlAgentContactName) tSecuritySettlAgentContactName $+          LT.insert (tnum tSecuritySettlAgentContactPhone) tSecuritySettlAgentContactPhone $+          LT.insert (tnum tCashSettlAgentName) tCashSettlAgentName $+          LT.insert (tnum tCashSettlAgentCode) tCashSettlAgentCode $+          LT.insert (tnum tCashSettlAgentAcctNum) tCashSettlAgentAcctNum $+          LT.insert (tnum tCashSettlAgentAcctName) tCashSettlAgentAcctName $+          LT.insert (tnum tCashSettlAgentContactName) tCashSettlAgentContactName $+          LT.insert (tnum tCashSettlAgentContactPhone) tCashSettlAgentContactPhone $+          LT.insert (tnum tBidSpotRate) tBidSpotRate $+          LT.insert (tnum tBidForwardPoints) tBidForwardPoints $+          LT.insert (tnum tOfferSpotRate) tOfferSpotRate $+          LT.insert (tnum tOfferForwardPoints) tOfferForwardPoints $+          LT.insert (tnum tOrderQty2) tOrderQty2 $+          LT.insert (tnum tFutSettDate2) tFutSettDate2 $+          LT.insert (tnum tLastSpotRate) tLastSpotRate $+          LT.insert (tnum tLastForwardPoints) tLastForwardPoints $+          LT.insert (tnum tAllocLinkID) tAllocLinkID $+          LT.insert (tnum tAllocLinkType) tAllocLinkType $+          LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+          LT.insert (tnum tNoIOIQualifiers) tNoIOIQualifiers $+          LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+          LT.insert (tnum tPutOrCall) tPutOrCall $+          LT.insert (tnum tStrikePrice) tStrikePrice $+          LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+          LT.insert (tnum tCustomerOrFirm) tCustomerOrFirm $+          LT.insert (tnum tMaturityDay) tMaturityDay $+          LT.insert (tnum tOptAttribute) tOptAttribute $+          LT.insert (tnum tSecurityExchange) tSecurityExchange $+          LT.insert (tnum tNotifyBrokerOfCredit) tNotifyBrokerOfCredit $+          LT.insert (tnum tAllocHandlInst) tAllocHandlInst $+          LT.insert (tnum tMaxShow) tMaxShow $+          LT.insert (tnum tPegDifference) tPegDifference $+          LT.insert (tnum tXmlDataLen) tXmlDataLen $+          LT.insert (tnum tXmlData) tXmlData $+          LT.insert (tnum tSettlInstRefID) tSettlInstRefID $+          LT.insert (tnum tNoRoutingIDs) tNoRoutingIDs $+          LT.insert (tnum tRoutingType) tRoutingType $+          LT.insert (tnum tRoutingID) tRoutingID $+          LT.insert (tnum tSpread) tSpread $+          LT.insert (tnum tBenchmark) tBenchmark $+          LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+          LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+          LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+          LT.insert (tnum tCouponRate) tCouponRate $+          LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+          LT.insert (tnum tIssueDate) tIssueDate $+          LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+          LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+          LT.insert (tnum tFactor) tFactor $+          LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+          LT.insert (tnum tExDate) tExDate $+          LT.insert (tnum tContractMultiplier) tContractMultiplier $+          LT.insert (tnum tNoStipulations) tNoStipulations $+          LT.insert (tnum tStipulationType) tStipulationType $+          LT.insert (tnum tStipulationValue) tStipulationValue $+          LT.insert (tnum tYieldType) tYieldType $+          LT.insert (tnum tYield) tYield $+          LT.insert (tnum tTotalTakedown) tTotalTakedown $+          LT.insert (tnum tConcession) tConcession $+          LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+          LT.insert (tnum tRedemptionDate) tRedemptionDate $+          LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+          LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+          LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+          LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+          LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+          LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+          LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+          LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+          LT.insert (tnum tLegIssueDate) tLegIssueDate $+          LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+          LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+          LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+          LT.insert (tnum tLegFactor) tLegFactor $+          LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+          LT.insert (tnum tCreditRating) tCreditRating $+          LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+          LT.insert (tnum tLegCreditRating) tLegCreditRating $+          LT.insert (tnum tTradedFlatSwitch) tTradedFlatSwitch $+          LT.insert (tnum tBasisFeatureDate) tBasisFeatureDate $+          LT.insert (tnum tBasisFeaturePrice) tBasisFeaturePrice $+          LT.insert (tnum tMDReqID) tMDReqID $+          LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $+          LT.insert (tnum tMarketDepth) tMarketDepth $+          LT.insert (tnum tMDUpdateType) tMDUpdateType $+          LT.insert (tnum tAggregatedBook) tAggregatedBook $+          LT.insert (tnum tNoMDEntryTypes) tNoMDEntryTypes $+          LT.insert (tnum tNoMDEntries) tNoMDEntries $+          LT.insert (tnum tMDEntryType) tMDEntryType $+          LT.insert (tnum tMDEntryPx) tMDEntryPx $+          LT.insert (tnum tMDEntrySize) tMDEntrySize $+          LT.insert (tnum tMDEntryDate) tMDEntryDate $+          LT.insert (tnum tMDEntryTime) tMDEntryTime $+          LT.insert (tnum tTickDirection) tTickDirection $+          LT.insert (tnum tMDMkt) tMDMkt $+          LT.insert (tnum tQuoteCondition) tQuoteCondition $+          LT.insert (tnum tTradeCondition) tTradeCondition $+          LT.insert (tnum tMDEntryID) tMDEntryID $+          LT.insert (tnum tMDUpdateAction) tMDUpdateAction $+          LT.insert (tnum tMDEntryRefID) tMDEntryRefID $+          LT.insert (tnum tMDReqRejReason) tMDReqRejReason $+          LT.insert (tnum tMDEntryOriginator) tMDEntryOriginator $+          LT.insert (tnum tLocationID) tLocationID $+          LT.insert (tnum tDeskID) tDeskID $+          LT.insert (tnum tDeleteReason) tDeleteReason $+          LT.insert (tnum tOpenCloseSettleFlag) tOpenCloseSettleFlag $+          LT.insert (tnum tSellerDays) tSellerDays $+          LT.insert (tnum tMDEntryBuyer) tMDEntryBuyer $+          LT.insert (tnum tMDEntrySeller) tMDEntrySeller $+          LT.insert (tnum tMDEntryPositionNo) tMDEntryPositionNo $+          LT.insert (tnum tFinancialStatus) tFinancialStatus $+          LT.insert (tnum tCorporateAction) tCorporateAction $+          LT.insert (tnum tDefBidSize) tDefBidSize $+          LT.insert (tnum tDefOfferSize) tDefOfferSize $+          LT.insert (tnum tNoQuoteEntries) tNoQuoteEntries $+          LT.insert (tnum tNoQuoteSets) tNoQuoteSets $+          LT.insert (tnum tQuoteStatus) tQuoteStatus $+          LT.insert (tnum tQuoteCancelType) tQuoteCancelType $+          LT.insert (tnum tQuoteEntryID) tQuoteEntryID $+          LT.insert (tnum tQuoteRejectReason) tQuoteRejectReason $+          LT.insert (tnum tQuoteResponseLevel) tQuoteResponseLevel $+          LT.insert (tnum tQuoteSetID) tQuoteSetID $+          LT.insert (tnum tQuoteRequestType) tQuoteRequestType $+          LT.insert (tnum tTotQuoteEntries) tTotQuoteEntries $+          LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+          LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+          LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+          LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+          LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+          LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+          LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $+          LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+          LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+          LT.insert (tnum tUnderlyingMaturityDay) tUnderlyingMaturityDay $+          LT.insert (tnum tUnderlyingPutOrCall) tUnderlyingPutOrCall $+          LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+          LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+          LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+          LT.insert (tnum tRatioQty) tRatioQty $+          LT.insert (tnum tSecurityReqID) tSecurityReqID $+          LT.insert (tnum tSecurityRequestType) tSecurityRequestType $+          LT.insert (tnum tSecurityResponseID) tSecurityResponseID $+          LT.insert (tnum tSecurityResponseType) tSecurityResponseType $+          LT.insert (tnum tSecurityStatusReqID) tSecurityStatusReqID $+          LT.insert (tnum tUnsolicitedIndicator) tUnsolicitedIndicator $+          LT.insert (tnum tSecurityTradingStatus) tSecurityTradingStatus $+          LT.insert (tnum tHaltReasonChar) tHaltReasonChar $+          LT.insert (tnum tInViewOfCommon) tInViewOfCommon $+          LT.insert (tnum tDueToRelated) tDueToRelated $+          LT.insert (tnum tBuyVolume) tBuyVolume $+          LT.insert (tnum tSellVolume) tSellVolume $+          LT.insert (tnum tHighPx) tHighPx $+          LT.insert (tnum tLowPx) tLowPx $+          LT.insert (tnum tAdjustment) tAdjustment $+          LT.insert (tnum tTradSesReqID) tTradSesReqID $+          LT.insert (tnum tTradingSessionID) tTradingSessionID $+          LT.insert (tnum tContraTrader) tContraTrader $+          LT.insert (tnum tTradSesMethod) tTradSesMethod $+          LT.insert (tnum tTradSesMode) tTradSesMode $+          LT.insert (tnum tTradSesStatus) tTradSesStatus $+          LT.insert (tnum tTradSesStartTime) tTradSesStartTime $+          LT.insert (tnum tTradSesOpenTime) tTradSesOpenTime $+          LT.insert (tnum tTradSesPreCloseTime) tTradSesPreCloseTime $+          LT.insert (tnum tTradSesCloseTime) tTradSesCloseTime $+          LT.insert (tnum tTradSesEndTime) tTradSesEndTime $+          LT.insert (tnum tNumberOfOrders) tNumberOfOrders $+          LT.insert (tnum tMessageEncoding) tMessageEncoding $+          LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+          LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+          LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+          LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+          LT.insert (tnum tEncodedListExecInstLen) tEncodedListExecInstLen $+          LT.insert (tnum tEncodedListExecInst) tEncodedListExecInst $+          LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+          LT.insert (tnum tEncodedText) tEncodedText $+          LT.insert (tnum tEncodedSubjectLen) tEncodedSubjectLen $+          LT.insert (tnum tEncodedSubject) tEncodedSubject $+          LT.insert (tnum tEncodedHeadlineLen) tEncodedHeadlineLen $+          LT.insert (tnum tEncodedHeadline) tEncodedHeadline $+          LT.insert (tnum tEncodedAllocTextLen) tEncodedAllocTextLen $+          LT.insert (tnum tEncodedAllocText) tEncodedAllocText $+          LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+          LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+          LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+          LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+          LT.insert (tnum tAllocPrice) tAllocPrice $+          LT.insert (tnum tQuoteSetValidUntilTime) tQuoteSetValidUntilTime $+          LT.insert (tnum tQuoteEntryRejectReason) tQuoteEntryRejectReason $+          LT.insert (tnum tLastMsgSeqNumProcessed) tLastMsgSeqNumProcessed $+          LT.insert (tnum tOnBehalfOfSendingTime) tOnBehalfOfSendingTime $+          LT.insert (tnum tRefTagID) tRefTagID $+          LT.insert (tnum tRefMsgType) tRefMsgType $+          LT.insert (tnum tSessionRejectReason) tSessionRejectReason $+          LT.insert (tnum tBidRequestTransType) tBidRequestTransType $+          LT.insert (tnum tContraBroker) tContraBroker $+          LT.insert (tnum tComplianceID) tComplianceID $+          LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+          LT.insert (tnum tExecRestatementReason) tExecRestatementReason $+          LT.insert (tnum tBusinessRejectRefID) tBusinessRejectRefID $+          LT.insert (tnum tBusinessRejectReason) tBusinessRejectReason $+          LT.insert (tnum tGrossTradeAmt) tGrossTradeAmt $+          LT.insert (tnum tNoContraBrokers) tNoContraBrokers $+          LT.insert (tnum tMaxMessageSize) tMaxMessageSize $+          LT.insert (tnum tNoMsgTypes) tNoMsgTypes $+          LT.insert (tnum tMsgDirection) tMsgDirection $+          LT.insert (tnum tNoTradingSessions) tNoTradingSessions $+          LT.insert (tnum tTotalVolumeTraded) tTotalVolumeTraded $+          LT.insert (tnum tDiscretionInst) tDiscretionInst $+          LT.insert (tnum tDiscretionOffset) tDiscretionOffset $+          LT.insert (tnum tBidID) tBidID $+          LT.insert (tnum tClientBidID) tClientBidID $+          LT.insert (tnum tListName) tListName $+          LT.insert (tnum tTotalNumSecurities) tTotalNumSecurities $+          LT.insert (tnum tBidType) tBidType $+          LT.insert (tnum tNumTickets) tNumTickets $+          LT.insert (tnum tSideValue1) tSideValue1 $+          LT.insert (tnum tSideValue2) tSideValue2 $+          LT.insert (tnum tNoBidDescriptors) tNoBidDescriptors $+          LT.insert (tnum tBidDescriptorType) tBidDescriptorType $+          LT.insert (tnum tBidDescriptor) tBidDescriptor $+          LT.insert (tnum tSideValueInd) tSideValueInd $+          LT.insert (tnum tLiquidityPctLow) tLiquidityPctLow $+          LT.insert (tnum tLiquidityPctHigh) tLiquidityPctHigh $+          LT.insert (tnum tLiquidityValue) tLiquidityValue $+          LT.insert (tnum tEFPTrackingError) tEFPTrackingError $+          LT.insert (tnum tFairValue) tFairValue $+          LT.insert (tnum tOutsideIndexPct) tOutsideIndexPct $+          LT.insert (tnum tValueOfFutures) tValueOfFutures $+          LT.insert (tnum tLiquidityIndType) tLiquidityIndType $+          LT.insert (tnum tWtAverageLiquidity) tWtAverageLiquidity $+          LT.insert (tnum tExchangeForPhysical) tExchangeForPhysical $+          LT.insert (tnum tOutMainCntryUIndex) tOutMainCntryUIndex $+          LT.insert (tnum tCrossPercent) tCrossPercent $+          LT.insert (tnum tProgRptReqs) tProgRptReqs $+          LT.insert (tnum tProgPeriodInterval) tProgPeriodInterval $+          LT.insert (tnum tIncTaxInd) tIncTaxInd $+          LT.insert (tnum tNumBidders) tNumBidders $+          LT.insert (tnum tTradeType) tTradeType $+          LT.insert (tnum tBasisPxType) tBasisPxType $+          LT.insert (tnum tNoBidComponents) tNoBidComponents $+          LT.insert (tnum tCountry) tCountry $+          LT.insert (tnum tTotNoStrikes) tTotNoStrikes $+          LT.insert (tnum tPriceType) tPriceType $+          LT.insert (tnum tDayOrderQty) tDayOrderQty $+          LT.insert (tnum tDayCumQty) tDayCumQty $+          LT.insert (tnum tDayAvgPx) tDayAvgPx $+          LT.insert (tnum tGTBookingInst) tGTBookingInst $+          LT.insert (tnum tNoStrikes) tNoStrikes $+          LT.insert (tnum tListStatusType) tListStatusType $+          LT.insert (tnum tNetGrossInd) tNetGrossInd $+          LT.insert (tnum tListOrderStatus) tListOrderStatus $+          LT.insert (tnum tExpireDate) tExpireDate $+          LT.insert (tnum tListExecInstType) tListExecInstType $+          LT.insert (tnum tCxlRejResponseTo) tCxlRejResponseTo $+          LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+          LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+          LT.insert (tnum tContraTradeQty) tContraTradeQty $+          LT.insert (tnum tContraTradeTime) tContraTradeTime $+          LT.insert (tnum tClearingFirm) tClearingFirm $+          LT.insert (tnum tClearingAccount) tClearingAccount $+          LT.insert (tnum tLiquidityNumSecurities) tLiquidityNumSecurities $+          LT.insert (tnum tMultiLegReportingType) tMultiLegReportingType $+          LT.insert (tnum tStrikeTime) tStrikeTime $+          LT.insert (tnum tListStatusText) tListStatusText $+          LT.insert (tnum tEncodedListStatusTextLen) tEncodedListStatusTextLen $+          LT.insert (tnum tEncodedListStatusText) tEncodedListStatusText $+          LT.insert (tnum tPartyIDSource) tPartyIDSource $+          LT.insert (tnum tPartyID) tPartyID $+          LT.insert (tnum tTotalVolumeTradedDate) tTotalVolumeTradedDate $+          LT.insert (tnum tTotalVolumeTradedTime) tTotalVolumeTradedTime $+          LT.insert (tnum tNetChgPrevDay) tNetChgPrevDay $+          LT.insert (tnum tPartyRole) tPartyRole $+          LT.insert (tnum tNoPartyIDs) tNoPartyIDs $+          LT.insert (tnum tNoSecurityAltID) tNoSecurityAltID $+          LT.insert (tnum tSecurityAltID) tSecurityAltID $+          LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource $+          LT.insert (tnum tNoUnderlyingSecurityAltID) tNoUnderlyingSecurityAltID $+          LT.insert (tnum tUnderlyingSecurityAltID) tUnderlyingSecurityAltID $+          LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource $+          LT.insert (tnum tProduct) tProduct $+          LT.insert (tnum tCFICode) tCFICode $+          LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+          LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+          LT.insert (tnum tTestMessageIndicator) tTestMessageIndicator $+          LT.insert (tnum tQuantityType) tQuantityType $+          LT.insert (tnum tBookingRefID) tBookingRefID $+          LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+          LT.insert (tnum tRoundingDirection) tRoundingDirection $+          LT.insert (tnum tRoundingModulus) tRoundingModulus $+          LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+          LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+          LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+          LT.insert (tnum tNoRegistDtls) tNoRegistDtls $+          LT.insert (tnum tMailingDtls) tMailingDtls $+          LT.insert (tnum tInvestorCountryOfResidence) tInvestorCountryOfResidence $+          LT.insert (tnum tPaymentRef) tPaymentRef $+          LT.insert (tnum tDistribPaymentMethod) tDistribPaymentMethod $+          LT.insert (tnum tCashDistribCurr) tCashDistribCurr $+          LT.insert (tnum tCommCurrency) tCommCurrency $+          LT.insert (tnum tCancellationRights) tCancellationRights $+          LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $+          LT.insert (tnum tMailingInst) tMailingInst $+          LT.insert (tnum tTransBkdTime) tTransBkdTime $+          LT.insert (tnum tExecPriceType) tExecPriceType $+          LT.insert (tnum tExecPriceAdjustment) tExecPriceAdjustment $+          LT.insert (tnum tDateOfBirth) tDateOfBirth $+          LT.insert (tnum tTradeReportTransType) tTradeReportTransType $+          LT.insert (tnum tCardHolderName) tCardHolderName $+          LT.insert (tnum tCardNumber) tCardNumber $+          LT.insert (tnum tCardExpDate) tCardExpDate $+          LT.insert (tnum tCardIssNo) tCardIssNo $+          LT.insert (tnum tPaymentMethod) tPaymentMethod $+          LT.insert (tnum tRegistAcctType) tRegistAcctType $+          LT.insert (tnum tDesignation) tDesignation $+          LT.insert (tnum tTaxAdvantageType) tTaxAdvantageType $+          LT.insert (tnum tRegistRejReasonText) tRegistRejReasonText $+          LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+          LT.insert (tnum tCashDistribAgentName) tCashDistribAgentName $+          LT.insert (tnum tCashDistribAgentCode) tCashDistribAgentCode $+          LT.insert (tnum tCashDistribAgentAcctNumber) tCashDistribAgentAcctNumber $+          LT.insert (tnum tCashDistribPayRef) tCashDistribPayRef $+          LT.insert (tnum tCashDistribAgentAcctName) tCashDistribAgentAcctName $+          LT.insert (tnum tCardStartDate) tCardStartDate $+          LT.insert (tnum tPaymentDate) tPaymentDate $+          LT.insert (tnum tPaymentRemitterID) tPaymentRemitterID $+          LT.insert (tnum tRegistStatus) tRegistStatus $+          LT.insert (tnum tRegistRejReasonCode) tRegistRejReasonCode $+          LT.insert (tnum tRegistRefID) tRegistRefID $+          LT.insert (tnum tRegistDetls) tRegistDetls $+          LT.insert (tnum tNoDistribInsts) tNoDistribInsts $+          LT.insert (tnum tRegistEmail) tRegistEmail $+          LT.insert (tnum tDistribPercentage) tDistribPercentage $+          LT.insert (tnum tRegistID) tRegistID $+          LT.insert (tnum tRegistTransType) tRegistTransType $+          LT.insert (tnum tExecValuationPoint) tExecValuationPoint $+          LT.insert (tnum tOrderPercent) tOrderPercent $+          LT.insert (tnum tOwnershipType) tOwnershipType $+          LT.insert (tnum tNoContAmts) tNoContAmts $+          LT.insert (tnum tContAmtType) tContAmtType $+          LT.insert (tnum tContAmtValue) tContAmtValue $+          LT.insert (tnum tContAmtCurr) tContAmtCurr $+          LT.insert (tnum tOwnerType) tOwnerType $+          LT.insert (tnum tPartySubID) tPartySubID $+          LT.insert (tnum tNestedPartyID) tNestedPartyID $+          LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+          LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+          LT.insert (tnum tSecondaryExecID) tSecondaryExecID $+          LT.insert (tnum tOrderCapacity) tOrderCapacity $+          LT.insert (tnum tOrderRestrictions) tOrderRestrictions $+          LT.insert (tnum tMassCancelRequestType) tMassCancelRequestType $+          LT.insert (tnum tMassCancelResponse) tMassCancelResponse $+          LT.insert (tnum tMassCancelRejectReason) tMassCancelRejectReason $+          LT.insert (tnum tTotalAffectedOrders) tTotalAffectedOrders $+          LT.insert (tnum tNoAffectedOrders) tNoAffectedOrders $+          LT.insert (tnum tAffectedOrderID) tAffectedOrderID $+          LT.insert (tnum tAffectedSecondaryOrderID) tAffectedSecondaryOrderID $+          LT.insert (tnum tQuoteType) tQuoteType $+          LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+          LT.insert (tnum tNoNestedPartyIDs) tNoNestedPartyIDs $+          LT.insert (tnum tTotalAccruedInterestAmt) tTotalAccruedInterestAmt $+          LT.insert (tnum tMaturityDate) tMaturityDate $+          LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+          LT.insert (tnum tInstrRegistry) tInstrRegistry $+          LT.insert (tnum tCashMargin) tCashMargin $+          LT.insert (tnum tNestedPartySubID) tNestedPartySubID $+          LT.insert (tnum tScope) tScope $+          LT.insert (tnum tMDImplicitDelete) tMDImplicitDelete $+          LT.insert (tnum tCrossID) tCrossID $+          LT.insert (tnum tCrossType) tCrossType $+          LT.insert (tnum tCrossPrioritization) tCrossPrioritization $+          LT.insert (tnum tOrigCrossID) tOrigCrossID $+          LT.insert (tnum tNoSides) tNoSides $+          LT.insert (tnum tUsername) tUsername $+          LT.insert (tnum tPassword) tPassword $+          LT.insert (tnum tNoLegs) tNoLegs $+          LT.insert (tnum tLegCurrency) tLegCurrency $+          LT.insert (tnum tTotalNumSecurityTypes) tTotalNumSecurityTypes $+          LT.insert (tnum tNoSecurityTypes) tNoSecurityTypes $+          LT.insert (tnum tSecurityListRequestType) tSecurityListRequestType $+          LT.insert (tnum tSecurityRequestResult) tSecurityRequestResult $+          LT.insert (tnum tRoundLot) tRoundLot $+          LT.insert (tnum tMinTradeVol) tMinTradeVol $+          LT.insert (tnum tMultiLegRptTypeReq) tMultiLegRptTypeReq $+          LT.insert (tnum tLegPositionEffect) tLegPositionEffect $+          LT.insert (tnum tLegCoveredOrUncovered) tLegCoveredOrUncovered $+          LT.insert (tnum tLegPrice) tLegPrice $+          LT.insert (tnum tTradSesStatusRejReason) tTradSesStatusRejReason $+          LT.insert (tnum tTradeRequestID) tTradeRequestID $+          LT.insert (tnum tTradeRequestType) tTradeRequestType $+          LT.insert (tnum tPreviouslyReported) tPreviouslyReported $+          LT.insert (tnum tTradeReportID) tTradeReportID $+          LT.insert (tnum tTradeReportRefID) tTradeReportRefID $+          LT.insert (tnum tMatchStatus) tMatchStatus $+          LT.insert (tnum tMatchType) tMatchType $+          LT.insert (tnum tOddLot) tOddLot $+          LT.insert (tnum tNoClearingInstructions) tNoClearingInstructions $+          LT.insert (tnum tClearingInstruction) tClearingInstruction $+          LT.insert (tnum tTradeInputSource) tTradeInputSource $+          LT.insert (tnum tTradeInputDevice) tTradeInputDevice $+          LT.insert (tnum tNoDates) tNoDates $+          LT.insert (tnum tAccountType) tAccountType $+          LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+          LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+          LT.insert (tnum tMassStatusReqID) tMassStatusReqID $+          LT.insert (tnum tMassStatusReqType) tMassStatusReqType $+          LT.insert (tnum tOrigOrdModTime) tOrigOrdModTime $+          LT.insert (tnum tLegSettlmntTyp) tLegSettlmntTyp $+          LT.insert (tnum tLegFutSettDate) tLegFutSettDate $+          LT.insert (tnum tDayBookingInst) tDayBookingInst $+          LT.insert (tnum tBookingUnit) tBookingUnit $+          LT.insert (tnum tPreallocMethod) tPreallocMethod $+          LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+          LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+          LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+          LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+          LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+          LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+          LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+          LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+          LT.insert (tnum tLegSymbol) tLegSymbol $+          LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+          LT.insert (tnum tLegSecurityID) tLegSecurityID $+          LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+          LT.insert (tnum tNoLegSecurityAltID) tNoLegSecurityAltID $+          LT.insert (tnum tLegSecurityAltID) tLegSecurityAltID $+          LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource $+          LT.insert (tnum tLegProduct) tLegProduct $+          LT.insert (tnum tLegCFICode) tLegCFICode $+          LT.insert (tnum tLegSecurityType) tLegSecurityType $+          LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+          LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+          LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+          LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+          LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+          LT.insert (tnum tLegCouponRate) tLegCouponRate $+          LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+          LT.insert (tnum tLegIssuer) tLegIssuer $+          LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+          LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+          LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+          LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+          LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+          LT.insert (tnum tLegRatioQty) tLegRatioQty $+          LT.insert (tnum tLegSide) tLegSide $+          LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+          LT.insert (tnum tAllocType) tAllocType $+          LT.insert (tnum tNoHops) tNoHops $+          LT.insert (tnum tHopCompID) tHopCompID $+          LT.insert (tnum tHopSendingTime) tHopSendingTime $+          LT.insert (tnum tHopRefID) tHopRefID $+          LT.insert (tnum tMidPx) tMidPx $+          LT.insert (tnum tBidYield) tBidYield $+          LT.insert (tnum tMidYield) tMidYield $+          LT.insert (tnum tOfferYield) tOfferYield $+          LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+          LT.insert (tnum tWorkingIndicator) tWorkingIndicator $+          LT.insert (tnum tLegLastPx) tLegLastPx $+          LT.insert (tnum tPriorityIndicator) tPriorityIndicator $+          LT.insert (tnum tPriceImprovement) tPriceImprovement $+          LT.insert (tnum tPrice2) tPrice2 $+          LT.insert (tnum tLastForwardPoints2) tLastForwardPoints2 $+          LT.insert (tnum tBidForwardPoints2) tBidForwardPoints2 $+          LT.insert (tnum tOfferForwardPoints2) tOfferForwardPoints2 $+          LT.insert (tnum tRFQReqID) tRFQReqID $+          LT.insert (tnum tMktBidPx) tMktBidPx $+          LT.insert (tnum tMktOfferPx) tMktOfferPx $+          LT.insert (tnum tMinBidSize) tMinBidSize $+          LT.insert (tnum tMinOfferSize) tMinOfferSize $+          LT.insert (tnum tQuoteStatusReqID) tQuoteStatusReqID $+          LT.insert (tnum tLegalConfirm) tLegalConfirm $+          LT.insert (tnum tUnderlyingLastPx) tUnderlyingLastPx $+          LT.insert (tnum tUnderlyingLastQty) tUnderlyingLastQty $+          LT.insert (tnum tSecDefStatus) tSecDefStatus $+          LT.insert (tnum tLegRefID) tLegRefID $+          LT.insert (tnum tContraLegRefID) tContraLegRefID $+          LT.insert (tnum tSettlCurrBidFxRate) tSettlCurrBidFxRate $+          LT.insert (tnum tSettlCurrOfferFxRate) tSettlCurrOfferFxRate $+          LT.insert (tnum tQuoteRequestRejectReason) tQuoteRequestRejectReason $+          LT.insert (tnum tSideComplianceID) tSideComplianceID $+          LT.new 
+ src/Data/FIX/Spec/FIX44.hs view
@@ -0,0 +1,31002 @@+module Data.FIX.Spec.FIX44 ( fix44 ) where+import qualified Data.ByteString.Char8 as C+import qualified Data.LookupTable as LT ( new, insert )+import Data.FIX.Message+import Data.FIX.Parser+import Data.Functor ( (<$>) )+import Data.FIX.Arbitrary +import Test.QuickCheck ( arbitrary )+++tAccount :: FIXTag+tAccount = FIXTag +   { tName = "Account"+   , tnum = 1+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAdvId :: FIXTag+tAdvId = FIXTag +   { tName = "AdvId"+   , tnum = 2+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAdvRefID :: FIXTag+tAdvRefID = FIXTag +   { tName = "AdvRefID"+   , tnum = 3+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAdvSide :: FIXTag+tAdvSide = FIXTag +   { tName = "AdvSide"+   , tnum = 4+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAdvTransType :: FIXTag+tAdvTransType = FIXTag +   { tName = "AdvTransType"+   , tnum = 5+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAvgPx :: FIXTag+tAvgPx = FIXTag +   { tName = "AvgPx"+   , tnum = 6+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBeginSeqNo :: FIXTag+tBeginSeqNo = FIXTag +   { tName = "BeginSeqNo"+   , tnum = 7+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tClOrdID :: FIXTag+tClOrdID = FIXTag +   { tName = "ClOrdID"+   , tnum = 11+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCommission :: FIXTag+tCommission = FIXTag +   { tName = "Commission"+   , tnum = 12+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCommType :: FIXTag+tCommType = FIXTag +   { tName = "CommType"+   , tnum = 13+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCumQty :: FIXTag+tCumQty = FIXTag +   { tName = "CumQty"+   , tnum = 14+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCurrency :: FIXTag+tCurrency = FIXTag +   { tName = "Currency"+   , tnum = 15+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tEndSeqNo :: FIXTag+tEndSeqNo = FIXTag +   { tName = "EndSeqNo"+   , tnum = 16+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tExecID :: FIXTag+tExecID = FIXTag +   { tName = "ExecID"+   , tnum = 17+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tExecInst :: FIXTag+tExecInst = FIXTag +   { tName = "ExecInst"+   , tnum = 18+   , tparser = toFIXMultipleValueString+   , arbitraryValue = FIXMultipleValueString <$> arbitrary }++tExecRefID :: FIXTag+tExecRefID = FIXTag +   { tName = "ExecRefID"+   , tnum = 19+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tExecTransType :: FIXTag+tExecTransType = FIXTag +   { tName = "ExecTransType"+   , tnum = 20+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tHandlInst :: FIXTag+tHandlInst = FIXTag +   { tName = "HandlInst"+   , tnum = 21+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSecurityIDSource :: FIXTag+tSecurityIDSource = FIXTag +   { tName = "SecurityIDSource"+   , tnum = 22+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tIOIID :: FIXTag+tIOIID = FIXTag +   { tName = "IOIID"+   , tnum = 23+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tIOIOthSvc :: FIXTag+tIOIOthSvc = FIXTag +   { tName = "IOIOthSvc"+   , tnum = 24+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tIOIQltyInd :: FIXTag+tIOIQltyInd = FIXTag +   { tName = "IOIQltyInd"+   , tnum = 25+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tIOIRefID :: FIXTag+tIOIRefID = FIXTag +   { tName = "IOIRefID"+   , tnum = 26+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tIOIQty :: FIXTag+tIOIQty = FIXTag +   { tName = "IOIQty"+   , tnum = 27+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tIOITransType :: FIXTag+tIOITransType = FIXTag +   { tName = "IOITransType"+   , tnum = 28+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLastCapacity :: FIXTag+tLastCapacity = FIXTag +   { tName = "LastCapacity"+   , tnum = 29+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLastMkt :: FIXTag+tLastMkt = FIXTag +   { tName = "LastMkt"+   , tnum = 30+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLastPx :: FIXTag+tLastPx = FIXTag +   { tName = "LastPx"+   , tnum = 31+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLastQty :: FIXTag+tLastQty = FIXTag +   { tName = "LastQty"+   , tnum = 32+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoLinesOfText :: FIXTag+tNoLinesOfText = FIXTag +   { tName = "NoLinesOfText"+   , tnum = 33+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMsgSeqNum :: FIXTag+tMsgSeqNum = FIXTag +   { tName = "MsgSeqNum"+   , tnum = 34+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNewSeqNo :: FIXTag+tNewSeqNo = FIXTag +   { tName = "NewSeqNo"+   , tnum = 36+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOrderID :: FIXTag+tOrderID = FIXTag +   { tName = "OrderID"+   , tnum = 37+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tOrderQty :: FIXTag+tOrderQty = FIXTag +   { tName = "OrderQty"+   , tnum = 38+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOrdStatus :: FIXTag+tOrdStatus = FIXTag +   { tName = "OrdStatus"+   , tnum = 39+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOrdType :: FIXTag+tOrdType = FIXTag +   { tName = "OrdType"+   , tnum = 40+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOrigClOrdID :: FIXTag+tOrigClOrdID = FIXTag +   { tName = "OrigClOrdID"+   , tnum = 41+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tOrigTime :: FIXTag+tOrigTime = FIXTag +   { tName = "OrigTime"+   , tnum = 42+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tPossDupFlag :: FIXTag+tPossDupFlag = FIXTag +   { tName = "PossDupFlag"+   , tnum = 43+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tPrice :: FIXTag+tPrice = FIXTag +   { tName = "Price"+   , tnum = 44+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tRefSeqNum :: FIXTag+tRefSeqNum = FIXTag +   { tName = "RefSeqNum"+   , tnum = 45+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRelatdSym :: FIXTag+tRelatdSym = FIXTag +   { tName = "RelatdSym"+   , tnum = 46+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tRule80A :: FIXTag+tRule80A = FIXTag +   { tName = "Rule80A"+   , tnum = 47+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSecurityID :: FIXTag+tSecurityID = FIXTag +   { tName = "SecurityID"+   , tnum = 48+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSenderCompID :: FIXTag+tSenderCompID = FIXTag +   { tName = "SenderCompID"+   , tnum = 49+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSenderSubID :: FIXTag+tSenderSubID = FIXTag +   { tName = "SenderSubID"+   , tnum = 50+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSendingDate :: FIXTag+tSendingDate = FIXTag +   { tName = "SendingDate"+   , tnum = 51+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tSendingTime :: FIXTag+tSendingTime = FIXTag +   { tName = "SendingTime"+   , tnum = 52+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tQuantity :: FIXTag+tQuantity = FIXTag +   { tName = "Quantity"+   , tnum = 53+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSide :: FIXTag+tSide = FIXTag +   { tName = "Side"+   , tnum = 54+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSymbol :: FIXTag+tSymbol = FIXTag +   { tName = "Symbol"+   , tnum = 55+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTargetCompID :: FIXTag+tTargetCompID = FIXTag +   { tName = "TargetCompID"+   , tnum = 56+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTargetSubID :: FIXTag+tTargetSubID = FIXTag +   { tName = "TargetSubID"+   , tnum = 57+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tText :: FIXTag+tText = FIXTag +   { tName = "Text"+   , tnum = 58+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTimeInForce :: FIXTag+tTimeInForce = FIXTag +   { tName = "TimeInForce"+   , tnum = 59+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tTransactTime :: FIXTag+tTransactTime = FIXTag +   { tName = "TransactTime"+   , tnum = 60+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tUrgency :: FIXTag+tUrgency = FIXTag +   { tName = "Urgency"+   , tnum = 61+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tValidUntilTime :: FIXTag+tValidUntilTime = FIXTag +   { tName = "ValidUntilTime"+   , tnum = 62+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tSettlType :: FIXTag+tSettlType = FIXTag +   { tName = "SettlType"+   , tnum = 63+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSettlDate :: FIXTag+tSettlDate = FIXTag +   { tName = "SettlDate"+   , tnum = 64+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tSymbolSfx :: FIXTag+tSymbolSfx = FIXTag +   { tName = "SymbolSfx"+   , tnum = 65+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tListID :: FIXTag+tListID = FIXTag +   { tName = "ListID"+   , tnum = 66+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tListSeqNo :: FIXTag+tListSeqNo = FIXTag +   { tName = "ListSeqNo"+   , tnum = 67+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTotNoOrders :: FIXTag+tTotNoOrders = FIXTag +   { tName = "TotNoOrders"+   , tnum = 68+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tListExecInst :: FIXTag+tListExecInst = FIXTag +   { tName = "ListExecInst"+   , tnum = 69+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAllocID :: FIXTag+tAllocID = FIXTag +   { tName = "AllocID"+   , tnum = 70+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAllocTransType :: FIXTag+tAllocTransType = FIXTag +   { tName = "AllocTransType"+   , tnum = 71+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tRefAllocID :: FIXTag+tRefAllocID = FIXTag +   { tName = "RefAllocID"+   , tnum = 72+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoOrders :: FIXTag+tNoOrders = FIXTag +   { tName = "NoOrders"+   , tnum = 73+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAvgPxPrecision :: FIXTag+tAvgPxPrecision = FIXTag +   { tName = "AvgPxPrecision"+   , tnum = 74+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradeDate :: FIXTag+tTradeDate = FIXTag +   { tName = "TradeDate"+   , tnum = 75+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tExecBroker :: FIXTag+tExecBroker = FIXTag +   { tName = "ExecBroker"+   , tnum = 76+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tPositionEffect :: FIXTag+tPositionEffect = FIXTag +   { tName = "PositionEffect"+   , tnum = 77+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoAllocs :: FIXTag+tNoAllocs = FIXTag +   { tName = "NoAllocs"+   , tnum = 78+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAllocAccount :: FIXTag+tAllocAccount = FIXTag +   { tName = "AllocAccount"+   , tnum = 79+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAllocQty :: FIXTag+tAllocQty = FIXTag +   { tName = "AllocQty"+   , tnum = 80+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tProcessCode :: FIXTag+tProcessCode = FIXTag +   { tName = "ProcessCode"+   , tnum = 81+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoRpts :: FIXTag+tNoRpts = FIXTag +   { tName = "NoRpts"+   , tnum = 82+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRptSeq :: FIXTag+tRptSeq = FIXTag +   { tName = "RptSeq"+   , tnum = 83+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCxlQty :: FIXTag+tCxlQty = FIXTag +   { tName = "CxlQty"+   , tnum = 84+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoDlvyInst :: FIXTag+tNoDlvyInst = FIXTag +   { tName = "NoDlvyInst"+   , tnum = 85+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tDlvyInst :: FIXTag+tDlvyInst = FIXTag +   { tName = "DlvyInst"+   , tnum = 86+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAllocStatus :: FIXTag+tAllocStatus = FIXTag +   { tName = "AllocStatus"+   , tnum = 87+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAllocRejCode :: FIXTag+tAllocRejCode = FIXTag +   { tName = "AllocRejCode"+   , tnum = 88+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSignature :: FIXTag+tSignature = FIXTag +   { tName = "Signature"+   , tnum = 89+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tSecureDataLen :: FIXTag+tSecureDataLen = FIXTag +   { tName = "SecureDataLen"+   , tnum = 90+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecureData :: FIXTag+tSecureData = FIXTag +   { tName = "SecureData"+   , tnum = 91+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tBrokerOfCredit :: FIXTag+tBrokerOfCredit = FIXTag +   { tName = "BrokerOfCredit"+   , tnum = 92+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSignatureLength :: FIXTag+tSignatureLength = FIXTag +   { tName = "SignatureLength"+   , tnum = 93+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEmailType :: FIXTag+tEmailType = FIXTag +   { tName = "EmailType"+   , tnum = 94+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tRawDataLength :: FIXTag+tRawDataLength = FIXTag +   { tName = "RawDataLength"+   , tnum = 95+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRawData :: FIXTag+tRawData = FIXTag +   { tName = "RawData"+   , tnum = 96+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tPossResend :: FIXTag+tPossResend = FIXTag +   { tName = "PossResend"+   , tnum = 97+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tEncryptMethod :: FIXTag+tEncryptMethod = FIXTag +   { tName = "EncryptMethod"+   , tnum = 98+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tStopPx :: FIXTag+tStopPx = FIXTag +   { tName = "StopPx"+   , tnum = 99+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tExDestination :: FIXTag+tExDestination = FIXTag +   { tName = "ExDestination"+   , tnum = 100+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCxlRejReason :: FIXTag+tCxlRejReason = FIXTag +   { tName = "CxlRejReason"+   , tnum = 102+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOrdRejReason :: FIXTag+tOrdRejReason = FIXTag +   { tName = "OrdRejReason"+   , tnum = 103+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tIOIQualifier :: FIXTag+tIOIQualifier = FIXTag +   { tName = "IOIQualifier"+   , tnum = 104+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tWaveNo :: FIXTag+tWaveNo = FIXTag +   { tName = "WaveNo"+   , tnum = 105+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tIssuer :: FIXTag+tIssuer = FIXTag +   { tName = "Issuer"+   , tnum = 106+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecurityDesc :: FIXTag+tSecurityDesc = FIXTag +   { tName = "SecurityDesc"+   , tnum = 107+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tHeartBtInt :: FIXTag+tHeartBtInt = FIXTag +   { tName = "HeartBtInt"+   , tnum = 108+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tClientID :: FIXTag+tClientID = FIXTag +   { tName = "ClientID"+   , tnum = 109+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMinQty :: FIXTag+tMinQty = FIXTag +   { tName = "MinQty"+   , tnum = 110+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMaxFloor :: FIXTag+tMaxFloor = FIXTag +   { tName = "MaxFloor"+   , tnum = 111+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tTestReqID :: FIXTag+tTestReqID = FIXTag +   { tName = "TestReqID"+   , tnum = 112+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tReportToExch :: FIXTag+tReportToExch = FIXTag +   { tName = "ReportToExch"+   , tnum = 113+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tLocateReqd :: FIXTag+tLocateReqd = FIXTag +   { tName = "LocateReqd"+   , tnum = 114+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tOnBehalfOfCompID :: FIXTag+tOnBehalfOfCompID = FIXTag +   { tName = "OnBehalfOfCompID"+   , tnum = 115+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tOnBehalfOfSubID :: FIXTag+tOnBehalfOfSubID = FIXTag +   { tName = "OnBehalfOfSubID"+   , tnum = 116+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tQuoteID :: FIXTag+tQuoteID = FIXTag +   { tName = "QuoteID"+   , tnum = 117+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNetMoney :: FIXTag+tNetMoney = FIXTag +   { tName = "NetMoney"+   , tnum = 118+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlCurrAmt :: FIXTag+tSettlCurrAmt = FIXTag +   { tName = "SettlCurrAmt"+   , tnum = 119+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlCurrency :: FIXTag+tSettlCurrency = FIXTag +   { tName = "SettlCurrency"+   , tnum = 120+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tForexReq :: FIXTag+tForexReq = FIXTag +   { tName = "ForexReq"+   , tnum = 121+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tOrigSendingTime :: FIXTag+tOrigSendingTime = FIXTag +   { tName = "OrigSendingTime"+   , tnum = 122+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tGapFillFlag :: FIXTag+tGapFillFlag = FIXTag +   { tName = "GapFillFlag"+   , tnum = 123+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tNoExecs :: FIXTag+tNoExecs = FIXTag +   { tName = "NoExecs"+   , tnum = 124+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCxlType :: FIXTag+tCxlType = FIXTag +   { tName = "CxlType"+   , tnum = 125+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tExpireTime :: FIXTag+tExpireTime = FIXTag +   { tName = "ExpireTime"+   , tnum = 126+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tDKReason :: FIXTag+tDKReason = FIXTag +   { tName = "DKReason"+   , tnum = 127+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tDeliverToCompID :: FIXTag+tDeliverToCompID = FIXTag +   { tName = "DeliverToCompID"+   , tnum = 128+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tDeliverToSubID :: FIXTag+tDeliverToSubID = FIXTag +   { tName = "DeliverToSubID"+   , tnum = 129+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tIOINaturalFlag :: FIXTag+tIOINaturalFlag = FIXTag +   { tName = "IOINaturalFlag"+   , tnum = 130+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tQuoteReqID :: FIXTag+tQuoteReqID = FIXTag +   { tName = "QuoteReqID"+   , tnum = 131+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tBidPx :: FIXTag+tBidPx = FIXTag +   { tName = "BidPx"+   , tnum = 132+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOfferPx :: FIXTag+tOfferPx = FIXTag +   { tName = "OfferPx"+   , tnum = 133+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBidSize :: FIXTag+tBidSize = FIXTag +   { tName = "BidSize"+   , tnum = 134+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOfferSize :: FIXTag+tOfferSize = FIXTag +   { tName = "OfferSize"+   , tnum = 135+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoMiscFees :: FIXTag+tNoMiscFees = FIXTag +   { tName = "NoMiscFees"+   , tnum = 136+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMiscFeeAmt :: FIXTag+tMiscFeeAmt = FIXTag +   { tName = "MiscFeeAmt"+   , tnum = 137+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMiscFeeCurr :: FIXTag+tMiscFeeCurr = FIXTag +   { tName = "MiscFeeCurr"+   , tnum = 138+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMiscFeeType :: FIXTag+tMiscFeeType = FIXTag +   { tName = "MiscFeeType"+   , tnum = 139+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tPrevClosePx :: FIXTag+tPrevClosePx = FIXTag +   { tName = "PrevClosePx"+   , tnum = 140+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tResetSeqNumFlag :: FIXTag+tResetSeqNumFlag = FIXTag +   { tName = "ResetSeqNumFlag"+   , tnum = 141+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tSenderLocationID :: FIXTag+tSenderLocationID = FIXTag +   { tName = "SenderLocationID"+   , tnum = 142+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTargetLocationID :: FIXTag+tTargetLocationID = FIXTag +   { tName = "TargetLocationID"+   , tnum = 143+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tOnBehalfOfLocationID :: FIXTag+tOnBehalfOfLocationID = FIXTag +   { tName = "OnBehalfOfLocationID"+   , tnum = 144+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tDeliverToLocationID :: FIXTag+tDeliverToLocationID = FIXTag +   { tName = "DeliverToLocationID"+   , tnum = 145+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoRelatedSym :: FIXTag+tNoRelatedSym = FIXTag +   { tName = "NoRelatedSym"+   , tnum = 146+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSubject :: FIXTag+tSubject = FIXTag +   { tName = "Subject"+   , tnum = 147+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tHeadline :: FIXTag+tHeadline = FIXTag +   { tName = "Headline"+   , tnum = 148+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tURLLink :: FIXTag+tURLLink = FIXTag +   { tName = "URLLink"+   , tnum = 149+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tExecType :: FIXTag+tExecType = FIXTag +   { tName = "ExecType"+   , tnum = 150+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLeavesQty :: FIXTag+tLeavesQty = FIXTag +   { tName = "LeavesQty"+   , tnum = 151+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCashOrderQty :: FIXTag+tCashOrderQty = FIXTag +   { tName = "CashOrderQty"+   , tnum = 152+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAllocAvgPx :: FIXTag+tAllocAvgPx = FIXTag +   { tName = "AllocAvgPx"+   , tnum = 153+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAllocNetMoney :: FIXTag+tAllocNetMoney = FIXTag +   { tName = "AllocNetMoney"+   , tnum = 154+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlCurrFxRate :: FIXTag+tSettlCurrFxRate = FIXTag +   { tName = "SettlCurrFxRate"+   , tnum = 155+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlCurrFxRateCalc :: FIXTag+tSettlCurrFxRateCalc = FIXTag +   { tName = "SettlCurrFxRateCalc"+   , tnum = 156+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNumDaysInterest :: FIXTag+tNumDaysInterest = FIXTag +   { tName = "NumDaysInterest"+   , tnum = 157+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAccruedInterestRate :: FIXTag+tAccruedInterestRate = FIXTag +   { tName = "AccruedInterestRate"+   , tnum = 158+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAccruedInterestAmt :: FIXTag+tAccruedInterestAmt = FIXTag +   { tName = "AccruedInterestAmt"+   , tnum = 159+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlInstMode :: FIXTag+tSettlInstMode = FIXTag +   { tName = "SettlInstMode"+   , tnum = 160+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAllocText :: FIXTag+tAllocText = FIXTag +   { tName = "AllocText"+   , tnum = 161+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlInstID :: FIXTag+tSettlInstID = FIXTag +   { tName = "SettlInstID"+   , tnum = 162+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlInstTransType :: FIXTag+tSettlInstTransType = FIXTag +   { tName = "SettlInstTransType"+   , tnum = 163+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tEmailThreadID :: FIXTag+tEmailThreadID = FIXTag +   { tName = "EmailThreadID"+   , tnum = 164+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlInstSource :: FIXTag+tSettlInstSource = FIXTag +   { tName = "SettlInstSource"+   , tnum = 165+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSettlLocation :: FIXTag+tSettlLocation = FIXTag +   { tName = "SettlLocation"+   , tnum = 166+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecurityType :: FIXTag+tSecurityType = FIXTag +   { tName = "SecurityType"+   , tnum = 167+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tEffectiveTime :: FIXTag+tEffectiveTime = FIXTag +   { tName = "EffectiveTime"+   , tnum = 168+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tStandInstDbType :: FIXTag+tStandInstDbType = FIXTag +   { tName = "StandInstDbType"+   , tnum = 169+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tStandInstDbName :: FIXTag+tStandInstDbName = FIXTag +   { tName = "StandInstDbName"+   , tnum = 170+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tStandInstDbID :: FIXTag+tStandInstDbID = FIXTag +   { tName = "StandInstDbID"+   , tnum = 171+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlDeliveryType :: FIXTag+tSettlDeliveryType = FIXTag +   { tName = "SettlDeliveryType"+   , tnum = 172+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSettlDepositoryCode :: FIXTag+tSettlDepositoryCode = FIXTag +   { tName = "SettlDepositoryCode"+   , tnum = 173+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlBrkrCode :: FIXTag+tSettlBrkrCode = FIXTag +   { tName = "SettlBrkrCode"+   , tnum = 174+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlInstCode :: FIXTag+tSettlInstCode = FIXTag +   { tName = "SettlInstCode"+   , tnum = 175+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecuritySettlAgentName :: FIXTag+tSecuritySettlAgentName = FIXTag +   { tName = "SecuritySettlAgentName"+   , tnum = 176+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecuritySettlAgentCode :: FIXTag+tSecuritySettlAgentCode = FIXTag +   { tName = "SecuritySettlAgentCode"+   , tnum = 177+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecuritySettlAgentAcctNum :: FIXTag+tSecuritySettlAgentAcctNum = FIXTag +   { tName = "SecuritySettlAgentAcctNum"+   , tnum = 178+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecuritySettlAgentAcctName :: FIXTag+tSecuritySettlAgentAcctName = FIXTag +   { tName = "SecuritySettlAgentAcctName"+   , tnum = 179+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecuritySettlAgentContactName :: FIXTag+tSecuritySettlAgentContactName = FIXTag +   { tName = "SecuritySettlAgentContactName"+   , tnum = 180+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecuritySettlAgentContactPhone :: FIXTag+tSecuritySettlAgentContactPhone = FIXTag +   { tName = "SecuritySettlAgentContactPhone"+   , tnum = 181+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashSettlAgentName :: FIXTag+tCashSettlAgentName = FIXTag +   { tName = "CashSettlAgentName"+   , tnum = 182+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashSettlAgentCode :: FIXTag+tCashSettlAgentCode = FIXTag +   { tName = "CashSettlAgentCode"+   , tnum = 183+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashSettlAgentAcctNum :: FIXTag+tCashSettlAgentAcctNum = FIXTag +   { tName = "CashSettlAgentAcctNum"+   , tnum = 184+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashSettlAgentAcctName :: FIXTag+tCashSettlAgentAcctName = FIXTag +   { tName = "CashSettlAgentAcctName"+   , tnum = 185+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashSettlAgentContactName :: FIXTag+tCashSettlAgentContactName = FIXTag +   { tName = "CashSettlAgentContactName"+   , tnum = 186+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashSettlAgentContactPhone :: FIXTag+tCashSettlAgentContactPhone = FIXTag +   { tName = "CashSettlAgentContactPhone"+   , tnum = 187+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tBidSpotRate :: FIXTag+tBidSpotRate = FIXTag +   { tName = "BidSpotRate"+   , tnum = 188+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBidForwardPoints :: FIXTag+tBidForwardPoints = FIXTag +   { tName = "BidForwardPoints"+   , tnum = 189+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOfferSpotRate :: FIXTag+tOfferSpotRate = FIXTag +   { tName = "OfferSpotRate"+   , tnum = 190+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOfferForwardPoints :: FIXTag+tOfferForwardPoints = FIXTag +   { tName = "OfferForwardPoints"+   , tnum = 191+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOrderQty2 :: FIXTag+tOrderQty2 = FIXTag +   { tName = "OrderQty2"+   , tnum = 192+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlDate2 :: FIXTag+tSettlDate2 = FIXTag +   { tName = "SettlDate2"+   , tnum = 193+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tLastSpotRate :: FIXTag+tLastSpotRate = FIXTag +   { tName = "LastSpotRate"+   , tnum = 194+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLastForwardPoints :: FIXTag+tLastForwardPoints = FIXTag +   { tName = "LastForwardPoints"+   , tnum = 195+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAllocLinkID :: FIXTag+tAllocLinkID = FIXTag +   { tName = "AllocLinkID"+   , tnum = 196+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAllocLinkType :: FIXTag+tAllocLinkType = FIXTag +   { tName = "AllocLinkType"+   , tnum = 197+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecondaryOrderID :: FIXTag+tSecondaryOrderID = FIXTag +   { tName = "SecondaryOrderID"+   , tnum = 198+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoIOIQualifiers :: FIXTag+tNoIOIQualifiers = FIXTag +   { tName = "NoIOIQualifiers"+   , tnum = 199+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMaturityMonthYear :: FIXTag+tMaturityMonthYear = FIXTag +   { tName = "MaturityMonthYear"+   , tnum = 200+   , tparser = toFIXMonthYear+   , arbitraryValue = FIXMonthYear <$> arbitrary }++tPutOrCall :: FIXTag+tPutOrCall = FIXTag +   { tName = "PutOrCall"+   , tnum = 201+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tStrikePrice :: FIXTag+tStrikePrice = FIXTag +   { tName = "StrikePrice"+   , tnum = 202+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCoveredOrUncovered :: FIXTag+tCoveredOrUncovered = FIXTag +   { tName = "CoveredOrUncovered"+   , tnum = 203+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCustomerOrFirm :: FIXTag+tCustomerOrFirm = FIXTag +   { tName = "CustomerOrFirm"+   , tnum = 204+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMaturityDay :: FIXTag+tMaturityDay = FIXTag +   { tName = "MaturityDay"+   , tnum = 205+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOptAttribute :: FIXTag+tOptAttribute = FIXTag +   { tName = "OptAttribute"+   , tnum = 206+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSecurityExchange :: FIXTag+tSecurityExchange = FIXTag +   { tName = "SecurityExchange"+   , tnum = 207+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNotifyBrokerOfCredit :: FIXTag+tNotifyBrokerOfCredit = FIXTag +   { tName = "NotifyBrokerOfCredit"+   , tnum = 208+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tAllocHandlInst :: FIXTag+tAllocHandlInst = FIXTag +   { tName = "AllocHandlInst"+   , tnum = 209+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMaxShow :: FIXTag+tMaxShow = FIXTag +   { tName = "MaxShow"+   , tnum = 210+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tPegOffsetValue :: FIXTag+tPegOffsetValue = FIXTag +   { tName = "PegOffsetValue"+   , tnum = 211+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tXmlDataLen :: FIXTag+tXmlDataLen = FIXTag +   { tName = "XmlDataLen"+   , tnum = 212+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tXmlData :: FIXTag+tXmlData = FIXTag +   { tName = "XmlData"+   , tnum = 213+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tSettlInstRefID :: FIXTag+tSettlInstRefID = FIXTag +   { tName = "SettlInstRefID"+   , tnum = 214+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoRoutingIDs :: FIXTag+tNoRoutingIDs = FIXTag +   { tName = "NoRoutingIDs"+   , tnum = 215+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRoutingType :: FIXTag+tRoutingType = FIXTag +   { tName = "RoutingType"+   , tnum = 216+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRoutingID :: FIXTag+tRoutingID = FIXTag +   { tName = "RoutingID"+   , tnum = 217+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSpread :: FIXTag+tSpread = FIXTag +   { tName = "Spread"+   , tnum = 218+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBenchmark :: FIXTag+tBenchmark = FIXTag +   { tName = "Benchmark"+   , tnum = 219+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tBenchmarkCurveCurrency :: FIXTag+tBenchmarkCurveCurrency = FIXTag +   { tName = "BenchmarkCurveCurrency"+   , tnum = 220+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tBenchmarkCurveName :: FIXTag+tBenchmarkCurveName = FIXTag +   { tName = "BenchmarkCurveName"+   , tnum = 221+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tBenchmarkCurvePoint :: FIXTag+tBenchmarkCurvePoint = FIXTag +   { tName = "BenchmarkCurvePoint"+   , tnum = 222+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCouponRate :: FIXTag+tCouponRate = FIXTag +   { tName = "CouponRate"+   , tnum = 223+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCouponPaymentDate :: FIXTag+tCouponPaymentDate = FIXTag +   { tName = "CouponPaymentDate"+   , tnum = 224+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tIssueDate :: FIXTag+tIssueDate = FIXTag +   { tName = "IssueDate"+   , tnum = 225+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tRepurchaseTerm :: FIXTag+tRepurchaseTerm = FIXTag +   { tName = "RepurchaseTerm"+   , tnum = 226+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRepurchaseRate :: FIXTag+tRepurchaseRate = FIXTag +   { tName = "RepurchaseRate"+   , tnum = 227+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tFactor :: FIXTag+tFactor = FIXTag +   { tName = "Factor"+   , tnum = 228+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tTradeOriginationDate :: FIXTag+tTradeOriginationDate = FIXTag +   { tName = "TradeOriginationDate"+   , tnum = 229+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tExDate :: FIXTag+tExDate = FIXTag +   { tName = "ExDate"+   , tnum = 230+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tContractMultiplier :: FIXTag+tContractMultiplier = FIXTag +   { tName = "ContractMultiplier"+   , tnum = 231+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoStipulations :: FIXTag+tNoStipulations = FIXTag +   { tName = "NoStipulations"+   , tnum = 232+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tStipulationType :: FIXTag+tStipulationType = FIXTag +   { tName = "StipulationType"+   , tnum = 233+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tStipulationValue :: FIXTag+tStipulationValue = FIXTag +   { tName = "StipulationValue"+   , tnum = 234+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tYieldType :: FIXTag+tYieldType = FIXTag +   { tName = "YieldType"+   , tnum = 235+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tYield :: FIXTag+tYield = FIXTag +   { tName = "Yield"+   , tnum = 236+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tTotalTakedown :: FIXTag+tTotalTakedown = FIXTag +   { tName = "TotalTakedown"+   , tnum = 237+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tConcession :: FIXTag+tConcession = FIXTag +   { tName = "Concession"+   , tnum = 238+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tRepoCollateralSecurityType :: FIXTag+tRepoCollateralSecurityType = FIXTag +   { tName = "RepoCollateralSecurityType"+   , tnum = 239+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRedemptionDate :: FIXTag+tRedemptionDate = FIXTag +   { tName = "RedemptionDate"+   , tnum = 240+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tUnderlyingCouponPaymentDate :: FIXTag+tUnderlyingCouponPaymentDate = FIXTag +   { tName = "UnderlyingCouponPaymentDate"+   , tnum = 241+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tUnderlyingIssueDate :: FIXTag+tUnderlyingIssueDate = FIXTag +   { tName = "UnderlyingIssueDate"+   , tnum = 242+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tUnderlyingRepoCollateralSecurityType :: FIXTag+tUnderlyingRepoCollateralSecurityType = FIXTag +   { tName = "UnderlyingRepoCollateralSecurityType"+   , tnum = 243+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUnderlyingRepurchaseTerm :: FIXTag+tUnderlyingRepurchaseTerm = FIXTag +   { tName = "UnderlyingRepurchaseTerm"+   , tnum = 244+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUnderlyingRepurchaseRate :: FIXTag+tUnderlyingRepurchaseRate = FIXTag +   { tName = "UnderlyingRepurchaseRate"+   , tnum = 245+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tUnderlyingFactor :: FIXTag+tUnderlyingFactor = FIXTag +   { tName = "UnderlyingFactor"+   , tnum = 246+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tUnderlyingRedemptionDate :: FIXTag+tUnderlyingRedemptionDate = FIXTag +   { tName = "UnderlyingRedemptionDate"+   , tnum = 247+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tLegCouponPaymentDate :: FIXTag+tLegCouponPaymentDate = FIXTag +   { tName = "LegCouponPaymentDate"+   , tnum = 248+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tLegIssueDate :: FIXTag+tLegIssueDate = FIXTag +   { tName = "LegIssueDate"+   , tnum = 249+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tLegRepoCollateralSecurityType :: FIXTag+tLegRepoCollateralSecurityType = FIXTag +   { tName = "LegRepoCollateralSecurityType"+   , tnum = 250+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLegRepurchaseTerm :: FIXTag+tLegRepurchaseTerm = FIXTag +   { tName = "LegRepurchaseTerm"+   , tnum = 251+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLegRepurchaseRate :: FIXTag+tLegRepurchaseRate = FIXTag +   { tName = "LegRepurchaseRate"+   , tnum = 252+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLegFactor :: FIXTag+tLegFactor = FIXTag +   { tName = "LegFactor"+   , tnum = 253+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLegRedemptionDate :: FIXTag+tLegRedemptionDate = FIXTag +   { tName = "LegRedemptionDate"+   , tnum = 254+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tCreditRating :: FIXTag+tCreditRating = FIXTag +   { tName = "CreditRating"+   , tnum = 255+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingCreditRating :: FIXTag+tUnderlyingCreditRating = FIXTag +   { tName = "UnderlyingCreditRating"+   , tnum = 256+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegCreditRating :: FIXTag+tLegCreditRating = FIXTag +   { tName = "LegCreditRating"+   , tnum = 257+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTradedFlatSwitch :: FIXTag+tTradedFlatSwitch = FIXTag +   { tName = "TradedFlatSwitch"+   , tnum = 258+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tBasisFeatureDate :: FIXTag+tBasisFeatureDate = FIXTag +   { tName = "BasisFeatureDate"+   , tnum = 259+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tBasisFeaturePrice :: FIXTag+tBasisFeaturePrice = FIXTag +   { tName = "BasisFeaturePrice"+   , tnum = 260+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMDReqID :: FIXTag+tMDReqID = FIXTag +   { tName = "MDReqID"+   , tnum = 262+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSubscriptionRequestType :: FIXTag+tSubscriptionRequestType = FIXTag +   { tName = "SubscriptionRequestType"+   , tnum = 263+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMarketDepth :: FIXTag+tMarketDepth = FIXTag +   { tName = "MarketDepth"+   , tnum = 264+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMDUpdateType :: FIXTag+tMDUpdateType = FIXTag +   { tName = "MDUpdateType"+   , tnum = 265+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAggregatedBook :: FIXTag+tAggregatedBook = FIXTag +   { tName = "AggregatedBook"+   , tnum = 266+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tNoMDEntryTypes :: FIXTag+tNoMDEntryTypes = FIXTag +   { tName = "NoMDEntryTypes"+   , tnum = 267+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoMDEntries :: FIXTag+tNoMDEntries = FIXTag +   { tName = "NoMDEntries"+   , tnum = 268+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMDEntryType :: FIXTag+tMDEntryType = FIXTag +   { tName = "MDEntryType"+   , tnum = 269+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMDEntryPx :: FIXTag+tMDEntryPx = FIXTag +   { tName = "MDEntryPx"+   , tnum = 270+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMDEntrySize :: FIXTag+tMDEntrySize = FIXTag +   { tName = "MDEntrySize"+   , tnum = 271+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMDEntryDate :: FIXTag+tMDEntryDate = FIXTag +   { tName = "MDEntryDate"+   , tnum = 272+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tMDEntryTime :: FIXTag+tMDEntryTime = FIXTag +   { tName = "MDEntryTime"+   , tnum = 273+   , tparser = toFIXTimeOnly+   , arbitraryValue = FIXTimeOnly <$> arbitrary }++tTickDirection :: FIXTag+tTickDirection = FIXTag +   { tName = "TickDirection"+   , tnum = 274+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMDMkt :: FIXTag+tMDMkt = FIXTag +   { tName = "MDMkt"+   , tnum = 275+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tQuoteCondition :: FIXTag+tQuoteCondition = FIXTag +   { tName = "QuoteCondition"+   , tnum = 276+   , tparser = toFIXMultipleValueString+   , arbitraryValue = FIXMultipleValueString <$> arbitrary }++tTradeCondition :: FIXTag+tTradeCondition = FIXTag +   { tName = "TradeCondition"+   , tnum = 277+   , tparser = toFIXMultipleValueString+   , arbitraryValue = FIXMultipleValueString <$> arbitrary }++tMDEntryID :: FIXTag+tMDEntryID = FIXTag +   { tName = "MDEntryID"+   , tnum = 278+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMDUpdateAction :: FIXTag+tMDUpdateAction = FIXTag +   { tName = "MDUpdateAction"+   , tnum = 279+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMDEntryRefID :: FIXTag+tMDEntryRefID = FIXTag +   { tName = "MDEntryRefID"+   , tnum = 280+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMDReqRejReason :: FIXTag+tMDReqRejReason = FIXTag +   { tName = "MDReqRejReason"+   , tnum = 281+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMDEntryOriginator :: FIXTag+tMDEntryOriginator = FIXTag +   { tName = "MDEntryOriginator"+   , tnum = 282+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLocationID :: FIXTag+tLocationID = FIXTag +   { tName = "LocationID"+   , tnum = 283+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tDeskID :: FIXTag+tDeskID = FIXTag +   { tName = "DeskID"+   , tnum = 284+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tDeleteReason :: FIXTag+tDeleteReason = FIXTag +   { tName = "DeleteReason"+   , tnum = 285+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOpenCloseSettlFlag :: FIXTag+tOpenCloseSettlFlag = FIXTag +   { tName = "OpenCloseSettlFlag"+   , tnum = 286+   , tparser = toFIXMultipleValueString+   , arbitraryValue = FIXMultipleValueString <$> arbitrary }++tSellerDays :: FIXTag+tSellerDays = FIXTag +   { tName = "SellerDays"+   , tnum = 287+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMDEntryBuyer :: FIXTag+tMDEntryBuyer = FIXTag +   { tName = "MDEntryBuyer"+   , tnum = 288+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMDEntrySeller :: FIXTag+tMDEntrySeller = FIXTag +   { tName = "MDEntrySeller"+   , tnum = 289+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMDEntryPositionNo :: FIXTag+tMDEntryPositionNo = FIXTag +   { tName = "MDEntryPositionNo"+   , tnum = 290+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tFinancialStatus :: FIXTag+tFinancialStatus = FIXTag +   { tName = "FinancialStatus"+   , tnum = 291+   , tparser = toFIXMultipleValueString+   , arbitraryValue = FIXMultipleValueString <$> arbitrary }++tCorporateAction :: FIXTag+tCorporateAction = FIXTag +   { tName = "CorporateAction"+   , tnum = 292+   , tparser = toFIXMultipleValueString+   , arbitraryValue = FIXMultipleValueString <$> arbitrary }++tDefBidSize :: FIXTag+tDefBidSize = FIXTag +   { tName = "DefBidSize"+   , tnum = 293+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tDefOfferSize :: FIXTag+tDefOfferSize = FIXTag +   { tName = "DefOfferSize"+   , tnum = 294+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoQuoteEntries :: FIXTag+tNoQuoteEntries = FIXTag +   { tName = "NoQuoteEntries"+   , tnum = 295+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoQuoteSets :: FIXTag+tNoQuoteSets = FIXTag +   { tName = "NoQuoteSets"+   , tnum = 296+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tQuoteStatus :: FIXTag+tQuoteStatus = FIXTag +   { tName = "QuoteStatus"+   , tnum = 297+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tQuoteCancelType :: FIXTag+tQuoteCancelType = FIXTag +   { tName = "QuoteCancelType"+   , tnum = 298+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tQuoteEntryID :: FIXTag+tQuoteEntryID = FIXTag +   { tName = "QuoteEntryID"+   , tnum = 299+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tQuoteRejectReason :: FIXTag+tQuoteRejectReason = FIXTag +   { tName = "QuoteRejectReason"+   , tnum = 300+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tQuoteResponseLevel :: FIXTag+tQuoteResponseLevel = FIXTag +   { tName = "QuoteResponseLevel"+   , tnum = 301+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tQuoteSetID :: FIXTag+tQuoteSetID = FIXTag +   { tName = "QuoteSetID"+   , tnum = 302+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tQuoteRequestType :: FIXTag+tQuoteRequestType = FIXTag +   { tName = "QuoteRequestType"+   , tnum = 303+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTotNoQuoteEntries :: FIXTag+tTotNoQuoteEntries = FIXTag +   { tName = "TotNoQuoteEntries"+   , tnum = 304+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUnderlyingSecurityIDSource :: FIXTag+tUnderlyingSecurityIDSource = FIXTag +   { tName = "UnderlyingSecurityIDSource"+   , tnum = 305+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingIssuer :: FIXTag+tUnderlyingIssuer = FIXTag +   { tName = "UnderlyingIssuer"+   , tnum = 306+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingSecurityDesc :: FIXTag+tUnderlyingSecurityDesc = FIXTag +   { tName = "UnderlyingSecurityDesc"+   , tnum = 307+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingSecurityExchange :: FIXTag+tUnderlyingSecurityExchange = FIXTag +   { tName = "UnderlyingSecurityExchange"+   , tnum = 308+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingSecurityID :: FIXTag+tUnderlyingSecurityID = FIXTag +   { tName = "UnderlyingSecurityID"+   , tnum = 309+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingSecurityType :: FIXTag+tUnderlyingSecurityType = FIXTag +   { tName = "UnderlyingSecurityType"+   , tnum = 310+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingSymbol :: FIXTag+tUnderlyingSymbol = FIXTag +   { tName = "UnderlyingSymbol"+   , tnum = 311+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingSymbolSfx :: FIXTag+tUnderlyingSymbolSfx = FIXTag +   { tName = "UnderlyingSymbolSfx"+   , tnum = 312+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingMaturityMonthYear :: FIXTag+tUnderlyingMaturityMonthYear = FIXTag +   { tName = "UnderlyingMaturityMonthYear"+   , tnum = 313+   , tparser = toFIXMonthYear+   , arbitraryValue = FIXMonthYear <$> arbitrary }++tUnderlyingMaturityDay :: FIXTag+tUnderlyingMaturityDay = FIXTag +   { tName = "UnderlyingMaturityDay"+   , tnum = 314+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUnderlyingPutOrCall :: FIXTag+tUnderlyingPutOrCall = FIXTag +   { tName = "UnderlyingPutOrCall"+   , tnum = 315+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUnderlyingStrikePrice :: FIXTag+tUnderlyingStrikePrice = FIXTag +   { tName = "UnderlyingStrikePrice"+   , tnum = 316+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tUnderlyingOptAttribute :: FIXTag+tUnderlyingOptAttribute = FIXTag +   { tName = "UnderlyingOptAttribute"+   , tnum = 317+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tUnderlyingCurrency :: FIXTag+tUnderlyingCurrency = FIXTag +   { tName = "UnderlyingCurrency"+   , tnum = 318+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tRatioQty :: FIXTag+tRatioQty = FIXTag +   { tName = "RatioQty"+   , tnum = 319+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSecurityReqID :: FIXTag+tSecurityReqID = FIXTag +   { tName = "SecurityReqID"+   , tnum = 320+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecurityRequestType :: FIXTag+tSecurityRequestType = FIXTag +   { tName = "SecurityRequestType"+   , tnum = 321+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecurityResponseID :: FIXTag+tSecurityResponseID = FIXTag +   { tName = "SecurityResponseID"+   , tnum = 322+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecurityResponseType :: FIXTag+tSecurityResponseType = FIXTag +   { tName = "SecurityResponseType"+   , tnum = 323+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecurityStatusReqID :: FIXTag+tSecurityStatusReqID = FIXTag +   { tName = "SecurityStatusReqID"+   , tnum = 324+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnsolicitedIndicator :: FIXTag+tUnsolicitedIndicator = FIXTag +   { tName = "UnsolicitedIndicator"+   , tnum = 325+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tSecurityTradingStatus :: FIXTag+tSecurityTradingStatus = FIXTag +   { tName = "SecurityTradingStatus"+   , tnum = 326+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tHaltReasonChar :: FIXTag+tHaltReasonChar = FIXTag +   { tName = "HaltReasonChar"+   , tnum = 327+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tInViewOfCommon :: FIXTag+tInViewOfCommon = FIXTag +   { tName = "InViewOfCommon"+   , tnum = 328+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tDueToRelated :: FIXTag+tDueToRelated = FIXTag +   { tName = "DueToRelated"+   , tnum = 329+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tBuyVolume :: FIXTag+tBuyVolume = FIXTag +   { tName = "BuyVolume"+   , tnum = 330+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSellVolume :: FIXTag+tSellVolume = FIXTag +   { tName = "SellVolume"+   , tnum = 331+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tHighPx :: FIXTag+tHighPx = FIXTag +   { tName = "HighPx"+   , tnum = 332+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLowPx :: FIXTag+tLowPx = FIXTag +   { tName = "LowPx"+   , tnum = 333+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAdjustment :: FIXTag+tAdjustment = FIXTag +   { tName = "Adjustment"+   , tnum = 334+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradSesReqID :: FIXTag+tTradSesReqID = FIXTag +   { tName = "TradSesReqID"+   , tnum = 335+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTradingSessionID :: FIXTag+tTradingSessionID = FIXTag +   { tName = "TradingSessionID"+   , tnum = 336+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tContraTrader :: FIXTag+tContraTrader = FIXTag +   { tName = "ContraTrader"+   , tnum = 337+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTradSesMethod :: FIXTag+tTradSesMethod = FIXTag +   { tName = "TradSesMethod"+   , tnum = 338+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradSesMode :: FIXTag+tTradSesMode = FIXTag +   { tName = "TradSesMode"+   , tnum = 339+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradSesStatus :: FIXTag+tTradSesStatus = FIXTag +   { tName = "TradSesStatus"+   , tnum = 340+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradSesStartTime :: FIXTag+tTradSesStartTime = FIXTag +   { tName = "TradSesStartTime"+   , tnum = 341+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tTradSesOpenTime :: FIXTag+tTradSesOpenTime = FIXTag +   { tName = "TradSesOpenTime"+   , tnum = 342+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tTradSesPreCloseTime :: FIXTag+tTradSesPreCloseTime = FIXTag +   { tName = "TradSesPreCloseTime"+   , tnum = 343+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tTradSesCloseTime :: FIXTag+tTradSesCloseTime = FIXTag +   { tName = "TradSesCloseTime"+   , tnum = 344+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tTradSesEndTime :: FIXTag+tTradSesEndTime = FIXTag +   { tName = "TradSesEndTime"+   , tnum = 345+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tNumberOfOrders :: FIXTag+tNumberOfOrders = FIXTag +   { tName = "NumberOfOrders"+   , tnum = 346+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMessageEncoding :: FIXTag+tMessageEncoding = FIXTag +   { tName = "MessageEncoding"+   , tnum = 347+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tEncodedIssuerLen :: FIXTag+tEncodedIssuerLen = FIXTag +   { tName = "EncodedIssuerLen"+   , tnum = 348+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedIssuer :: FIXTag+tEncodedIssuer = FIXTag +   { tName = "EncodedIssuer"+   , tnum = 349+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedSecurityDescLen :: FIXTag+tEncodedSecurityDescLen = FIXTag +   { tName = "EncodedSecurityDescLen"+   , tnum = 350+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedSecurityDesc :: FIXTag+tEncodedSecurityDesc = FIXTag +   { tName = "EncodedSecurityDesc"+   , tnum = 351+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedListExecInstLen :: FIXTag+tEncodedListExecInstLen = FIXTag +   { tName = "EncodedListExecInstLen"+   , tnum = 352+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedListExecInst :: FIXTag+tEncodedListExecInst = FIXTag +   { tName = "EncodedListExecInst"+   , tnum = 353+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedTextLen :: FIXTag+tEncodedTextLen = FIXTag +   { tName = "EncodedTextLen"+   , tnum = 354+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedText :: FIXTag+tEncodedText = FIXTag +   { tName = "EncodedText"+   , tnum = 355+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedSubjectLen :: FIXTag+tEncodedSubjectLen = FIXTag +   { tName = "EncodedSubjectLen"+   , tnum = 356+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedSubject :: FIXTag+tEncodedSubject = FIXTag +   { tName = "EncodedSubject"+   , tnum = 357+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedHeadlineLen :: FIXTag+tEncodedHeadlineLen = FIXTag +   { tName = "EncodedHeadlineLen"+   , tnum = 358+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedHeadline :: FIXTag+tEncodedHeadline = FIXTag +   { tName = "EncodedHeadline"+   , tnum = 359+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedAllocTextLen :: FIXTag+tEncodedAllocTextLen = FIXTag +   { tName = "EncodedAllocTextLen"+   , tnum = 360+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedAllocText :: FIXTag+tEncodedAllocText = FIXTag +   { tName = "EncodedAllocText"+   , tnum = 361+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedUnderlyingIssuerLen :: FIXTag+tEncodedUnderlyingIssuerLen = FIXTag +   { tName = "EncodedUnderlyingIssuerLen"+   , tnum = 362+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedUnderlyingIssuer :: FIXTag+tEncodedUnderlyingIssuer = FIXTag +   { tName = "EncodedUnderlyingIssuer"+   , tnum = 363+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tEncodedUnderlyingSecurityDescLen :: FIXTag+tEncodedUnderlyingSecurityDescLen = FIXTag +   { tName = "EncodedUnderlyingSecurityDescLen"+   , tnum = 364+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedUnderlyingSecurityDesc :: FIXTag+tEncodedUnderlyingSecurityDesc = FIXTag +   { tName = "EncodedUnderlyingSecurityDesc"+   , tnum = 365+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tAllocPrice :: FIXTag+tAllocPrice = FIXTag +   { tName = "AllocPrice"+   , tnum = 366+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tQuoteSetValidUntilTime :: FIXTag+tQuoteSetValidUntilTime = FIXTag +   { tName = "QuoteSetValidUntilTime"+   , tnum = 367+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tQuoteEntryRejectReason :: FIXTag+tQuoteEntryRejectReason = FIXTag +   { tName = "QuoteEntryRejectReason"+   , tnum = 368+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLastMsgSeqNumProcessed :: FIXTag+tLastMsgSeqNumProcessed = FIXTag +   { tName = "LastMsgSeqNumProcessed"+   , tnum = 369+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOnBehalfOfSendingTime :: FIXTag+tOnBehalfOfSendingTime = FIXTag +   { tName = "OnBehalfOfSendingTime"+   , tnum = 370+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tRefTagID :: FIXTag+tRefTagID = FIXTag +   { tName = "RefTagID"+   , tnum = 371+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRefMsgType :: FIXTag+tRefMsgType = FIXTag +   { tName = "RefMsgType"+   , tnum = 372+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSessionRejectReason :: FIXTag+tSessionRejectReason = FIXTag +   { tName = "SessionRejectReason"+   , tnum = 373+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tBidRequestTransType :: FIXTag+tBidRequestTransType = FIXTag +   { tName = "BidRequestTransType"+   , tnum = 374+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tContraBroker :: FIXTag+tContraBroker = FIXTag +   { tName = "ContraBroker"+   , tnum = 375+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tComplianceID :: FIXTag+tComplianceID = FIXTag +   { tName = "ComplianceID"+   , tnum = 376+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSolicitedFlag :: FIXTag+tSolicitedFlag = FIXTag +   { tName = "SolicitedFlag"+   , tnum = 377+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tExecRestatementReason :: FIXTag+tExecRestatementReason = FIXTag +   { tName = "ExecRestatementReason"+   , tnum = 378+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tBusinessRejectRefID :: FIXTag+tBusinessRejectRefID = FIXTag +   { tName = "BusinessRejectRefID"+   , tnum = 379+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tBusinessRejectReason :: FIXTag+tBusinessRejectReason = FIXTag +   { tName = "BusinessRejectReason"+   , tnum = 380+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tGrossTradeAmt :: FIXTag+tGrossTradeAmt = FIXTag +   { tName = "GrossTradeAmt"+   , tnum = 381+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoContraBrokers :: FIXTag+tNoContraBrokers = FIXTag +   { tName = "NoContraBrokers"+   , tnum = 382+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMaxMessageSize :: FIXTag+tMaxMessageSize = FIXTag +   { tName = "MaxMessageSize"+   , tnum = 383+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoMsgTypes :: FIXTag+tNoMsgTypes = FIXTag +   { tName = "NoMsgTypes"+   , tnum = 384+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMsgDirection :: FIXTag+tMsgDirection = FIXTag +   { tName = "MsgDirection"+   , tnum = 385+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoTradingSessions :: FIXTag+tNoTradingSessions = FIXTag +   { tName = "NoTradingSessions"+   , tnum = 386+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTotalVolumeTraded :: FIXTag+tTotalVolumeTraded = FIXTag +   { tName = "TotalVolumeTraded"+   , tnum = 387+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tDiscretionInst :: FIXTag+tDiscretionInst = FIXTag +   { tName = "DiscretionInst"+   , tnum = 388+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tDiscretionOffsetValue :: FIXTag+tDiscretionOffsetValue = FIXTag +   { tName = "DiscretionOffsetValue"+   , tnum = 389+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBidID :: FIXTag+tBidID = FIXTag +   { tName = "BidID"+   , tnum = 390+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tClientBidID :: FIXTag+tClientBidID = FIXTag +   { tName = "ClientBidID"+   , tnum = 391+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tListName :: FIXTag+tListName = FIXTag +   { tName = "ListName"+   , tnum = 392+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTotNoRelatedSym :: FIXTag+tTotNoRelatedSym = FIXTag +   { tName = "TotNoRelatedSym"+   , tnum = 393+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tBidType :: FIXTag+tBidType = FIXTag +   { tName = "BidType"+   , tnum = 394+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNumTickets :: FIXTag+tNumTickets = FIXTag +   { tName = "NumTickets"+   , tnum = 395+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSideValue1 :: FIXTag+tSideValue1 = FIXTag +   { tName = "SideValue1"+   , tnum = 396+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSideValue2 :: FIXTag+tSideValue2 = FIXTag +   { tName = "SideValue2"+   , tnum = 397+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoBidDescriptors :: FIXTag+tNoBidDescriptors = FIXTag +   { tName = "NoBidDescriptors"+   , tnum = 398+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tBidDescriptorType :: FIXTag+tBidDescriptorType = FIXTag +   { tName = "BidDescriptorType"+   , tnum = 399+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tBidDescriptor :: FIXTag+tBidDescriptor = FIXTag +   { tName = "BidDescriptor"+   , tnum = 400+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSideValueInd :: FIXTag+tSideValueInd = FIXTag +   { tName = "SideValueInd"+   , tnum = 401+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLiquidityPctLow :: FIXTag+tLiquidityPctLow = FIXTag +   { tName = "LiquidityPctLow"+   , tnum = 402+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLiquidityPctHigh :: FIXTag+tLiquidityPctHigh = FIXTag +   { tName = "LiquidityPctHigh"+   , tnum = 403+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLiquidityValue :: FIXTag+tLiquidityValue = FIXTag +   { tName = "LiquidityValue"+   , tnum = 404+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tEFPTrackingError :: FIXTag+tEFPTrackingError = FIXTag +   { tName = "EFPTrackingError"+   , tnum = 405+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tFairValue :: FIXTag+tFairValue = FIXTag +   { tName = "FairValue"+   , tnum = 406+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOutsideIndexPct :: FIXTag+tOutsideIndexPct = FIXTag +   { tName = "OutsideIndexPct"+   , tnum = 407+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tValueOfFutures :: FIXTag+tValueOfFutures = FIXTag +   { tName = "ValueOfFutures"+   , tnum = 408+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLiquidityIndType :: FIXTag+tLiquidityIndType = FIXTag +   { tName = "LiquidityIndType"+   , tnum = 409+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tWtAverageLiquidity :: FIXTag+tWtAverageLiquidity = FIXTag +   { tName = "WtAverageLiquidity"+   , tnum = 410+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tExchangeForPhysical :: FIXTag+tExchangeForPhysical = FIXTag +   { tName = "ExchangeForPhysical"+   , tnum = 411+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tOutMainCntryUIndex :: FIXTag+tOutMainCntryUIndex = FIXTag +   { tName = "OutMainCntryUIndex"+   , tnum = 412+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCrossPercent :: FIXTag+tCrossPercent = FIXTag +   { tName = "CrossPercent"+   , tnum = 413+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tProgRptReqs :: FIXTag+tProgRptReqs = FIXTag +   { tName = "ProgRptReqs"+   , tnum = 414+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tProgPeriodInterval :: FIXTag+tProgPeriodInterval = FIXTag +   { tName = "ProgPeriodInterval"+   , tnum = 415+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tIncTaxInd :: FIXTag+tIncTaxInd = FIXTag +   { tName = "IncTaxInd"+   , tnum = 416+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNumBidders :: FIXTag+tNumBidders = FIXTag +   { tName = "NumBidders"+   , tnum = 417+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tBidTradeType :: FIXTag+tBidTradeType = FIXTag +   { tName = "BidTradeType"+   , tnum = 418+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tBasisPxType :: FIXTag+tBasisPxType = FIXTag +   { tName = "BasisPxType"+   , tnum = 419+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoBidComponents :: FIXTag+tNoBidComponents = FIXTag +   { tName = "NoBidComponents"+   , tnum = 420+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCountry :: FIXTag+tCountry = FIXTag +   { tName = "Country"+   , tnum = 421+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTotNoStrikes :: FIXTag+tTotNoStrikes = FIXTag +   { tName = "TotNoStrikes"+   , tnum = 422+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPriceType :: FIXTag+tPriceType = FIXTag +   { tName = "PriceType"+   , tnum = 423+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tDayOrderQty :: FIXTag+tDayOrderQty = FIXTag +   { tName = "DayOrderQty"+   , tnum = 424+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tDayCumQty :: FIXTag+tDayCumQty = FIXTag +   { tName = "DayCumQty"+   , tnum = 425+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tDayAvgPx :: FIXTag+tDayAvgPx = FIXTag +   { tName = "DayAvgPx"+   , tnum = 426+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tGTBookingInst :: FIXTag+tGTBookingInst = FIXTag +   { tName = "GTBookingInst"+   , tnum = 427+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoStrikes :: FIXTag+tNoStrikes = FIXTag +   { tName = "NoStrikes"+   , tnum = 428+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tListStatusType :: FIXTag+tListStatusType = FIXTag +   { tName = "ListStatusType"+   , tnum = 429+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNetGrossInd :: FIXTag+tNetGrossInd = FIXTag +   { tName = "NetGrossInd"+   , tnum = 430+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tListOrderStatus :: FIXTag+tListOrderStatus = FIXTag +   { tName = "ListOrderStatus"+   , tnum = 431+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tExpireDate :: FIXTag+tExpireDate = FIXTag +   { tName = "ExpireDate"+   , tnum = 432+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tListExecInstType :: FIXTag+tListExecInstType = FIXTag +   { tName = "ListExecInstType"+   , tnum = 433+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCxlRejResponseTo :: FIXTag+tCxlRejResponseTo = FIXTag +   { tName = "CxlRejResponseTo"+   , tnum = 434+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tUnderlyingCouponRate :: FIXTag+tUnderlyingCouponRate = FIXTag +   { tName = "UnderlyingCouponRate"+   , tnum = 435+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tUnderlyingContractMultiplier :: FIXTag+tUnderlyingContractMultiplier = FIXTag +   { tName = "UnderlyingContractMultiplier"+   , tnum = 436+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tContraTradeQty :: FIXTag+tContraTradeQty = FIXTag +   { tName = "ContraTradeQty"+   , tnum = 437+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tContraTradeTime :: FIXTag+tContraTradeTime = FIXTag +   { tName = "ContraTradeTime"+   , tnum = 438+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tClearingFirm :: FIXTag+tClearingFirm = FIXTag +   { tName = "ClearingFirm"+   , tnum = 439+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tClearingAccount :: FIXTag+tClearingAccount = FIXTag +   { tName = "ClearingAccount"+   , tnum = 440+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLiquidityNumSecurities :: FIXTag+tLiquidityNumSecurities = FIXTag +   { tName = "LiquidityNumSecurities"+   , tnum = 441+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMultiLegReportingType :: FIXTag+tMultiLegReportingType = FIXTag +   { tName = "MultiLegReportingType"+   , tnum = 442+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tStrikeTime :: FIXTag+tStrikeTime = FIXTag +   { tName = "StrikeTime"+   , tnum = 443+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tListStatusText :: FIXTag+tListStatusText = FIXTag +   { tName = "ListStatusText"+   , tnum = 444+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tEncodedListStatusTextLen :: FIXTag+tEncodedListStatusTextLen = FIXTag +   { tName = "EncodedListStatusTextLen"+   , tnum = 445+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedListStatusText :: FIXTag+tEncodedListStatusText = FIXTag +   { tName = "EncodedListStatusText"+   , tnum = 446+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tPartyIDSource :: FIXTag+tPartyIDSource = FIXTag +   { tName = "PartyIDSource"+   , tnum = 447+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tPartyID :: FIXTag+tPartyID = FIXTag +   { tName = "PartyID"+   , tnum = 448+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTotalVolumeTradedDate :: FIXTag+tTotalVolumeTradedDate = FIXTag +   { tName = "TotalVolumeTradedDate"+   , tnum = 449+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tTotalVolumeTradedTime :: FIXTag+tTotalVolumeTradedTime = FIXTag +   { tName = "TotalVolumeTradedTime"+   , tnum = 450+   , tparser = toFIXTimeOnly+   , arbitraryValue = FIXTimeOnly <$> arbitrary }++tNetChgPrevDay :: FIXTag+tNetChgPrevDay = FIXTag +   { tName = "NetChgPrevDay"+   , tnum = 451+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tPartyRole :: FIXTag+tPartyRole = FIXTag +   { tName = "PartyRole"+   , tnum = 452+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoPartyIDs :: FIXTag+tNoPartyIDs = FIXTag +   { tName = "NoPartyIDs"+   , tnum = 453+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoSecurityAltID :: FIXTag+tNoSecurityAltID = FIXTag +   { tName = "NoSecurityAltID"+   , tnum = 454+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecurityAltID :: FIXTag+tSecurityAltID = FIXTag +   { tName = "SecurityAltID"+   , tnum = 455+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecurityAltIDSource :: FIXTag+tSecurityAltIDSource = FIXTag +   { tName = "SecurityAltIDSource"+   , tnum = 456+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoUnderlyingSecurityAltID :: FIXTag+tNoUnderlyingSecurityAltID = FIXTag +   { tName = "NoUnderlyingSecurityAltID"+   , tnum = 457+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUnderlyingSecurityAltID :: FIXTag+tUnderlyingSecurityAltID = FIXTag +   { tName = "UnderlyingSecurityAltID"+   , tnum = 458+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingSecurityAltIDSource :: FIXTag+tUnderlyingSecurityAltIDSource = FIXTag +   { tName = "UnderlyingSecurityAltIDSource"+   , tnum = 459+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tProduct :: FIXTag+tProduct = FIXTag +   { tName = "Product"+   , tnum = 460+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCFICode :: FIXTag+tCFICode = FIXTag +   { tName = "CFICode"+   , tnum = 461+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingProduct :: FIXTag+tUnderlyingProduct = FIXTag +   { tName = "UnderlyingProduct"+   , tnum = 462+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUnderlyingCFICode :: FIXTag+tUnderlyingCFICode = FIXTag +   { tName = "UnderlyingCFICode"+   , tnum = 463+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTestMessageIndicator :: FIXTag+tTestMessageIndicator = FIXTag +   { tName = "TestMessageIndicator"+   , tnum = 464+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tQuantityType :: FIXTag+tQuantityType = FIXTag +   { tName = "QuantityType"+   , tnum = 465+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tBookingRefID :: FIXTag+tBookingRefID = FIXTag +   { tName = "BookingRefID"+   , tnum = 466+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tIndividualAllocID :: FIXTag+tIndividualAllocID = FIXTag +   { tName = "IndividualAllocID"+   , tnum = 467+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tRoundingDirection :: FIXTag+tRoundingDirection = FIXTag +   { tName = "RoundingDirection"+   , tnum = 468+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tRoundingModulus :: FIXTag+tRoundingModulus = FIXTag +   { tName = "RoundingModulus"+   , tnum = 469+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCountryOfIssue :: FIXTag+tCountryOfIssue = FIXTag +   { tName = "CountryOfIssue"+   , tnum = 470+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tStateOrProvinceOfIssue :: FIXTag+tStateOrProvinceOfIssue = FIXTag +   { tName = "StateOrProvinceOfIssue"+   , tnum = 471+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLocaleOfIssue :: FIXTag+tLocaleOfIssue = FIXTag +   { tName = "LocaleOfIssue"+   , tnum = 472+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoRegistDtls :: FIXTag+tNoRegistDtls = FIXTag +   { tName = "NoRegistDtls"+   , tnum = 473+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMailingDtls :: FIXTag+tMailingDtls = FIXTag +   { tName = "MailingDtls"+   , tnum = 474+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tInvestorCountryOfResidence :: FIXTag+tInvestorCountryOfResidence = FIXTag +   { tName = "InvestorCountryOfResidence"+   , tnum = 475+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tPaymentRef :: FIXTag+tPaymentRef = FIXTag +   { tName = "PaymentRef"+   , tnum = 476+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tDistribPaymentMethod :: FIXTag+tDistribPaymentMethod = FIXTag +   { tName = "DistribPaymentMethod"+   , tnum = 477+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCashDistribCurr :: FIXTag+tCashDistribCurr = FIXTag +   { tName = "CashDistribCurr"+   , tnum = 478+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCommCurrency :: FIXTag+tCommCurrency = FIXTag +   { tName = "CommCurrency"+   , tnum = 479+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCancellationRights :: FIXTag+tCancellationRights = FIXTag +   { tName = "CancellationRights"+   , tnum = 480+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMoneyLaunderingStatus :: FIXTag+tMoneyLaunderingStatus = FIXTag +   { tName = "MoneyLaunderingStatus"+   , tnum = 481+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMailingInst :: FIXTag+tMailingInst = FIXTag +   { tName = "MailingInst"+   , tnum = 482+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTransBkdTime :: FIXTag+tTransBkdTime = FIXTag +   { tName = "TransBkdTime"+   , tnum = 483+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tExecPriceType :: FIXTag+tExecPriceType = FIXTag +   { tName = "ExecPriceType"+   , tnum = 484+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tExecPriceAdjustment :: FIXTag+tExecPriceAdjustment = FIXTag +   { tName = "ExecPriceAdjustment"+   , tnum = 485+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tDateOfBirth :: FIXTag+tDateOfBirth = FIXTag +   { tName = "DateOfBirth"+   , tnum = 486+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tTradeReportTransType :: FIXTag+tTradeReportTransType = FIXTag +   { tName = "TradeReportTransType"+   , tnum = 487+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCardHolderName :: FIXTag+tCardHolderName = FIXTag +   { tName = "CardHolderName"+   , tnum = 488+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCardNumber :: FIXTag+tCardNumber = FIXTag +   { tName = "CardNumber"+   , tnum = 489+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCardExpDate :: FIXTag+tCardExpDate = FIXTag +   { tName = "CardExpDate"+   , tnum = 490+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tCardIssNum :: FIXTag+tCardIssNum = FIXTag +   { tName = "CardIssNum"+   , tnum = 491+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tPaymentMethod :: FIXTag+tPaymentMethod = FIXTag +   { tName = "PaymentMethod"+   , tnum = 492+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRegistAcctType :: FIXTag+tRegistAcctType = FIXTag +   { tName = "RegistAcctType"+   , tnum = 493+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tDesignation :: FIXTag+tDesignation = FIXTag +   { tName = "Designation"+   , tnum = 494+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTaxAdvantageType :: FIXTag+tTaxAdvantageType = FIXTag +   { tName = "TaxAdvantageType"+   , tnum = 495+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRegistRejReasonText :: FIXTag+tRegistRejReasonText = FIXTag +   { tName = "RegistRejReasonText"+   , tnum = 496+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tFundRenewWaiv :: FIXTag+tFundRenewWaiv = FIXTag +   { tName = "FundRenewWaiv"+   , tnum = 497+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tCashDistribAgentName :: FIXTag+tCashDistribAgentName = FIXTag +   { tName = "CashDistribAgentName"+   , tnum = 498+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashDistribAgentCode :: FIXTag+tCashDistribAgentCode = FIXTag +   { tName = "CashDistribAgentCode"+   , tnum = 499+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashDistribAgentAcctNumber :: FIXTag+tCashDistribAgentAcctNumber = FIXTag +   { tName = "CashDistribAgentAcctNumber"+   , tnum = 500+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashDistribPayRef :: FIXTag+tCashDistribPayRef = FIXTag +   { tName = "CashDistribPayRef"+   , tnum = 501+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashDistribAgentAcctName :: FIXTag+tCashDistribAgentAcctName = FIXTag +   { tName = "CashDistribAgentAcctName"+   , tnum = 502+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCardStartDate :: FIXTag+tCardStartDate = FIXTag +   { tName = "CardStartDate"+   , tnum = 503+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tPaymentDate :: FIXTag+tPaymentDate = FIXTag +   { tName = "PaymentDate"+   , tnum = 504+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tPaymentRemitterID :: FIXTag+tPaymentRemitterID = FIXTag +   { tName = "PaymentRemitterID"+   , tnum = 505+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tRegistStatus :: FIXTag+tRegistStatus = FIXTag +   { tName = "RegistStatus"+   , tnum = 506+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tRegistRejReasonCode :: FIXTag+tRegistRejReasonCode = FIXTag +   { tName = "RegistRejReasonCode"+   , tnum = 507+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRegistRefID :: FIXTag+tRegistRefID = FIXTag +   { tName = "RegistRefID"+   , tnum = 508+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tRegistDtls :: FIXTag+tRegistDtls = FIXTag +   { tName = "RegistDtls"+   , tnum = 509+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoDistribInsts :: FIXTag+tNoDistribInsts = FIXTag +   { tName = "NoDistribInsts"+   , tnum = 510+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRegistEmail :: FIXTag+tRegistEmail = FIXTag +   { tName = "RegistEmail"+   , tnum = 511+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tDistribPercentage :: FIXTag+tDistribPercentage = FIXTag +   { tName = "DistribPercentage"+   , tnum = 512+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tRegistID :: FIXTag+tRegistID = FIXTag +   { tName = "RegistID"+   , tnum = 513+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tRegistTransType :: FIXTag+tRegistTransType = FIXTag +   { tName = "RegistTransType"+   , tnum = 514+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tExecValuationPoint :: FIXTag+tExecValuationPoint = FIXTag +   { tName = "ExecValuationPoint"+   , tnum = 515+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tOrderPercent :: FIXTag+tOrderPercent = FIXTag +   { tName = "OrderPercent"+   , tnum = 516+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOwnershipType :: FIXTag+tOwnershipType = FIXTag +   { tName = "OwnershipType"+   , tnum = 517+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNoContAmts :: FIXTag+tNoContAmts = FIXTag +   { tName = "NoContAmts"+   , tnum = 518+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tContAmtType :: FIXTag+tContAmtType = FIXTag +   { tName = "ContAmtType"+   , tnum = 519+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tContAmtValue :: FIXTag+tContAmtValue = FIXTag +   { tName = "ContAmtValue"+   , tnum = 520+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tContAmtCurr :: FIXTag+tContAmtCurr = FIXTag +   { tName = "ContAmtCurr"+   , tnum = 521+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tOwnerType :: FIXTag+tOwnerType = FIXTag +   { tName = "OwnerType"+   , tnum = 522+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPartySubID :: FIXTag+tPartySubID = FIXTag +   { tName = "PartySubID"+   , tnum = 523+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNestedPartyID :: FIXTag+tNestedPartyID = FIXTag +   { tName = "NestedPartyID"+   , tnum = 524+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNestedPartyIDSource :: FIXTag+tNestedPartyIDSource = FIXTag +   { tName = "NestedPartyIDSource"+   , tnum = 525+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSecondaryClOrdID :: FIXTag+tSecondaryClOrdID = FIXTag +   { tName = "SecondaryClOrdID"+   , tnum = 526+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecondaryExecID :: FIXTag+tSecondaryExecID = FIXTag +   { tName = "SecondaryExecID"+   , tnum = 527+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tOrderCapacity :: FIXTag+tOrderCapacity = FIXTag +   { tName = "OrderCapacity"+   , tnum = 528+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tOrderRestrictions :: FIXTag+tOrderRestrictions = FIXTag +   { tName = "OrderRestrictions"+   , tnum = 529+   , tparser = toFIXMultipleValueString+   , arbitraryValue = FIXMultipleValueString <$> arbitrary }++tMassCancelRequestType :: FIXTag+tMassCancelRequestType = FIXTag +   { tName = "MassCancelRequestType"+   , tnum = 530+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMassCancelResponse :: FIXTag+tMassCancelResponse = FIXTag +   { tName = "MassCancelResponse"+   , tnum = 531+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMassCancelRejectReason :: FIXTag+tMassCancelRejectReason = FIXTag +   { tName = "MassCancelRejectReason"+   , tnum = 532+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tTotalAffectedOrders :: FIXTag+tTotalAffectedOrders = FIXTag +   { tName = "TotalAffectedOrders"+   , tnum = 533+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoAffectedOrders :: FIXTag+tNoAffectedOrders = FIXTag +   { tName = "NoAffectedOrders"+   , tnum = 534+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAffectedOrderID :: FIXTag+tAffectedOrderID = FIXTag +   { tName = "AffectedOrderID"+   , tnum = 535+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAffectedSecondaryOrderID :: FIXTag+tAffectedSecondaryOrderID = FIXTag +   { tName = "AffectedSecondaryOrderID"+   , tnum = 536+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tQuoteType :: FIXTag+tQuoteType = FIXTag +   { tName = "QuoteType"+   , tnum = 537+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNestedPartyRole :: FIXTag+tNestedPartyRole = FIXTag +   { tName = "NestedPartyRole"+   , tnum = 538+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoNestedPartyIDs :: FIXTag+tNoNestedPartyIDs = FIXTag +   { tName = "NoNestedPartyIDs"+   , tnum = 539+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTotalAccruedInterestAmt :: FIXTag+tTotalAccruedInterestAmt = FIXTag +   { tName = "TotalAccruedInterestAmt"+   , tnum = 540+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMaturityDate :: FIXTag+tMaturityDate = FIXTag +   { tName = "MaturityDate"+   , tnum = 541+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tUnderlyingMaturityDate :: FIXTag+tUnderlyingMaturityDate = FIXTag +   { tName = "UnderlyingMaturityDate"+   , tnum = 542+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tInstrRegistry :: FIXTag+tInstrRegistry = FIXTag +   { tName = "InstrRegistry"+   , tnum = 543+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCashMargin :: FIXTag+tCashMargin = FIXTag +   { tName = "CashMargin"+   , tnum = 544+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNestedPartySubID :: FIXTag+tNestedPartySubID = FIXTag +   { tName = "NestedPartySubID"+   , tnum = 545+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tScope :: FIXTag+tScope = FIXTag +   { tName = "Scope"+   , tnum = 546+   , tparser = toFIXMultipleValueString+   , arbitraryValue = FIXMultipleValueString <$> arbitrary }++tMDImplicitDelete :: FIXTag+tMDImplicitDelete = FIXTag +   { tName = "MDImplicitDelete"+   , tnum = 547+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tCrossID :: FIXTag+tCrossID = FIXTag +   { tName = "CrossID"+   , tnum = 548+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCrossType :: FIXTag+tCrossType = FIXTag +   { tName = "CrossType"+   , tnum = 549+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCrossPrioritization :: FIXTag+tCrossPrioritization = FIXTag +   { tName = "CrossPrioritization"+   , tnum = 550+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOrigCrossID :: FIXTag+tOrigCrossID = FIXTag +   { tName = "OrigCrossID"+   , tnum = 551+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoSides :: FIXTag+tNoSides = FIXTag +   { tName = "NoSides"+   , tnum = 552+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUsername :: FIXTag+tUsername = FIXTag +   { tName = "Username"+   , tnum = 553+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tPassword :: FIXTag+tPassword = FIXTag +   { tName = "Password"+   , tnum = 554+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoLegs :: FIXTag+tNoLegs = FIXTag +   { tName = "NoLegs"+   , tnum = 555+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLegCurrency :: FIXTag+tLegCurrency = FIXTag +   { tName = "LegCurrency"+   , tnum = 556+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTotNoSecurityTypes :: FIXTag+tTotNoSecurityTypes = FIXTag +   { tName = "TotNoSecurityTypes"+   , tnum = 557+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoSecurityTypes :: FIXTag+tNoSecurityTypes = FIXTag +   { tName = "NoSecurityTypes"+   , tnum = 558+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecurityListRequestType :: FIXTag+tSecurityListRequestType = FIXTag +   { tName = "SecurityListRequestType"+   , tnum = 559+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecurityRequestResult :: FIXTag+tSecurityRequestResult = FIXTag +   { tName = "SecurityRequestResult"+   , tnum = 560+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tRoundLot :: FIXTag+tRoundLot = FIXTag +   { tName = "RoundLot"+   , tnum = 561+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMinTradeVol :: FIXTag+tMinTradeVol = FIXTag +   { tName = "MinTradeVol"+   , tnum = 562+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMultiLegRptTypeReq :: FIXTag+tMultiLegRptTypeReq = FIXTag +   { tName = "MultiLegRptTypeReq"+   , tnum = 563+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLegPositionEffect :: FIXTag+tLegPositionEffect = FIXTag +   { tName = "LegPositionEffect"+   , tnum = 564+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLegCoveredOrUncovered :: FIXTag+tLegCoveredOrUncovered = FIXTag +   { tName = "LegCoveredOrUncovered"+   , tnum = 565+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLegPrice :: FIXTag+tLegPrice = FIXTag +   { tName = "LegPrice"+   , tnum = 566+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tTradSesStatusRejReason :: FIXTag+tTradSesStatusRejReason = FIXTag +   { tName = "TradSesStatusRejReason"+   , tnum = 567+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradeRequestID :: FIXTag+tTradeRequestID = FIXTag +   { tName = "TradeRequestID"+   , tnum = 568+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTradeRequestType :: FIXTag+tTradeRequestType = FIXTag +   { tName = "TradeRequestType"+   , tnum = 569+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPreviouslyReported :: FIXTag+tPreviouslyReported = FIXTag +   { tName = "PreviouslyReported"+   , tnum = 570+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tTradeReportID :: FIXTag+tTradeReportID = FIXTag +   { tName = "TradeReportID"+   , tnum = 571+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTradeReportRefID :: FIXTag+tTradeReportRefID = FIXTag +   { tName = "TradeReportRefID"+   , tnum = 572+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMatchStatus :: FIXTag+tMatchStatus = FIXTag +   { tName = "MatchStatus"+   , tnum = 573+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tMatchType :: FIXTag+tMatchType = FIXTag +   { tName = "MatchType"+   , tnum = 574+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tOddLot :: FIXTag+tOddLot = FIXTag +   { tName = "OddLot"+   , tnum = 575+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tNoClearingInstructions :: FIXTag+tNoClearingInstructions = FIXTag +   { tName = "NoClearingInstructions"+   , tnum = 576+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tClearingInstruction :: FIXTag+tClearingInstruction = FIXTag +   { tName = "ClearingInstruction"+   , tnum = 577+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradeInputSource :: FIXTag+tTradeInputSource = FIXTag +   { tName = "TradeInputSource"+   , tnum = 578+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTradeInputDevice :: FIXTag+tTradeInputDevice = FIXTag +   { tName = "TradeInputDevice"+   , tnum = 579+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoDates :: FIXTag+tNoDates = FIXTag +   { tName = "NoDates"+   , tnum = 580+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAccountType :: FIXTag+tAccountType = FIXTag +   { tName = "AccountType"+   , tnum = 581+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCustOrderCapacity :: FIXTag+tCustOrderCapacity = FIXTag +   { tName = "CustOrderCapacity"+   , tnum = 582+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tClOrdLinkID :: FIXTag+tClOrdLinkID = FIXTag +   { tName = "ClOrdLinkID"+   , tnum = 583+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMassStatusReqID :: FIXTag+tMassStatusReqID = FIXTag +   { tName = "MassStatusReqID"+   , tnum = 584+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMassStatusReqType :: FIXTag+tMassStatusReqType = FIXTag +   { tName = "MassStatusReqType"+   , tnum = 585+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOrigOrdModTime :: FIXTag+tOrigOrdModTime = FIXTag +   { tName = "OrigOrdModTime"+   , tnum = 586+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tLegSettlType :: FIXTag+tLegSettlType = FIXTag +   { tName = "LegSettlType"+   , tnum = 587+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLegSettlDate :: FIXTag+tLegSettlDate = FIXTag +   { tName = "LegSettlDate"+   , tnum = 588+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tDayBookingInst :: FIXTag+tDayBookingInst = FIXTag +   { tName = "DayBookingInst"+   , tnum = 589+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tBookingUnit :: FIXTag+tBookingUnit = FIXTag +   { tName = "BookingUnit"+   , tnum = 590+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tPreallocMethod :: FIXTag+tPreallocMethod = FIXTag +   { tName = "PreallocMethod"+   , tnum = 591+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tUnderlyingCountryOfIssue :: FIXTag+tUnderlyingCountryOfIssue = FIXTag +   { tName = "UnderlyingCountryOfIssue"+   , tnum = 592+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingStateOrProvinceOfIssue :: FIXTag+tUnderlyingStateOrProvinceOfIssue = FIXTag +   { tName = "UnderlyingStateOrProvinceOfIssue"+   , tnum = 593+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingLocaleOfIssue :: FIXTag+tUnderlyingLocaleOfIssue = FIXTag +   { tName = "UnderlyingLocaleOfIssue"+   , tnum = 594+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingInstrRegistry :: FIXTag+tUnderlyingInstrRegistry = FIXTag +   { tName = "UnderlyingInstrRegistry"+   , tnum = 595+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegCountryOfIssue :: FIXTag+tLegCountryOfIssue = FIXTag +   { tName = "LegCountryOfIssue"+   , tnum = 596+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegStateOrProvinceOfIssue :: FIXTag+tLegStateOrProvinceOfIssue = FIXTag +   { tName = "LegStateOrProvinceOfIssue"+   , tnum = 597+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegLocaleOfIssue :: FIXTag+tLegLocaleOfIssue = FIXTag +   { tName = "LegLocaleOfIssue"+   , tnum = 598+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegInstrRegistry :: FIXTag+tLegInstrRegistry = FIXTag +   { tName = "LegInstrRegistry"+   , tnum = 599+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegSymbol :: FIXTag+tLegSymbol = FIXTag +   { tName = "LegSymbol"+   , tnum = 600+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegSymbolSfx :: FIXTag+tLegSymbolSfx = FIXTag +   { tName = "LegSymbolSfx"+   , tnum = 601+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegSecurityID :: FIXTag+tLegSecurityID = FIXTag +   { tName = "LegSecurityID"+   , tnum = 602+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegSecurityIDSource :: FIXTag+tLegSecurityIDSource = FIXTag +   { tName = "LegSecurityIDSource"+   , tnum = 603+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoLegSecurityAltID :: FIXTag+tNoLegSecurityAltID = FIXTag +   { tName = "NoLegSecurityAltID"+   , tnum = 604+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLegSecurityAltID :: FIXTag+tLegSecurityAltID = FIXTag +   { tName = "LegSecurityAltID"+   , tnum = 605+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegSecurityAltIDSource :: FIXTag+tLegSecurityAltIDSource = FIXTag +   { tName = "LegSecurityAltIDSource"+   , tnum = 606+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegProduct :: FIXTag+tLegProduct = FIXTag +   { tName = "LegProduct"+   , tnum = 607+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLegCFICode :: FIXTag+tLegCFICode = FIXTag +   { tName = "LegCFICode"+   , tnum = 608+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegSecurityType :: FIXTag+tLegSecurityType = FIXTag +   { tName = "LegSecurityType"+   , tnum = 609+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegMaturityMonthYear :: FIXTag+tLegMaturityMonthYear = FIXTag +   { tName = "LegMaturityMonthYear"+   , tnum = 610+   , tparser = toFIXMonthYear+   , arbitraryValue = FIXMonthYear <$> arbitrary }++tLegMaturityDate :: FIXTag+tLegMaturityDate = FIXTag +   { tName = "LegMaturityDate"+   , tnum = 611+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tLegStrikePrice :: FIXTag+tLegStrikePrice = FIXTag +   { tName = "LegStrikePrice"+   , tnum = 612+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLegOptAttribute :: FIXTag+tLegOptAttribute = FIXTag +   { tName = "LegOptAttribute"+   , tnum = 613+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tLegContractMultiplier :: FIXTag+tLegContractMultiplier = FIXTag +   { tName = "LegContractMultiplier"+   , tnum = 614+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLegCouponRate :: FIXTag+tLegCouponRate = FIXTag +   { tName = "LegCouponRate"+   , tnum = 615+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLegSecurityExchange :: FIXTag+tLegSecurityExchange = FIXTag +   { tName = "LegSecurityExchange"+   , tnum = 616+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegIssuer :: FIXTag+tLegIssuer = FIXTag +   { tName = "LegIssuer"+   , tnum = 617+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tEncodedLegIssuerLen :: FIXTag+tEncodedLegIssuerLen = FIXTag +   { tName = "EncodedLegIssuerLen"+   , tnum = 618+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedLegIssuer :: FIXTag+tEncodedLegIssuer = FIXTag +   { tName = "EncodedLegIssuer"+   , tnum = 619+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tLegSecurityDesc :: FIXTag+tLegSecurityDesc = FIXTag +   { tName = "LegSecurityDesc"+   , tnum = 620+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tEncodedLegSecurityDescLen :: FIXTag+tEncodedLegSecurityDescLen = FIXTag +   { tName = "EncodedLegSecurityDescLen"+   , tnum = 621+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEncodedLegSecurityDesc :: FIXTag+tEncodedLegSecurityDesc = FIXTag +   { tName = "EncodedLegSecurityDesc"+   , tnum = 622+   , tparser = toFIXData+   , arbitraryValue = FIXData <$> arbitrary }++tLegRatioQty :: FIXTag+tLegRatioQty = FIXTag +   { tName = "LegRatioQty"+   , tnum = 623+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLegSide :: FIXTag+tLegSide = FIXTag +   { tName = "LegSide"+   , tnum = 624+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tTradingSessionSubID :: FIXTag+tTradingSessionSubID = FIXTag +   { tName = "TradingSessionSubID"+   , tnum = 625+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAllocType :: FIXTag+tAllocType = FIXTag +   { tName = "AllocType"+   , tnum = 626+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoHops :: FIXTag+tNoHops = FIXTag +   { tName = "NoHops"+   , tnum = 627+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tHopCompID :: FIXTag+tHopCompID = FIXTag +   { tName = "HopCompID"+   , tnum = 628+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tHopSendingTime :: FIXTag+tHopSendingTime = FIXTag +   { tName = "HopSendingTime"+   , tnum = 629+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tHopRefID :: FIXTag+tHopRefID = FIXTag +   { tName = "HopRefID"+   , tnum = 630+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMidPx :: FIXTag+tMidPx = FIXTag +   { tName = "MidPx"+   , tnum = 631+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBidYield :: FIXTag+tBidYield = FIXTag +   { tName = "BidYield"+   , tnum = 632+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMidYield :: FIXTag+tMidYield = FIXTag +   { tName = "MidYield"+   , tnum = 633+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOfferYield :: FIXTag+tOfferYield = FIXTag +   { tName = "OfferYield"+   , tnum = 634+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tClearingFeeIndicator :: FIXTag+tClearingFeeIndicator = FIXTag +   { tName = "ClearingFeeIndicator"+   , tnum = 635+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tWorkingIndicator :: FIXTag+tWorkingIndicator = FIXTag +   { tName = "WorkingIndicator"+   , tnum = 636+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tLegLastPx :: FIXTag+tLegLastPx = FIXTag +   { tName = "LegLastPx"+   , tnum = 637+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tPriorityIndicator :: FIXTag+tPriorityIndicator = FIXTag +   { tName = "PriorityIndicator"+   , tnum = 638+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPriceImprovement :: FIXTag+tPriceImprovement = FIXTag +   { tName = "PriceImprovement"+   , tnum = 639+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tPrice2 :: FIXTag+tPrice2 = FIXTag +   { tName = "Price2"+   , tnum = 640+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLastForwardPoints2 :: FIXTag+tLastForwardPoints2 = FIXTag +   { tName = "LastForwardPoints2"+   , tnum = 641+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBidForwardPoints2 :: FIXTag+tBidForwardPoints2 = FIXTag +   { tName = "BidForwardPoints2"+   , tnum = 642+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOfferForwardPoints2 :: FIXTag+tOfferForwardPoints2 = FIXTag +   { tName = "OfferForwardPoints2"+   , tnum = 643+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tRFQReqID :: FIXTag+tRFQReqID = FIXTag +   { tName = "RFQReqID"+   , tnum = 644+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMktBidPx :: FIXTag+tMktBidPx = FIXTag +   { tName = "MktBidPx"+   , tnum = 645+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMktOfferPx :: FIXTag+tMktOfferPx = FIXTag +   { tName = "MktOfferPx"+   , tnum = 646+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMinBidSize :: FIXTag+tMinBidSize = FIXTag +   { tName = "MinBidSize"+   , tnum = 647+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMinOfferSize :: FIXTag+tMinOfferSize = FIXTag +   { tName = "MinOfferSize"+   , tnum = 648+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tQuoteStatusReqID :: FIXTag+tQuoteStatusReqID = FIXTag +   { tName = "QuoteStatusReqID"+   , tnum = 649+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegalConfirm :: FIXTag+tLegalConfirm = FIXTag +   { tName = "LegalConfirm"+   , tnum = 650+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tUnderlyingLastPx :: FIXTag+tUnderlyingLastPx = FIXTag +   { tName = "UnderlyingLastPx"+   , tnum = 651+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tUnderlyingLastQty :: FIXTag+tUnderlyingLastQty = FIXTag +   { tName = "UnderlyingLastQty"+   , tnum = 652+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSecDefStatus :: FIXTag+tSecDefStatus = FIXTag +   { tName = "SecDefStatus"+   , tnum = 653+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLegRefID :: FIXTag+tLegRefID = FIXTag +   { tName = "LegRefID"+   , tnum = 654+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tContraLegRefID :: FIXTag+tContraLegRefID = FIXTag +   { tName = "ContraLegRefID"+   , tnum = 655+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlCurrBidFxRate :: FIXTag+tSettlCurrBidFxRate = FIXTag +   { tName = "SettlCurrBidFxRate"+   , tnum = 656+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlCurrOfferFxRate :: FIXTag+tSettlCurrOfferFxRate = FIXTag +   { tName = "SettlCurrOfferFxRate"+   , tnum = 657+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tQuoteRequestRejectReason :: FIXTag+tQuoteRequestRejectReason = FIXTag +   { tName = "QuoteRequestRejectReason"+   , tnum = 658+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSideComplianceID :: FIXTag+tSideComplianceID = FIXTag +   { tName = "SideComplianceID"+   , tnum = 659+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAcctIDSource :: FIXTag+tAcctIDSource = FIXTag +   { tName = "AcctIDSource"+   , tnum = 660+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAllocAcctIDSource :: FIXTag+tAllocAcctIDSource = FIXTag +   { tName = "AllocAcctIDSource"+   , tnum = 661+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tBenchmarkPrice :: FIXTag+tBenchmarkPrice = FIXTag +   { tName = "BenchmarkPrice"+   , tnum = 662+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tBenchmarkPriceType :: FIXTag+tBenchmarkPriceType = FIXTag +   { tName = "BenchmarkPriceType"+   , tnum = 663+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tConfirmID :: FIXTag+tConfirmID = FIXTag +   { tName = "ConfirmID"+   , tnum = 664+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tConfirmStatus :: FIXTag+tConfirmStatus = FIXTag +   { tName = "ConfirmStatus"+   , tnum = 665+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tConfirmTransType :: FIXTag+tConfirmTransType = FIXTag +   { tName = "ConfirmTransType"+   , tnum = 666+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tContractSettlMonth :: FIXTag+tContractSettlMonth = FIXTag +   { tName = "ContractSettlMonth"+   , tnum = 667+   , tparser = toFIXMonthYear+   , arbitraryValue = FIXMonthYear <$> arbitrary }++tDeliveryForm :: FIXTag+tDeliveryForm = FIXTag +   { tName = "DeliveryForm"+   , tnum = 668+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLastParPx :: FIXTag+tLastParPx = FIXTag +   { tName = "LastParPx"+   , tnum = 669+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoLegAllocs :: FIXTag+tNoLegAllocs = FIXTag +   { tName = "NoLegAllocs"+   , tnum = 670+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLegAllocAccount :: FIXTag+tLegAllocAccount = FIXTag +   { tName = "LegAllocAccount"+   , tnum = 671+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegIndividualAllocID :: FIXTag+tLegIndividualAllocID = FIXTag +   { tName = "LegIndividualAllocID"+   , tnum = 672+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegAllocQty :: FIXTag+tLegAllocQty = FIXTag +   { tName = "LegAllocQty"+   , tnum = 673+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLegAllocAcctIDSource :: FIXTag+tLegAllocAcctIDSource = FIXTag +   { tName = "LegAllocAcctIDSource"+   , tnum = 674+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegSettlCurrency :: FIXTag+tLegSettlCurrency = FIXTag +   { tName = "LegSettlCurrency"+   , tnum = 675+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegBenchmarkCurveCurrency :: FIXTag+tLegBenchmarkCurveCurrency = FIXTag +   { tName = "LegBenchmarkCurveCurrency"+   , tnum = 676+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegBenchmarkCurveName :: FIXTag+tLegBenchmarkCurveName = FIXTag +   { tName = "LegBenchmarkCurveName"+   , tnum = 677+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegBenchmarkCurvePoint :: FIXTag+tLegBenchmarkCurvePoint = FIXTag +   { tName = "LegBenchmarkCurvePoint"+   , tnum = 678+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegBenchmarkPrice :: FIXTag+tLegBenchmarkPrice = FIXTag +   { tName = "LegBenchmarkPrice"+   , tnum = 679+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLegBenchmarkPriceType :: FIXTag+tLegBenchmarkPriceType = FIXTag +   { tName = "LegBenchmarkPriceType"+   , tnum = 680+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLegBidPx :: FIXTag+tLegBidPx = FIXTag +   { tName = "LegBidPx"+   , tnum = 681+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLegIOIQty :: FIXTag+tLegIOIQty = FIXTag +   { tName = "LegIOIQty"+   , tnum = 682+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoLegStipulations :: FIXTag+tNoLegStipulations = FIXTag +   { tName = "NoLegStipulations"+   , tnum = 683+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLegOfferPx :: FIXTag+tLegOfferPx = FIXTag +   { tName = "LegOfferPx"+   , tnum = 684+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLegOrderQty :: FIXTag+tLegOrderQty = FIXTag +   { tName = "LegOrderQty"+   , tnum = 685+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLegPriceType :: FIXTag+tLegPriceType = FIXTag +   { tName = "LegPriceType"+   , tnum = 686+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLegQty :: FIXTag+tLegQty = FIXTag +   { tName = "LegQty"+   , tnum = 687+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLegStipulationType :: FIXTag+tLegStipulationType = FIXTag +   { tName = "LegStipulationType"+   , tnum = 688+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegStipulationValue :: FIXTag+tLegStipulationValue = FIXTag +   { tName = "LegStipulationValue"+   , tnum = 689+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegSwapType :: FIXTag+tLegSwapType = FIXTag +   { tName = "LegSwapType"+   , tnum = 690+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPool :: FIXTag+tPool = FIXTag +   { tName = "Pool"+   , tnum = 691+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tQuotePriceType :: FIXTag+tQuotePriceType = FIXTag +   { tName = "QuotePriceType"+   , tnum = 692+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tQuoteRespID :: FIXTag+tQuoteRespID = FIXTag +   { tName = "QuoteRespID"+   , tnum = 693+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tQuoteRespType :: FIXTag+tQuoteRespType = FIXTag +   { tName = "QuoteRespType"+   , tnum = 694+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tQuoteQualifier :: FIXTag+tQuoteQualifier = FIXTag +   { tName = "QuoteQualifier"+   , tnum = 695+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tYieldRedemptionDate :: FIXTag+tYieldRedemptionDate = FIXTag +   { tName = "YieldRedemptionDate"+   , tnum = 696+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tYieldRedemptionPrice :: FIXTag+tYieldRedemptionPrice = FIXTag +   { tName = "YieldRedemptionPrice"+   , tnum = 697+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tYieldRedemptionPriceType :: FIXTag+tYieldRedemptionPriceType = FIXTag +   { tName = "YieldRedemptionPriceType"+   , tnum = 698+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tBenchmarkSecurityID :: FIXTag+tBenchmarkSecurityID = FIXTag +   { tName = "BenchmarkSecurityID"+   , tnum = 699+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tReversalIndicator :: FIXTag+tReversalIndicator = FIXTag +   { tName = "ReversalIndicator"+   , tnum = 700+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tYieldCalcDate :: FIXTag+tYieldCalcDate = FIXTag +   { tName = "YieldCalcDate"+   , tnum = 701+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tNoPositions :: FIXTag+tNoPositions = FIXTag +   { tName = "NoPositions"+   , tnum = 702+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPosType :: FIXTag+tPosType = FIXTag +   { tName = "PosType"+   , tnum = 703+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLongQty :: FIXTag+tLongQty = FIXTag +   { tName = "LongQty"+   , tnum = 704+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tShortQty :: FIXTag+tShortQty = FIXTag +   { tName = "ShortQty"+   , tnum = 705+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tPosQtyStatus :: FIXTag+tPosQtyStatus = FIXTag +   { tName = "PosQtyStatus"+   , tnum = 706+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPosAmtType :: FIXTag+tPosAmtType = FIXTag +   { tName = "PosAmtType"+   , tnum = 707+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tPosAmt :: FIXTag+tPosAmt = FIXTag +   { tName = "PosAmt"+   , tnum = 708+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tPosTransType :: FIXTag+tPosTransType = FIXTag +   { tName = "PosTransType"+   , tnum = 709+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPosReqID :: FIXTag+tPosReqID = FIXTag +   { tName = "PosReqID"+   , tnum = 710+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoUnderlyings :: FIXTag+tNoUnderlyings = FIXTag +   { tName = "NoUnderlyings"+   , tnum = 711+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPosMaintAction :: FIXTag+tPosMaintAction = FIXTag +   { tName = "PosMaintAction"+   , tnum = 712+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOrigPosReqRefID :: FIXTag+tOrigPosReqRefID = FIXTag +   { tName = "OrigPosReqRefID"+   , tnum = 713+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tPosMaintRptRefID :: FIXTag+tPosMaintRptRefID = FIXTag +   { tName = "PosMaintRptRefID"+   , tnum = 714+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tClearingBusinessDate :: FIXTag+tClearingBusinessDate = FIXTag +   { tName = "ClearingBusinessDate"+   , tnum = 715+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tSettlSessID :: FIXTag+tSettlSessID = FIXTag +   { tName = "SettlSessID"+   , tnum = 716+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlSessSubID :: FIXTag+tSettlSessSubID = FIXTag +   { tName = "SettlSessSubID"+   , tnum = 717+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAdjustmentType :: FIXTag+tAdjustmentType = FIXTag +   { tName = "AdjustmentType"+   , tnum = 718+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tContraryInstructionIndicator :: FIXTag+tContraryInstructionIndicator = FIXTag +   { tName = "ContraryInstructionIndicator"+   , tnum = 719+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tPriorSpreadIndicator :: FIXTag+tPriorSpreadIndicator = FIXTag +   { tName = "PriorSpreadIndicator"+   , tnum = 720+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tPosMaintRptID :: FIXTag+tPosMaintRptID = FIXTag +   { tName = "PosMaintRptID"+   , tnum = 721+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tPosMaintStatus :: FIXTag+tPosMaintStatus = FIXTag +   { tName = "PosMaintStatus"+   , tnum = 722+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPosMaintResult :: FIXTag+tPosMaintResult = FIXTag +   { tName = "PosMaintResult"+   , tnum = 723+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPosReqType :: FIXTag+tPosReqType = FIXTag +   { tName = "PosReqType"+   , tnum = 724+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tResponseTransportType :: FIXTag+tResponseTransportType = FIXTag +   { tName = "ResponseTransportType"+   , tnum = 725+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tResponseDestination :: FIXTag+tResponseDestination = FIXTag +   { tName = "ResponseDestination"+   , tnum = 726+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTotalNumPosReports :: FIXTag+tTotalNumPosReports = FIXTag +   { tName = "TotalNumPosReports"+   , tnum = 727+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPosReqResult :: FIXTag+tPosReqResult = FIXTag +   { tName = "PosReqResult"+   , tnum = 728+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPosReqStatus :: FIXTag+tPosReqStatus = FIXTag +   { tName = "PosReqStatus"+   , tnum = 729+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSettlPrice :: FIXTag+tSettlPrice = FIXTag +   { tName = "SettlPrice"+   , tnum = 730+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tSettlPriceType :: FIXTag+tSettlPriceType = FIXTag +   { tName = "SettlPriceType"+   , tnum = 731+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUnderlyingSettlPrice :: FIXTag+tUnderlyingSettlPrice = FIXTag +   { tName = "UnderlyingSettlPrice"+   , tnum = 732+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tUnderlyingSettlPriceType :: FIXTag+tUnderlyingSettlPriceType = FIXTag +   { tName = "UnderlyingSettlPriceType"+   , tnum = 733+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPriorSettlPrice :: FIXTag+tPriorSettlPrice = FIXTag +   { tName = "PriorSettlPrice"+   , tnum = 734+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoQuoteQualifiers :: FIXTag+tNoQuoteQualifiers = FIXTag +   { tName = "NoQuoteQualifiers"+   , tnum = 735+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAllocSettlCurrency :: FIXTag+tAllocSettlCurrency = FIXTag +   { tName = "AllocSettlCurrency"+   , tnum = 736+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAllocSettlCurrAmt :: FIXTag+tAllocSettlCurrAmt = FIXTag +   { tName = "AllocSettlCurrAmt"+   , tnum = 737+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tInterestAtMaturity :: FIXTag+tInterestAtMaturity = FIXTag +   { tName = "InterestAtMaturity"+   , tnum = 738+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLegDatedDate :: FIXTag+tLegDatedDate = FIXTag +   { tName = "LegDatedDate"+   , tnum = 739+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tLegPool :: FIXTag+tLegPool = FIXTag +   { tName = "LegPool"+   , tnum = 740+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAllocInterestAtMaturity :: FIXTag+tAllocInterestAtMaturity = FIXTag +   { tName = "AllocInterestAtMaturity"+   , tnum = 741+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAllocAccruedInterestAmt :: FIXTag+tAllocAccruedInterestAmt = FIXTag +   { tName = "AllocAccruedInterestAmt"+   , tnum = 742+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tDeliveryDate :: FIXTag+tDeliveryDate = FIXTag +   { tName = "DeliveryDate"+   , tnum = 743+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tAssignmentMethod :: FIXTag+tAssignmentMethod = FIXTag +   { tName = "AssignmentMethod"+   , tnum = 744+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tAssignmentUnit :: FIXTag+tAssignmentUnit = FIXTag +   { tName = "AssignmentUnit"+   , tnum = 745+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOpenInterest :: FIXTag+tOpenInterest = FIXTag +   { tName = "OpenInterest"+   , tnum = 746+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tExerciseMethod :: FIXTag+tExerciseMethod = FIXTag +   { tName = "ExerciseMethod"+   , tnum = 747+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tTotNumTradeReports :: FIXTag+tTotNumTradeReports = FIXTag +   { tName = "TotNumTradeReports"+   , tnum = 748+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradeRequestResult :: FIXTag+tTradeRequestResult = FIXTag +   { tName = "TradeRequestResult"+   , tnum = 749+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradeRequestStatus :: FIXTag+tTradeRequestStatus = FIXTag +   { tName = "TradeRequestStatus"+   , tnum = 750+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradeReportRejectReason :: FIXTag+tTradeReportRejectReason = FIXTag +   { tName = "TradeReportRejectReason"+   , tnum = 751+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSideMultiLegReportingType :: FIXTag+tSideMultiLegReportingType = FIXTag +   { tName = "SideMultiLegReportingType"+   , tnum = 752+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoPosAmt :: FIXTag+tNoPosAmt = FIXTag +   { tName = "NoPosAmt"+   , tnum = 753+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAutoAcceptIndicator :: FIXTag+tAutoAcceptIndicator = FIXTag +   { tName = "AutoAcceptIndicator"+   , tnum = 754+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tAllocReportID :: FIXTag+tAllocReportID = FIXTag +   { tName = "AllocReportID"+   , tnum = 755+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoNested2PartyIDs :: FIXTag+tNoNested2PartyIDs = FIXTag +   { tName = "NoNested2PartyIDs"+   , tnum = 756+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNested2PartyID :: FIXTag+tNested2PartyID = FIXTag +   { tName = "Nested2PartyID"+   , tnum = 757+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNested2PartyIDSource :: FIXTag+tNested2PartyIDSource = FIXTag +   { tName = "Nested2PartyIDSource"+   , tnum = 758+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNested2PartyRole :: FIXTag+tNested2PartyRole = FIXTag +   { tName = "Nested2PartyRole"+   , tnum = 759+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNested2PartySubID :: FIXTag+tNested2PartySubID = FIXTag +   { tName = "Nested2PartySubID"+   , tnum = 760+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tBenchmarkSecurityIDSource :: FIXTag+tBenchmarkSecurityIDSource = FIXTag +   { tName = "BenchmarkSecurityIDSource"+   , tnum = 761+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecuritySubType :: FIXTag+tSecuritySubType = FIXTag +   { tName = "SecuritySubType"+   , tnum = 762+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingSecuritySubType :: FIXTag+tUnderlyingSecuritySubType = FIXTag +   { tName = "UnderlyingSecuritySubType"+   , tnum = 763+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegSecuritySubType :: FIXTag+tLegSecuritySubType = FIXTag +   { tName = "LegSecuritySubType"+   , tnum = 764+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAllowableOneSidednessPct :: FIXTag+tAllowableOneSidednessPct = FIXTag +   { tName = "AllowableOneSidednessPct"+   , tnum = 765+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAllowableOneSidednessValue :: FIXTag+tAllowableOneSidednessValue = FIXTag +   { tName = "AllowableOneSidednessValue"+   , tnum = 766+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tAllowableOneSidednessCurr :: FIXTag+tAllowableOneSidednessCurr = FIXTag +   { tName = "AllowableOneSidednessCurr"+   , tnum = 767+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoTrdRegTimestamps :: FIXTag+tNoTrdRegTimestamps = FIXTag +   { tName = "NoTrdRegTimestamps"+   , tnum = 768+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTrdRegTimestamp :: FIXTag+tTrdRegTimestamp = FIXTag +   { tName = "TrdRegTimestamp"+   , tnum = 769+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tTrdRegTimestampType :: FIXTag+tTrdRegTimestampType = FIXTag +   { tName = "TrdRegTimestampType"+   , tnum = 770+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTrdRegTimestampOrigin :: FIXTag+tTrdRegTimestampOrigin = FIXTag +   { tName = "TrdRegTimestampOrigin"+   , tnum = 771+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tConfirmRefID :: FIXTag+tConfirmRefID = FIXTag +   { tName = "ConfirmRefID"+   , tnum = 772+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tConfirmType :: FIXTag+tConfirmType = FIXTag +   { tName = "ConfirmType"+   , tnum = 773+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tConfirmRejReason :: FIXTag+tConfirmRejReason = FIXTag +   { tName = "ConfirmRejReason"+   , tnum = 774+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tBookingType :: FIXTag+tBookingType = FIXTag +   { tName = "BookingType"+   , tnum = 775+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tIndividualAllocRejCode :: FIXTag+tIndividualAllocRejCode = FIXTag +   { tName = "IndividualAllocRejCode"+   , tnum = 776+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSettlInstMsgID :: FIXTag+tSettlInstMsgID = FIXTag +   { tName = "SettlInstMsgID"+   , tnum = 777+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoSettlInst :: FIXTag+tNoSettlInst = FIXTag +   { tName = "NoSettlInst"+   , tnum = 778+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLastUpdateTime :: FIXTag+tLastUpdateTime = FIXTag +   { tName = "LastUpdateTime"+   , tnum = 779+   , tparser = toFIXTimestamp+   , arbitraryValue = FIXTimestamp <$> arbitrary }++tAllocSettlInstType :: FIXTag+tAllocSettlInstType = FIXTag +   { tName = "AllocSettlInstType"+   , tnum = 780+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoSettlPartyIDs :: FIXTag+tNoSettlPartyIDs = FIXTag +   { tName = "NoSettlPartyIDs"+   , tnum = 781+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSettlPartyID :: FIXTag+tSettlPartyID = FIXTag +   { tName = "SettlPartyID"+   , tnum = 782+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlPartyIDSource :: FIXTag+tSettlPartyIDSource = FIXTag +   { tName = "SettlPartyIDSource"+   , tnum = 783+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tSettlPartyRole :: FIXTag+tSettlPartyRole = FIXTag +   { tName = "SettlPartyRole"+   , tnum = 784+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSettlPartySubID :: FIXTag+tSettlPartySubID = FIXTag +   { tName = "SettlPartySubID"+   , tnum = 785+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlPartySubIDType :: FIXTag+tSettlPartySubIDType = FIXTag +   { tName = "SettlPartySubIDType"+   , tnum = 786+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tDlvyInstType :: FIXTag+tDlvyInstType = FIXTag +   { tName = "DlvyInstType"+   , tnum = 787+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tTerminationType :: FIXTag+tTerminationType = FIXTag +   { tName = "TerminationType"+   , tnum = 788+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNextExpectedMsgSeqNum :: FIXTag+tNextExpectedMsgSeqNum = FIXTag +   { tName = "NextExpectedMsgSeqNum"+   , tnum = 789+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOrdStatusReqID :: FIXTag+tOrdStatusReqID = FIXTag +   { tName = "OrdStatusReqID"+   , tnum = 790+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlInstReqID :: FIXTag+tSettlInstReqID = FIXTag +   { tName = "SettlInstReqID"+   , tnum = 791+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSettlInstReqRejCode :: FIXTag+tSettlInstReqRejCode = FIXTag +   { tName = "SettlInstReqRejCode"+   , tnum = 792+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecondaryAllocID :: FIXTag+tSecondaryAllocID = FIXTag +   { tName = "SecondaryAllocID"+   , tnum = 793+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAllocReportType :: FIXTag+tAllocReportType = FIXTag +   { tName = "AllocReportType"+   , tnum = 794+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAllocReportRefID :: FIXTag+tAllocReportRefID = FIXTag +   { tName = "AllocReportRefID"+   , tnum = 795+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAllocCancReplaceReason :: FIXTag+tAllocCancReplaceReason = FIXTag +   { tName = "AllocCancReplaceReason"+   , tnum = 796+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCopyMsgIndicator :: FIXTag+tCopyMsgIndicator = FIXTag +   { tName = "CopyMsgIndicator"+   , tnum = 797+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tAllocAccountType :: FIXTag+tAllocAccountType = FIXTag +   { tName = "AllocAccountType"+   , tnum = 798+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOrderAvgPx :: FIXTag+tOrderAvgPx = FIXTag +   { tName = "OrderAvgPx"+   , tnum = 799+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tOrderBookingQty :: FIXTag+tOrderBookingQty = FIXTag +   { tName = "OrderBookingQty"+   , tnum = 800+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoSettlPartySubIDs :: FIXTag+tNoSettlPartySubIDs = FIXTag +   { tName = "NoSettlPartySubIDs"+   , tnum = 801+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoPartySubIDs :: FIXTag+tNoPartySubIDs = FIXTag +   { tName = "NoPartySubIDs"+   , tnum = 802+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPartySubIDType :: FIXTag+tPartySubIDType = FIXTag +   { tName = "PartySubIDType"+   , tnum = 803+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoNestedPartySubIDs :: FIXTag+tNoNestedPartySubIDs = FIXTag +   { tName = "NoNestedPartySubIDs"+   , tnum = 804+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNestedPartySubIDType :: FIXTag+tNestedPartySubIDType = FIXTag +   { tName = "NestedPartySubIDType"+   , tnum = 805+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoNested2PartySubIDs :: FIXTag+tNoNested2PartySubIDs = FIXTag +   { tName = "NoNested2PartySubIDs"+   , tnum = 806+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNested2PartySubIDType :: FIXTag+tNested2PartySubIDType = FIXTag +   { tName = "Nested2PartySubIDType"+   , tnum = 807+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAllocIntermedReqType :: FIXTag+tAllocIntermedReqType = FIXTag +   { tName = "AllocIntermedReqType"+   , tnum = 808+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUnderlyingPx :: FIXTag+tUnderlyingPx = FIXTag +   { tName = "UnderlyingPx"+   , tnum = 810+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tPriceDelta :: FIXTag+tPriceDelta = FIXTag +   { tName = "PriceDelta"+   , tnum = 811+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tApplQueueMax :: FIXTag+tApplQueueMax = FIXTag +   { tName = "ApplQueueMax"+   , tnum = 812+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tApplQueueDepth :: FIXTag+tApplQueueDepth = FIXTag +   { tName = "ApplQueueDepth"+   , tnum = 813+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tApplQueueResolution :: FIXTag+tApplQueueResolution = FIXTag +   { tName = "ApplQueueResolution"+   , tnum = 814+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tApplQueueAction :: FIXTag+tApplQueueAction = FIXTag +   { tName = "ApplQueueAction"+   , tnum = 815+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoAltMDSource :: FIXTag+tNoAltMDSource = FIXTag +   { tName = "NoAltMDSource"+   , tnum = 816+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAltMDSourceID :: FIXTag+tAltMDSourceID = FIXTag +   { tName = "AltMDSourceID"+   , tnum = 817+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecondaryTradeReportID :: FIXTag+tSecondaryTradeReportID = FIXTag +   { tName = "SecondaryTradeReportID"+   , tnum = 818+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAvgPxIndicator :: FIXTag+tAvgPxIndicator = FIXTag +   { tName = "AvgPxIndicator"+   , tnum = 819+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradeLinkID :: FIXTag+tTradeLinkID = FIXTag +   { tName = "TradeLinkID"+   , tnum = 820+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tOrderInputDevice :: FIXTag+tOrderInputDevice = FIXTag +   { tName = "OrderInputDevice"+   , tnum = 821+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingTradingSessionID :: FIXTag+tUnderlyingTradingSessionID = FIXTag +   { tName = "UnderlyingTradingSessionID"+   , tnum = 822+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingTradingSessionSubID :: FIXTag+tUnderlyingTradingSessionSubID = FIXTag +   { tName = "UnderlyingTradingSessionSubID"+   , tnum = 823+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTradeLegRefID :: FIXTag+tTradeLegRefID = FIXTag +   { tName = "TradeLegRefID"+   , tnum = 824+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tExchangeRule :: FIXTag+tExchangeRule = FIXTag +   { tName = "ExchangeRule"+   , tnum = 825+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTradeAllocIndicator :: FIXTag+tTradeAllocIndicator = FIXTag +   { tName = "TradeAllocIndicator"+   , tnum = 826+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tExpirationCycle :: FIXTag+tExpirationCycle = FIXTag +   { tName = "ExpirationCycle"+   , tnum = 827+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTrdType :: FIXTag+tTrdType = FIXTag +   { tName = "TrdType"+   , tnum = 828+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTrdSubType :: FIXTag+tTrdSubType = FIXTag +   { tName = "TrdSubType"+   , tnum = 829+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTransferReason :: FIXTag+tTransferReason = FIXTag +   { tName = "TransferReason"+   , tnum = 830+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAsgnReqID :: FIXTag+tAsgnReqID = FIXTag +   { tName = "AsgnReqID"+   , tnum = 831+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTotNumAssignmentReports :: FIXTag+tTotNumAssignmentReports = FIXTag +   { tName = "TotNumAssignmentReports"+   , tnum = 832+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAsgnRptID :: FIXTag+tAsgnRptID = FIXTag +   { tName = "AsgnRptID"+   , tnum = 833+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tThresholdAmount :: FIXTag+tThresholdAmount = FIXTag +   { tName = "ThresholdAmount"+   , tnum = 834+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tPegMoveType :: FIXTag+tPegMoveType = FIXTag +   { tName = "PegMoveType"+   , tnum = 835+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPegOffsetType :: FIXTag+tPegOffsetType = FIXTag +   { tName = "PegOffsetType"+   , tnum = 836+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPegLimitType :: FIXTag+tPegLimitType = FIXTag +   { tName = "PegLimitType"+   , tnum = 837+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPegRoundDirection :: FIXTag+tPegRoundDirection = FIXTag +   { tName = "PegRoundDirection"+   , tnum = 838+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPeggedPrice :: FIXTag+tPeggedPrice = FIXTag +   { tName = "PeggedPrice"+   , tnum = 839+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tPegScope :: FIXTag+tPegScope = FIXTag +   { tName = "PegScope"+   , tnum = 840+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tDiscretionMoveType :: FIXTag+tDiscretionMoveType = FIXTag +   { tName = "DiscretionMoveType"+   , tnum = 841+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tDiscretionOffsetType :: FIXTag+tDiscretionOffsetType = FIXTag +   { tName = "DiscretionOffsetType"+   , tnum = 842+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tDiscretionLimitType :: FIXTag+tDiscretionLimitType = FIXTag +   { tName = "DiscretionLimitType"+   , tnum = 843+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tDiscretionRoundDirection :: FIXTag+tDiscretionRoundDirection = FIXTag +   { tName = "DiscretionRoundDirection"+   , tnum = 844+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tDiscretionPrice :: FIXTag+tDiscretionPrice = FIXTag +   { tName = "DiscretionPrice"+   , tnum = 845+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tDiscretionScope :: FIXTag+tDiscretionScope = FIXTag +   { tName = "DiscretionScope"+   , tnum = 846+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTargetStrategy :: FIXTag+tTargetStrategy = FIXTag +   { tName = "TargetStrategy"+   , tnum = 847+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTargetStrategyParameters :: FIXTag+tTargetStrategyParameters = FIXTag +   { tName = "TargetStrategyParameters"+   , tnum = 848+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tParticipationRate :: FIXTag+tParticipationRate = FIXTag +   { tName = "ParticipationRate"+   , tnum = 849+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tTargetStrategyPerformance :: FIXTag+tTargetStrategyPerformance = FIXTag +   { tName = "TargetStrategyPerformance"+   , tnum = 850+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tLastLiquidityInd :: FIXTag+tLastLiquidityInd = FIXTag +   { tName = "LastLiquidityInd"+   , tnum = 851+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tPublishTrdIndicator :: FIXTag+tPublishTrdIndicator = FIXTag +   { tName = "PublishTrdIndicator"+   , tnum = 852+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tShortSaleReason :: FIXTag+tShortSaleReason = FIXTag +   { tName = "ShortSaleReason"+   , tnum = 853+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tQtyType :: FIXTag+tQtyType = FIXTag +   { tName = "QtyType"+   , tnum = 854+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSecondaryTrdType :: FIXTag+tSecondaryTrdType = FIXTag +   { tName = "SecondaryTrdType"+   , tnum = 855+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTradeReportType :: FIXTag+tTradeReportType = FIXTag +   { tName = "TradeReportType"+   , tnum = 856+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAllocNoOrdersType :: FIXTag+tAllocNoOrdersType = FIXTag +   { tName = "AllocNoOrdersType"+   , tnum = 857+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tSharedCommission :: FIXTag+tSharedCommission = FIXTag +   { tName = "SharedCommission"+   , tnum = 858+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tConfirmReqID :: FIXTag+tConfirmReqID = FIXTag +   { tName = "ConfirmReqID"+   , tnum = 859+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAvgParPx :: FIXTag+tAvgParPx = FIXTag +   { tName = "AvgParPx"+   , tnum = 860+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tReportedPx :: FIXTag+tReportedPx = FIXTag +   { tName = "ReportedPx"+   , tnum = 861+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoCapacities :: FIXTag+tNoCapacities = FIXTag +   { tName = "NoCapacities"+   , tnum = 862+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tOrderCapacityQty :: FIXTag+tOrderCapacityQty = FIXTag +   { tName = "OrderCapacityQty"+   , tnum = 863+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoEvents :: FIXTag+tNoEvents = FIXTag +   { tName = "NoEvents"+   , tnum = 864+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEventType :: FIXTag+tEventType = FIXTag +   { tName = "EventType"+   , tnum = 865+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEventDate :: FIXTag+tEventDate = FIXTag +   { tName = "EventDate"+   , tnum = 866+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tEventPx :: FIXTag+tEventPx = FIXTag +   { tName = "EventPx"+   , tnum = 867+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tEventText :: FIXTag+tEventText = FIXTag +   { tName = "EventText"+   , tnum = 868+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tPctAtRisk :: FIXTag+tPctAtRisk = FIXTag +   { tName = "PctAtRisk"+   , tnum = 869+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoInstrAttrib :: FIXTag+tNoInstrAttrib = FIXTag +   { tName = "NoInstrAttrib"+   , tnum = 870+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tInstrAttribType :: FIXTag+tInstrAttribType = FIXTag +   { tName = "InstrAttribType"+   , tnum = 871+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tInstrAttribValue :: FIXTag+tInstrAttribValue = FIXTag +   { tName = "InstrAttribValue"+   , tnum = 872+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tDatedDate :: FIXTag+tDatedDate = FIXTag +   { tName = "DatedDate"+   , tnum = 873+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tInterestAccrualDate :: FIXTag+tInterestAccrualDate = FIXTag +   { tName = "InterestAccrualDate"+   , tnum = 874+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tCPProgram :: FIXTag+tCPProgram = FIXTag +   { tName = "CPProgram"+   , tnum = 875+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCPRegType :: FIXTag+tCPRegType = FIXTag +   { tName = "CPRegType"+   , tnum = 876+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingCPProgram :: FIXTag+tUnderlyingCPProgram = FIXTag +   { tName = "UnderlyingCPProgram"+   , tnum = 877+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingCPRegType :: FIXTag+tUnderlyingCPRegType = FIXTag +   { tName = "UnderlyingCPRegType"+   , tnum = 878+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingQty :: FIXTag+tUnderlyingQty = FIXTag +   { tName = "UnderlyingQty"+   , tnum = 879+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tTrdMatchID :: FIXTag+tTrdMatchID = FIXTag +   { tName = "TrdMatchID"+   , tnum = 880+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tSecondaryTradeReportRefID :: FIXTag+tSecondaryTradeReportRefID = FIXTag +   { tName = "SecondaryTradeReportRefID"+   , tnum = 881+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingDirtyPrice :: FIXTag+tUnderlyingDirtyPrice = FIXTag +   { tName = "UnderlyingDirtyPrice"+   , tnum = 882+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tUnderlyingEndPrice :: FIXTag+tUnderlyingEndPrice = FIXTag +   { tName = "UnderlyingEndPrice"+   , tnum = 883+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tUnderlyingStartValue :: FIXTag+tUnderlyingStartValue = FIXTag +   { tName = "UnderlyingStartValue"+   , tnum = 884+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tUnderlyingCurrentValue :: FIXTag+tUnderlyingCurrentValue = FIXTag +   { tName = "UnderlyingCurrentValue"+   , tnum = 885+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tUnderlyingEndValue :: FIXTag+tUnderlyingEndValue = FIXTag +   { tName = "UnderlyingEndValue"+   , tnum = 886+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tNoUnderlyingStips :: FIXTag+tNoUnderlyingStips = FIXTag +   { tName = "NoUnderlyingStips"+   , tnum = 887+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUnderlyingStipType :: FIXTag+tUnderlyingStipType = FIXTag +   { tName = "UnderlyingStipType"+   , tnum = 888+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUnderlyingStipValue :: FIXTag+tUnderlyingStipValue = FIXTag +   { tName = "UnderlyingStipValue"+   , tnum = 889+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tMaturityNetMoney :: FIXTag+tMaturityNetMoney = FIXTag +   { tName = "MaturityNetMoney"+   , tnum = 890+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMiscFeeBasis :: FIXTag+tMiscFeeBasis = FIXTag +   { tName = "MiscFeeBasis"+   , tnum = 891+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTotNoAllocs :: FIXTag+tTotNoAllocs = FIXTag +   { tName = "TotNoAllocs"+   , tnum = 892+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLastFragment :: FIXTag+tLastFragment = FIXTag +   { tName = "LastFragment"+   , tnum = 893+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tCollReqID :: FIXTag+tCollReqID = FIXTag +   { tName = "CollReqID"+   , tnum = 894+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCollAsgnReason :: FIXTag+tCollAsgnReason = FIXTag +   { tName = "CollAsgnReason"+   , tnum = 895+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCollInquiryQualifier :: FIXTag+tCollInquiryQualifier = FIXTag +   { tName = "CollInquiryQualifier"+   , tnum = 896+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoTrades :: FIXTag+tNoTrades = FIXTag +   { tName = "NoTrades"+   , tnum = 897+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tMarginRatio :: FIXTag+tMarginRatio = FIXTag +   { tName = "MarginRatio"+   , tnum = 898+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tMarginExcess :: FIXTag+tMarginExcess = FIXTag +   { tName = "MarginExcess"+   , tnum = 899+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tTotalNetValue :: FIXTag+tTotalNetValue = FIXTag +   { tName = "TotalNetValue"+   , tnum = 900+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCashOutstanding :: FIXTag+tCashOutstanding = FIXTag +   { tName = "CashOutstanding"+   , tnum = 901+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tCollAsgnID :: FIXTag+tCollAsgnID = FIXTag +   { tName = "CollAsgnID"+   , tnum = 902+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCollAsgnTransType :: FIXTag+tCollAsgnTransType = FIXTag +   { tName = "CollAsgnTransType"+   , tnum = 903+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCollRespID :: FIXTag+tCollRespID = FIXTag +   { tName = "CollRespID"+   , tnum = 904+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCollAsgnRespType :: FIXTag+tCollAsgnRespType = FIXTag +   { tName = "CollAsgnRespType"+   , tnum = 905+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCollAsgnRejectReason :: FIXTag+tCollAsgnRejectReason = FIXTag +   { tName = "CollAsgnRejectReason"+   , tnum = 906+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCollAsgnRefID :: FIXTag+tCollAsgnRefID = FIXTag +   { tName = "CollAsgnRefID"+   , tnum = 907+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCollRptID :: FIXTag+tCollRptID = FIXTag +   { tName = "CollRptID"+   , tnum = 908+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCollInquiryID :: FIXTag+tCollInquiryID = FIXTag +   { tName = "CollInquiryID"+   , tnum = 909+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCollStatus :: FIXTag+tCollStatus = FIXTag +   { tName = "CollStatus"+   , tnum = 910+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTotNumReports :: FIXTag+tTotNumReports = FIXTag +   { tName = "TotNumReports"+   , tnum = 911+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLastRptRequested :: FIXTag+tLastRptRequested = FIXTag +   { tName = "LastRptRequested"+   , tnum = 912+   , tparser = toFIXBool+   , arbitraryValue = FIXBool <$> arbitrary }++tAgreementDesc :: FIXTag+tAgreementDesc = FIXTag +   { tName = "AgreementDesc"+   , tnum = 913+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAgreementID :: FIXTag+tAgreementID = FIXTag +   { tName = "AgreementID"+   , tnum = 914+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tAgreementDate :: FIXTag+tAgreementDate = FIXTag +   { tName = "AgreementDate"+   , tnum = 915+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tStartDate :: FIXTag+tStartDate = FIXTag +   { tName = "StartDate"+   , tnum = 916+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tEndDate :: FIXTag+tEndDate = FIXTag +   { tName = "EndDate"+   , tnum = 917+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++tAgreementCurrency :: FIXTag+tAgreementCurrency = FIXTag +   { tName = "AgreementCurrency"+   , tnum = 918+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tDeliveryType :: FIXTag+tDeliveryType = FIXTag +   { tName = "DeliveryType"+   , tnum = 919+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tEndAccruedInterestAmt :: FIXTag+tEndAccruedInterestAmt = FIXTag +   { tName = "EndAccruedInterestAmt"+   , tnum = 920+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tStartCash :: FIXTag+tStartCash = FIXTag +   { tName = "StartCash"+   , tnum = 921+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tEndCash :: FIXTag+tEndCash = FIXTag +   { tName = "EndCash"+   , tnum = 922+   , tparser = toFIXDouble+   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }++tUserRequestID :: FIXTag+tUserRequestID = FIXTag +   { tName = "UserRequestID"+   , tnum = 923+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUserRequestType :: FIXTag+tUserRequestType = FIXTag +   { tName = "UserRequestType"+   , tnum = 924+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNewPassword :: FIXTag+tNewPassword = FIXTag +   { tName = "NewPassword"+   , tnum = 925+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tUserStatus :: FIXTag+tUserStatus = FIXTag +   { tName = "UserStatus"+   , tnum = 926+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUserStatusText :: FIXTag+tUserStatusText = FIXTag +   { tName = "UserStatusText"+   , tnum = 927+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tStatusValue :: FIXTag+tStatusValue = FIXTag +   { tName = "StatusValue"+   , tnum = 928+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tStatusText :: FIXTag+tStatusText = FIXTag +   { tName = "StatusText"+   , tnum = 929+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tRefCompID :: FIXTag+tRefCompID = FIXTag +   { tName = "RefCompID"+   , tnum = 930+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tRefSubID :: FIXTag+tRefSubID = FIXTag +   { tName = "RefSubID"+   , tnum = 931+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNetworkResponseID :: FIXTag+tNetworkResponseID = FIXTag +   { tName = "NetworkResponseID"+   , tnum = 932+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNetworkRequestID :: FIXTag+tNetworkRequestID = FIXTag +   { tName = "NetworkRequestID"+   , tnum = 933+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLastNetworkResponseID :: FIXTag+tLastNetworkResponseID = FIXTag +   { tName = "LastNetworkResponseID"+   , tnum = 934+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNetworkRequestType :: FIXTag+tNetworkRequestType = FIXTag +   { tName = "NetworkRequestType"+   , tnum = 935+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoCompIDs :: FIXTag+tNoCompIDs = FIXTag +   { tName = "NoCompIDs"+   , tnum = 936+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNetworkStatusResponseType :: FIXTag+tNetworkStatusResponseType = FIXTag +   { tName = "NetworkStatusResponseType"+   , tnum = 937+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoCollInquiryQualifier :: FIXTag+tNoCollInquiryQualifier = FIXTag +   { tName = "NoCollInquiryQualifier"+   , tnum = 938+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tTrdRptStatus :: FIXTag+tTrdRptStatus = FIXTag +   { tName = "TrdRptStatus"+   , tnum = 939+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tAffirmStatus :: FIXTag+tAffirmStatus = FIXTag +   { tName = "AffirmStatus"+   , tnum = 940+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tUnderlyingStrikeCurrency :: FIXTag+tUnderlyingStrikeCurrency = FIXTag +   { tName = "UnderlyingStrikeCurrency"+   , tnum = 941+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tLegStrikeCurrency :: FIXTag+tLegStrikeCurrency = FIXTag +   { tName = "LegStrikeCurrency"+   , tnum = 942+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tTimeBracket :: FIXTag+tTimeBracket = FIXTag +   { tName = "TimeBracket"+   , tnum = 943+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tCollAction :: FIXTag+tCollAction = FIXTag +   { tName = "CollAction"+   , tnum = 944+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCollInquiryStatus :: FIXTag+tCollInquiryStatus = FIXTag +   { tName = "CollInquiryStatus"+   , tnum = 945+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tCollInquiryResult :: FIXTag+tCollInquiryResult = FIXTag +   { tName = "CollInquiryResult"+   , tnum = 946+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tStrikeCurrency :: FIXTag+tStrikeCurrency = FIXTag +   { tName = "StrikeCurrency"+   , tnum = 947+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNoNested3PartyIDs :: FIXTag+tNoNested3PartyIDs = FIXTag +   { tName = "NoNested3PartyIDs"+   , tnum = 948+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNested3PartyID :: FIXTag+tNested3PartyID = FIXTag +   { tName = "Nested3PartyID"+   , tnum = 949+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNested3PartyIDSource :: FIXTag+tNested3PartyIDSource = FIXTag +   { tName = "Nested3PartyIDSource"+   , tnum = 950+   , tparser = toFIXChar+   , arbitraryValue = FIXChar <$> (return 'A') }++tNested3PartyRole :: FIXTag+tNested3PartyRole = FIXTag +   { tName = "Nested3PartyRole"+   , tnum = 951+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNoNested3PartySubIDs :: FIXTag+tNoNested3PartySubIDs = FIXTag +   { tName = "NoNested3PartySubIDs"+   , tnum = 952+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tNested3PartySubID :: FIXTag+tNested3PartySubID = FIXTag +   { tName = "Nested3PartySubID"+   , tnum = 953+   , tparser = toFIXString+   , arbitraryValue = FIXString <$> arbitrary }++tNested3PartySubIDType :: FIXTag+tNested3PartySubIDType = FIXTag +   { tName = "Nested3PartySubIDType"+   , tnum = 954+   , tparser = toFIXInt+   , arbitraryValue = FIXInt <$> arbitrary }++tLegContractSettlMonth :: FIXTag+tLegContractSettlMonth = FIXTag +   { tName = "LegContractSettlMonth"+   , tnum = 955+   , tparser = toFIXMonthYear+   , arbitraryValue = FIXMonthYear <$> arbitrary }++tLegInterestAccrualDate :: FIXTag+tLegInterestAccrualDate = FIXTag +   { tName = "LegInterestAccrualDate"+   , tnum = 956+   , tparser = toFIXDateOnly+   , arbitraryValue = FIXDateOnly <$> arbitrary }++headerFIX44 :: FIXTags+headerFIX44 = +   LT.insert (tnum tSenderCompID) tSenderCompID $+   LT.insert (tnum tTargetCompID) tTargetCompID $+   LT.insert (tnum tOnBehalfOfCompID) tOnBehalfOfCompID $+   LT.insert (tnum tDeliverToCompID) tDeliverToCompID $+   LT.insert (tnum tSecureDataLen) tSecureDataLen $+   LT.insert (tnum tSecureData) tSecureData $+   LT.insert (tnum tMsgSeqNum) tMsgSeqNum $+   LT.insert (tnum tSenderSubID) tSenderSubID $+   LT.insert (tnum tSenderLocationID) tSenderLocationID $+   LT.insert (tnum tTargetSubID) tTargetSubID $+   LT.insert (tnum tTargetLocationID) tTargetLocationID $+   LT.insert (tnum tOnBehalfOfSubID) tOnBehalfOfSubID $+   LT.insert (tnum tOnBehalfOfLocationID) tOnBehalfOfLocationID $+   LT.insert (tnum tDeliverToSubID) tDeliverToSubID $+   LT.insert (tnum tDeliverToLocationID) tDeliverToLocationID $+   LT.insert (tnum tPossDupFlag) tPossDupFlag $+   LT.insert (tnum tPossResend) tPossResend $+   LT.insert (tnum tSendingTime) tSendingTime $+   LT.insert (tnum tOrigSendingTime) tOrigSendingTime $+   LT.insert (tnum tXmlDataLen) tXmlDataLen $+   LT.insert (tnum tXmlData) tXmlData $+   LT.insert (tnum tMessageEncoding) tMessageEncoding $+   LT.insert (tnum tLastMsgSeqNumProcessed) tLastMsgSeqNumProcessed $+   LT.insert (tnum tNoHops) gNoHops''    LT.new+   where+      gNoHops'' = FIXTag+         { tName = "NoHops"+         , tnum = tnum tNoHops+         , tparser = gNoHopsP''+         , arbitraryValue = arbibtraryFIXGroup gNoHopsSpec'' }++      gNoHopsP'' = groupP gNoHopsSpec''+      gNoHopsSpec'' = FGSpec+         { gsLength = tNoHops+         , gsSeperator = tHopCompID+         , gsBody = gNoHopsBody'' }+         where+         gNoHopsBody'' = +            LT.insert (tnum tHopSendingTime) tHopSendingTime $+            LT.insert (tnum tHopRefID) tHopRefID             LT.new++++trailerFIX44 :: FIXTags+trailerFIX44 = +   LT.insert (tnum tSignatureLength) tSignatureLength $+   LT.insert (tnum tSignature) tSignature    LT.new+++mHeartbeat :: FIXMessageSpec+mHeartbeat = FMSpec+   { msName = "Heartbeat"+   , msType = C.pack "0"+   , msHeader = headerFIX44+   , msBody = mHeartbeatBody+   , msTrailer = trailerFIX44 }+   where+   mHeartbeatBody = +      LT.insert (tnum tTestReqID) tTestReqID       LT.new+++mTestRequest :: FIXMessageSpec+mTestRequest = FMSpec+   { msName = "TestRequest"+   , msType = C.pack "1"+   , msHeader = headerFIX44+   , msBody = mTestRequestBody+   , msTrailer = trailerFIX44 }+   where+   mTestRequestBody = +      LT.insert (tnum tTestReqID) tTestReqID       LT.new+++mResendRequest :: FIXMessageSpec+mResendRequest = FMSpec+   { msName = "ResendRequest"+   , msType = C.pack "2"+   , msHeader = headerFIX44+   , msBody = mResendRequestBody+   , msTrailer = trailerFIX44 }+   where+   mResendRequestBody = +      LT.insert (tnum tBeginSeqNo) tBeginSeqNo $+      LT.insert (tnum tEndSeqNo) tEndSeqNo       LT.new+++mReject :: FIXMessageSpec+mReject = FMSpec+   { msName = "Reject"+   , msType = C.pack "3"+   , msHeader = headerFIX44+   , msBody = mRejectBody+   , msTrailer = trailerFIX44 }+   where+   mRejectBody = +      LT.insert (tnum tRefSeqNum) tRefSeqNum $+      LT.insert (tnum tRefTagID) tRefTagID $+      LT.insert (tnum tRefMsgType) tRefMsgType $+      LT.insert (tnum tSessionRejectReason) tSessionRejectReason $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mSequenceReset :: FIXMessageSpec+mSequenceReset = FMSpec+   { msName = "SequenceReset"+   , msType = C.pack "4"+   , msHeader = headerFIX44+   , msBody = mSequenceResetBody+   , msTrailer = trailerFIX44 }+   where+   mSequenceResetBody = +      LT.insert (tnum tGapFillFlag) tGapFillFlag $+      LT.insert (tnum tNewSeqNo) tNewSeqNo       LT.new+++mLogout :: FIXMessageSpec+mLogout = FMSpec+   { msName = "Logout"+   , msType = C.pack "5"+   , msHeader = headerFIX44+   , msBody = mLogoutBody+   , msTrailer = trailerFIX44 }+   where+   mLogoutBody = +      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mIOI :: FIXMessageSpec+mIOI = FMSpec+   { msName = "IOI"+   , msType = C.pack "6"+   , msHeader = headerFIX44+   , msBody = mIOIBody+   , msTrailer = trailerFIX44 }+   where+   mIOIBody = +      LT.insert (tnum tIOIID) tIOIID $+      LT.insert (tnum tIOITransType) tIOITransType $+      LT.insert (tnum tIOIRefID) tIOIRefID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tAgreementDesc) tAgreementDesc $+      LT.insert (tnum tAgreementID) tAgreementID $+      LT.insert (tnum tAgreementDate) tAgreementDate $+      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+      LT.insert (tnum tTerminationType) tTerminationType $+      LT.insert (tnum tStartDate) tStartDate $+      LT.insert (tnum tEndDate) tEndDate $+      LT.insert (tnum tDeliveryType) tDeliveryType $+      LT.insert (tnum tMarginRatio) tMarginRatio $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tQtyType) tQtyType $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrderPercent) tOrderPercent $+      LT.insert (tnum tRoundingDirection) tRoundingDirection $+      LT.insert (tnum tRoundingModulus) tRoundingModulus $+      LT.insert (tnum tIOIQty) tIOIQty $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tNoStipulations) gNoStipulations''' $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tValidUntilTime) tValidUntilTime $+      LT.insert (tnum tIOIQltyInd) tIOIQltyInd $+      LT.insert (tnum tIOINaturalFlag) tIOINaturalFlag $+      LT.insert (tnum tNoIOIQualifiers) gNoIOIQualifiers''' $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tURLLink) tURLLink $+      LT.insert (tnum tNoRoutingIDs) gNoRoutingIDs''' $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+      LT.insert (tnum tYieldType) tYieldType $+      LT.insert (tnum tYield) tYield $+      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $+      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $+      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $+      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoIOIQualifiers''' = FIXTag+            { tName = "NoIOIQualifiers"+            , tnum = tnum tNoIOIQualifiers+            , tparser = gNoIOIQualifiersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoIOIQualifiersSpec''' }++         gNoIOIQualifiersP''' = groupP gNoIOIQualifiersSpec'''+         gNoIOIQualifiersSpec''' = FGSpec+            { gsLength = tNoIOIQualifiers+            , gsSeperator = tIOIQualifier+            , gsBody = gNoIOIQualifiersBody''' }+            where+            gNoIOIQualifiersBody''' = +               LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $+               LT.insert (tnum tLegIOIQty) tLegIOIQty $+               LT.insert (tnum tNoLegStipulations) gNoLegStipulations''''''                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new++                  gNoLegStipulations'''''' = FIXTag+                     { tName = "NoLegStipulations"+                     , tnum = tnum tNoLegStipulations+                     , tparser = gNoLegStipulationsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec'''''' }++                  gNoLegStipulationsP'''''' = groupP gNoLegStipulationsSpec''''''+                  gNoLegStipulationsSpec'''''' = FGSpec+                     { gsLength = tNoLegStipulations+                     , gsSeperator = tLegStipulationType+                     , gsBody = gNoLegStipulationsBody'''''' }+                     where+                     gNoLegStipulationsBody'''''' = +                        LT.insert (tnum tLegStipulationValue) tLegStipulationValue                         LT.new+++         gNoRoutingIDs''' = FIXTag+            { tName = "NoRoutingIDs"+            , tnum = tnum tNoRoutingIDs+            , tparser = gNoRoutingIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRoutingIDsSpec''' }++         gNoRoutingIDsP''' = groupP gNoRoutingIDsSpec'''+         gNoRoutingIDsSpec''' = FGSpec+            { gsLength = tNoRoutingIDs+            , gsSeperator = tRoutingType+            , gsBody = gNoRoutingIDsBody''' }+            where+            gNoRoutingIDsBody''' = +               LT.insert (tnum tRoutingID) tRoutingID                LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoStipulations''' = FIXTag+            { tName = "NoStipulations"+            , tnum = tnum tNoStipulations+            , tparser = gNoStipulationsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }++         gNoStipulationsP''' = groupP gNoStipulationsSpec'''+         gNoStipulationsSpec''' = FGSpec+            { gsLength = tNoStipulations+            , gsSeperator = tStipulationType+            , gsBody = gNoStipulationsBody''' }+            where+            gNoStipulationsBody''' = +               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mAdvertisement :: FIXMessageSpec+mAdvertisement = FMSpec+   { msName = "Advertisement"+   , msType = C.pack "7"+   , msHeader = headerFIX44+   , msBody = mAdvertisementBody+   , msTrailer = trailerFIX44 }+   where+   mAdvertisementBody = +      LT.insert (tnum tAdvId) tAdvId $+      LT.insert (tnum tAdvTransType) tAdvTransType $+      LT.insert (tnum tAdvRefID) tAdvRefID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tAdvSide) tAdvSide $+      LT.insert (tnum tQuantity) tQuantity $+      LT.insert (tnum tQtyType) tQtyType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tURLLink) tURLLink $+      LT.insert (tnum tLastMkt) tLastMkt $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mExecutionReport :: FIXMessageSpec+mExecutionReport = FMSpec+   { msName = "ExecutionReport"+   , msType = C.pack "8"+   , msHeader = headerFIX44+   , msBody = mExecutionReportBody+   , msTrailer = trailerFIX44 }+   where+   mExecutionReportBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tSecondaryExecID) tSecondaryExecID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+      LT.insert (tnum tQuoteRespID) tQuoteRespID $+      LT.insert (tnum tOrdStatusReqID) tOrdStatusReqID $+      LT.insert (tnum tMassStatusReqID) tMassStatusReqID $+      LT.insert (tnum tTotNumReports) tTotNumReports $+      LT.insert (tnum tLastRptRequested) tLastRptRequested $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+      LT.insert (tnum tNoContraBrokers) gNoContraBrokers''' $+      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tCrossID) tCrossID $+      LT.insert (tnum tOrigCrossID) tOrigCrossID $+      LT.insert (tnum tCrossType) tCrossType $+      LT.insert (tnum tExecID) tExecID $+      LT.insert (tnum tExecRefID) tExecRefID $+      LT.insert (tnum tExecType) tExecType $+      LT.insert (tnum tOrdStatus) tOrdStatus $+      LT.insert (tnum tWorkingIndicator) tWorkingIndicator $+      LT.insert (tnum tOrdRejReason) tOrdRejReason $+      LT.insert (tnum tExecRestatementReason) tExecRestatementReason $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tDayBookingInst) tDayBookingInst $+      LT.insert (tnum tBookingUnit) tBookingUnit $+      LT.insert (tnum tPreallocMethod) tPreallocMethod $+      LT.insert (tnum tSettlType) tSettlType $+      LT.insert (tnum tSettlDate) tSettlDate $+      LT.insert (tnum tCashMargin) tCashMargin $+      LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tAgreementDesc) tAgreementDesc $+      LT.insert (tnum tAgreementID) tAgreementID $+      LT.insert (tnum tAgreementDate) tAgreementDate $+      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+      LT.insert (tnum tTerminationType) tTerminationType $+      LT.insert (tnum tStartDate) tStartDate $+      LT.insert (tnum tEndDate) tEndDate $+      LT.insert (tnum tDeliveryType) tDeliveryType $+      LT.insert (tnum tMarginRatio) tMarginRatio $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tNoStipulations) gNoStipulations''' $+      LT.insert (tnum tQtyType) tQtyType $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrderPercent) tOrderPercent $+      LT.insert (tnum tRoundingDirection) tRoundingDirection $+      LT.insert (tnum tRoundingModulus) tRoundingModulus $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tPegOffsetValue) tPegOffsetValue $+      LT.insert (tnum tPegMoveType) tPegMoveType $+      LT.insert (tnum tPegOffsetType) tPegOffsetType $+      LT.insert (tnum tPegLimitType) tPegLimitType $+      LT.insert (tnum tPegRoundDirection) tPegRoundDirection $+      LT.insert (tnum tPegScope) tPegScope $+      LT.insert (tnum tDiscretionInst) tDiscretionInst $+      LT.insert (tnum tDiscretionOffsetValue) tDiscretionOffsetValue $+      LT.insert (tnum tDiscretionMoveType) tDiscretionMoveType $+      LT.insert (tnum tDiscretionOffsetType) tDiscretionOffsetType $+      LT.insert (tnum tDiscretionLimitType) tDiscretionLimitType $+      LT.insert (tnum tDiscretionRoundDirection) tDiscretionRoundDirection $+      LT.insert (tnum tDiscretionScope) tDiscretionScope $+      LT.insert (tnum tPeggedPrice) tPeggedPrice $+      LT.insert (tnum tDiscretionPrice) tDiscretionPrice $+      LT.insert (tnum tTargetStrategy) tTargetStrategy $+      LT.insert (tnum tTargetStrategyParameters) tTargetStrategyParameters $+      LT.insert (tnum tParticipationRate) tParticipationRate $+      LT.insert (tnum tTargetStrategyPerformance) tTargetStrategyPerformance $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tComplianceID) tComplianceID $+      LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tEffectiveTime) tEffectiveTime $+      LT.insert (tnum tExpireDate) tExpireDate $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tOrderCapacity) tOrderCapacity $+      LT.insert (tnum tOrderRestrictions) tOrderRestrictions $+      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+      LT.insert (tnum tLastQty) tLastQty $+      LT.insert (tnum tUnderlyingLastQty) tUnderlyingLastQty $+      LT.insert (tnum tLastPx) tLastPx $+      LT.insert (tnum tUnderlyingLastPx) tUnderlyingLastPx $+      LT.insert (tnum tLastParPx) tLastParPx $+      LT.insert (tnum tLastSpotRate) tLastSpotRate $+      LT.insert (tnum tLastForwardPoints) tLastForwardPoints $+      LT.insert (tnum tLastMkt) tLastMkt $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tTimeBracket) tTimeBracket $+      LT.insert (tnum tLastCapacity) tLastCapacity $+      LT.insert (tnum tLeavesQty) tLeavesQty $+      LT.insert (tnum tCumQty) tCumQty $+      LT.insert (tnum tAvgPx) tAvgPx $+      LT.insert (tnum tDayOrderQty) tDayOrderQty $+      LT.insert (tnum tDayCumQty) tDayCumQty $+      LT.insert (tnum tDayAvgPx) tDayAvgPx $+      LT.insert (tnum tGTBookingInst) tGTBookingInst $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tReportToExch) tReportToExch $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tCommCurrency) tCommCurrency $+      LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+      LT.insert (tnum tYieldType) tYieldType $+      LT.insert (tnum tYield) tYield $+      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $+      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $+      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $+      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $+      LT.insert (tnum tGrossTradeAmt) tGrossTradeAmt $+      LT.insert (tnum tNumDaysInterest) tNumDaysInterest $+      LT.insert (tnum tExDate) tExDate $+      LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $+      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+      LT.insert (tnum tInterestAtMaturity) tInterestAtMaturity $+      LT.insert (tnum tEndAccruedInterestAmt) tEndAccruedInterestAmt $+      LT.insert (tnum tStartCash) tStartCash $+      LT.insert (tnum tEndCash) tEndCash $+      LT.insert (tnum tTradedFlatSwitch) tTradedFlatSwitch $+      LT.insert (tnum tBasisFeatureDate) tBasisFeatureDate $+      LT.insert (tnum tBasisFeaturePrice) tBasisFeaturePrice $+      LT.insert (tnum tConcession) tConcession $+      LT.insert (tnum tTotalTakedown) tTotalTakedown $+      LT.insert (tnum tNetMoney) tNetMoney $+      LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tSettlCurrFxRate) tSettlCurrFxRate $+      LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tPositionEffect) tPositionEffect $+      LT.insert (tnum tMaxShow) tMaxShow $+      LT.insert (tnum tBookingType) tBookingType $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tSettlDate2) tSettlDate2 $+      LT.insert (tnum tOrderQty2) tOrderQty2 $+      LT.insert (tnum tLastForwardPoints2) tLastForwardPoints2 $+      LT.insert (tnum tMultiLegReportingType) tMultiLegReportingType $+      LT.insert (tnum tCancellationRights) tCancellationRights $+      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $+      LT.insert (tnum tRegistID) tRegistID $+      LT.insert (tnum tDesignation) tDesignation $+      LT.insert (tnum tTransBkdTime) tTransBkdTime $+      LT.insert (tnum tExecValuationPoint) tExecValuationPoint $+      LT.insert (tnum tExecPriceType) tExecPriceType $+      LT.insert (tnum tExecPriceAdjustment) tExecPriceAdjustment $+      LT.insert (tnum tPriorityIndicator) tPriorityIndicator $+      LT.insert (tnum tPriceImprovement) tPriceImprovement $+      LT.insert (tnum tLastLiquidityInd) tLastLiquidityInd $+      LT.insert (tnum tNoContAmts) gNoContAmts''' $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tCopyMsgIndicator) tCopyMsgIndicator $+      LT.insert (tnum tNoMiscFees) gNoMiscFees'''       LT.new+      where+         gNoContAmts''' = FIXTag+            { tName = "NoContAmts"+            , tnum = tnum tNoContAmts+            , tparser = gNoContAmtsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoContAmtsSpec''' }++         gNoContAmtsP''' = groupP gNoContAmtsSpec'''+         gNoContAmtsSpec''' = FGSpec+            { gsLength = tNoContAmts+            , gsSeperator = tContAmtType+            , gsBody = gNoContAmtsBody''' }+            where+            gNoContAmtsBody''' = +               LT.insert (tnum tContAmtValue) tContAmtValue $+               LT.insert (tnum tContAmtCurr) tContAmtCurr                LT.new++         gNoContraBrokers''' = FIXTag+            { tName = "NoContraBrokers"+            , tnum = tnum tNoContraBrokers+            , tparser = gNoContraBrokersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoContraBrokersSpec''' }++         gNoContraBrokersP''' = groupP gNoContraBrokersSpec'''+         gNoContraBrokersSpec''' = FGSpec+            { gsLength = tNoContraBrokers+            , gsSeperator = tContraBroker+            , gsBody = gNoContraBrokersBody''' }+            where+            gNoContraBrokersBody''' = +               LT.insert (tnum tContraTrader) tContraTrader $+               LT.insert (tnum tContraTradeQty) tContraTradeQty $+               LT.insert (tnum tContraTradeTime) tContraTradeTime $+               LT.insert (tnum tContraLegRefID) tContraLegRefID                LT.new++         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $+               LT.insert (tnum tLegQty) tLegQty $+               LT.insert (tnum tLegSwapType) tLegSwapType $+               LT.insert (tnum tNoLegStipulations) gNoLegStipulations'''''' $+               LT.insert (tnum tLegPositionEffect) tLegPositionEffect $+               LT.insert (tnum tLegCoveredOrUncovered) tLegCoveredOrUncovered $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $+               LT.insert (tnum tLegRefID) tLegRefID $+               LT.insert (tnum tLegPrice) tLegPrice $+               LT.insert (tnum tLegSettlType) tLegSettlType $+               LT.insert (tnum tLegSettlDate) tLegSettlDate $+               LT.insert (tnum tLegLastPx) tLegLastPx                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new++                  gNoLegStipulations'''''' = FIXTag+                     { tName = "NoLegStipulations"+                     , tnum = tnum tNoLegStipulations+                     , tparser = gNoLegStipulationsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec'''''' }++                  gNoLegStipulationsP'''''' = groupP gNoLegStipulationsSpec''''''+                  gNoLegStipulationsSpec'''''' = FGSpec+                     { gsLength = tNoLegStipulations+                     , gsSeperator = tLegStipulationType+                     , gsBody = gNoLegStipulationsBody'''''' }+                     where+                     gNoLegStipulationsBody'''''' = +                        LT.insert (tnum tLegStipulationValue) tLegStipulationValue                         LT.new++                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new+                        where+                           gNoNestedPartySubIDs''''''''' = FIXTag+                              { tName = "NoNestedPartySubIDs"+                              , tnum = tnum tNoNestedPartySubIDs+                              , tparser = gNoNestedPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }++                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''+                           gNoNestedPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartySubIDs+                              , gsSeperator = tNestedPartySubID+                              , gsBody = gNoNestedPartySubIDsBody''''''''' }+                              where+                              gNoNestedPartySubIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new++++         gNoMiscFees''' = FIXTag+            { tName = "NoMiscFees"+            , tnum = tnum tNoMiscFees+            , tparser = gNoMiscFeesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec''' }++         gNoMiscFeesP''' = groupP gNoMiscFeesSpec'''+         gNoMiscFeesSpec''' = FGSpec+            { gsLength = tNoMiscFees+            , gsSeperator = tMiscFeeAmt+            , gsBody = gNoMiscFeesBody''' }+            where+            gNoMiscFeesBody''' = +               LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $+               LT.insert (tnum tMiscFeeType) tMiscFeeType $+               LT.insert (tnum tMiscFeeBasis) tMiscFeeBasis                LT.new++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoStipulations''' = FIXTag+            { tName = "NoStipulations"+            , tnum = tnum tNoStipulations+            , tparser = gNoStipulationsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }++         gNoStipulationsP''' = groupP gNoStipulationsSpec'''+         gNoStipulationsSpec''' = FGSpec+            { gsLength = tNoStipulations+            , gsSeperator = tStipulationType+            , gsBody = gNoStipulationsBody''' }+            where+            gNoStipulationsBody''' = +               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mOrderCancelReject :: FIXMessageSpec+mOrderCancelReject = FMSpec+   { msName = "OrderCancelReject"+   , msType = C.pack "9"+   , msHeader = headerFIX44+   , msBody = mOrderCancelRejectBody+   , msTrailer = trailerFIX44 }+   where+   mOrderCancelRejectBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+      LT.insert (tnum tOrdStatus) tOrdStatus $+      LT.insert (tnum tWorkingIndicator) tWorkingIndicator $+      LT.insert (tnum tOrigOrdModTime) tOrigOrdModTime $+      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tCxlRejResponseTo) tCxlRejResponseTo $+      LT.insert (tnum tCxlRejReason) tCxlRejReason $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mLogon :: FIXMessageSpec+mLogon = FMSpec+   { msName = "Logon"+   , msType = C.pack "A"+   , msHeader = headerFIX44+   , msBody = mLogonBody+   , msTrailer = trailerFIX44 }+   where+   mLogonBody = +      LT.insert (tnum tEncryptMethod) tEncryptMethod $+      LT.insert (tnum tHeartBtInt) tHeartBtInt $+      LT.insert (tnum tRawDataLength) tRawDataLength $+      LT.insert (tnum tRawData) tRawData $+      LT.insert (tnum tResetSeqNumFlag) tResetSeqNumFlag $+      LT.insert (tnum tNextExpectedMsgSeqNum) tNextExpectedMsgSeqNum $+      LT.insert (tnum tMaxMessageSize) tMaxMessageSize $+      LT.insert (tnum tNoMsgTypes) gNoMsgTypes''' $+      LT.insert (tnum tTestMessageIndicator) tTestMessageIndicator $+      LT.insert (tnum tUsername) tUsername $+      LT.insert (tnum tPassword) tPassword       LT.new+      where+         gNoMsgTypes''' = FIXTag+            { tName = "NoMsgTypes"+            , tnum = tnum tNoMsgTypes+            , tparser = gNoMsgTypesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoMsgTypesSpec''' }++         gNoMsgTypesP''' = groupP gNoMsgTypesSpec'''+         gNoMsgTypesSpec''' = FGSpec+            { gsLength = tNoMsgTypes+            , gsSeperator = tRefMsgType+            , gsBody = gNoMsgTypesBody''' }+            where+            gNoMsgTypesBody''' = +               LT.insert (tnum tMsgDirection) tMsgDirection                LT.new++++mNews :: FIXMessageSpec+mNews = FMSpec+   { msName = "News"+   , msType = C.pack "B"+   , msHeader = headerFIX44+   , msBody = mNewsBody+   , msTrailer = trailerFIX44 }+   where+   mNewsBody = +      LT.insert (tnum tOrigTime) tOrigTime $+      LT.insert (tnum tUrgency) tUrgency $+      LT.insert (tnum tHeadline) tHeadline $+      LT.insert (tnum tEncodedHeadlineLen) tEncodedHeadlineLen $+      LT.insert (tnum tEncodedHeadline) tEncodedHeadline $+      LT.insert (tnum tNoRoutingIDs) gNoRoutingIDs''' $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym''' $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tNoLinesOfText) gNoLinesOfText''' $+      LT.insert (tnum tURLLink) tURLLink $+      LT.insert (tnum tRawDataLength) tRawDataLength $+      LT.insert (tnum tRawData) tRawData       LT.new+      where+         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoLinesOfText''' = FIXTag+            { tName = "NoLinesOfText"+            , tnum = tnum tNoLinesOfText+            , tparser = gNoLinesOfTextP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLinesOfTextSpec''' }++         gNoLinesOfTextP''' = groupP gNoLinesOfTextSpec'''+         gNoLinesOfTextSpec''' = FGSpec+            { gsLength = tNoLinesOfText+            , gsSeperator = tText+            , gsBody = gNoLinesOfTextBody''' }+            where+            gNoLinesOfTextBody''' = +               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new++         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tSymbol+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tSecuritySubType) tSecuritySubType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tPool) tPool $+               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+               LT.insert (tnum tCPProgram) tCPProgram $+               LT.insert (tnum tCPRegType) tCPRegType $+               LT.insert (tnum tNoEvents) gNoEvents'''''' $+               LT.insert (tnum tDatedDate) tDatedDate $+               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate                LT.new+               where+                  gNoEvents'''''' = FIXTag+                     { tName = "NoEvents"+                     , tnum = tnum tNoEvents+                     , tparser = gNoEventsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }++                  gNoEventsP'''''' = groupP gNoEventsSpec''''''+                  gNoEventsSpec'''''' = FGSpec+                     { gsLength = tNoEvents+                     , gsSeperator = tEventType+                     , gsBody = gNoEventsBody'''''' }+                     where+                     gNoEventsBody'''''' = +                        LT.insert (tnum tEventDate) tEventDate $+                        LT.insert (tnum tEventPx) tEventPx $+                        LT.insert (tnum tEventText) tEventText                         LT.new++                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new+++         gNoRoutingIDs''' = FIXTag+            { tName = "NoRoutingIDs"+            , tnum = tnum tNoRoutingIDs+            , tparser = gNoRoutingIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRoutingIDsSpec''' }++         gNoRoutingIDsP''' = groupP gNoRoutingIDsSpec'''+         gNoRoutingIDsSpec''' = FGSpec+            { gsLength = tNoRoutingIDs+            , gsSeperator = tRoutingType+            , gsBody = gNoRoutingIDsBody''' }+            where+            gNoRoutingIDsBody''' = +               LT.insert (tnum tRoutingID) tRoutingID                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mEmail :: FIXMessageSpec+mEmail = FMSpec+   { msName = "Email"+   , msType = C.pack "C"+   , msHeader = headerFIX44+   , msBody = mEmailBody+   , msTrailer = trailerFIX44 }+   where+   mEmailBody = +      LT.insert (tnum tEmailThreadID) tEmailThreadID $+      LT.insert (tnum tEmailType) tEmailType $+      LT.insert (tnum tOrigTime) tOrigTime $+      LT.insert (tnum tSubject) tSubject $+      LT.insert (tnum tEncodedSubjectLen) tEncodedSubjectLen $+      LT.insert (tnum tEncodedSubject) tEncodedSubject $+      LT.insert (tnum tNoRoutingIDs) gNoRoutingIDs''' $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym''' $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tNoLinesOfText) gNoLinesOfText''' $+      LT.insert (tnum tRawDataLength) tRawDataLength $+      LT.insert (tnum tRawData) tRawData       LT.new+      where+         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoLinesOfText''' = FIXTag+            { tName = "NoLinesOfText"+            , tnum = tnum tNoLinesOfText+            , tparser = gNoLinesOfTextP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLinesOfTextSpec''' }++         gNoLinesOfTextP''' = groupP gNoLinesOfTextSpec'''+         gNoLinesOfTextSpec''' = FGSpec+            { gsLength = tNoLinesOfText+            , gsSeperator = tText+            , gsBody = gNoLinesOfTextBody''' }+            where+            gNoLinesOfTextBody''' = +               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new++         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tSymbol+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tSecuritySubType) tSecuritySubType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tPool) tPool $+               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+               LT.insert (tnum tCPProgram) tCPProgram $+               LT.insert (tnum tCPRegType) tCPRegType $+               LT.insert (tnum tNoEvents) gNoEvents'''''' $+               LT.insert (tnum tDatedDate) tDatedDate $+               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate                LT.new+               where+                  gNoEvents'''''' = FIXTag+                     { tName = "NoEvents"+                     , tnum = tnum tNoEvents+                     , tparser = gNoEventsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }++                  gNoEventsP'''''' = groupP gNoEventsSpec''''''+                  gNoEventsSpec'''''' = FGSpec+                     { gsLength = tNoEvents+                     , gsSeperator = tEventType+                     , gsBody = gNoEventsBody'''''' }+                     where+                     gNoEventsBody'''''' = +                        LT.insert (tnum tEventDate) tEventDate $+                        LT.insert (tnum tEventPx) tEventPx $+                        LT.insert (tnum tEventText) tEventText                         LT.new++                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new+++         gNoRoutingIDs''' = FIXTag+            { tName = "NoRoutingIDs"+            , tnum = tnum tNoRoutingIDs+            , tparser = gNoRoutingIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRoutingIDsSpec''' }++         gNoRoutingIDsP''' = groupP gNoRoutingIDsSpec'''+         gNoRoutingIDsSpec''' = FGSpec+            { gsLength = tNoRoutingIDs+            , gsSeperator = tRoutingType+            , gsBody = gNoRoutingIDsBody''' }+            where+            gNoRoutingIDsBody''' = +               LT.insert (tnum tRoutingID) tRoutingID                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mNewOrderSingle :: FIXMessageSpec+mNewOrderSingle = FMSpec+   { msName = "NewOrderSingle"+   , msType = C.pack "D"+   , msHeader = headerFIX44+   , msBody = mNewOrderSingleBody+   , msTrailer = trailerFIX44 }+   where+   mNewOrderSingleBody = +      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tDayBookingInst) tDayBookingInst $+      LT.insert (tnum tBookingUnit) tBookingUnit $+      LT.insert (tnum tPreallocMethod) tPreallocMethod $+      LT.insert (tnum tAllocID) tAllocID $+      LT.insert (tnum tNoAllocs) gNoAllocs''' $+      LT.insert (tnum tSettlType) tSettlType $+      LT.insert (tnum tSettlDate) tSettlDate $+      LT.insert (tnum tCashMargin) tCashMargin $+      LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $+      LT.insert (tnum tProcessCode) tProcessCode $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tAgreementDesc) tAgreementDesc $+      LT.insert (tnum tAgreementID) tAgreementID $+      LT.insert (tnum tAgreementDate) tAgreementDate $+      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+      LT.insert (tnum tTerminationType) tTerminationType $+      LT.insert (tnum tStartDate) tStartDate $+      LT.insert (tnum tEndDate) tEndDate $+      LT.insert (tnum tDeliveryType) tDeliveryType $+      LT.insert (tnum tMarginRatio) tMarginRatio $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tPrevClosePx) tPrevClosePx $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tLocateReqd) tLocateReqd $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tNoStipulations) gNoStipulations''' $+      LT.insert (tnum tQtyType) tQtyType $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrderPercent) tOrderPercent $+      LT.insert (tnum tRoundingDirection) tRoundingDirection $+      LT.insert (tnum tRoundingModulus) tRoundingModulus $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+      LT.insert (tnum tYieldType) tYieldType $+      LT.insert (tnum tYield) tYield $+      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $+      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $+      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $+      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tComplianceID) tComplianceID $+      LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+      LT.insert (tnum tIOIID) tIOIID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tEffectiveTime) tEffectiveTime $+      LT.insert (tnum tExpireDate) tExpireDate $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tGTBookingInst) tGTBookingInst $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tCommCurrency) tCommCurrency $+      LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+      LT.insert (tnum tOrderCapacity) tOrderCapacity $+      LT.insert (tnum tOrderRestrictions) tOrderRestrictions $+      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+      LT.insert (tnum tForexReq) tForexReq $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tBookingType) tBookingType $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tSettlDate2) tSettlDate2 $+      LT.insert (tnum tOrderQty2) tOrderQty2 $+      LT.insert (tnum tPrice2) tPrice2 $+      LT.insert (tnum tPositionEffect) tPositionEffect $+      LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+      LT.insert (tnum tMaxShow) tMaxShow $+      LT.insert (tnum tPegOffsetValue) tPegOffsetValue $+      LT.insert (tnum tPegMoveType) tPegMoveType $+      LT.insert (tnum tPegOffsetType) tPegOffsetType $+      LT.insert (tnum tPegLimitType) tPegLimitType $+      LT.insert (tnum tPegRoundDirection) tPegRoundDirection $+      LT.insert (tnum tPegScope) tPegScope $+      LT.insert (tnum tDiscretionInst) tDiscretionInst $+      LT.insert (tnum tDiscretionOffsetValue) tDiscretionOffsetValue $+      LT.insert (tnum tDiscretionMoveType) tDiscretionMoveType $+      LT.insert (tnum tDiscretionOffsetType) tDiscretionOffsetType $+      LT.insert (tnum tDiscretionLimitType) tDiscretionLimitType $+      LT.insert (tnum tDiscretionRoundDirection) tDiscretionRoundDirection $+      LT.insert (tnum tDiscretionScope) tDiscretionScope $+      LT.insert (tnum tTargetStrategy) tTargetStrategy $+      LT.insert (tnum tTargetStrategyParameters) tTargetStrategyParameters $+      LT.insert (tnum tParticipationRate) tParticipationRate $+      LT.insert (tnum tCancellationRights) tCancellationRights $+      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $+      LT.insert (tnum tRegistID) tRegistID $+      LT.insert (tnum tDesignation) tDesignation       LT.new+      where+         gNoAllocs''' = FIXTag+            { tName = "NoAllocs"+            , tnum = tnum tNoAllocs+            , tparser = gNoAllocsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }++         gNoAllocsP''' = groupP gNoAllocsSpec'''+         gNoAllocsSpec''' = FGSpec+            { gsLength = tNoAllocs+            , gsSeperator = tAllocAccount+            , gsBody = gNoAllocsBody''' }+            where+            gNoAllocsBody''' = +               LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $+               LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $+               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $+               LT.insert (tnum tAllocQty) tAllocQty                LT.new+               where+                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new+                        where+                           gNoNestedPartySubIDs''''''''' = FIXTag+                              { tName = "NoNestedPartySubIDs"+                              , tnum = tnum tNoNestedPartySubIDs+                              , tparser = gNoNestedPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }++                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''+                           gNoNestedPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartySubIDs+                              , gsSeperator = tNestedPartySubID+                              , gsBody = gNoNestedPartySubIDsBody''''''''' }+                              where+                              gNoNestedPartySubIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new++++         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoStipulations''' = FIXTag+            { tName = "NoStipulations"+            , tnum = tnum tNoStipulations+            , tparser = gNoStipulationsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }++         gNoStipulationsP''' = groupP gNoStipulationsSpec'''+         gNoStipulationsSpec''' = FGSpec+            { gsLength = tNoStipulations+            , gsSeperator = tStipulationType+            , gsBody = gNoStipulationsBody''' }+            where+            gNoStipulationsBody''' = +               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new++         gNoTradingSessions''' = FIXTag+            { tName = "NoTradingSessions"+            , tnum = tnum tNoTradingSessions+            , tparser = gNoTradingSessionsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }++         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''+         gNoTradingSessionsSpec''' = FGSpec+            { gsLength = tNoTradingSessions+            , gsSeperator = tTradingSessionID+            , gsBody = gNoTradingSessionsBody''' }+            where+            gNoTradingSessionsBody''' = +               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mNewOrderList :: FIXMessageSpec+mNewOrderList = FMSpec+   { msName = "NewOrderList"+   , msType = C.pack "E"+   , msHeader = headerFIX44+   , msBody = mNewOrderListBody+   , msTrailer = trailerFIX44 }+   where+   mNewOrderListBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tBidID) tBidID $+      LT.insert (tnum tClientBidID) tClientBidID $+      LT.insert (tnum tProgRptReqs) tProgRptReqs $+      LT.insert (tnum tBidType) tBidType $+      LT.insert (tnum tProgPeriodInterval) tProgPeriodInterval $+      LT.insert (tnum tCancellationRights) tCancellationRights $+      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $+      LT.insert (tnum tRegistID) tRegistID $+      LT.insert (tnum tListExecInstType) tListExecInstType $+      LT.insert (tnum tListExecInst) tListExecInst $+      LT.insert (tnum tEncodedListExecInstLen) tEncodedListExecInstLen $+      LT.insert (tnum tEncodedListExecInst) tEncodedListExecInst $+      LT.insert (tnum tAllowableOneSidednessPct) tAllowableOneSidednessPct $+      LT.insert (tnum tAllowableOneSidednessValue) tAllowableOneSidednessValue $+      LT.insert (tnum tAllowableOneSidednessCurr) tAllowableOneSidednessCurr $+      LT.insert (tnum tTotNoOrders) tTotNoOrders $+      LT.insert (tnum tLastFragment) tLastFragment $+      LT.insert (tnum tNoOrders) gNoOrders'''       LT.new+      where+         gNoOrders''' = FIXTag+            { tName = "NoOrders"+            , tnum = tnum tNoOrders+            , tparser = gNoOrdersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoOrdersSpec''' }++         gNoOrdersP''' = groupP gNoOrdersSpec'''+         gNoOrdersSpec''' = FGSpec+            { gsLength = tNoOrders+            , gsSeperator = tClOrdID+            , gsBody = gNoOrdersBody''' }+            where+            gNoOrdersBody''' = +               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+               LT.insert (tnum tListSeqNo) tListSeqNo $+               LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+               LT.insert (tnum tSettlInstMode) tSettlInstMode $+               LT.insert (tnum tNoPartyIDs) gNoPartyIDs'''''' $+               LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+               LT.insert (tnum tTradeDate) tTradeDate $+               LT.insert (tnum tAccount) tAccount $+               LT.insert (tnum tAcctIDSource) tAcctIDSource $+               LT.insert (tnum tAccountType) tAccountType $+               LT.insert (tnum tDayBookingInst) tDayBookingInst $+               LT.insert (tnum tBookingUnit) tBookingUnit $+               LT.insert (tnum tAllocID) tAllocID $+               LT.insert (tnum tPreallocMethod) tPreallocMethod $+               LT.insert (tnum tNoAllocs) gNoAllocs'''''' $+               LT.insert (tnum tSettlType) tSettlType $+               LT.insert (tnum tSettlDate) tSettlDate $+               LT.insert (tnum tCashMargin) tCashMargin $+               LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+               LT.insert (tnum tHandlInst) tHandlInst $+               LT.insert (tnum tExecInst) tExecInst $+               LT.insert (tnum tMinQty) tMinQty $+               LT.insert (tnum tMaxFloor) tMaxFloor $+               LT.insert (tnum tExDestination) tExDestination $+               LT.insert (tnum tNoTradingSessions) gNoTradingSessions'''''' $+               LT.insert (tnum tProcessCode) tProcessCode $+               LT.insert (tnum tSymbol) tSymbol $+               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tSecuritySubType) tSecuritySubType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tPool) tPool $+               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+               LT.insert (tnum tCPProgram) tCPProgram $+               LT.insert (tnum tCPRegType) tCPRegType $+               LT.insert (tnum tNoEvents) gNoEvents'''''' $+               LT.insert (tnum tDatedDate) tDatedDate $+               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+               LT.insert (tnum tNoUnderlyings) gNoUnderlyings'''''' $+               LT.insert (tnum tPrevClosePx) tPrevClosePx $+               LT.insert (tnum tSide) tSide $+               LT.insert (tnum tSideValueInd) tSideValueInd $+               LT.insert (tnum tLocateReqd) tLocateReqd $+               LT.insert (tnum tTransactTime) tTransactTime $+               LT.insert (tnum tNoStipulations) gNoStipulations'''''' $+               LT.insert (tnum tQtyType) tQtyType $+               LT.insert (tnum tOrderQty) tOrderQty $+               LT.insert (tnum tCashOrderQty) tCashOrderQty $+               LT.insert (tnum tOrderPercent) tOrderPercent $+               LT.insert (tnum tRoundingDirection) tRoundingDirection $+               LT.insert (tnum tRoundingModulus) tRoundingModulus $+               LT.insert (tnum tOrdType) tOrdType $+               LT.insert (tnum tPriceType) tPriceType $+               LT.insert (tnum tPrice) tPrice $+               LT.insert (tnum tStopPx) tStopPx $+               LT.insert (tnum tSpread) tSpread $+               LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+               LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+               LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+               LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+               LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+               LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+               LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+               LT.insert (tnum tYieldType) tYieldType $+               LT.insert (tnum tYield) tYield $+               LT.insert (tnum tYieldCalcDate) tYieldCalcDate $+               LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $+               LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $+               LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $+               LT.insert (tnum tCurrency) tCurrency $+               LT.insert (tnum tComplianceID) tComplianceID $+               LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+               LT.insert (tnum tIOIID) tIOIID $+               LT.insert (tnum tQuoteID) tQuoteID $+               LT.insert (tnum tTimeInForce) tTimeInForce $+               LT.insert (tnum tEffectiveTime) tEffectiveTime $+               LT.insert (tnum tExpireDate) tExpireDate $+               LT.insert (tnum tExpireTime) tExpireTime $+               LT.insert (tnum tGTBookingInst) tGTBookingInst $+               LT.insert (tnum tCommission) tCommission $+               LT.insert (tnum tCommType) tCommType $+               LT.insert (tnum tCommCurrency) tCommCurrency $+               LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+               LT.insert (tnum tOrderCapacity) tOrderCapacity $+               LT.insert (tnum tOrderRestrictions) tOrderRestrictions $+               LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+               LT.insert (tnum tForexReq) tForexReq $+               LT.insert (tnum tSettlCurrency) tSettlCurrency $+               LT.insert (tnum tBookingType) tBookingType $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText $+               LT.insert (tnum tSettlDate2) tSettlDate2 $+               LT.insert (tnum tOrderQty2) tOrderQty2 $+               LT.insert (tnum tPrice2) tPrice2 $+               LT.insert (tnum tPositionEffect) tPositionEffect $+               LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+               LT.insert (tnum tMaxShow) tMaxShow $+               LT.insert (tnum tPegOffsetValue) tPegOffsetValue $+               LT.insert (tnum tPegMoveType) tPegMoveType $+               LT.insert (tnum tPegOffsetType) tPegOffsetType $+               LT.insert (tnum tPegLimitType) tPegLimitType $+               LT.insert (tnum tPegRoundDirection) tPegRoundDirection $+               LT.insert (tnum tPegScope) tPegScope $+               LT.insert (tnum tDiscretionInst) tDiscretionInst $+               LT.insert (tnum tDiscretionOffsetValue) tDiscretionOffsetValue $+               LT.insert (tnum tDiscretionMoveType) tDiscretionMoveType $+               LT.insert (tnum tDiscretionOffsetType) tDiscretionOffsetType $+               LT.insert (tnum tDiscretionLimitType) tDiscretionLimitType $+               LT.insert (tnum tDiscretionRoundDirection) tDiscretionRoundDirection $+               LT.insert (tnum tDiscretionScope) tDiscretionScope $+               LT.insert (tnum tTargetStrategy) tTargetStrategy $+               LT.insert (tnum tTargetStrategyParameters) tTargetStrategyParameters $+               LT.insert (tnum tParticipationRate) tParticipationRate $+               LT.insert (tnum tDesignation) tDesignation                LT.new+               where+                  gNoAllocs'''''' = FIXTag+                     { tName = "NoAllocs"+                     , tnum = tnum tNoAllocs+                     , tparser = gNoAllocsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec'''''' }++                  gNoAllocsP'''''' = groupP gNoAllocsSpec''''''+                  gNoAllocsSpec'''''' = FGSpec+                     { gsLength = tNoAllocs+                     , gsSeperator = tAllocAccount+                     , gsBody = gNoAllocsBody'''''' }+                     where+                     gNoAllocsBody'''''' = +                        LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $+                        LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $+                        LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+                        LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''''' $+                        LT.insert (tnum tAllocQty) tAllocQty                         LT.new+                        where+                           gNoNestedPartyIDs''''''''' = FIXTag+                              { tName = "NoNestedPartyIDs"+                              , tnum = tnum tNoNestedPartyIDs+                              , tparser = gNoNestedPartyIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec''''''''' }++                           gNoNestedPartyIDsP''''''''' = groupP gNoNestedPartyIDsSpec'''''''''+                           gNoNestedPartyIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartyIDs+                              , gsSeperator = tNestedPartyID+                              , gsBody = gNoNestedPartyIDsBody''''''''' }+                              where+                              gNoNestedPartyIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                                 LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                                 LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs''''''''''''                                  LT.new+                                 where+                                    gNoNestedPartySubIDs'''''''''''' = FIXTag+                                       { tName = "NoNestedPartySubIDs"+                                       , tnum = tnum tNoNestedPartySubIDs+                                       , tparser = gNoNestedPartySubIDsP''''''''''''+                                       , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec'''''''''''' }++                                    gNoNestedPartySubIDsP'''''''''''' = groupP gNoNestedPartySubIDsSpec''''''''''''+                                    gNoNestedPartySubIDsSpec'''''''''''' = FGSpec+                                       { gsLength = tNoNestedPartySubIDs+                                       , gsSeperator = tNestedPartySubID+                                       , gsBody = gNoNestedPartySubIDsBody'''''''''''' }+                                       where+                                       gNoNestedPartySubIDsBody'''''''''''' = +                                          LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                           LT.new++++                  gNoEvents'''''' = FIXTag+                     { tName = "NoEvents"+                     , tnum = tnum tNoEvents+                     , tparser = gNoEventsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }++                  gNoEventsP'''''' = groupP gNoEventsSpec''''''+                  gNoEventsSpec'''''' = FGSpec+                     { gsLength = tNoEvents+                     , gsSeperator = tEventType+                     , gsBody = gNoEventsBody'''''' }+                     where+                     gNoEventsBody'''''' = +                        LT.insert (tnum tEventDate) tEventDate $+                        LT.insert (tnum tEventPx) tEventPx $+                        LT.insert (tnum tEventText) tEventText                         LT.new++                  gNoPartyIDs'''''' = FIXTag+                     { tName = "NoPartyIDs"+                     , tnum = tnum tNoPartyIDs+                     , tparser = gNoPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec'''''' }++                  gNoPartyIDsP'''''' = groupP gNoPartyIDsSpec''''''+                  gNoPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartyIDs+                     , gsSeperator = tPartyID+                     , gsBody = gNoPartyIDsBody'''''' }+                     where+                     gNoPartyIDsBody'''''' = +                        LT.insert (tnum tPartyIDSource) tPartyIDSource $+                        LT.insert (tnum tPartyRole) tPartyRole $+                        LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs'''''''''                         LT.new+                        where+                           gNoPartySubIDs''''''''' = FIXTag+                              { tName = "NoPartySubIDs"+                              , tnum = tnum tNoPartySubIDs+                              , tparser = gNoPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec''''''''' }++                           gNoPartySubIDsP''''''''' = groupP gNoPartySubIDsSpec'''''''''+                           gNoPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoPartySubIDs+                              , gsSeperator = tPartySubID+                              , gsBody = gNoPartySubIDsBody''''''''' }+                              where+                              gNoPartySubIDsBody''''''''' = +                                 LT.insert (tnum tPartySubIDType) tPartySubIDType                                  LT.new+++                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new++                  gNoStipulations'''''' = FIXTag+                     { tName = "NoStipulations"+                     , tnum = tnum tNoStipulations+                     , tparser = gNoStipulationsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec'''''' }++                  gNoStipulationsP'''''' = groupP gNoStipulationsSpec''''''+                  gNoStipulationsSpec'''''' = FGSpec+                     { gsLength = tNoStipulations+                     , gsSeperator = tStipulationType+                     , gsBody = gNoStipulationsBody'''''' }+                     where+                     gNoStipulationsBody'''''' = +                        LT.insert (tnum tStipulationValue) tStipulationValue                         LT.new++                  gNoTradingSessions'''''' = FIXTag+                     { tName = "NoTradingSessions"+                     , tnum = tnum tNoTradingSessions+                     , tparser = gNoTradingSessionsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec'''''' }++                  gNoTradingSessionsP'''''' = groupP gNoTradingSessionsSpec''''''+                  gNoTradingSessionsSpec'''''' = FGSpec+                     { gsLength = tNoTradingSessions+                     , gsSeperator = tTradingSessionID+                     , gsBody = gNoTradingSessionsBody'''''' }+                     where+                     gNoTradingSessionsBody'''''' = +                        LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                         LT.new++                  gNoUnderlyings'''''' = FIXTag+                     { tName = "NoUnderlyings"+                     , tnum = tnum tNoUnderlyings+                     , tparser = gNoUnderlyingsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec'''''' }++                  gNoUnderlyingsP'''''' = groupP gNoUnderlyingsSpec''''''+                  gNoUnderlyingsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyings+                     , gsSeperator = tUnderlyingSymbol+                     , gsBody = gNoUnderlyingsBody'''''' }+                     where+                     gNoUnderlyingsBody'''''' = +                        LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+                        LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+                        LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+                        LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''''''''' $+                        LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+                        LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+                        LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+                        LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+                        LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+                        LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+                        LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+                        LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+                        LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+                        LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+                        LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+                        LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+                        LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+                        LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+                        LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+                        LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+                        LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+                        LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+                        LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+                        LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+                        LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+                        LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+                        LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+                        LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+                        LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+                        LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+                        LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+                        LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+                        LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+                        LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+                        LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+                        LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+                        LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+                        LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+                        LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+                        LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+                        LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+                        LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+                        LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+                        LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+                        LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''''''                         LT.new+                        where+                           gNoUnderlyingSecurityAltID''''''''' = FIXTag+                              { tName = "NoUnderlyingSecurityAltID"+                              , tnum = tnum tNoUnderlyingSecurityAltID+                              , tparser = gNoUnderlyingSecurityAltIDP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''''''''' }++                           gNoUnderlyingSecurityAltIDP''''''''' = groupP gNoUnderlyingSecurityAltIDSpec'''''''''+                           gNoUnderlyingSecurityAltIDSpec''''''''' = FGSpec+                              { gsLength = tNoUnderlyingSecurityAltID+                              , gsSeperator = tUnderlyingSecurityAltID+                              , gsBody = gNoUnderlyingSecurityAltIDBody''''''''' }+                              where+                              gNoUnderlyingSecurityAltIDBody''''''''' = +                                 LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                                  LT.new++                           gNoUnderlyingStips''''''''' = FIXTag+                              { tName = "NoUnderlyingStips"+                              , tnum = tnum tNoUnderlyingStips+                              , tparser = gNoUnderlyingStipsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''''''''' }++                           gNoUnderlyingStipsP''''''''' = groupP gNoUnderlyingStipsSpec'''''''''+                           gNoUnderlyingStipsSpec''''''''' = FGSpec+                              { gsLength = tNoUnderlyingStips+                              , gsSeperator = tUnderlyingStipType+                              , gsBody = gNoUnderlyingStipsBody''''''''' }+                              where+                              gNoUnderlyingStipsBody''''''''' = +                                 LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                                  LT.new++++++mOrderCancelRequest :: FIXMessageSpec+mOrderCancelRequest = FMSpec+   { msName = "OrderCancelRequest"+   , msType = C.pack "F"+   , msHeader = headerFIX44+   , msBody = mOrderCancelRequestBody+   , msTrailer = trailerFIX44 }+   where+   mOrderCancelRequestBody = +      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tOrigOrdModTime) tOrigOrdModTime $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tAgreementDesc) tAgreementDesc $+      LT.insert (tnum tAgreementID) tAgreementID $+      LT.insert (tnum tAgreementDate) tAgreementDate $+      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+      LT.insert (tnum tTerminationType) tTerminationType $+      LT.insert (tnum tStartDate) tStartDate $+      LT.insert (tnum tEndDate) tEndDate $+      LT.insert (tnum tDeliveryType) tDeliveryType $+      LT.insert (tnum tMarginRatio) tMarginRatio $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrderPercent) tOrderPercent $+      LT.insert (tnum tRoundingDirection) tRoundingDirection $+      LT.insert (tnum tRoundingModulus) tRoundingModulus $+      LT.insert (tnum tComplianceID) tComplianceID $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mOrderCancelReplaceRequest :: FIXMessageSpec+mOrderCancelReplaceRequest = FMSpec+   { msName = "OrderCancelReplaceRequest"+   , msType = C.pack "G"+   , msHeader = headerFIX44+   , msBody = mOrderCancelReplaceRequestBody+   , msTrailer = trailerFIX44 }+   where+   mOrderCancelReplaceRequestBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tOrigOrdModTime) tOrigOrdModTime $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tDayBookingInst) tDayBookingInst $+      LT.insert (tnum tBookingUnit) tBookingUnit $+      LT.insert (tnum tPreallocMethod) tPreallocMethod $+      LT.insert (tnum tAllocID) tAllocID $+      LT.insert (tnum tNoAllocs) gNoAllocs''' $+      LT.insert (tnum tSettlType) tSettlType $+      LT.insert (tnum tSettlDate) tSettlDate $+      LT.insert (tnum tCashMargin) tCashMargin $+      LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tAgreementDesc) tAgreementDesc $+      LT.insert (tnum tAgreementID) tAgreementID $+      LT.insert (tnum tAgreementDate) tAgreementDate $+      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+      LT.insert (tnum tTerminationType) tTerminationType $+      LT.insert (tnum tStartDate) tStartDate $+      LT.insert (tnum tEndDate) tEndDate $+      LT.insert (tnum tDeliveryType) tDeliveryType $+      LT.insert (tnum tMarginRatio) tMarginRatio $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tQtyType) tQtyType $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrderPercent) tOrderPercent $+      LT.insert (tnum tRoundingDirection) tRoundingDirection $+      LT.insert (tnum tRoundingModulus) tRoundingModulus $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+      LT.insert (tnum tYieldType) tYieldType $+      LT.insert (tnum tYield) tYield $+      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $+      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $+      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $+      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $+      LT.insert (tnum tPegOffsetValue) tPegOffsetValue $+      LT.insert (tnum tPegMoveType) tPegMoveType $+      LT.insert (tnum tPegOffsetType) tPegOffsetType $+      LT.insert (tnum tPegLimitType) tPegLimitType $+      LT.insert (tnum tPegRoundDirection) tPegRoundDirection $+      LT.insert (tnum tPegScope) tPegScope $+      LT.insert (tnum tDiscretionInst) tDiscretionInst $+      LT.insert (tnum tDiscretionOffsetValue) tDiscretionOffsetValue $+      LT.insert (tnum tDiscretionMoveType) tDiscretionMoveType $+      LT.insert (tnum tDiscretionOffsetType) tDiscretionOffsetType $+      LT.insert (tnum tDiscretionLimitType) tDiscretionLimitType $+      LT.insert (tnum tDiscretionRoundDirection) tDiscretionRoundDirection $+      LT.insert (tnum tDiscretionScope) tDiscretionScope $+      LT.insert (tnum tTargetStrategy) tTargetStrategy $+      LT.insert (tnum tTargetStrategyParameters) tTargetStrategyParameters $+      LT.insert (tnum tParticipationRate) tParticipationRate $+      LT.insert (tnum tComplianceID) tComplianceID $+      LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tEffectiveTime) tEffectiveTime $+      LT.insert (tnum tExpireDate) tExpireDate $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tGTBookingInst) tGTBookingInst $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tCommCurrency) tCommCurrency $+      LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+      LT.insert (tnum tOrderCapacity) tOrderCapacity $+      LT.insert (tnum tOrderRestrictions) tOrderRestrictions $+      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+      LT.insert (tnum tForexReq) tForexReq $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tBookingType) tBookingType $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tSettlDate2) tSettlDate2 $+      LT.insert (tnum tOrderQty2) tOrderQty2 $+      LT.insert (tnum tPrice2) tPrice2 $+      LT.insert (tnum tPositionEffect) tPositionEffect $+      LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+      LT.insert (tnum tMaxShow) tMaxShow $+      LT.insert (tnum tLocateReqd) tLocateReqd $+      LT.insert (tnum tCancellationRights) tCancellationRights $+      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $+      LT.insert (tnum tRegistID) tRegistID $+      LT.insert (tnum tDesignation) tDesignation       LT.new+      where+         gNoAllocs''' = FIXTag+            { tName = "NoAllocs"+            , tnum = tnum tNoAllocs+            , tparser = gNoAllocsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }++         gNoAllocsP''' = groupP gNoAllocsSpec'''+         gNoAllocsSpec''' = FGSpec+            { gsLength = tNoAllocs+            , gsSeperator = tAllocAccount+            , gsBody = gNoAllocsBody''' }+            where+            gNoAllocsBody''' = +               LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $+               LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $+               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $+               LT.insert (tnum tAllocQty) tAllocQty                LT.new+               where+                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new+                        where+                           gNoNestedPartySubIDs''''''''' = FIXTag+                              { tName = "NoNestedPartySubIDs"+                              , tnum = tnum tNoNestedPartySubIDs+                              , tparser = gNoNestedPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }++                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''+                           gNoNestedPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartySubIDs+                              , gsSeperator = tNestedPartySubID+                              , gsBody = gNoNestedPartySubIDsBody''''''''' }+                              where+                              gNoNestedPartySubIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new++++         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoTradingSessions''' = FIXTag+            { tName = "NoTradingSessions"+            , tnum = tnum tNoTradingSessions+            , tparser = gNoTradingSessionsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }++         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''+         gNoTradingSessionsSpec''' = FGSpec+            { gsLength = tNoTradingSessions+            , gsSeperator = tTradingSessionID+            , gsBody = gNoTradingSessionsBody''' }+            where+            gNoTradingSessionsBody''' = +               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mOrderStatusRequest :: FIXMessageSpec+mOrderStatusRequest = FMSpec+   { msName = "OrderStatusRequest"+   , msType = C.pack "H"+   , msHeader = headerFIX44+   , msBody = mOrderStatusRequestBody+   , msTrailer = trailerFIX44 }+   where+   mOrderStatusRequestBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tOrdStatusReqID) tOrdStatusReqID $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tAgreementDesc) tAgreementDesc $+      LT.insert (tnum tAgreementID) tAgreementID $+      LT.insert (tnum tAgreementDate) tAgreementDate $+      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+      LT.insert (tnum tTerminationType) tTerminationType $+      LT.insert (tnum tStartDate) tStartDate $+      LT.insert (tnum tEndDate) tEndDate $+      LT.insert (tnum tDeliveryType) tDeliveryType $+      LT.insert (tnum tMarginRatio) tMarginRatio $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tSide) tSide       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mAllocationInstruction :: FIXMessageSpec+mAllocationInstruction = FMSpec+   { msName = "AllocationInstruction"+   , msType = C.pack "J"+   , msHeader = headerFIX44+   , msBody = mAllocationInstructionBody+   , msTrailer = trailerFIX44 }+   where+   mAllocationInstructionBody = +      LT.insert (tnum tAllocID) tAllocID $+      LT.insert (tnum tAllocTransType) tAllocTransType $+      LT.insert (tnum tAllocType) tAllocType $+      LT.insert (tnum tSecondaryAllocID) tSecondaryAllocID $+      LT.insert (tnum tRefAllocID) tRefAllocID $+      LT.insert (tnum tAllocCancReplaceReason) tAllocCancReplaceReason $+      LT.insert (tnum tAllocIntermedReqType) tAllocIntermedReqType $+      LT.insert (tnum tAllocLinkID) tAllocLinkID $+      LT.insert (tnum tAllocLinkType) tAllocLinkType $+      LT.insert (tnum tBookingRefID) tBookingRefID $+      LT.insert (tnum tAllocNoOrdersType) tAllocNoOrdersType $+      LT.insert (tnum tNoOrders) gNoOrders''' $+      LT.insert (tnum tNoExecs) gNoExecs''' $+      LT.insert (tnum tPreviouslyReported) tPreviouslyReported $+      LT.insert (tnum tReversalIndicator) tReversalIndicator $+      LT.insert (tnum tMatchType) tMatchType $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tDeliveryForm) tDeliveryForm $+      LT.insert (tnum tPctAtRisk) tPctAtRisk $+      LT.insert (tnum tNoInstrAttrib) gNoInstrAttrib''' $+      LT.insert (tnum tAgreementDesc) tAgreementDesc $+      LT.insert (tnum tAgreementID) tAgreementID $+      LT.insert (tnum tAgreementDate) tAgreementDate $+      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+      LT.insert (tnum tTerminationType) tTerminationType $+      LT.insert (tnum tStartDate) tStartDate $+      LT.insert (tnum tEndDate) tEndDate $+      LT.insert (tnum tDeliveryType) tDeliveryType $+      LT.insert (tnum tMarginRatio) tMarginRatio $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tQuantity) tQuantity $+      LT.insert (tnum tQtyType) tQtyType $+      LT.insert (tnum tLastMkt) tLastMkt $+      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tAvgPx) tAvgPx $+      LT.insert (tnum tAvgParPx) tAvgParPx $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tAvgPxPrecision) tAvgPxPrecision $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tSettlType) tSettlType $+      LT.insert (tnum tSettlDate) tSettlDate $+      LT.insert (tnum tBookingType) tBookingType $+      LT.insert (tnum tGrossTradeAmt) tGrossTradeAmt $+      LT.insert (tnum tConcession) tConcession $+      LT.insert (tnum tTotalTakedown) tTotalTakedown $+      LT.insert (tnum tNetMoney) tNetMoney $+      LT.insert (tnum tPositionEffect) tPositionEffect $+      LT.insert (tnum tAutoAcceptIndicator) tAutoAcceptIndicator $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tNumDaysInterest) tNumDaysInterest $+      LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $+      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+      LT.insert (tnum tTotalAccruedInterestAmt) tTotalAccruedInterestAmt $+      LT.insert (tnum tInterestAtMaturity) tInterestAtMaturity $+      LT.insert (tnum tEndAccruedInterestAmt) tEndAccruedInterestAmt $+      LT.insert (tnum tStartCash) tStartCash $+      LT.insert (tnum tEndCash) tEndCash $+      LT.insert (tnum tLegalConfirm) tLegalConfirm $+      LT.insert (tnum tNoStipulations) gNoStipulations''' $+      LT.insert (tnum tYieldType) tYieldType $+      LT.insert (tnum tYield) tYield $+      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $+      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $+      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $+      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $+      LT.insert (tnum tTotNoAllocs) tTotNoAllocs $+      LT.insert (tnum tLastFragment) tLastFragment $+      LT.insert (tnum tNoAllocs) gNoAllocs'''       LT.new+      where+         gNoAllocs''' = FIXTag+            { tName = "NoAllocs"+            , tnum = tnum tNoAllocs+            , tparser = gNoAllocsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }++         gNoAllocsP''' = groupP gNoAllocsSpec'''+         gNoAllocsSpec''' = FGSpec+            { gsLength = tNoAllocs+            , gsSeperator = tAllocAccount+            , gsBody = gNoAllocsBody''' }+            where+            gNoAllocsBody''' = +               LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $+               LT.insert (tnum tMatchStatus) tMatchStatus $+               LT.insert (tnum tAllocPrice) tAllocPrice $+               LT.insert (tnum tAllocQty) tAllocQty $+               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+               LT.insert (tnum tProcessCode) tProcessCode $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $+               LT.insert (tnum tNotifyBrokerOfCredit) tNotifyBrokerOfCredit $+               LT.insert (tnum tAllocHandlInst) tAllocHandlInst $+               LT.insert (tnum tAllocText) tAllocText $+               LT.insert (tnum tEncodedAllocTextLen) tEncodedAllocTextLen $+               LT.insert (tnum tEncodedAllocText) tEncodedAllocText $+               LT.insert (tnum tCommission) tCommission $+               LT.insert (tnum tCommType) tCommType $+               LT.insert (tnum tCommCurrency) tCommCurrency $+               LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+               LT.insert (tnum tAllocAvgPx) tAllocAvgPx $+               LT.insert (tnum tAllocNetMoney) tAllocNetMoney $+               LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $+               LT.insert (tnum tAllocSettlCurrAmt) tAllocSettlCurrAmt $+               LT.insert (tnum tSettlCurrency) tSettlCurrency $+               LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $+               LT.insert (tnum tSettlCurrFxRate) tSettlCurrFxRate $+               LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $+               LT.insert (tnum tAllocAccruedInterestAmt) tAllocAccruedInterestAmt $+               LT.insert (tnum tAllocInterestAtMaturity) tAllocInterestAtMaturity $+               LT.insert (tnum tNoMiscFees) gNoMiscFees'''''' $+               LT.insert (tnum tNoClearingInstructions) gNoClearingInstructions'''''' $+               LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+               LT.insert (tnum tAllocSettlInstType) tAllocSettlInstType $+               LT.insert (tnum tSettlDeliveryType) tSettlDeliveryType $+               LT.insert (tnum tStandInstDbType) tStandInstDbType $+               LT.insert (tnum tStandInstDbName) tStandInstDbName $+               LT.insert (tnum tStandInstDbID) tStandInstDbID $+               LT.insert (tnum tNoDlvyInst) gNoDlvyInst''''''                LT.new+               where+                  gNoClearingInstructions'''''' = FIXTag+                     { tName = "NoClearingInstructions"+                     , tnum = tnum tNoClearingInstructions+                     , tparser = gNoClearingInstructionsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoClearingInstructionsSpec'''''' }++                  gNoClearingInstructionsP'''''' = groupP gNoClearingInstructionsSpec''''''+                  gNoClearingInstructionsSpec'''''' = FGSpec+                     { gsLength = tNoClearingInstructions+                     , gsSeperator = tClearingInstruction+                     , gsBody = gNoClearingInstructionsBody'''''' }+                     where+                     gNoClearingInstructionsBody'''''' = +                        LT.new++                  gNoDlvyInst'''''' = FIXTag+                     { tName = "NoDlvyInst"+                     , tnum = tnum tNoDlvyInst+                     , tparser = gNoDlvyInstP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoDlvyInstSpec'''''' }++                  gNoDlvyInstP'''''' = groupP gNoDlvyInstSpec''''''+                  gNoDlvyInstSpec'''''' = FGSpec+                     { gsLength = tNoDlvyInst+                     , gsSeperator = tSettlInstSource+                     , gsBody = gNoDlvyInstBody'''''' }+                     where+                     gNoDlvyInstBody'''''' = +                        LT.insert (tnum tDlvyInstType) tDlvyInstType $+                        LT.insert (tnum tNoSettlPartyIDs) gNoSettlPartyIDs'''''''''                         LT.new+                        where+                           gNoSettlPartyIDs''''''''' = FIXTag+                              { tName = "NoSettlPartyIDs"+                              , tnum = tnum tNoSettlPartyIDs+                              , tparser = gNoSettlPartyIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoSettlPartyIDsSpec''''''''' }++                           gNoSettlPartyIDsP''''''''' = groupP gNoSettlPartyIDsSpec'''''''''+                           gNoSettlPartyIDsSpec''''''''' = FGSpec+                              { gsLength = tNoSettlPartyIDs+                              , gsSeperator = tSettlPartyID+                              , gsBody = gNoSettlPartyIDsBody''''''''' }+                              where+                              gNoSettlPartyIDsBody''''''''' = +                                 LT.insert (tnum tSettlPartyIDSource) tSettlPartyIDSource $+                                 LT.insert (tnum tSettlPartyRole) tSettlPartyRole $+                                 LT.insert (tnum tNoSettlPartySubIDs) gNoSettlPartySubIDs''''''''''''                                  LT.new+                                 where+                                    gNoSettlPartySubIDs'''''''''''' = FIXTag+                                       { tName = "NoSettlPartySubIDs"+                                       , tnum = tnum tNoSettlPartySubIDs+                                       , tparser = gNoSettlPartySubIDsP''''''''''''+                                       , arbitraryValue = arbibtraryFIXGroup gNoSettlPartySubIDsSpec'''''''''''' }++                                    gNoSettlPartySubIDsP'''''''''''' = groupP gNoSettlPartySubIDsSpec''''''''''''+                                    gNoSettlPartySubIDsSpec'''''''''''' = FGSpec+                                       { gsLength = tNoSettlPartySubIDs+                                       , gsSeperator = tSettlPartySubID+                                       , gsBody = gNoSettlPartySubIDsBody'''''''''''' }+                                       where+                                       gNoSettlPartySubIDsBody'''''''''''' = +                                          LT.insert (tnum tSettlPartySubIDType) tSettlPartySubIDType                                           LT.new++++                  gNoMiscFees'''''' = FIXTag+                     { tName = "NoMiscFees"+                     , tnum = tnum tNoMiscFees+                     , tparser = gNoMiscFeesP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec'''''' }++                  gNoMiscFeesP'''''' = groupP gNoMiscFeesSpec''''''+                  gNoMiscFeesSpec'''''' = FGSpec+                     { gsLength = tNoMiscFees+                     , gsSeperator = tMiscFeeAmt+                     , gsBody = gNoMiscFeesBody'''''' }+                     where+                     gNoMiscFeesBody'''''' = +                        LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $+                        LT.insert (tnum tMiscFeeType) tMiscFeeType $+                        LT.insert (tnum tMiscFeeBasis) tMiscFeeBasis                         LT.new++                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new+                        where+                           gNoNestedPartySubIDs''''''''' = FIXTag+                              { tName = "NoNestedPartySubIDs"+                              , tnum = tnum tNoNestedPartySubIDs+                              , tparser = gNoNestedPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }++                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''+                           gNoNestedPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartySubIDs+                              , gsSeperator = tNestedPartySubID+                              , gsBody = gNoNestedPartySubIDsBody''''''''' }+                              where+                              gNoNestedPartySubIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new++++         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoExecs''' = FIXTag+            { tName = "NoExecs"+            , tnum = tnum tNoExecs+            , tparser = gNoExecsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoExecsSpec''' }++         gNoExecsP''' = groupP gNoExecsSpec'''+         gNoExecsSpec''' = FGSpec+            { gsLength = tNoExecs+            , gsSeperator = tLastQty+            , gsBody = gNoExecsBody''' }+            where+            gNoExecsBody''' = +               LT.insert (tnum tExecID) tExecID $+               LT.insert (tnum tSecondaryExecID) tSecondaryExecID $+               LT.insert (tnum tLastPx) tLastPx $+               LT.insert (tnum tLastParPx) tLastParPx $+               LT.insert (tnum tLastCapacity) tLastCapacity                LT.new++         gNoInstrAttrib''' = FIXTag+            { tName = "NoInstrAttrib"+            , tnum = tnum tNoInstrAttrib+            , tparser = gNoInstrAttribP'''+            , arbitraryValue = arbibtraryFIXGroup gNoInstrAttribSpec''' }++         gNoInstrAttribP''' = groupP gNoInstrAttribSpec'''+         gNoInstrAttribSpec''' = FGSpec+            { gsLength = tNoInstrAttrib+            , gsSeperator = tInstrAttribType+            , gsBody = gNoInstrAttribBody''' }+            where+            gNoInstrAttribBody''' = +               LT.insert (tnum tInstrAttribValue) tInstrAttribValue                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoOrders''' = FIXTag+            { tName = "NoOrders"+            , tnum = tnum tNoOrders+            , tparser = gNoOrdersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoOrdersSpec''' }++         gNoOrdersP''' = groupP gNoOrdersSpec'''+         gNoOrdersSpec''' = FGSpec+            { gsLength = tNoOrders+            , gsSeperator = tClOrdID+            , gsBody = gNoOrdersBody''' }+            where+            gNoOrdersBody''' = +               LT.insert (tnum tOrderID) tOrderID $+               LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+               LT.insert (tnum tListID) tListID $+               LT.insert (tnum tNoNested2PartyIDs) gNoNested2PartyIDs'''''' $+               LT.insert (tnum tOrderQty) tOrderQty $+               LT.insert (tnum tOrderAvgPx) tOrderAvgPx $+               LT.insert (tnum tOrderBookingQty) tOrderBookingQty                LT.new+               where+                  gNoNested2PartyIDs'''''' = FIXTag+                     { tName = "NoNested2PartyIDs"+                     , tnum = tnum tNoNested2PartyIDs+                     , tparser = gNoNested2PartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNested2PartyIDsSpec'''''' }++                  gNoNested2PartyIDsP'''''' = groupP gNoNested2PartyIDsSpec''''''+                  gNoNested2PartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNested2PartyIDs+                     , gsSeperator = tNested2PartyID+                     , gsBody = gNoNested2PartyIDsBody'''''' }+                     where+                     gNoNested2PartyIDsBody'''''' = +                        LT.insert (tnum tNested2PartyIDSource) tNested2PartyIDSource $+                        LT.insert (tnum tNested2PartyRole) tNested2PartyRole $+                        LT.insert (tnum tNoNested2PartySubIDs) gNoNested2PartySubIDs'''''''''                         LT.new+                        where+                           gNoNested2PartySubIDs''''''''' = FIXTag+                              { tName = "NoNested2PartySubIDs"+                              , tnum = tnum tNoNested2PartySubIDs+                              , tparser = gNoNested2PartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNested2PartySubIDsSpec''''''''' }++                           gNoNested2PartySubIDsP''''''''' = groupP gNoNested2PartySubIDsSpec'''''''''+                           gNoNested2PartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNested2PartySubIDs+                              , gsSeperator = tNested2PartySubID+                              , gsBody = gNoNested2PartySubIDsBody''''''''' }+                              where+                              gNoNested2PartySubIDsBody''''''''' = +                                 LT.insert (tnum tNested2PartySubIDType) tNested2PartySubIDType                                  LT.new++++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoStipulations''' = FIXTag+            { tName = "NoStipulations"+            , tnum = tnum tNoStipulations+            , tparser = gNoStipulationsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }++         gNoStipulationsP''' = groupP gNoStipulationsSpec'''+         gNoStipulationsSpec''' = FGSpec+            { gsLength = tNoStipulations+            , gsSeperator = tStipulationType+            , gsBody = gNoStipulationsBody''' }+            where+            gNoStipulationsBody''' = +               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mListCancelRequest :: FIXMessageSpec+mListCancelRequest = FMSpec+   { msName = "ListCancelRequest"+   , msType = C.pack "K"+   , msHeader = headerFIX44+   , msBody = mListCancelRequestBody+   , msTrailer = trailerFIX44 }+   where+   mListCancelRequestBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mListExecute :: FIXMessageSpec+mListExecute = FMSpec+   { msName = "ListExecute"+   , msType = C.pack "L"+   , msHeader = headerFIX44+   , msBody = mListExecuteBody+   , msTrailer = trailerFIX44 }+   where+   mListExecuteBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tClientBidID) tClientBidID $+      LT.insert (tnum tBidID) tBidID $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mListStatusRequest :: FIXMessageSpec+mListStatusRequest = FMSpec+   { msName = "ListStatusRequest"+   , msType = C.pack "M"+   , msHeader = headerFIX44+   , msBody = mListStatusRequestBody+   , msTrailer = trailerFIX44 }+   where+   mListStatusRequestBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mListStatus :: FIXMessageSpec+mListStatus = FMSpec+   { msName = "ListStatus"+   , msType = C.pack "N"+   , msHeader = headerFIX44+   , msBody = mListStatusBody+   , msTrailer = trailerFIX44 }+   where+   mListStatusBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tListStatusType) tListStatusType $+      LT.insert (tnum tNoRpts) tNoRpts $+      LT.insert (tnum tListOrderStatus) tListOrderStatus $+      LT.insert (tnum tRptSeq) tRptSeq $+      LT.insert (tnum tListStatusText) tListStatusText $+      LT.insert (tnum tEncodedListStatusTextLen) tEncodedListStatusTextLen $+      LT.insert (tnum tEncodedListStatusText) tEncodedListStatusText $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tTotNoOrders) tTotNoOrders $+      LT.insert (tnum tLastFragment) tLastFragment $+      LT.insert (tnum tNoOrders) gNoOrders'''       LT.new+      where+         gNoOrders''' = FIXTag+            { tName = "NoOrders"+            , tnum = tnum tNoOrders+            , tparser = gNoOrdersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoOrdersSpec''' }++         gNoOrdersP''' = groupP gNoOrdersSpec'''+         gNoOrdersSpec''' = FGSpec+            { gsLength = tNoOrders+            , gsSeperator = tClOrdID+            , gsBody = gNoOrdersBody''' }+            where+            gNoOrdersBody''' = +               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+               LT.insert (tnum tCumQty) tCumQty $+               LT.insert (tnum tOrdStatus) tOrdStatus $+               LT.insert (tnum tWorkingIndicator) tWorkingIndicator $+               LT.insert (tnum tLeavesQty) tLeavesQty $+               LT.insert (tnum tCxlQty) tCxlQty $+               LT.insert (tnum tAvgPx) tAvgPx $+               LT.insert (tnum tOrdRejReason) tOrdRejReason $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new++++mAllocationInstructionAck :: FIXMessageSpec+mAllocationInstructionAck = FMSpec+   { msName = "AllocationInstructionAck"+   , msType = C.pack "P"+   , msHeader = headerFIX44+   , msBody = mAllocationInstructionAckBody+   , msTrailer = trailerFIX44 }+   where+   mAllocationInstructionAckBody = +      LT.insert (tnum tAllocID) tAllocID $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tSecondaryAllocID) tSecondaryAllocID $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tAllocStatus) tAllocStatus $+      LT.insert (tnum tAllocRejCode) tAllocRejCode $+      LT.insert (tnum tAllocType) tAllocType $+      LT.insert (tnum tAllocIntermedReqType) tAllocIntermedReqType $+      LT.insert (tnum tMatchStatus) tMatchStatus $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tNoAllocs) gNoAllocs'''       LT.new+      where+         gNoAllocs''' = FIXTag+            { tName = "NoAllocs"+            , tnum = tnum tNoAllocs+            , tparser = gNoAllocsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }++         gNoAllocsP''' = groupP gNoAllocsSpec'''+         gNoAllocsSpec''' = FGSpec+            { gsLength = tNoAllocs+            , gsSeperator = tAllocAccount+            , gsBody = gNoAllocsBody''' }+            where+            gNoAllocsBody''' = +               LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $+               LT.insert (tnum tAllocPrice) tAllocPrice $+               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+               LT.insert (tnum tIndividualAllocRejCode) tIndividualAllocRejCode $+               LT.insert (tnum tAllocText) tAllocText $+               LT.insert (tnum tEncodedAllocTextLen) tEncodedAllocTextLen $+               LT.insert (tnum tEncodedAllocText) tEncodedAllocText                LT.new++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++++mDontKnowTrade :: FIXMessageSpec+mDontKnowTrade = FMSpec+   { msName = "DontKnowTrade"+   , msType = C.pack "Q"+   , msHeader = headerFIX44+   , msBody = mDontKnowTradeBody+   , msTrailer = trailerFIX44 }+   where+   mDontKnowTradeBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+      LT.insert (tnum tExecID) tExecID $+      LT.insert (tnum tDKReason) tDKReason $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrderPercent) tOrderPercent $+      LT.insert (tnum tRoundingDirection) tRoundingDirection $+      LT.insert (tnum tRoundingModulus) tRoundingModulus $+      LT.insert (tnum tLastQty) tLastQty $+      LT.insert (tnum tLastPx) tLastPx $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mQuoteRequest :: FIXMessageSpec+mQuoteRequest = FMSpec+   { msName = "QuoteRequest"+   , msType = C.pack "R"+   , msHeader = headerFIX44+   , msBody = mQuoteRequestBody+   , msTrailer = trailerFIX44 }+   where+   mQuoteRequestBody = +      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tRFQReqID) tRFQReqID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tOrderCapacity) tOrderCapacity $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym''' $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tSymbol+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tSecuritySubType) tSecuritySubType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tPool) tPool $+               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+               LT.insert (tnum tCPProgram) tCPProgram $+               LT.insert (tnum tCPRegType) tCPRegType $+               LT.insert (tnum tNoEvents) gNoEvents'''''' $+               LT.insert (tnum tDatedDate) tDatedDate $+               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+               LT.insert (tnum tAgreementDesc) tAgreementDesc $+               LT.insert (tnum tAgreementID) tAgreementID $+               LT.insert (tnum tAgreementDate) tAgreementDate $+               LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+               LT.insert (tnum tTerminationType) tTerminationType $+               LT.insert (tnum tStartDate) tStartDate $+               LT.insert (tnum tEndDate) tEndDate $+               LT.insert (tnum tDeliveryType) tDeliveryType $+               LT.insert (tnum tMarginRatio) tMarginRatio $+               LT.insert (tnum tNoUnderlyings) gNoUnderlyings'''''' $+               LT.insert (tnum tPrevClosePx) tPrevClosePx $+               LT.insert (tnum tQuoteRequestType) tQuoteRequestType $+               LT.insert (tnum tQuoteType) tQuoteType $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+               LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+               LT.insert (tnum tSide) tSide $+               LT.insert (tnum tQtyType) tQtyType $+               LT.insert (tnum tOrderQty) tOrderQty $+               LT.insert (tnum tCashOrderQty) tCashOrderQty $+               LT.insert (tnum tOrderPercent) tOrderPercent $+               LT.insert (tnum tRoundingDirection) tRoundingDirection $+               LT.insert (tnum tRoundingModulus) tRoundingModulus $+               LT.insert (tnum tSettlType) tSettlType $+               LT.insert (tnum tSettlDate) tSettlDate $+               LT.insert (tnum tSettlDate2) tSettlDate2 $+               LT.insert (tnum tOrderQty2) tOrderQty2 $+               LT.insert (tnum tCurrency) tCurrency $+               LT.insert (tnum tNoStipulations) gNoStipulations'''''' $+               LT.insert (tnum tAccount) tAccount $+               LT.insert (tnum tAcctIDSource) tAcctIDSource $+               LT.insert (tnum tAccountType) tAccountType $+               LT.insert (tnum tNoLegs) gNoLegs'''''' $+               LT.insert (tnum tNoQuoteQualifiers) gNoQuoteQualifiers'''''' $+               LT.insert (tnum tQuotePriceType) tQuotePriceType $+               LT.insert (tnum tOrdType) tOrdType $+               LT.insert (tnum tValidUntilTime) tValidUntilTime $+               LT.insert (tnum tExpireTime) tExpireTime $+               LT.insert (tnum tTransactTime) tTransactTime $+               LT.insert (tnum tSpread) tSpread $+               LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+               LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+               LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+               LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+               LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+               LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+               LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+               LT.insert (tnum tPriceType) tPriceType $+               LT.insert (tnum tPrice) tPrice $+               LT.insert (tnum tPrice2) tPrice2 $+               LT.insert (tnum tYieldType) tYieldType $+               LT.insert (tnum tYield) tYield $+               LT.insert (tnum tYieldCalcDate) tYieldCalcDate $+               LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $+               LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $+               LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $+               LT.insert (tnum tNoPartyIDs) gNoPartyIDs''''''                LT.new+               where+                  gNoEvents'''''' = FIXTag+                     { tName = "NoEvents"+                     , tnum = tnum tNoEvents+                     , tparser = gNoEventsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }++                  gNoEventsP'''''' = groupP gNoEventsSpec''''''+                  gNoEventsSpec'''''' = FGSpec+                     { gsLength = tNoEvents+                     , gsSeperator = tEventType+                     , gsBody = gNoEventsBody'''''' }+                     where+                     gNoEventsBody'''''' = +                        LT.insert (tnum tEventDate) tEventDate $+                        LT.insert (tnum tEventPx) tEventPx $+                        LT.insert (tnum tEventText) tEventText                         LT.new++                  gNoLegs'''''' = FIXTag+                     { tName = "NoLegs"+                     , tnum = tnum tNoLegs+                     , tparser = gNoLegsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec'''''' }++                  gNoLegsP'''''' = groupP gNoLegsSpec''''''+                  gNoLegsSpec'''''' = FGSpec+                     { gsLength = tNoLegs+                     , gsSeperator = tLegSymbol+                     , gsBody = gNoLegsBody'''''' }+                     where+                     gNoLegsBody'''''' = +                        LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+                        LT.insert (tnum tLegSecurityID) tLegSecurityID $+                        LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+                        LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID''''''''' $+                        LT.insert (tnum tLegProduct) tLegProduct $+                        LT.insert (tnum tLegCFICode) tLegCFICode $+                        LT.insert (tnum tLegSecurityType) tLegSecurityType $+                        LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+                        LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+                        LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+                        LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+                        LT.insert (tnum tLegIssueDate) tLegIssueDate $+                        LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+                        LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+                        LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+                        LT.insert (tnum tLegFactor) tLegFactor $+                        LT.insert (tnum tLegCreditRating) tLegCreditRating $+                        LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+                        LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+                        LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+                        LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+                        LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+                        LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+                        LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+                        LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+                        LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+                        LT.insert (tnum tLegCouponRate) tLegCouponRate $+                        LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+                        LT.insert (tnum tLegIssuer) tLegIssuer $+                        LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+                        LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+                        LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+                        LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+                        LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+                        LT.insert (tnum tLegRatioQty) tLegRatioQty $+                        LT.insert (tnum tLegSide) tLegSide $+                        LT.insert (tnum tLegCurrency) tLegCurrency $+                        LT.insert (tnum tLegPool) tLegPool $+                        LT.insert (tnum tLegDatedDate) tLegDatedDate $+                        LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+                        LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $+                        LT.insert (tnum tLegQty) tLegQty $+                        LT.insert (tnum tLegSwapType) tLegSwapType $+                        LT.insert (tnum tLegSettlType) tLegSettlType $+                        LT.insert (tnum tLegSettlDate) tLegSettlDate $+                        LT.insert (tnum tNoLegStipulations) gNoLegStipulations''''''''' $+                        LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''''' $+                        LT.insert (tnum tLegBenchmarkCurveCurrency) tLegBenchmarkCurveCurrency $+                        LT.insert (tnum tLegBenchmarkCurveName) tLegBenchmarkCurveName $+                        LT.insert (tnum tLegBenchmarkCurvePoint) tLegBenchmarkCurvePoint $+                        LT.insert (tnum tLegBenchmarkPrice) tLegBenchmarkPrice $+                        LT.insert (tnum tLegBenchmarkPriceType) tLegBenchmarkPriceType                         LT.new+                        where+                           gNoLegSecurityAltID''''''''' = FIXTag+                              { tName = "NoLegSecurityAltID"+                              , tnum = tnum tNoLegSecurityAltID+                              , tparser = gNoLegSecurityAltIDP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec''''''''' }++                           gNoLegSecurityAltIDP''''''''' = groupP gNoLegSecurityAltIDSpec'''''''''+                           gNoLegSecurityAltIDSpec''''''''' = FGSpec+                              { gsLength = tNoLegSecurityAltID+                              , gsSeperator = tLegSecurityAltID+                              , gsBody = gNoLegSecurityAltIDBody''''''''' }+                              where+                              gNoLegSecurityAltIDBody''''''''' = +                                 LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                                  LT.new++                           gNoLegStipulations''''''''' = FIXTag+                              { tName = "NoLegStipulations"+                              , tnum = tnum tNoLegStipulations+                              , tparser = gNoLegStipulationsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec''''''''' }++                           gNoLegStipulationsP''''''''' = groupP gNoLegStipulationsSpec'''''''''+                           gNoLegStipulationsSpec''''''''' = FGSpec+                              { gsLength = tNoLegStipulations+                              , gsSeperator = tLegStipulationType+                              , gsBody = gNoLegStipulationsBody''''''''' }+                              where+                              gNoLegStipulationsBody''''''''' = +                                 LT.insert (tnum tLegStipulationValue) tLegStipulationValue                                  LT.new++                           gNoNestedPartyIDs''''''''' = FIXTag+                              { tName = "NoNestedPartyIDs"+                              , tnum = tnum tNoNestedPartyIDs+                              , tparser = gNoNestedPartyIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec''''''''' }++                           gNoNestedPartyIDsP''''''''' = groupP gNoNestedPartyIDsSpec'''''''''+                           gNoNestedPartyIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartyIDs+                              , gsSeperator = tNestedPartyID+                              , gsBody = gNoNestedPartyIDsBody''''''''' }+                              where+                              gNoNestedPartyIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                                 LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                                 LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs''''''''''''                                  LT.new+                                 where+                                    gNoNestedPartySubIDs'''''''''''' = FIXTag+                                       { tName = "NoNestedPartySubIDs"+                                       , tnum = tnum tNoNestedPartySubIDs+                                       , tparser = gNoNestedPartySubIDsP''''''''''''+                                       , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec'''''''''''' }++                                    gNoNestedPartySubIDsP'''''''''''' = groupP gNoNestedPartySubIDsSpec''''''''''''+                                    gNoNestedPartySubIDsSpec'''''''''''' = FGSpec+                                       { gsLength = tNoNestedPartySubIDs+                                       , gsSeperator = tNestedPartySubID+                                       , gsBody = gNoNestedPartySubIDsBody'''''''''''' }+                                       where+                                       gNoNestedPartySubIDsBody'''''''''''' = +                                          LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                           LT.new++++                  gNoPartyIDs'''''' = FIXTag+                     { tName = "NoPartyIDs"+                     , tnum = tnum tNoPartyIDs+                     , tparser = gNoPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec'''''' }++                  gNoPartyIDsP'''''' = groupP gNoPartyIDsSpec''''''+                  gNoPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartyIDs+                     , gsSeperator = tPartyID+                     , gsBody = gNoPartyIDsBody'''''' }+                     where+                     gNoPartyIDsBody'''''' = +                        LT.insert (tnum tPartyIDSource) tPartyIDSource $+                        LT.insert (tnum tPartyRole) tPartyRole $+                        LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs'''''''''                         LT.new+                        where+                           gNoPartySubIDs''''''''' = FIXTag+                              { tName = "NoPartySubIDs"+                              , tnum = tnum tNoPartySubIDs+                              , tparser = gNoPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec''''''''' }++                           gNoPartySubIDsP''''''''' = groupP gNoPartySubIDsSpec'''''''''+                           gNoPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoPartySubIDs+                              , gsSeperator = tPartySubID+                              , gsBody = gNoPartySubIDsBody''''''''' }+                              where+                              gNoPartySubIDsBody''''''''' = +                                 LT.insert (tnum tPartySubIDType) tPartySubIDType                                  LT.new+++                  gNoQuoteQualifiers'''''' = FIXTag+                     { tName = "NoQuoteQualifiers"+                     , tnum = tnum tNoQuoteQualifiers+                     , tparser = gNoQuoteQualifiersP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoQuoteQualifiersSpec'''''' }++                  gNoQuoteQualifiersP'''''' = groupP gNoQuoteQualifiersSpec''''''+                  gNoQuoteQualifiersSpec'''''' = FGSpec+                     { gsLength = tNoQuoteQualifiers+                     , gsSeperator = tQuoteQualifier+                     , gsBody = gNoQuoteQualifiersBody'''''' }+                     where+                     gNoQuoteQualifiersBody'''''' = +                        LT.new++                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new++                  gNoStipulations'''''' = FIXTag+                     { tName = "NoStipulations"+                     , tnum = tnum tNoStipulations+                     , tparser = gNoStipulationsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec'''''' }++                  gNoStipulationsP'''''' = groupP gNoStipulationsSpec''''''+                  gNoStipulationsSpec'''''' = FGSpec+                     { gsLength = tNoStipulations+                     , gsSeperator = tStipulationType+                     , gsBody = gNoStipulationsBody'''''' }+                     where+                     gNoStipulationsBody'''''' = +                        LT.insert (tnum tStipulationValue) tStipulationValue                         LT.new++                  gNoUnderlyings'''''' = FIXTag+                     { tName = "NoUnderlyings"+                     , tnum = tnum tNoUnderlyings+                     , tparser = gNoUnderlyingsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec'''''' }++                  gNoUnderlyingsP'''''' = groupP gNoUnderlyingsSpec''''''+                  gNoUnderlyingsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyings+                     , gsSeperator = tUnderlyingSymbol+                     , gsBody = gNoUnderlyingsBody'''''' }+                     where+                     gNoUnderlyingsBody'''''' = +                        LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+                        LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+                        LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+                        LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''''''''' $+                        LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+                        LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+                        LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+                        LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+                        LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+                        LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+                        LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+                        LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+                        LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+                        LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+                        LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+                        LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+                        LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+                        LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+                        LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+                        LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+                        LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+                        LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+                        LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+                        LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+                        LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+                        LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+                        LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+                        LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+                        LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+                        LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+                        LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+                        LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+                        LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+                        LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+                        LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+                        LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+                        LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+                        LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+                        LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+                        LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+                        LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+                        LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+                        LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+                        LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+                        LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''''''                         LT.new+                        where+                           gNoUnderlyingSecurityAltID''''''''' = FIXTag+                              { tName = "NoUnderlyingSecurityAltID"+                              , tnum = tnum tNoUnderlyingSecurityAltID+                              , tparser = gNoUnderlyingSecurityAltIDP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''''''''' }++                           gNoUnderlyingSecurityAltIDP''''''''' = groupP gNoUnderlyingSecurityAltIDSpec'''''''''+                           gNoUnderlyingSecurityAltIDSpec''''''''' = FGSpec+                              { gsLength = tNoUnderlyingSecurityAltID+                              , gsSeperator = tUnderlyingSecurityAltID+                              , gsBody = gNoUnderlyingSecurityAltIDBody''''''''' }+                              where+                              gNoUnderlyingSecurityAltIDBody''''''''' = +                                 LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                                  LT.new++                           gNoUnderlyingStips''''''''' = FIXTag+                              { tName = "NoUnderlyingStips"+                              , tnum = tnum tNoUnderlyingStips+                              , tparser = gNoUnderlyingStipsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''''''''' }++                           gNoUnderlyingStipsP''''''''' = groupP gNoUnderlyingStipsSpec'''''''''+                           gNoUnderlyingStipsSpec''''''''' = FGSpec+                              { gsLength = tNoUnderlyingStips+                              , gsSeperator = tUnderlyingStipType+                              , gsBody = gNoUnderlyingStipsBody''''''''' }+                              where+                              gNoUnderlyingStipsBody''''''''' = +                                 LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                                  LT.new++++++mQuote :: FIXMessageSpec+mQuote = FMSpec+   { msName = "Quote"+   , msType = C.pack "S"+   , msHeader = headerFIX44+   , msBody = mQuoteBody+   , msTrailer = trailerFIX44 }+   where+   mQuoteBody = +      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tQuoteRespID) tQuoteRespID $+      LT.insert (tnum tQuoteType) tQuoteType $+      LT.insert (tnum tNoQuoteQualifiers) gNoQuoteQualifiers''' $+      LT.insert (tnum tQuoteResponseLevel) tQuoteResponseLevel $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tAgreementDesc) tAgreementDesc $+      LT.insert (tnum tAgreementID) tAgreementID $+      LT.insert (tnum tAgreementDate) tAgreementDate $+      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+      LT.insert (tnum tTerminationType) tTerminationType $+      LT.insert (tnum tStartDate) tStartDate $+      LT.insert (tnum tEndDate) tEndDate $+      LT.insert (tnum tDeliveryType) tDeliveryType $+      LT.insert (tnum tMarginRatio) tMarginRatio $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrderPercent) tOrderPercent $+      LT.insert (tnum tRoundingDirection) tRoundingDirection $+      LT.insert (tnum tRoundingModulus) tRoundingModulus $+      LT.insert (tnum tSettlType) tSettlType $+      LT.insert (tnum tSettlDate) tSettlDate $+      LT.insert (tnum tSettlDate2) tSettlDate2 $+      LT.insert (tnum tOrderQty2) tOrderQty2 $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tNoStipulations) gNoStipulations''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tBidPx) tBidPx $+      LT.insert (tnum tOfferPx) tOfferPx $+      LT.insert (tnum tMktBidPx) tMktBidPx $+      LT.insert (tnum tMktOfferPx) tMktOfferPx $+      LT.insert (tnum tMinBidSize) tMinBidSize $+      LT.insert (tnum tBidSize) tBidSize $+      LT.insert (tnum tMinOfferSize) tMinOfferSize $+      LT.insert (tnum tOfferSize) tOfferSize $+      LT.insert (tnum tValidUntilTime) tValidUntilTime $+      LT.insert (tnum tBidSpotRate) tBidSpotRate $+      LT.insert (tnum tOfferSpotRate) tOfferSpotRate $+      LT.insert (tnum tBidForwardPoints) tBidForwardPoints $+      LT.insert (tnum tOfferForwardPoints) tOfferForwardPoints $+      LT.insert (tnum tMidPx) tMidPx $+      LT.insert (tnum tBidYield) tBidYield $+      LT.insert (tnum tMidYield) tMidYield $+      LT.insert (tnum tOfferYield) tOfferYield $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tBidForwardPoints2) tBidForwardPoints2 $+      LT.insert (tnum tOfferForwardPoints2) tOfferForwardPoints2 $+      LT.insert (tnum tSettlCurrBidFxRate) tSettlCurrBidFxRate $+      LT.insert (tnum tSettlCurrOfferFxRate) tSettlCurrOfferFxRate $+      LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tOrderCapacity) tOrderCapacity $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+      LT.insert (tnum tYieldType) tYieldType $+      LT.insert (tnum tYield) tYield $+      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $+      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $+      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $+      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $+               LT.insert (tnum tLegQty) tLegQty $+               LT.insert (tnum tLegSwapType) tLegSwapType $+               LT.insert (tnum tLegSettlType) tLegSettlType $+               LT.insert (tnum tLegSettlDate) tLegSettlDate $+               LT.insert (tnum tNoLegStipulations) gNoLegStipulations'''''' $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $+               LT.insert (tnum tLegPriceType) tLegPriceType $+               LT.insert (tnum tLegBidPx) tLegBidPx $+               LT.insert (tnum tLegOfferPx) tLegOfferPx $+               LT.insert (tnum tLegBenchmarkCurveCurrency) tLegBenchmarkCurveCurrency $+               LT.insert (tnum tLegBenchmarkCurveName) tLegBenchmarkCurveName $+               LT.insert (tnum tLegBenchmarkCurvePoint) tLegBenchmarkCurvePoint $+               LT.insert (tnum tLegBenchmarkPrice) tLegBenchmarkPrice $+               LT.insert (tnum tLegBenchmarkPriceType) tLegBenchmarkPriceType                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new++                  gNoLegStipulations'''''' = FIXTag+                     { tName = "NoLegStipulations"+                     , tnum = tnum tNoLegStipulations+                     , tparser = gNoLegStipulationsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec'''''' }++                  gNoLegStipulationsP'''''' = groupP gNoLegStipulationsSpec''''''+                  gNoLegStipulationsSpec'''''' = FGSpec+                     { gsLength = tNoLegStipulations+                     , gsSeperator = tLegStipulationType+                     , gsBody = gNoLegStipulationsBody'''''' }+                     where+                     gNoLegStipulationsBody'''''' = +                        LT.insert (tnum tLegStipulationValue) tLegStipulationValue                         LT.new++                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new+                        where+                           gNoNestedPartySubIDs''''''''' = FIXTag+                              { tName = "NoNestedPartySubIDs"+                              , tnum = tnum tNoNestedPartySubIDs+                              , tparser = gNoNestedPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }++                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''+                           gNoNestedPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartySubIDs+                              , gsSeperator = tNestedPartySubID+                              , gsBody = gNoNestedPartySubIDsBody''''''''' }+                              where+                              gNoNestedPartySubIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new++++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoQuoteQualifiers''' = FIXTag+            { tName = "NoQuoteQualifiers"+            , tnum = tnum tNoQuoteQualifiers+            , tparser = gNoQuoteQualifiersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoQuoteQualifiersSpec''' }++         gNoQuoteQualifiersP''' = groupP gNoQuoteQualifiersSpec'''+         gNoQuoteQualifiersSpec''' = FGSpec+            { gsLength = tNoQuoteQualifiers+            , gsSeperator = tQuoteQualifier+            , gsBody = gNoQuoteQualifiersBody''' }+            where+            gNoQuoteQualifiersBody''' = +               LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoStipulations''' = FIXTag+            { tName = "NoStipulations"+            , tnum = tnum tNoStipulations+            , tparser = gNoStipulationsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }++         gNoStipulationsP''' = groupP gNoStipulationsSpec'''+         gNoStipulationsSpec''' = FGSpec+            { gsLength = tNoStipulations+            , gsSeperator = tStipulationType+            , gsBody = gNoStipulationsBody''' }+            where+            gNoStipulationsBody''' = +               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mSettlementInstructions :: FIXMessageSpec+mSettlementInstructions = FMSpec+   { msName = "SettlementInstructions"+   , msType = C.pack "T"+   , msHeader = headerFIX44+   , msBody = mSettlementInstructionsBody+   , msTrailer = trailerFIX44 }+   where+   mSettlementInstructionsBody = +      LT.insert (tnum tSettlInstMsgID) tSettlInstMsgID $+      LT.insert (tnum tSettlInstReqID) tSettlInstReqID $+      LT.insert (tnum tSettlInstMode) tSettlInstMode $+      LT.insert (tnum tSettlInstReqRejCode) tSettlInstReqRejCode $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tNoSettlInst) gNoSettlInst'''       LT.new+      where+         gNoSettlInst''' = FIXTag+            { tName = "NoSettlInst"+            , tnum = tnum tNoSettlInst+            , tparser = gNoSettlInstP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSettlInstSpec''' }++         gNoSettlInstP''' = groupP gNoSettlInstSpec'''+         gNoSettlInstSpec''' = FGSpec+            { gsLength = tNoSettlInst+            , gsSeperator = tSettlInstID+            , gsBody = gNoSettlInstBody''' }+            where+            gNoSettlInstBody''' = +               LT.insert (tnum tSettlInstTransType) tSettlInstTransType $+               LT.insert (tnum tSettlInstRefID) tSettlInstRefID $+               LT.insert (tnum tNoPartyIDs) gNoPartyIDs'''''' $+               LT.insert (tnum tSide) tSide $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tEffectiveTime) tEffectiveTime $+               LT.insert (tnum tExpireTime) tExpireTime $+               LT.insert (tnum tLastUpdateTime) tLastUpdateTime $+               LT.insert (tnum tSettlDeliveryType) tSettlDeliveryType $+               LT.insert (tnum tStandInstDbType) tStandInstDbType $+               LT.insert (tnum tStandInstDbName) tStandInstDbName $+               LT.insert (tnum tStandInstDbID) tStandInstDbID $+               LT.insert (tnum tNoDlvyInst) gNoDlvyInst'''''' $+               LT.insert (tnum tPaymentMethod) tPaymentMethod $+               LT.insert (tnum tPaymentRef) tPaymentRef $+               LT.insert (tnum tCardHolderName) tCardHolderName $+               LT.insert (tnum tCardNumber) tCardNumber $+               LT.insert (tnum tCardStartDate) tCardStartDate $+               LT.insert (tnum tCardExpDate) tCardExpDate $+               LT.insert (tnum tCardIssNum) tCardIssNum $+               LT.insert (tnum tPaymentDate) tPaymentDate $+               LT.insert (tnum tPaymentRemitterID) tPaymentRemitterID                LT.new+               where+                  gNoDlvyInst'''''' = FIXTag+                     { tName = "NoDlvyInst"+                     , tnum = tnum tNoDlvyInst+                     , tparser = gNoDlvyInstP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoDlvyInstSpec'''''' }++                  gNoDlvyInstP'''''' = groupP gNoDlvyInstSpec''''''+                  gNoDlvyInstSpec'''''' = FGSpec+                     { gsLength = tNoDlvyInst+                     , gsSeperator = tSettlInstSource+                     , gsBody = gNoDlvyInstBody'''''' }+                     where+                     gNoDlvyInstBody'''''' = +                        LT.insert (tnum tDlvyInstType) tDlvyInstType $+                        LT.insert (tnum tNoSettlPartyIDs) gNoSettlPartyIDs'''''''''                         LT.new+                        where+                           gNoSettlPartyIDs''''''''' = FIXTag+                              { tName = "NoSettlPartyIDs"+                              , tnum = tnum tNoSettlPartyIDs+                              , tparser = gNoSettlPartyIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoSettlPartyIDsSpec''''''''' }++                           gNoSettlPartyIDsP''''''''' = groupP gNoSettlPartyIDsSpec'''''''''+                           gNoSettlPartyIDsSpec''''''''' = FGSpec+                              { gsLength = tNoSettlPartyIDs+                              , gsSeperator = tSettlPartyID+                              , gsBody = gNoSettlPartyIDsBody''''''''' }+                              where+                              gNoSettlPartyIDsBody''''''''' = +                                 LT.insert (tnum tSettlPartyIDSource) tSettlPartyIDSource $+                                 LT.insert (tnum tSettlPartyRole) tSettlPartyRole $+                                 LT.insert (tnum tNoSettlPartySubIDs) gNoSettlPartySubIDs''''''''''''                                  LT.new+                                 where+                                    gNoSettlPartySubIDs'''''''''''' = FIXTag+                                       { tName = "NoSettlPartySubIDs"+                                       , tnum = tnum tNoSettlPartySubIDs+                                       , tparser = gNoSettlPartySubIDsP''''''''''''+                                       , arbitraryValue = arbibtraryFIXGroup gNoSettlPartySubIDsSpec'''''''''''' }++                                    gNoSettlPartySubIDsP'''''''''''' = groupP gNoSettlPartySubIDsSpec''''''''''''+                                    gNoSettlPartySubIDsSpec'''''''''''' = FGSpec+                                       { gsLength = tNoSettlPartySubIDs+                                       , gsSeperator = tSettlPartySubID+                                       , gsBody = gNoSettlPartySubIDsBody'''''''''''' }+                                       where+                                       gNoSettlPartySubIDsBody'''''''''''' = +                                          LT.insert (tnum tSettlPartySubIDType) tSettlPartySubIDType                                           LT.new++++                  gNoPartyIDs'''''' = FIXTag+                     { tName = "NoPartyIDs"+                     , tnum = tnum tNoPartyIDs+                     , tparser = gNoPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec'''''' }++                  gNoPartyIDsP'''''' = groupP gNoPartyIDsSpec''''''+                  gNoPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartyIDs+                     , gsSeperator = tPartyID+                     , gsBody = gNoPartyIDsBody'''''' }+                     where+                     gNoPartyIDsBody'''''' = +                        LT.insert (tnum tPartyIDSource) tPartyIDSource $+                        LT.insert (tnum tPartyRole) tPartyRole $+                        LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs'''''''''                         LT.new+                        where+                           gNoPartySubIDs''''''''' = FIXTag+                              { tName = "NoPartySubIDs"+                              , tnum = tnum tNoPartySubIDs+                              , tparser = gNoPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec''''''''' }++                           gNoPartySubIDsP''''''''' = groupP gNoPartySubIDsSpec'''''''''+                           gNoPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoPartySubIDs+                              , gsSeperator = tPartySubID+                              , gsBody = gNoPartySubIDsBody''''''''' }+                              where+                              gNoPartySubIDsBody''''''''' = +                                 LT.insert (tnum tPartySubIDType) tPartySubIDType                                  LT.new++++++mMarketDataRequest :: FIXMessageSpec+mMarketDataRequest = FMSpec+   { msName = "MarketDataRequest"+   , msType = C.pack "V"+   , msHeader = headerFIX44+   , msBody = mMarketDataRequestBody+   , msTrailer = trailerFIX44 }+   where+   mMarketDataRequestBody = +      LT.insert (tnum tMDReqID) tMDReqID $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $+      LT.insert (tnum tMarketDepth) tMarketDepth $+      LT.insert (tnum tMDUpdateType) tMDUpdateType $+      LT.insert (tnum tAggregatedBook) tAggregatedBook $+      LT.insert (tnum tOpenCloseSettlFlag) tOpenCloseSettlFlag $+      LT.insert (tnum tScope) tScope $+      LT.insert (tnum tMDImplicitDelete) tMDImplicitDelete $+      LT.insert (tnum tNoMDEntryTypes) gNoMDEntryTypes''' $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym'''       LT.new+      where+         gNoMDEntryTypes''' = FIXTag+            { tName = "NoMDEntryTypes"+            , tnum = tnum tNoMDEntryTypes+            , tparser = gNoMDEntryTypesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoMDEntryTypesSpec''' }++         gNoMDEntryTypesP''' = groupP gNoMDEntryTypesSpec'''+         gNoMDEntryTypesSpec''' = FGSpec+            { gsLength = tNoMDEntryTypes+            , gsSeperator = tMDEntryType+            , gsBody = gNoMDEntryTypesBody''' }+            where+            gNoMDEntryTypesBody''' = +               LT.new++         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tSymbol+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tSecuritySubType) tSecuritySubType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tPool) tPool $+               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+               LT.insert (tnum tCPProgram) tCPProgram $+               LT.insert (tnum tCPRegType) tCPRegType $+               LT.insert (tnum tNoEvents) gNoEvents'''''' $+               LT.insert (tnum tDatedDate) tDatedDate $+               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+               LT.insert (tnum tNoUnderlyings) gNoUnderlyings'''''' $+               LT.insert (tnum tNoLegs) gNoLegs'''''' $+               LT.insert (tnum tNoTradingSessions) gNoTradingSessions'''''' $+               LT.insert (tnum tApplQueueAction) tApplQueueAction $+               LT.insert (tnum tApplQueueMax) tApplQueueMax                LT.new+               where+                  gNoEvents'''''' = FIXTag+                     { tName = "NoEvents"+                     , tnum = tnum tNoEvents+                     , tparser = gNoEventsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }++                  gNoEventsP'''''' = groupP gNoEventsSpec''''''+                  gNoEventsSpec'''''' = FGSpec+                     { gsLength = tNoEvents+                     , gsSeperator = tEventType+                     , gsBody = gNoEventsBody'''''' }+                     where+                     gNoEventsBody'''''' = +                        LT.insert (tnum tEventDate) tEventDate $+                        LT.insert (tnum tEventPx) tEventPx $+                        LT.insert (tnum tEventText) tEventText                         LT.new++                  gNoLegs'''''' = FIXTag+                     { tName = "NoLegs"+                     , tnum = tnum tNoLegs+                     , tparser = gNoLegsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec'''''' }++                  gNoLegsP'''''' = groupP gNoLegsSpec''''''+                  gNoLegsSpec'''''' = FGSpec+                     { gsLength = tNoLegs+                     , gsSeperator = tLegSymbol+                     , gsBody = gNoLegsBody'''''' }+                     where+                     gNoLegsBody'''''' = +                        LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+                        LT.insert (tnum tLegSecurityID) tLegSecurityID $+                        LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+                        LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID''''''''' $+                        LT.insert (tnum tLegProduct) tLegProduct $+                        LT.insert (tnum tLegCFICode) tLegCFICode $+                        LT.insert (tnum tLegSecurityType) tLegSecurityType $+                        LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+                        LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+                        LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+                        LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+                        LT.insert (tnum tLegIssueDate) tLegIssueDate $+                        LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+                        LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+                        LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+                        LT.insert (tnum tLegFactor) tLegFactor $+                        LT.insert (tnum tLegCreditRating) tLegCreditRating $+                        LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+                        LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+                        LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+                        LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+                        LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+                        LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+                        LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+                        LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+                        LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+                        LT.insert (tnum tLegCouponRate) tLegCouponRate $+                        LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+                        LT.insert (tnum tLegIssuer) tLegIssuer $+                        LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+                        LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+                        LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+                        LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+                        LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+                        LT.insert (tnum tLegRatioQty) tLegRatioQty $+                        LT.insert (tnum tLegSide) tLegSide $+                        LT.insert (tnum tLegCurrency) tLegCurrency $+                        LT.insert (tnum tLegPool) tLegPool $+                        LT.insert (tnum tLegDatedDate) tLegDatedDate $+                        LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+                        LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                         LT.new+                        where+                           gNoLegSecurityAltID''''''''' = FIXTag+                              { tName = "NoLegSecurityAltID"+                              , tnum = tnum tNoLegSecurityAltID+                              , tparser = gNoLegSecurityAltIDP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec''''''''' }++                           gNoLegSecurityAltIDP''''''''' = groupP gNoLegSecurityAltIDSpec'''''''''+                           gNoLegSecurityAltIDSpec''''''''' = FGSpec+                              { gsLength = tNoLegSecurityAltID+                              , gsSeperator = tLegSecurityAltID+                              , gsBody = gNoLegSecurityAltIDBody''''''''' }+                              where+                              gNoLegSecurityAltIDBody''''''''' = +                                 LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                                  LT.new+++                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new++                  gNoTradingSessions'''''' = FIXTag+                     { tName = "NoTradingSessions"+                     , tnum = tnum tNoTradingSessions+                     , tparser = gNoTradingSessionsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec'''''' }++                  gNoTradingSessionsP'''''' = groupP gNoTradingSessionsSpec''''''+                  gNoTradingSessionsSpec'''''' = FGSpec+                     { gsLength = tNoTradingSessions+                     , gsSeperator = tTradingSessionID+                     , gsBody = gNoTradingSessionsBody'''''' }+                     where+                     gNoTradingSessionsBody'''''' = +                        LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                         LT.new++                  gNoUnderlyings'''''' = FIXTag+                     { tName = "NoUnderlyings"+                     , tnum = tnum tNoUnderlyings+                     , tparser = gNoUnderlyingsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec'''''' }++                  gNoUnderlyingsP'''''' = groupP gNoUnderlyingsSpec''''''+                  gNoUnderlyingsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyings+                     , gsSeperator = tUnderlyingSymbol+                     , gsBody = gNoUnderlyingsBody'''''' }+                     where+                     gNoUnderlyingsBody'''''' = +                        LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+                        LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+                        LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+                        LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''''''''' $+                        LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+                        LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+                        LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+                        LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+                        LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+                        LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+                        LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+                        LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+                        LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+                        LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+                        LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+                        LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+                        LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+                        LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+                        LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+                        LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+                        LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+                        LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+                        LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+                        LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+                        LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+                        LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+                        LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+                        LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+                        LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+                        LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+                        LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+                        LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+                        LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+                        LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+                        LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+                        LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+                        LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+                        LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+                        LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+                        LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+                        LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+                        LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+                        LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+                        LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+                        LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''''''                         LT.new+                        where+                           gNoUnderlyingSecurityAltID''''''''' = FIXTag+                              { tName = "NoUnderlyingSecurityAltID"+                              , tnum = tnum tNoUnderlyingSecurityAltID+                              , tparser = gNoUnderlyingSecurityAltIDP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''''''''' }++                           gNoUnderlyingSecurityAltIDP''''''''' = groupP gNoUnderlyingSecurityAltIDSpec'''''''''+                           gNoUnderlyingSecurityAltIDSpec''''''''' = FGSpec+                              { gsLength = tNoUnderlyingSecurityAltID+                              , gsSeperator = tUnderlyingSecurityAltID+                              , gsBody = gNoUnderlyingSecurityAltIDBody''''''''' }+                              where+                              gNoUnderlyingSecurityAltIDBody''''''''' = +                                 LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                                  LT.new++                           gNoUnderlyingStips''''''''' = FIXTag+                              { tName = "NoUnderlyingStips"+                              , tnum = tnum tNoUnderlyingStips+                              , tparser = gNoUnderlyingStipsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''''''''' }++                           gNoUnderlyingStipsP''''''''' = groupP gNoUnderlyingStipsSpec'''''''''+                           gNoUnderlyingStipsSpec''''''''' = FGSpec+                              { gsLength = tNoUnderlyingStips+                              , gsSeperator = tUnderlyingStipType+                              , gsBody = gNoUnderlyingStipsBody''''''''' }+                              where+                              gNoUnderlyingStipsBody''''''''' = +                                 LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                                  LT.new++++++mMarketDataSnapshotFullRefresh :: FIXMessageSpec+mMarketDataSnapshotFullRefresh = FMSpec+   { msName = "MarketDataSnapshotFullRefresh"+   , msType = C.pack "W"+   , msHeader = headerFIX44+   , msBody = mMarketDataSnapshotFullRefreshBody+   , msTrailer = trailerFIX44 }+   where+   mMarketDataSnapshotFullRefreshBody = +      LT.insert (tnum tMDReqID) tMDReqID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tFinancialStatus) tFinancialStatus $+      LT.insert (tnum tCorporateAction) tCorporateAction $+      LT.insert (tnum tNetChgPrevDay) tNetChgPrevDay $+      LT.insert (tnum tNoMDEntries) gNoMDEntries''' $+      LT.insert (tnum tApplQueueDepth) tApplQueueDepth $+      LT.insert (tnum tApplQueueResolution) tApplQueueResolution       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoMDEntries''' = FIXTag+            { tName = "NoMDEntries"+            , tnum = tnum tNoMDEntries+            , tparser = gNoMDEntriesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoMDEntriesSpec''' }++         gNoMDEntriesP''' = groupP gNoMDEntriesSpec'''+         gNoMDEntriesSpec''' = FGSpec+            { gsLength = tNoMDEntries+            , gsSeperator = tMDEntryType+            , gsBody = gNoMDEntriesBody''' }+            where+            gNoMDEntriesBody''' = +               LT.insert (tnum tMDEntryPx) tMDEntryPx $+               LT.insert (tnum tCurrency) tCurrency $+               LT.insert (tnum tMDEntrySize) tMDEntrySize $+               LT.insert (tnum tMDEntryDate) tMDEntryDate $+               LT.insert (tnum tMDEntryTime) tMDEntryTime $+               LT.insert (tnum tTickDirection) tTickDirection $+               LT.insert (tnum tMDMkt) tMDMkt $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+               LT.insert (tnum tQuoteCondition) tQuoteCondition $+               LT.insert (tnum tTradeCondition) tTradeCondition $+               LT.insert (tnum tMDEntryOriginator) tMDEntryOriginator $+               LT.insert (tnum tLocationID) tLocationID $+               LT.insert (tnum tDeskID) tDeskID $+               LT.insert (tnum tOpenCloseSettlFlag) tOpenCloseSettlFlag $+               LT.insert (tnum tTimeInForce) tTimeInForce $+               LT.insert (tnum tExpireDate) tExpireDate $+               LT.insert (tnum tExpireTime) tExpireTime $+               LT.insert (tnum tMinQty) tMinQty $+               LT.insert (tnum tExecInst) tExecInst $+               LT.insert (tnum tSellerDays) tSellerDays $+               LT.insert (tnum tOrderID) tOrderID $+               LT.insert (tnum tQuoteEntryID) tQuoteEntryID $+               LT.insert (tnum tMDEntryBuyer) tMDEntryBuyer $+               LT.insert (tnum tMDEntrySeller) tMDEntrySeller $+               LT.insert (tnum tNumberOfOrders) tNumberOfOrders $+               LT.insert (tnum tMDEntryPositionNo) tMDEntryPositionNo $+               LT.insert (tnum tScope) tScope $+               LT.insert (tnum tPriceDelta) tPriceDelta $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mMarketDataIncrementalRefresh :: FIXMessageSpec+mMarketDataIncrementalRefresh = FMSpec+   { msName = "MarketDataIncrementalRefresh"+   , msType = C.pack "X"+   , msHeader = headerFIX44+   , msBody = mMarketDataIncrementalRefreshBody+   , msTrailer = trailerFIX44 }+   where+   mMarketDataIncrementalRefreshBody = +      LT.insert (tnum tMDReqID) tMDReqID $+      LT.insert (tnum tNoMDEntries) gNoMDEntries''' $+      LT.insert (tnum tApplQueueDepth) tApplQueueDepth $+      LT.insert (tnum tApplQueueResolution) tApplQueueResolution       LT.new+      where+         gNoMDEntries''' = FIXTag+            { tName = "NoMDEntries"+            , tnum = tnum tNoMDEntries+            , tparser = gNoMDEntriesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoMDEntriesSpec''' }++         gNoMDEntriesP''' = groupP gNoMDEntriesSpec'''+         gNoMDEntriesSpec''' = FGSpec+            { gsLength = tNoMDEntries+            , gsSeperator = tMDUpdateAction+            , gsBody = gNoMDEntriesBody''' }+            where+            gNoMDEntriesBody''' = +               LT.insert (tnum tDeleteReason) tDeleteReason $+               LT.insert (tnum tMDEntryType) tMDEntryType $+               LT.insert (tnum tMDEntryID) tMDEntryID $+               LT.insert (tnum tMDEntryRefID) tMDEntryRefID $+               LT.insert (tnum tSymbol) tSymbol $+               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tSecuritySubType) tSecuritySubType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tPool) tPool $+               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+               LT.insert (tnum tCPProgram) tCPProgram $+               LT.insert (tnum tCPRegType) tCPRegType $+               LT.insert (tnum tNoEvents) gNoEvents'''''' $+               LT.insert (tnum tDatedDate) tDatedDate $+               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+               LT.insert (tnum tNoUnderlyings) gNoUnderlyings'''''' $+               LT.insert (tnum tNoLegs) gNoLegs'''''' $+               LT.insert (tnum tFinancialStatus) tFinancialStatus $+               LT.insert (tnum tCorporateAction) tCorporateAction $+               LT.insert (tnum tMDEntryPx) tMDEntryPx $+               LT.insert (tnum tCurrency) tCurrency $+               LT.insert (tnum tMDEntrySize) tMDEntrySize $+               LT.insert (tnum tMDEntryDate) tMDEntryDate $+               LT.insert (tnum tMDEntryTime) tMDEntryTime $+               LT.insert (tnum tTickDirection) tTickDirection $+               LT.insert (tnum tMDMkt) tMDMkt $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+               LT.insert (tnum tQuoteCondition) tQuoteCondition $+               LT.insert (tnum tTradeCondition) tTradeCondition $+               LT.insert (tnum tMDEntryOriginator) tMDEntryOriginator $+               LT.insert (tnum tLocationID) tLocationID $+               LT.insert (tnum tDeskID) tDeskID $+               LT.insert (tnum tOpenCloseSettlFlag) tOpenCloseSettlFlag $+               LT.insert (tnum tTimeInForce) tTimeInForce $+               LT.insert (tnum tExpireDate) tExpireDate $+               LT.insert (tnum tExpireTime) tExpireTime $+               LT.insert (tnum tMinQty) tMinQty $+               LT.insert (tnum tExecInst) tExecInst $+               LT.insert (tnum tSellerDays) tSellerDays $+               LT.insert (tnum tOrderID) tOrderID $+               LT.insert (tnum tQuoteEntryID) tQuoteEntryID $+               LT.insert (tnum tMDEntryBuyer) tMDEntryBuyer $+               LT.insert (tnum tMDEntrySeller) tMDEntrySeller $+               LT.insert (tnum tNumberOfOrders) tNumberOfOrders $+               LT.insert (tnum tMDEntryPositionNo) tMDEntryPositionNo $+               LT.insert (tnum tScope) tScope $+               LT.insert (tnum tPriceDelta) tPriceDelta $+               LT.insert (tnum tNetChgPrevDay) tNetChgPrevDay $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new+               where+                  gNoEvents'''''' = FIXTag+                     { tName = "NoEvents"+                     , tnum = tnum tNoEvents+                     , tparser = gNoEventsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }++                  gNoEventsP'''''' = groupP gNoEventsSpec''''''+                  gNoEventsSpec'''''' = FGSpec+                     { gsLength = tNoEvents+                     , gsSeperator = tEventType+                     , gsBody = gNoEventsBody'''''' }+                     where+                     gNoEventsBody'''''' = +                        LT.insert (tnum tEventDate) tEventDate $+                        LT.insert (tnum tEventPx) tEventPx $+                        LT.insert (tnum tEventText) tEventText                         LT.new++                  gNoLegs'''''' = FIXTag+                     { tName = "NoLegs"+                     , tnum = tnum tNoLegs+                     , tparser = gNoLegsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec'''''' }++                  gNoLegsP'''''' = groupP gNoLegsSpec''''''+                  gNoLegsSpec'''''' = FGSpec+                     { gsLength = tNoLegs+                     , gsSeperator = tLegSymbol+                     , gsBody = gNoLegsBody'''''' }+                     where+                     gNoLegsBody'''''' = +                        LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+                        LT.insert (tnum tLegSecurityID) tLegSecurityID $+                        LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+                        LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID''''''''' $+                        LT.insert (tnum tLegProduct) tLegProduct $+                        LT.insert (tnum tLegCFICode) tLegCFICode $+                        LT.insert (tnum tLegSecurityType) tLegSecurityType $+                        LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+                        LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+                        LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+                        LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+                        LT.insert (tnum tLegIssueDate) tLegIssueDate $+                        LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+                        LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+                        LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+                        LT.insert (tnum tLegFactor) tLegFactor $+                        LT.insert (tnum tLegCreditRating) tLegCreditRating $+                        LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+                        LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+                        LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+                        LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+                        LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+                        LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+                        LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+                        LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+                        LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+                        LT.insert (tnum tLegCouponRate) tLegCouponRate $+                        LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+                        LT.insert (tnum tLegIssuer) tLegIssuer $+                        LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+                        LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+                        LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+                        LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+                        LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+                        LT.insert (tnum tLegRatioQty) tLegRatioQty $+                        LT.insert (tnum tLegSide) tLegSide $+                        LT.insert (tnum tLegCurrency) tLegCurrency $+                        LT.insert (tnum tLegPool) tLegPool $+                        LT.insert (tnum tLegDatedDate) tLegDatedDate $+                        LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+                        LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                         LT.new+                        where+                           gNoLegSecurityAltID''''''''' = FIXTag+                              { tName = "NoLegSecurityAltID"+                              , tnum = tnum tNoLegSecurityAltID+                              , tparser = gNoLegSecurityAltIDP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec''''''''' }++                           gNoLegSecurityAltIDP''''''''' = groupP gNoLegSecurityAltIDSpec'''''''''+                           gNoLegSecurityAltIDSpec''''''''' = FGSpec+                              { gsLength = tNoLegSecurityAltID+                              , gsSeperator = tLegSecurityAltID+                              , gsBody = gNoLegSecurityAltIDBody''''''''' }+                              where+                              gNoLegSecurityAltIDBody''''''''' = +                                 LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                                  LT.new+++                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new++                  gNoUnderlyings'''''' = FIXTag+                     { tName = "NoUnderlyings"+                     , tnum = tnum tNoUnderlyings+                     , tparser = gNoUnderlyingsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec'''''' }++                  gNoUnderlyingsP'''''' = groupP gNoUnderlyingsSpec''''''+                  gNoUnderlyingsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyings+                     , gsSeperator = tUnderlyingSymbol+                     , gsBody = gNoUnderlyingsBody'''''' }+                     where+                     gNoUnderlyingsBody'''''' = +                        LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+                        LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+                        LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+                        LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''''''''' $+                        LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+                        LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+                        LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+                        LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+                        LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+                        LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+                        LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+                        LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+                        LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+                        LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+                        LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+                        LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+                        LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+                        LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+                        LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+                        LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+                        LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+                        LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+                        LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+                        LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+                        LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+                        LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+                        LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+                        LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+                        LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+                        LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+                        LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+                        LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+                        LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+                        LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+                        LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+                        LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+                        LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+                        LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+                        LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+                        LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+                        LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+                        LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+                        LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+                        LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+                        LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''''''                         LT.new+                        where+                           gNoUnderlyingSecurityAltID''''''''' = FIXTag+                              { tName = "NoUnderlyingSecurityAltID"+                              , tnum = tnum tNoUnderlyingSecurityAltID+                              , tparser = gNoUnderlyingSecurityAltIDP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''''''''' }++                           gNoUnderlyingSecurityAltIDP''''''''' = groupP gNoUnderlyingSecurityAltIDSpec'''''''''+                           gNoUnderlyingSecurityAltIDSpec''''''''' = FGSpec+                              { gsLength = tNoUnderlyingSecurityAltID+                              , gsSeperator = tUnderlyingSecurityAltID+                              , gsBody = gNoUnderlyingSecurityAltIDBody''''''''' }+                              where+                              gNoUnderlyingSecurityAltIDBody''''''''' = +                                 LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                                  LT.new++                           gNoUnderlyingStips''''''''' = FIXTag+                              { tName = "NoUnderlyingStips"+                              , tnum = tnum tNoUnderlyingStips+                              , tparser = gNoUnderlyingStipsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''''''''' }++                           gNoUnderlyingStipsP''''''''' = groupP gNoUnderlyingStipsSpec'''''''''+                           gNoUnderlyingStipsSpec''''''''' = FGSpec+                              { gsLength = tNoUnderlyingStips+                              , gsSeperator = tUnderlyingStipType+                              , gsBody = gNoUnderlyingStipsBody''''''''' }+                              where+                              gNoUnderlyingStipsBody''''''''' = +                                 LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                                  LT.new++++++mMarketDataRequestReject :: FIXMessageSpec+mMarketDataRequestReject = FMSpec+   { msName = "MarketDataRequestReject"+   , msType = C.pack "Y"+   , msHeader = headerFIX44+   , msBody = mMarketDataRequestRejectBody+   , msTrailer = trailerFIX44 }+   where+   mMarketDataRequestRejectBody = +      LT.insert (tnum tMDReqID) tMDReqID $+      LT.insert (tnum tMDReqRejReason) tMDReqRejReason $+      LT.insert (tnum tNoAltMDSource) gNoAltMDSource''' $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoAltMDSource''' = FIXTag+            { tName = "NoAltMDSource"+            , tnum = tnum tNoAltMDSource+            , tparser = gNoAltMDSourceP'''+            , arbitraryValue = arbibtraryFIXGroup gNoAltMDSourceSpec''' }++         gNoAltMDSourceP''' = groupP gNoAltMDSourceSpec'''+         gNoAltMDSourceSpec''' = FGSpec+            { gsLength = tNoAltMDSource+            , gsSeperator = tAltMDSourceID+            , gsBody = gNoAltMDSourceBody''' }+            where+            gNoAltMDSourceBody''' = +               LT.new++++mQuoteCancel :: FIXMessageSpec+mQuoteCancel = FMSpec+   { msName = "QuoteCancel"+   , msType = C.pack "Z"+   , msHeader = headerFIX44+   , msBody = mQuoteCancelBody+   , msTrailer = trailerFIX44 }+   where+   mQuoteCancelBody = +      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tQuoteCancelType) tQuoteCancelType $+      LT.insert (tnum tQuoteResponseLevel) tQuoteResponseLevel $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tNoQuoteEntries) gNoQuoteEntries'''       LT.new+      where+         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoQuoteEntries''' = FIXTag+            { tName = "NoQuoteEntries"+            , tnum = tnum tNoQuoteEntries+            , tparser = gNoQuoteEntriesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoQuoteEntriesSpec''' }++         gNoQuoteEntriesP''' = groupP gNoQuoteEntriesSpec'''+         gNoQuoteEntriesSpec''' = FGSpec+            { gsLength = tNoQuoteEntries+            , gsSeperator = tSymbol+            , gsBody = gNoQuoteEntriesBody''' }+            where+            gNoQuoteEntriesBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tSecuritySubType) tSecuritySubType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tPool) tPool $+               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+               LT.insert (tnum tCPProgram) tCPProgram $+               LT.insert (tnum tCPRegType) tCPRegType $+               LT.insert (tnum tNoEvents) gNoEvents'''''' $+               LT.insert (tnum tDatedDate) tDatedDate $+               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+               LT.insert (tnum tAgreementDesc) tAgreementDesc $+               LT.insert (tnum tAgreementID) tAgreementID $+               LT.insert (tnum tAgreementDate) tAgreementDate $+               LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+               LT.insert (tnum tTerminationType) tTerminationType $+               LT.insert (tnum tStartDate) tStartDate $+               LT.insert (tnum tEndDate) tEndDate $+               LT.insert (tnum tDeliveryType) tDeliveryType $+               LT.insert (tnum tMarginRatio) tMarginRatio $+               LT.insert (tnum tNoUnderlyings) gNoUnderlyings'''''' $+               LT.insert (tnum tNoLegs) gNoLegs''''''                LT.new+               where+                  gNoEvents'''''' = FIXTag+                     { tName = "NoEvents"+                     , tnum = tnum tNoEvents+                     , tparser = gNoEventsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }++                  gNoEventsP'''''' = groupP gNoEventsSpec''''''+                  gNoEventsSpec'''''' = FGSpec+                     { gsLength = tNoEvents+                     , gsSeperator = tEventType+                     , gsBody = gNoEventsBody'''''' }+                     where+                     gNoEventsBody'''''' = +                        LT.insert (tnum tEventDate) tEventDate $+                        LT.insert (tnum tEventPx) tEventPx $+                        LT.insert (tnum tEventText) tEventText                         LT.new++                  gNoLegs'''''' = FIXTag+                     { tName = "NoLegs"+                     , tnum = tnum tNoLegs+                     , tparser = gNoLegsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec'''''' }++                  gNoLegsP'''''' = groupP gNoLegsSpec''''''+                  gNoLegsSpec'''''' = FGSpec+                     { gsLength = tNoLegs+                     , gsSeperator = tLegSymbol+                     , gsBody = gNoLegsBody'''''' }+                     where+                     gNoLegsBody'''''' = +                        LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+                        LT.insert (tnum tLegSecurityID) tLegSecurityID $+                        LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+                        LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID''''''''' $+                        LT.insert (tnum tLegProduct) tLegProduct $+                        LT.insert (tnum tLegCFICode) tLegCFICode $+                        LT.insert (tnum tLegSecurityType) tLegSecurityType $+                        LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+                        LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+                        LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+                        LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+                        LT.insert (tnum tLegIssueDate) tLegIssueDate $+                        LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+                        LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+                        LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+                        LT.insert (tnum tLegFactor) tLegFactor $+                        LT.insert (tnum tLegCreditRating) tLegCreditRating $+                        LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+                        LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+                        LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+                        LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+                        LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+                        LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+                        LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+                        LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+                        LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+                        LT.insert (tnum tLegCouponRate) tLegCouponRate $+                        LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+                        LT.insert (tnum tLegIssuer) tLegIssuer $+                        LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+                        LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+                        LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+                        LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+                        LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+                        LT.insert (tnum tLegRatioQty) tLegRatioQty $+                        LT.insert (tnum tLegSide) tLegSide $+                        LT.insert (tnum tLegCurrency) tLegCurrency $+                        LT.insert (tnum tLegPool) tLegPool $+                        LT.insert (tnum tLegDatedDate) tLegDatedDate $+                        LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+                        LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                         LT.new+                        where+                           gNoLegSecurityAltID''''''''' = FIXTag+                              { tName = "NoLegSecurityAltID"+                              , tnum = tnum tNoLegSecurityAltID+                              , tparser = gNoLegSecurityAltIDP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec''''''''' }++                           gNoLegSecurityAltIDP''''''''' = groupP gNoLegSecurityAltIDSpec'''''''''+                           gNoLegSecurityAltIDSpec''''''''' = FGSpec+                              { gsLength = tNoLegSecurityAltID+                              , gsSeperator = tLegSecurityAltID+                              , gsBody = gNoLegSecurityAltIDBody''''''''' }+                              where+                              gNoLegSecurityAltIDBody''''''''' = +                                 LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                                  LT.new+++                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new++                  gNoUnderlyings'''''' = FIXTag+                     { tName = "NoUnderlyings"+                     , tnum = tnum tNoUnderlyings+                     , tparser = gNoUnderlyingsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec'''''' }++                  gNoUnderlyingsP'''''' = groupP gNoUnderlyingsSpec''''''+                  gNoUnderlyingsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyings+                     , gsSeperator = tUnderlyingSymbol+                     , gsBody = gNoUnderlyingsBody'''''' }+                     where+                     gNoUnderlyingsBody'''''' = +                        LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+                        LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+                        LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+                        LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''''''''' $+                        LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+                        LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+                        LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+                        LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+                        LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+                        LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+                        LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+                        LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+                        LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+                        LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+                        LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+                        LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+                        LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+                        LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+                        LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+                        LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+                        LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+                        LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+                        LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+                        LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+                        LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+                        LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+                        LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+                        LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+                        LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+                        LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+                        LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+                        LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+                        LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+                        LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+                        LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+                        LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+                        LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+                        LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+                        LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+                        LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+                        LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+                        LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+                        LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+                        LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+                        LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''''''                         LT.new+                        where+                           gNoUnderlyingSecurityAltID''''''''' = FIXTag+                              { tName = "NoUnderlyingSecurityAltID"+                              , tnum = tnum tNoUnderlyingSecurityAltID+                              , tparser = gNoUnderlyingSecurityAltIDP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''''''''' }++                           gNoUnderlyingSecurityAltIDP''''''''' = groupP gNoUnderlyingSecurityAltIDSpec'''''''''+                           gNoUnderlyingSecurityAltIDSpec''''''''' = FGSpec+                              { gsLength = tNoUnderlyingSecurityAltID+                              , gsSeperator = tUnderlyingSecurityAltID+                              , gsBody = gNoUnderlyingSecurityAltIDBody''''''''' }+                              where+                              gNoUnderlyingSecurityAltIDBody''''''''' = +                                 LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                                  LT.new++                           gNoUnderlyingStips''''''''' = FIXTag+                              { tName = "NoUnderlyingStips"+                              , tnum = tnum tNoUnderlyingStips+                              , tparser = gNoUnderlyingStipsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''''''''' }++                           gNoUnderlyingStipsP''''''''' = groupP gNoUnderlyingStipsSpec'''''''''+                           gNoUnderlyingStipsSpec''''''''' = FGSpec+                              { gsLength = tNoUnderlyingStips+                              , gsSeperator = tUnderlyingStipType+                              , gsBody = gNoUnderlyingStipsBody''''''''' }+                              where+                              gNoUnderlyingStipsBody''''''''' = +                                 LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                                  LT.new++++++mQuoteStatusRequest :: FIXMessageSpec+mQuoteStatusRequest = FMSpec+   { msName = "QuoteStatusRequest"+   , msType = C.pack "a"+   , msHeader = headerFIX44+   , msBody = mQuoteStatusRequestBody+   , msTrailer = trailerFIX44 }+   where+   mQuoteStatusRequestBody = +      LT.insert (tnum tQuoteStatusReqID) tQuoteStatusReqID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tAgreementDesc) tAgreementDesc $+      LT.insert (tnum tAgreementID) tAgreementID $+      LT.insert (tnum tAgreementDate) tAgreementDate $+      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+      LT.insert (tnum tTerminationType) tTerminationType $+      LT.insert (tnum tStartDate) tStartDate $+      LT.insert (tnum tEndDate) tEndDate $+      LT.insert (tnum tDeliveryType) tDeliveryType $+      LT.insert (tnum tMarginRatio) tMarginRatio $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mMassQuoteAcknowledgement :: FIXMessageSpec+mMassQuoteAcknowledgement = FMSpec+   { msName = "MassQuoteAcknowledgement"+   , msType = C.pack "b"+   , msHeader = headerFIX44+   , msBody = mMassQuoteAcknowledgementBody+   , msTrailer = trailerFIX44 }+   where+   mMassQuoteAcknowledgementBody = +      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tQuoteStatus) tQuoteStatus $+      LT.insert (tnum tQuoteRejectReason) tQuoteRejectReason $+      LT.insert (tnum tQuoteResponseLevel) tQuoteResponseLevel $+      LT.insert (tnum tQuoteType) tQuoteType $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tNoQuoteSets) gNoQuoteSets'''       LT.new+      where+         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoQuoteSets''' = FIXTag+            { tName = "NoQuoteSets"+            , tnum = tnum tNoQuoteSets+            , tparser = gNoQuoteSetsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoQuoteSetsSpec''' }++         gNoQuoteSetsP''' = groupP gNoQuoteSetsSpec'''+         gNoQuoteSetsSpec''' = FGSpec+            { gsLength = tNoQuoteSets+            , gsSeperator = tQuoteSetID+            , gsBody = gNoQuoteSetsBody''' }+            where+            gNoQuoteSetsBody''' = +               LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $+               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''' $+               LT.insert (tnum tTotNoQuoteEntries) tTotNoQuoteEntries $+               LT.insert (tnum tLastFragment) tLastFragment $+               LT.insert (tnum tNoQuoteEntries) gNoQuoteEntries''''''                LT.new+               where+                  gNoQuoteEntries'''''' = FIXTag+                     { tName = "NoQuoteEntries"+                     , tnum = tnum tNoQuoteEntries+                     , tparser = gNoQuoteEntriesP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoQuoteEntriesSpec'''''' }++                  gNoQuoteEntriesP'''''' = groupP gNoQuoteEntriesSpec''''''+                  gNoQuoteEntriesSpec'''''' = FGSpec+                     { gsLength = tNoQuoteEntries+                     , gsSeperator = tQuoteEntryID+                     , gsBody = gNoQuoteEntriesBody'''''' }+                     where+                     gNoQuoteEntriesBody'''''' = +                        LT.insert (tnum tSymbol) tSymbol $+                        LT.insert (tnum tSymbolSfx) tSymbolSfx $+                        LT.insert (tnum tSecurityID) tSecurityID $+                        LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+                        LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''''''''' $+                        LT.insert (tnum tProduct) tProduct $+                        LT.insert (tnum tCFICode) tCFICode $+                        LT.insert (tnum tSecurityType) tSecurityType $+                        LT.insert (tnum tSecuritySubType) tSecuritySubType $+                        LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+                        LT.insert (tnum tMaturityDate) tMaturityDate $+                        LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+                        LT.insert (tnum tIssueDate) tIssueDate $+                        LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+                        LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+                        LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+                        LT.insert (tnum tFactor) tFactor $+                        LT.insert (tnum tCreditRating) tCreditRating $+                        LT.insert (tnum tInstrRegistry) tInstrRegistry $+                        LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+                        LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+                        LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+                        LT.insert (tnum tRedemptionDate) tRedemptionDate $+                        LT.insert (tnum tStrikePrice) tStrikePrice $+                        LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+                        LT.insert (tnum tOptAttribute) tOptAttribute $+                        LT.insert (tnum tContractMultiplier) tContractMultiplier $+                        LT.insert (tnum tCouponRate) tCouponRate $+                        LT.insert (tnum tSecurityExchange) tSecurityExchange $+                        LT.insert (tnum tIssuer) tIssuer $+                        LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+                        LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+                        LT.insert (tnum tSecurityDesc) tSecurityDesc $+                        LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+                        LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+                        LT.insert (tnum tPool) tPool $+                        LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+                        LT.insert (tnum tCPProgram) tCPProgram $+                        LT.insert (tnum tCPRegType) tCPRegType $+                        LT.insert (tnum tNoEvents) gNoEvents''''''''' $+                        LT.insert (tnum tDatedDate) tDatedDate $+                        LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+                        LT.insert (tnum tNoLegs) gNoLegs''''''''' $+                        LT.insert (tnum tBidPx) tBidPx $+                        LT.insert (tnum tOfferPx) tOfferPx $+                        LT.insert (tnum tBidSize) tBidSize $+                        LT.insert (tnum tOfferSize) tOfferSize $+                        LT.insert (tnum tValidUntilTime) tValidUntilTime $+                        LT.insert (tnum tBidSpotRate) tBidSpotRate $+                        LT.insert (tnum tOfferSpotRate) tOfferSpotRate $+                        LT.insert (tnum tBidForwardPoints) tBidForwardPoints $+                        LT.insert (tnum tOfferForwardPoints) tOfferForwardPoints $+                        LT.insert (tnum tMidPx) tMidPx $+                        LT.insert (tnum tBidYield) tBidYield $+                        LT.insert (tnum tMidYield) tMidYield $+                        LT.insert (tnum tOfferYield) tOfferYield $+                        LT.insert (tnum tTransactTime) tTransactTime $+                        LT.insert (tnum tTradingSessionID) tTradingSessionID $+                        LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+                        LT.insert (tnum tSettlDate) tSettlDate $+                        LT.insert (tnum tOrdType) tOrdType $+                        LT.insert (tnum tSettlDate2) tSettlDate2 $+                        LT.insert (tnum tOrderQty2) tOrderQty2 $+                        LT.insert (tnum tBidForwardPoints2) tBidForwardPoints2 $+                        LT.insert (tnum tOfferForwardPoints2) tOfferForwardPoints2 $+                        LT.insert (tnum tCurrency) tCurrency $+                        LT.insert (tnum tQuoteEntryRejectReason) tQuoteEntryRejectReason                         LT.new+                        where+                           gNoEvents''''''''' = FIXTag+                              { tName = "NoEvents"+                              , tnum = tnum tNoEvents+                              , tparser = gNoEventsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''''''''' }++                           gNoEventsP''''''''' = groupP gNoEventsSpec'''''''''+                           gNoEventsSpec''''''''' = FGSpec+                              { gsLength = tNoEvents+                              , gsSeperator = tEventType+                              , gsBody = gNoEventsBody''''''''' }+                              where+                              gNoEventsBody''''''''' = +                                 LT.insert (tnum tEventDate) tEventDate $+                                 LT.insert (tnum tEventPx) tEventPx $+                                 LT.insert (tnum tEventText) tEventText                                  LT.new++                           gNoLegs''''''''' = FIXTag+                              { tName = "NoLegs"+                              , tnum = tnum tNoLegs+                              , tparser = gNoLegsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''''''''' }++                           gNoLegsP''''''''' = groupP gNoLegsSpec'''''''''+                           gNoLegsSpec''''''''' = FGSpec+                              { gsLength = tNoLegs+                              , gsSeperator = tLegSymbol+                              , gsBody = gNoLegsBody''''''''' }+                              where+                              gNoLegsBody''''''''' = +                                 LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+                                 LT.insert (tnum tLegSecurityID) tLegSecurityID $+                                 LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+                                 LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''''''''' $+                                 LT.insert (tnum tLegProduct) tLegProduct $+                                 LT.insert (tnum tLegCFICode) tLegCFICode $+                                 LT.insert (tnum tLegSecurityType) tLegSecurityType $+                                 LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+                                 LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+                                 LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+                                 LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+                                 LT.insert (tnum tLegIssueDate) tLegIssueDate $+                                 LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+                                 LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+                                 LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+                                 LT.insert (tnum tLegFactor) tLegFactor $+                                 LT.insert (tnum tLegCreditRating) tLegCreditRating $+                                 LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+                                 LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+                                 LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+                                 LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+                                 LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+                                 LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+                                 LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+                                 LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+                                 LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+                                 LT.insert (tnum tLegCouponRate) tLegCouponRate $+                                 LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+                                 LT.insert (tnum tLegIssuer) tLegIssuer $+                                 LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+                                 LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+                                 LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+                                 LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+                                 LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+                                 LT.insert (tnum tLegRatioQty) tLegRatioQty $+                                 LT.insert (tnum tLegSide) tLegSide $+                                 LT.insert (tnum tLegCurrency) tLegCurrency $+                                 LT.insert (tnum tLegPool) tLegPool $+                                 LT.insert (tnum tLegDatedDate) tLegDatedDate $+                                 LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+                                 LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                                  LT.new+                                 where+                                    gNoLegSecurityAltID'''''''''''' = FIXTag+                                       { tName = "NoLegSecurityAltID"+                                       , tnum = tnum tNoLegSecurityAltID+                                       , tparser = gNoLegSecurityAltIDP''''''''''''+                                       , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''''''''' }++                                    gNoLegSecurityAltIDP'''''''''''' = groupP gNoLegSecurityAltIDSpec''''''''''''+                                    gNoLegSecurityAltIDSpec'''''''''''' = FGSpec+                                       { gsLength = tNoLegSecurityAltID+                                       , gsSeperator = tLegSecurityAltID+                                       , gsBody = gNoLegSecurityAltIDBody'''''''''''' }+                                       where+                                       gNoLegSecurityAltIDBody'''''''''''' = +                                          LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                                           LT.new+++                           gNoSecurityAltID''''''''' = FIXTag+                              { tName = "NoSecurityAltID"+                              , tnum = tnum tNoSecurityAltID+                              , tparser = gNoSecurityAltIDP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''''''''' }++                           gNoSecurityAltIDP''''''''' = groupP gNoSecurityAltIDSpec'''''''''+                           gNoSecurityAltIDSpec''''''''' = FGSpec+                              { gsLength = tNoSecurityAltID+                              , gsSeperator = tSecurityAltID+                              , gsBody = gNoSecurityAltIDBody''''''''' }+                              where+                              gNoSecurityAltIDBody''''''''' = +                                 LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                                  LT.new+++                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mSecurityDefinitionRequest :: FIXMessageSpec+mSecurityDefinitionRequest = FMSpec+   { msName = "SecurityDefinitionRequest"+   , msType = C.pack "c"+   , msHeader = headerFIX44+   , msBody = mSecurityDefinitionRequestBody+   , msTrailer = trailerFIX44 }+   where+   mSecurityDefinitionRequestBody = +      LT.insert (tnum tSecurityReqID) tSecurityReqID $+      LT.insert (tnum tSecurityRequestType) tSecurityRequestType $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tDeliveryForm) tDeliveryForm $+      LT.insert (tnum tPctAtRisk) tPctAtRisk $+      LT.insert (tnum tNoInstrAttrib) gNoInstrAttrib''' $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tExpirationCycle) tExpirationCycle $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoInstrAttrib''' = FIXTag+            { tName = "NoInstrAttrib"+            , tnum = tnum tNoInstrAttrib+            , tparser = gNoInstrAttribP'''+            , arbitraryValue = arbibtraryFIXGroup gNoInstrAttribSpec''' }++         gNoInstrAttribP''' = groupP gNoInstrAttribSpec'''+         gNoInstrAttribSpec''' = FGSpec+            { gsLength = tNoInstrAttrib+            , gsSeperator = tInstrAttribType+            , gsBody = gNoInstrAttribBody''' }+            where+            gNoInstrAttribBody''' = +               LT.insert (tnum tInstrAttribValue) tInstrAttribValue                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mSecurityDefinition :: FIXMessageSpec+mSecurityDefinition = FMSpec+   { msName = "SecurityDefinition"+   , msType = C.pack "d"+   , msHeader = headerFIX44+   , msBody = mSecurityDefinitionBody+   , msTrailer = trailerFIX44 }+   where+   mSecurityDefinitionBody = +      LT.insert (tnum tSecurityReqID) tSecurityReqID $+      LT.insert (tnum tSecurityResponseID) tSecurityResponseID $+      LT.insert (tnum tSecurityResponseType) tSecurityResponseType $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tDeliveryForm) tDeliveryForm $+      LT.insert (tnum tPctAtRisk) tPctAtRisk $+      LT.insert (tnum tNoInstrAttrib) gNoInstrAttrib''' $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tExpirationCycle) tExpirationCycle $+      LT.insert (tnum tRoundLot) tRoundLot $+      LT.insert (tnum tMinTradeVol) tMinTradeVol       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoInstrAttrib''' = FIXTag+            { tName = "NoInstrAttrib"+            , tnum = tnum tNoInstrAttrib+            , tparser = gNoInstrAttribP'''+            , arbitraryValue = arbibtraryFIXGroup gNoInstrAttribSpec''' }++         gNoInstrAttribP''' = groupP gNoInstrAttribSpec'''+         gNoInstrAttribSpec''' = FGSpec+            { gsLength = tNoInstrAttrib+            , gsSeperator = tInstrAttribType+            , gsBody = gNoInstrAttribBody''' }+            where+            gNoInstrAttribBody''' = +               LT.insert (tnum tInstrAttribValue) tInstrAttribValue                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mSecurityStatusRequest :: FIXMessageSpec+mSecurityStatusRequest = FMSpec+   { msName = "SecurityStatusRequest"+   , msType = C.pack "e"+   , msHeader = headerFIX44+   , msBody = mSecurityStatusRequestBody+   , msTrailer = trailerFIX44 }+   where+   mSecurityStatusRequestBody = +      LT.insert (tnum tSecurityStatusReqID) tSecurityStatusReqID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tDeliveryForm) tDeliveryForm $+      LT.insert (tnum tPctAtRisk) tPctAtRisk $+      LT.insert (tnum tNoInstrAttrib) gNoInstrAttrib''' $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoInstrAttrib''' = FIXTag+            { tName = "NoInstrAttrib"+            , tnum = tnum tNoInstrAttrib+            , tparser = gNoInstrAttribP'''+            , arbitraryValue = arbibtraryFIXGroup gNoInstrAttribSpec''' }++         gNoInstrAttribP''' = groupP gNoInstrAttribSpec'''+         gNoInstrAttribSpec''' = FGSpec+            { gsLength = tNoInstrAttrib+            , gsSeperator = tInstrAttribType+            , gsBody = gNoInstrAttribBody''' }+            where+            gNoInstrAttribBody''' = +               LT.insert (tnum tInstrAttribValue) tInstrAttribValue                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mSecurityStatus :: FIXMessageSpec+mSecurityStatus = FMSpec+   { msName = "SecurityStatus"+   , msType = C.pack "f"+   , msHeader = headerFIX44+   , msBody = mSecurityStatusBody+   , msTrailer = trailerFIX44 }+   where+   mSecurityStatusBody = +      LT.insert (tnum tSecurityStatusReqID) tSecurityStatusReqID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tDeliveryForm) tDeliveryForm $+      LT.insert (tnum tPctAtRisk) tPctAtRisk $+      LT.insert (tnum tNoInstrAttrib) gNoInstrAttrib''' $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tUnsolicitedIndicator) tUnsolicitedIndicator $+      LT.insert (tnum tSecurityTradingStatus) tSecurityTradingStatus $+      LT.insert (tnum tFinancialStatus) tFinancialStatus $+      LT.insert (tnum tCorporateAction) tCorporateAction $+      LT.insert (tnum tHaltReasonChar) tHaltReasonChar $+      LT.insert (tnum tInViewOfCommon) tInViewOfCommon $+      LT.insert (tnum tDueToRelated) tDueToRelated $+      LT.insert (tnum tBuyVolume) tBuyVolume $+      LT.insert (tnum tSellVolume) tSellVolume $+      LT.insert (tnum tHighPx) tHighPx $+      LT.insert (tnum tLowPx) tLowPx $+      LT.insert (tnum tLastPx) tLastPx $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tAdjustment) tAdjustment $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoInstrAttrib''' = FIXTag+            { tName = "NoInstrAttrib"+            , tnum = tnum tNoInstrAttrib+            , tparser = gNoInstrAttribP'''+            , arbitraryValue = arbibtraryFIXGroup gNoInstrAttribSpec''' }++         gNoInstrAttribP''' = groupP gNoInstrAttribSpec'''+         gNoInstrAttribSpec''' = FGSpec+            { gsLength = tNoInstrAttrib+            , gsSeperator = tInstrAttribType+            , gsBody = gNoInstrAttribBody''' }+            where+            gNoInstrAttribBody''' = +               LT.insert (tnum tInstrAttribValue) tInstrAttribValue                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mTradingSessionStatusRequest :: FIXMessageSpec+mTradingSessionStatusRequest = FMSpec+   { msName = "TradingSessionStatusRequest"+   , msType = C.pack "g"+   , msHeader = headerFIX44+   , msBody = mTradingSessionStatusRequestBody+   , msTrailer = trailerFIX44 }+   where+   mTradingSessionStatusRequestBody = +      LT.insert (tnum tTradSesReqID) tTradSesReqID $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tTradSesMethod) tTradSesMethod $+      LT.insert (tnum tTradSesMode) tTradSesMode $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType       LT.new+++mTradingSessionStatus :: FIXMessageSpec+mTradingSessionStatus = FMSpec+   { msName = "TradingSessionStatus"+   , msType = C.pack "h"+   , msHeader = headerFIX44+   , msBody = mTradingSessionStatusBody+   , msTrailer = trailerFIX44 }+   where+   mTradingSessionStatusBody = +      LT.insert (tnum tTradSesReqID) tTradSesReqID $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tTradSesMethod) tTradSesMethod $+      LT.insert (tnum tTradSesMode) tTradSesMode $+      LT.insert (tnum tUnsolicitedIndicator) tUnsolicitedIndicator $+      LT.insert (tnum tTradSesStatus) tTradSesStatus $+      LT.insert (tnum tTradSesStatusRejReason) tTradSesStatusRejReason $+      LT.insert (tnum tTradSesStartTime) tTradSesStartTime $+      LT.insert (tnum tTradSesOpenTime) tTradSesOpenTime $+      LT.insert (tnum tTradSesPreCloseTime) tTradSesPreCloseTime $+      LT.insert (tnum tTradSesCloseTime) tTradSesCloseTime $+      LT.insert (tnum tTradSesEndTime) tTradSesEndTime $+      LT.insert (tnum tTotalVolumeTraded) tTotalVolumeTraded $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mMassQuote :: FIXMessageSpec+mMassQuote = FMSpec+   { msName = "MassQuote"+   , msType = C.pack "i"+   , msHeader = headerFIX44+   , msBody = mMassQuoteBody+   , msTrailer = trailerFIX44 }+   where+   mMassQuoteBody = +      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tQuoteType) tQuoteType $+      LT.insert (tnum tQuoteResponseLevel) tQuoteResponseLevel $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tDefBidSize) tDefBidSize $+      LT.insert (tnum tDefOfferSize) tDefOfferSize $+      LT.insert (tnum tNoQuoteSets) gNoQuoteSets'''       LT.new+      where+         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoQuoteSets''' = FIXTag+            { tName = "NoQuoteSets"+            , tnum = tnum tNoQuoteSets+            , tparser = gNoQuoteSetsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoQuoteSetsSpec''' }++         gNoQuoteSetsP''' = groupP gNoQuoteSetsSpec'''+         gNoQuoteSetsSpec''' = FGSpec+            { gsLength = tNoQuoteSets+            , gsSeperator = tQuoteSetID+            , gsBody = gNoQuoteSetsBody''' }+            where+            gNoQuoteSetsBody''' = +               LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $+               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''' $+               LT.insert (tnum tQuoteSetValidUntilTime) tQuoteSetValidUntilTime $+               LT.insert (tnum tTotNoQuoteEntries) tTotNoQuoteEntries $+               LT.insert (tnum tLastFragment) tLastFragment $+               LT.insert (tnum tNoQuoteEntries) gNoQuoteEntries''''''                LT.new+               where+                  gNoQuoteEntries'''''' = FIXTag+                     { tName = "NoQuoteEntries"+                     , tnum = tnum tNoQuoteEntries+                     , tparser = gNoQuoteEntriesP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoQuoteEntriesSpec'''''' }++                  gNoQuoteEntriesP'''''' = groupP gNoQuoteEntriesSpec''''''+                  gNoQuoteEntriesSpec'''''' = FGSpec+                     { gsLength = tNoQuoteEntries+                     , gsSeperator = tQuoteEntryID+                     , gsBody = gNoQuoteEntriesBody'''''' }+                     where+                     gNoQuoteEntriesBody'''''' = +                        LT.insert (tnum tSymbol) tSymbol $+                        LT.insert (tnum tSymbolSfx) tSymbolSfx $+                        LT.insert (tnum tSecurityID) tSecurityID $+                        LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+                        LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''''''''' $+                        LT.insert (tnum tProduct) tProduct $+                        LT.insert (tnum tCFICode) tCFICode $+                        LT.insert (tnum tSecurityType) tSecurityType $+                        LT.insert (tnum tSecuritySubType) tSecuritySubType $+                        LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+                        LT.insert (tnum tMaturityDate) tMaturityDate $+                        LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+                        LT.insert (tnum tIssueDate) tIssueDate $+                        LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+                        LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+                        LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+                        LT.insert (tnum tFactor) tFactor $+                        LT.insert (tnum tCreditRating) tCreditRating $+                        LT.insert (tnum tInstrRegistry) tInstrRegistry $+                        LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+                        LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+                        LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+                        LT.insert (tnum tRedemptionDate) tRedemptionDate $+                        LT.insert (tnum tStrikePrice) tStrikePrice $+                        LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+                        LT.insert (tnum tOptAttribute) tOptAttribute $+                        LT.insert (tnum tContractMultiplier) tContractMultiplier $+                        LT.insert (tnum tCouponRate) tCouponRate $+                        LT.insert (tnum tSecurityExchange) tSecurityExchange $+                        LT.insert (tnum tIssuer) tIssuer $+                        LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+                        LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+                        LT.insert (tnum tSecurityDesc) tSecurityDesc $+                        LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+                        LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+                        LT.insert (tnum tPool) tPool $+                        LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+                        LT.insert (tnum tCPProgram) tCPProgram $+                        LT.insert (tnum tCPRegType) tCPRegType $+                        LT.insert (tnum tNoEvents) gNoEvents''''''''' $+                        LT.insert (tnum tDatedDate) tDatedDate $+                        LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+                        LT.insert (tnum tNoLegs) gNoLegs''''''''' $+                        LT.insert (tnum tBidPx) tBidPx $+                        LT.insert (tnum tOfferPx) tOfferPx $+                        LT.insert (tnum tBidSize) tBidSize $+                        LT.insert (tnum tOfferSize) tOfferSize $+                        LT.insert (tnum tValidUntilTime) tValidUntilTime $+                        LT.insert (tnum tBidSpotRate) tBidSpotRate $+                        LT.insert (tnum tOfferSpotRate) tOfferSpotRate $+                        LT.insert (tnum tBidForwardPoints) tBidForwardPoints $+                        LT.insert (tnum tOfferForwardPoints) tOfferForwardPoints $+                        LT.insert (tnum tMidPx) tMidPx $+                        LT.insert (tnum tBidYield) tBidYield $+                        LT.insert (tnum tMidYield) tMidYield $+                        LT.insert (tnum tOfferYield) tOfferYield $+                        LT.insert (tnum tTransactTime) tTransactTime $+                        LT.insert (tnum tTradingSessionID) tTradingSessionID $+                        LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+                        LT.insert (tnum tSettlDate) tSettlDate $+                        LT.insert (tnum tOrdType) tOrdType $+                        LT.insert (tnum tSettlDate2) tSettlDate2 $+                        LT.insert (tnum tOrderQty2) tOrderQty2 $+                        LT.insert (tnum tBidForwardPoints2) tBidForwardPoints2 $+                        LT.insert (tnum tOfferForwardPoints2) tOfferForwardPoints2 $+                        LT.insert (tnum tCurrency) tCurrency                         LT.new+                        where+                           gNoEvents''''''''' = FIXTag+                              { tName = "NoEvents"+                              , tnum = tnum tNoEvents+                              , tparser = gNoEventsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''''''''' }++                           gNoEventsP''''''''' = groupP gNoEventsSpec'''''''''+                           gNoEventsSpec''''''''' = FGSpec+                              { gsLength = tNoEvents+                              , gsSeperator = tEventType+                              , gsBody = gNoEventsBody''''''''' }+                              where+                              gNoEventsBody''''''''' = +                                 LT.insert (tnum tEventDate) tEventDate $+                                 LT.insert (tnum tEventPx) tEventPx $+                                 LT.insert (tnum tEventText) tEventText                                  LT.new++                           gNoLegs''''''''' = FIXTag+                              { tName = "NoLegs"+                              , tnum = tnum tNoLegs+                              , tparser = gNoLegsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''''''''' }++                           gNoLegsP''''''''' = groupP gNoLegsSpec'''''''''+                           gNoLegsSpec''''''''' = FGSpec+                              { gsLength = tNoLegs+                              , gsSeperator = tLegSymbol+                              , gsBody = gNoLegsBody''''''''' }+                              where+                              gNoLegsBody''''''''' = +                                 LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+                                 LT.insert (tnum tLegSecurityID) tLegSecurityID $+                                 LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+                                 LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''''''''' $+                                 LT.insert (tnum tLegProduct) tLegProduct $+                                 LT.insert (tnum tLegCFICode) tLegCFICode $+                                 LT.insert (tnum tLegSecurityType) tLegSecurityType $+                                 LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+                                 LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+                                 LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+                                 LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+                                 LT.insert (tnum tLegIssueDate) tLegIssueDate $+                                 LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+                                 LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+                                 LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+                                 LT.insert (tnum tLegFactor) tLegFactor $+                                 LT.insert (tnum tLegCreditRating) tLegCreditRating $+                                 LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+                                 LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+                                 LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+                                 LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+                                 LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+                                 LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+                                 LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+                                 LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+                                 LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+                                 LT.insert (tnum tLegCouponRate) tLegCouponRate $+                                 LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+                                 LT.insert (tnum tLegIssuer) tLegIssuer $+                                 LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+                                 LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+                                 LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+                                 LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+                                 LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+                                 LT.insert (tnum tLegRatioQty) tLegRatioQty $+                                 LT.insert (tnum tLegSide) tLegSide $+                                 LT.insert (tnum tLegCurrency) tLegCurrency $+                                 LT.insert (tnum tLegPool) tLegPool $+                                 LT.insert (tnum tLegDatedDate) tLegDatedDate $+                                 LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+                                 LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                                  LT.new+                                 where+                                    gNoLegSecurityAltID'''''''''''' = FIXTag+                                       { tName = "NoLegSecurityAltID"+                                       , tnum = tnum tNoLegSecurityAltID+                                       , tparser = gNoLegSecurityAltIDP''''''''''''+                                       , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''''''''' }++                                    gNoLegSecurityAltIDP'''''''''''' = groupP gNoLegSecurityAltIDSpec''''''''''''+                                    gNoLegSecurityAltIDSpec'''''''''''' = FGSpec+                                       { gsLength = tNoLegSecurityAltID+                                       , gsSeperator = tLegSecurityAltID+                                       , gsBody = gNoLegSecurityAltIDBody'''''''''''' }+                                       where+                                       gNoLegSecurityAltIDBody'''''''''''' = +                                          LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                                           LT.new+++                           gNoSecurityAltID''''''''' = FIXTag+                              { tName = "NoSecurityAltID"+                              , tnum = tnum tNoSecurityAltID+                              , tparser = gNoSecurityAltIDP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''''''''' }++                           gNoSecurityAltIDP''''''''' = groupP gNoSecurityAltIDSpec'''''''''+                           gNoSecurityAltIDSpec''''''''' = FGSpec+                              { gsLength = tNoSecurityAltID+                              , gsSeperator = tSecurityAltID+                              , gsBody = gNoSecurityAltIDBody''''''''' }+                              where+                              gNoSecurityAltIDBody''''''''' = +                                 LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                                  LT.new+++                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mBusinessMessageReject :: FIXMessageSpec+mBusinessMessageReject = FMSpec+   { msName = "BusinessMessageReject"+   , msType = C.pack "j"+   , msHeader = headerFIX44+   , msBody = mBusinessMessageRejectBody+   , msTrailer = trailerFIX44 }+   where+   mBusinessMessageRejectBody = +      LT.insert (tnum tRefSeqNum) tRefSeqNum $+      LT.insert (tnum tRefMsgType) tRefMsgType $+      LT.insert (tnum tBusinessRejectRefID) tBusinessRejectRefID $+      LT.insert (tnum tBusinessRejectReason) tBusinessRejectReason $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mBidRequest :: FIXMessageSpec+mBidRequest = FMSpec+   { msName = "BidRequest"+   , msType = C.pack "k"+   , msHeader = headerFIX44+   , msBody = mBidRequestBody+   , msTrailer = trailerFIX44 }+   where+   mBidRequestBody = +      LT.insert (tnum tBidID) tBidID $+      LT.insert (tnum tClientBidID) tClientBidID $+      LT.insert (tnum tBidRequestTransType) tBidRequestTransType $+      LT.insert (tnum tListName) tListName $+      LT.insert (tnum tTotNoRelatedSym) tTotNoRelatedSym $+      LT.insert (tnum tBidType) tBidType $+      LT.insert (tnum tNumTickets) tNumTickets $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tSideValue1) tSideValue1 $+      LT.insert (tnum tSideValue2) tSideValue2 $+      LT.insert (tnum tNoBidDescriptors) gNoBidDescriptors''' $+      LT.insert (tnum tNoBidComponents) gNoBidComponents''' $+      LT.insert (tnum tLiquidityIndType) tLiquidityIndType $+      LT.insert (tnum tWtAverageLiquidity) tWtAverageLiquidity $+      LT.insert (tnum tExchangeForPhysical) tExchangeForPhysical $+      LT.insert (tnum tOutMainCntryUIndex) tOutMainCntryUIndex $+      LT.insert (tnum tCrossPercent) tCrossPercent $+      LT.insert (tnum tProgRptReqs) tProgRptReqs $+      LT.insert (tnum tProgPeriodInterval) tProgPeriodInterval $+      LT.insert (tnum tIncTaxInd) tIncTaxInd $+      LT.insert (tnum tForexReq) tForexReq $+      LT.insert (tnum tNumBidders) tNumBidders $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tBidTradeType) tBidTradeType $+      LT.insert (tnum tBasisPxType) tBasisPxType $+      LT.insert (tnum tStrikeTime) tStrikeTime $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoBidComponents''' = FIXTag+            { tName = "NoBidComponents"+            , tnum = tnum tNoBidComponents+            , tparser = gNoBidComponentsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoBidComponentsSpec''' }++         gNoBidComponentsP''' = groupP gNoBidComponentsSpec'''+         gNoBidComponentsSpec''' = FGSpec+            { gsLength = tNoBidComponents+            , gsSeperator = tListID+            , gsBody = gNoBidComponentsBody''' }+            where+            gNoBidComponentsBody''' = +               LT.insert (tnum tSide) tSide $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+               LT.insert (tnum tNetGrossInd) tNetGrossInd $+               LT.insert (tnum tSettlType) tSettlType $+               LT.insert (tnum tSettlDate) tSettlDate $+               LT.insert (tnum tAccount) tAccount $+               LT.insert (tnum tAcctIDSource) tAcctIDSource                LT.new++         gNoBidDescriptors''' = FIXTag+            { tName = "NoBidDescriptors"+            , tnum = tnum tNoBidDescriptors+            , tparser = gNoBidDescriptorsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoBidDescriptorsSpec''' }++         gNoBidDescriptorsP''' = groupP gNoBidDescriptorsSpec'''+         gNoBidDescriptorsSpec''' = FGSpec+            { gsLength = tNoBidDescriptors+            , gsSeperator = tBidDescriptorType+            , gsBody = gNoBidDescriptorsBody''' }+            where+            gNoBidDescriptorsBody''' = +               LT.insert (tnum tBidDescriptor) tBidDescriptor $+               LT.insert (tnum tSideValueInd) tSideValueInd $+               LT.insert (tnum tLiquidityValue) tLiquidityValue $+               LT.insert (tnum tLiquidityNumSecurities) tLiquidityNumSecurities $+               LT.insert (tnum tLiquidityPctLow) tLiquidityPctLow $+               LT.insert (tnum tLiquidityPctHigh) tLiquidityPctHigh $+               LT.insert (tnum tEFPTrackingError) tEFPTrackingError $+               LT.insert (tnum tFairValue) tFairValue $+               LT.insert (tnum tOutsideIndexPct) tOutsideIndexPct $+               LT.insert (tnum tValueOfFutures) tValueOfFutures                LT.new++++mBidResponse :: FIXMessageSpec+mBidResponse = FMSpec+   { msName = "BidResponse"+   , msType = C.pack "l"+   , msHeader = headerFIX44+   , msBody = mBidResponseBody+   , msTrailer = trailerFIX44 }+   where+   mBidResponseBody = +      LT.insert (tnum tBidID) tBidID $+      LT.insert (tnum tClientBidID) tClientBidID $+      LT.insert (tnum tNoBidComponents) gNoBidComponents'''       LT.new+      where+         gNoBidComponents''' = FIXTag+            { tName = "NoBidComponents"+            , tnum = tnum tNoBidComponents+            , tparser = gNoBidComponentsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoBidComponentsSpec''' }++         gNoBidComponentsP''' = groupP gNoBidComponentsSpec'''+         gNoBidComponentsSpec''' = FGSpec+            { gsLength = tNoBidComponents+            , gsSeperator = tCommission+            , gsBody = gNoBidComponentsBody''' }+            where+            gNoBidComponentsBody''' = +               LT.insert (tnum tCommType) tCommType $+               LT.insert (tnum tCommCurrency) tCommCurrency $+               LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+               LT.insert (tnum tListID) tListID $+               LT.insert (tnum tCountry) tCountry $+               LT.insert (tnum tSide) tSide $+               LT.insert (tnum tPrice) tPrice $+               LT.insert (tnum tPriceType) tPriceType $+               LT.insert (tnum tFairValue) tFairValue $+               LT.insert (tnum tNetGrossInd) tNetGrossInd $+               LT.insert (tnum tSettlType) tSettlType $+               LT.insert (tnum tSettlDate) tSettlDate $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new++++mListStrikePrice :: FIXMessageSpec+mListStrikePrice = FMSpec+   { msName = "ListStrikePrice"+   , msType = C.pack "m"+   , msHeader = headerFIX44+   , msBody = mListStrikePriceBody+   , msTrailer = trailerFIX44 }+   where+   mListStrikePriceBody = +      LT.insert (tnum tListID) tListID $+      LT.insert (tnum tTotNoStrikes) tTotNoStrikes $+      LT.insert (tnum tLastFragment) tLastFragment $+      LT.insert (tnum tNoStrikes) gNoStrikes''' $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings'''       LT.new+      where+         gNoStrikes''' = FIXTag+            { tName = "NoStrikes"+            , tnum = tnum tNoStrikes+            , tparser = gNoStrikesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStrikesSpec''' }++         gNoStrikesP''' = groupP gNoStrikesSpec'''+         gNoStrikesSpec''' = FGSpec+            { gsLength = tNoStrikes+            , gsSeperator = tSymbol+            , gsBody = gNoStrikesBody''' }+            where+            gNoStrikesBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tSecuritySubType) tSecuritySubType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tPool) tPool $+               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+               LT.insert (tnum tCPProgram) tCPProgram $+               LT.insert (tnum tCPRegType) tCPRegType $+               LT.insert (tnum tNoEvents) gNoEvents'''''' $+               LT.insert (tnum tDatedDate) tDatedDate $+               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate                LT.new+               where+                  gNoEvents'''''' = FIXTag+                     { tName = "NoEvents"+                     , tnum = tnum tNoEvents+                     , tparser = gNoEventsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }++                  gNoEventsP'''''' = groupP gNoEventsSpec''''''+                  gNoEventsSpec'''''' = FGSpec+                     { gsLength = tNoEvents+                     , gsSeperator = tEventType+                     , gsBody = gNoEventsBody'''''' }+                     where+                     gNoEventsBody'''''' = +                        LT.insert (tnum tEventDate) tEventDate $+                        LT.insert (tnum tEventPx) tEventPx $+                        LT.insert (tnum tEventText) tEventText                         LT.new++                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new+++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''' $+               LT.insert (tnum tPrevClosePx) tPrevClosePx $+               LT.insert (tnum tClOrdID) tClOrdID $+               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+               LT.insert (tnum tSide) tSide $+               LT.insert (tnum tPrice) tPrice $+               LT.insert (tnum tCurrency) tCurrency $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mRegistrationInstructions :: FIXMessageSpec+mRegistrationInstructions = FMSpec+   { msName = "RegistrationInstructions"+   , msType = C.pack "o"+   , msHeader = headerFIX44+   , msBody = mRegistrationInstructionsBody+   , msTrailer = trailerFIX44 }+   where+   mRegistrationInstructionsBody = +      LT.insert (tnum tRegistID) tRegistID $+      LT.insert (tnum tRegistTransType) tRegistTransType $+      LT.insert (tnum tRegistRefID) tRegistRefID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tRegistAcctType) tRegistAcctType $+      LT.insert (tnum tTaxAdvantageType) tTaxAdvantageType $+      LT.insert (tnum tOwnershipType) tOwnershipType $+      LT.insert (tnum tNoRegistDtls) gNoRegistDtls''' $+      LT.insert (tnum tNoDistribInsts) gNoDistribInsts'''       LT.new+      where+         gNoDistribInsts''' = FIXTag+            { tName = "NoDistribInsts"+            , tnum = tnum tNoDistribInsts+            , tparser = gNoDistribInstsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoDistribInstsSpec''' }++         gNoDistribInstsP''' = groupP gNoDistribInstsSpec'''+         gNoDistribInstsSpec''' = FGSpec+            { gsLength = tNoDistribInsts+            , gsSeperator = tDistribPaymentMethod+            , gsBody = gNoDistribInstsBody''' }+            where+            gNoDistribInstsBody''' = +               LT.insert (tnum tDistribPercentage) tDistribPercentage $+               LT.insert (tnum tCashDistribCurr) tCashDistribCurr $+               LT.insert (tnum tCashDistribAgentName) tCashDistribAgentName $+               LT.insert (tnum tCashDistribAgentCode) tCashDistribAgentCode $+               LT.insert (tnum tCashDistribAgentAcctNumber) tCashDistribAgentAcctNumber $+               LT.insert (tnum tCashDistribPayRef) tCashDistribPayRef $+               LT.insert (tnum tCashDistribAgentAcctName) tCashDistribAgentAcctName                LT.new++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoRegistDtls''' = FIXTag+            { tName = "NoRegistDtls"+            , tnum = tnum tNoRegistDtls+            , tparser = gNoRegistDtlsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRegistDtlsSpec''' }++         gNoRegistDtlsP''' = groupP gNoRegistDtlsSpec'''+         gNoRegistDtlsSpec''' = FGSpec+            { gsLength = tNoRegistDtls+            , gsSeperator = tRegistDtls+            , gsBody = gNoRegistDtlsBody''' }+            where+            gNoRegistDtlsBody''' = +               LT.insert (tnum tRegistEmail) tRegistEmail $+               LT.insert (tnum tMailingDtls) tMailingDtls $+               LT.insert (tnum tMailingInst) tMailingInst $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $+               LT.insert (tnum tOwnerType) tOwnerType $+               LT.insert (tnum tDateOfBirth) tDateOfBirth $+               LT.insert (tnum tInvestorCountryOfResidence) tInvestorCountryOfResidence                LT.new+               where+                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new+                        where+                           gNoNestedPartySubIDs''''''''' = FIXTag+                              { tName = "NoNestedPartySubIDs"+                              , tnum = tnum tNoNestedPartySubIDs+                              , tparser = gNoNestedPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }++                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''+                           gNoNestedPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartySubIDs+                              , gsSeperator = tNestedPartySubID+                              , gsBody = gNoNestedPartySubIDsBody''''''''' }+                              where+                              gNoNestedPartySubIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new++++++mRegistrationInstructionsResponse :: FIXMessageSpec+mRegistrationInstructionsResponse = FMSpec+   { msName = "RegistrationInstructionsResponse"+   , msType = C.pack "p"+   , msHeader = headerFIX44+   , msBody = mRegistrationInstructionsResponseBody+   , msTrailer = trailerFIX44 }+   where+   mRegistrationInstructionsResponseBody = +      LT.insert (tnum tRegistID) tRegistID $+      LT.insert (tnum tRegistTransType) tRegistTransType $+      LT.insert (tnum tRegistRefID) tRegistRefID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tRegistStatus) tRegistStatus $+      LT.insert (tnum tRegistRejReasonCode) tRegistRejReasonCode $+      LT.insert (tnum tRegistRejReasonText) tRegistRejReasonText       LT.new+      where+         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++++mOrderMassCancelRequest :: FIXMessageSpec+mOrderMassCancelRequest = FMSpec+   { msName = "OrderMassCancelRequest"+   , msType = C.pack "q"+   , msHeader = headerFIX44+   , msBody = mOrderMassCancelRequestBody+   , msTrailer = trailerFIX44 }+   where+   mOrderMassCancelRequestBody = +      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tMassCancelRequestType) tMassCancelRequestType $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $+      LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+      LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+      LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+      LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''' $+      LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+      LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+      LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+      LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+      LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+      LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+      LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+      LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+      LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+      LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+      LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+      LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+      LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+      LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+      LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+      LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+      LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+      LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+      LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+      LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+      LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+      LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+      LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+      LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+      LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+      LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+      LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+      LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+      LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+      LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+      LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+      LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+      LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+      LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+      LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+      LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+      LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+      LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+      LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+      LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+      LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''' $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoUnderlyingSecurityAltID''' = FIXTag+            { tName = "NoUnderlyingSecurityAltID"+            , tnum = tnum tNoUnderlyingSecurityAltID+            , tparser = gNoUnderlyingSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''' }++         gNoUnderlyingSecurityAltIDP''' = groupP gNoUnderlyingSecurityAltIDSpec'''+         gNoUnderlyingSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoUnderlyingSecurityAltID+            , gsSeperator = tUnderlyingSecurityAltID+            , gsBody = gNoUnderlyingSecurityAltIDBody''' }+            where+            gNoUnderlyingSecurityAltIDBody''' = +               LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                LT.new++         gNoUnderlyingStips''' = FIXTag+            { tName = "NoUnderlyingStips"+            , tnum = tnum tNoUnderlyingStips+            , tparser = gNoUnderlyingStipsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''' }++         gNoUnderlyingStipsP''' = groupP gNoUnderlyingStipsSpec'''+         gNoUnderlyingStipsSpec''' = FGSpec+            { gsLength = tNoUnderlyingStips+            , gsSeperator = tUnderlyingStipType+            , gsBody = gNoUnderlyingStipsBody''' }+            where+            gNoUnderlyingStipsBody''' = +               LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                LT.new++++mOrderMassCancelReport :: FIXMessageSpec+mOrderMassCancelReport = FMSpec+   { msName = "OrderMassCancelReport"+   , msType = C.pack "r"+   , msHeader = headerFIX44+   , msBody = mOrderMassCancelReportBody+   , msTrailer = trailerFIX44 }+   where+   mOrderMassCancelReportBody = +      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+      LT.insert (tnum tMassCancelRequestType) tMassCancelRequestType $+      LT.insert (tnum tMassCancelResponse) tMassCancelResponse $+      LT.insert (tnum tMassCancelRejectReason) tMassCancelRejectReason $+      LT.insert (tnum tTotalAffectedOrders) tTotalAffectedOrders $+      LT.insert (tnum tNoAffectedOrders) gNoAffectedOrders''' $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $+      LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+      LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+      LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+      LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''' $+      LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+      LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+      LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+      LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+      LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+      LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+      LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+      LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+      LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+      LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+      LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+      LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+      LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+      LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+      LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+      LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+      LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+      LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+      LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+      LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+      LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+      LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+      LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+      LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+      LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+      LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+      LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+      LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+      LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+      LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+      LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+      LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+      LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+      LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+      LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+      LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+      LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+      LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+      LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+      LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+      LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''' $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoAffectedOrders''' = FIXTag+            { tName = "NoAffectedOrders"+            , tnum = tnum tNoAffectedOrders+            , tparser = gNoAffectedOrdersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoAffectedOrdersSpec''' }++         gNoAffectedOrdersP''' = groupP gNoAffectedOrdersSpec'''+         gNoAffectedOrdersSpec''' = FGSpec+            { gsLength = tNoAffectedOrders+            , gsSeperator = tOrigClOrdID+            , gsBody = gNoAffectedOrdersBody''' }+            where+            gNoAffectedOrdersBody''' = +               LT.insert (tnum tAffectedOrderID) tAffectedOrderID $+               LT.insert (tnum tAffectedSecondaryOrderID) tAffectedSecondaryOrderID                LT.new++         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoUnderlyingSecurityAltID''' = FIXTag+            { tName = "NoUnderlyingSecurityAltID"+            , tnum = tnum tNoUnderlyingSecurityAltID+            , tparser = gNoUnderlyingSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''' }++         gNoUnderlyingSecurityAltIDP''' = groupP gNoUnderlyingSecurityAltIDSpec'''+         gNoUnderlyingSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoUnderlyingSecurityAltID+            , gsSeperator = tUnderlyingSecurityAltID+            , gsBody = gNoUnderlyingSecurityAltIDBody''' }+            where+            gNoUnderlyingSecurityAltIDBody''' = +               LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                LT.new++         gNoUnderlyingStips''' = FIXTag+            { tName = "NoUnderlyingStips"+            , tnum = tnum tNoUnderlyingStips+            , tparser = gNoUnderlyingStipsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''' }++         gNoUnderlyingStipsP''' = groupP gNoUnderlyingStipsSpec'''+         gNoUnderlyingStipsSpec''' = FGSpec+            { gsLength = tNoUnderlyingStips+            , gsSeperator = tUnderlyingStipType+            , gsBody = gNoUnderlyingStipsBody''' }+            where+            gNoUnderlyingStipsBody''' = +               LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                LT.new++++mNewOrderCross :: FIXMessageSpec+mNewOrderCross = FMSpec+   { msName = "NewOrderCross"+   , msType = C.pack "s"+   , msHeader = headerFIX44+   , msBody = mNewOrderCrossBody+   , msTrailer = trailerFIX44 }+   where+   mNewOrderCrossBody = +      LT.insert (tnum tCrossID) tCrossID $+      LT.insert (tnum tCrossType) tCrossType $+      LT.insert (tnum tCrossPrioritization) tCrossPrioritization $+      LT.insert (tnum tNoSides) gNoSides''' $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tSettlType) tSettlType $+      LT.insert (tnum tSettlDate) tSettlDate $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $+      LT.insert (tnum tProcessCode) tProcessCode $+      LT.insert (tnum tPrevClosePx) tPrevClosePx $+      LT.insert (tnum tLocateReqd) tLocateReqd $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tNoStipulations) gNoStipulations''' $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+      LT.insert (tnum tYieldType) tYieldType $+      LT.insert (tnum tYield) tYield $+      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $+      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $+      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $+      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tComplianceID) tComplianceID $+      LT.insert (tnum tIOIID) tIOIID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tEffectiveTime) tEffectiveTime $+      LT.insert (tnum tExpireDate) tExpireDate $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tGTBookingInst) tGTBookingInst $+      LT.insert (tnum tMaxShow) tMaxShow $+      LT.insert (tnum tPegOffsetValue) tPegOffsetValue $+      LT.insert (tnum tPegMoveType) tPegMoveType $+      LT.insert (tnum tPegOffsetType) tPegOffsetType $+      LT.insert (tnum tPegLimitType) tPegLimitType $+      LT.insert (tnum tPegRoundDirection) tPegRoundDirection $+      LT.insert (tnum tPegScope) tPegScope $+      LT.insert (tnum tDiscretionInst) tDiscretionInst $+      LT.insert (tnum tDiscretionOffsetValue) tDiscretionOffsetValue $+      LT.insert (tnum tDiscretionMoveType) tDiscretionMoveType $+      LT.insert (tnum tDiscretionOffsetType) tDiscretionOffsetType $+      LT.insert (tnum tDiscretionLimitType) tDiscretionLimitType $+      LT.insert (tnum tDiscretionRoundDirection) tDiscretionRoundDirection $+      LT.insert (tnum tDiscretionScope) tDiscretionScope $+      LT.insert (tnum tTargetStrategy) tTargetStrategy $+      LT.insert (tnum tTargetStrategyParameters) tTargetStrategyParameters $+      LT.insert (tnum tParticipationRate) tParticipationRate $+      LT.insert (tnum tCancellationRights) tCancellationRights $+      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $+      LT.insert (tnum tRegistID) tRegistID $+      LT.insert (tnum tDesignation) tDesignation       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoSides''' = FIXTag+            { tName = "NoSides"+            , tnum = tnum tNoSides+            , tparser = gNoSidesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSidesSpec''' }++         gNoSidesP''' = groupP gNoSidesSpec'''+         gNoSidesSpec''' = FGSpec+            { gsLength = tNoSides+            , gsSeperator = tSide+            , gsBody = gNoSidesBody''' }+            where+            gNoSidesBody''' = +               LT.insert (tnum tClOrdID) tClOrdID $+               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+               LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+               LT.insert (tnum tNoPartyIDs) gNoPartyIDs'''''' $+               LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+               LT.insert (tnum tTradeDate) tTradeDate $+               LT.insert (tnum tAccount) tAccount $+               LT.insert (tnum tAcctIDSource) tAcctIDSource $+               LT.insert (tnum tAccountType) tAccountType $+               LT.insert (tnum tDayBookingInst) tDayBookingInst $+               LT.insert (tnum tBookingUnit) tBookingUnit $+               LT.insert (tnum tPreallocMethod) tPreallocMethod $+               LT.insert (tnum tAllocID) tAllocID $+               LT.insert (tnum tNoAllocs) gNoAllocs'''''' $+               LT.insert (tnum tQtyType) tQtyType $+               LT.insert (tnum tOrderQty) tOrderQty $+               LT.insert (tnum tCashOrderQty) tCashOrderQty $+               LT.insert (tnum tOrderPercent) tOrderPercent $+               LT.insert (tnum tRoundingDirection) tRoundingDirection $+               LT.insert (tnum tRoundingModulus) tRoundingModulus $+               LT.insert (tnum tCommission) tCommission $+               LT.insert (tnum tCommType) tCommType $+               LT.insert (tnum tCommCurrency) tCommCurrency $+               LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+               LT.insert (tnum tOrderCapacity) tOrderCapacity $+               LT.insert (tnum tOrderRestrictions) tOrderRestrictions $+               LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+               LT.insert (tnum tForexReq) tForexReq $+               LT.insert (tnum tSettlCurrency) tSettlCurrency $+               LT.insert (tnum tBookingType) tBookingType $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText $+               LT.insert (tnum tPositionEffect) tPositionEffect $+               LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+               LT.insert (tnum tCashMargin) tCashMargin $+               LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+               LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+               LT.insert (tnum tSideComplianceID) tSideComplianceID                LT.new+               where+                  gNoAllocs'''''' = FIXTag+                     { tName = "NoAllocs"+                     , tnum = tnum tNoAllocs+                     , tparser = gNoAllocsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec'''''' }++                  gNoAllocsP'''''' = groupP gNoAllocsSpec''''''+                  gNoAllocsSpec'''''' = FGSpec+                     { gsLength = tNoAllocs+                     , gsSeperator = tAllocAccount+                     , gsBody = gNoAllocsBody'''''' }+                     where+                     gNoAllocsBody'''''' = +                        LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $+                        LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $+                        LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+                        LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''''' $+                        LT.insert (tnum tAllocQty) tAllocQty                         LT.new+                        where+                           gNoNestedPartyIDs''''''''' = FIXTag+                              { tName = "NoNestedPartyIDs"+                              , tnum = tnum tNoNestedPartyIDs+                              , tparser = gNoNestedPartyIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec''''''''' }++                           gNoNestedPartyIDsP''''''''' = groupP gNoNestedPartyIDsSpec'''''''''+                           gNoNestedPartyIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartyIDs+                              , gsSeperator = tNestedPartyID+                              , gsBody = gNoNestedPartyIDsBody''''''''' }+                              where+                              gNoNestedPartyIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                                 LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                                 LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs''''''''''''                                  LT.new+                                 where+                                    gNoNestedPartySubIDs'''''''''''' = FIXTag+                                       { tName = "NoNestedPartySubIDs"+                                       , tnum = tnum tNoNestedPartySubIDs+                                       , tparser = gNoNestedPartySubIDsP''''''''''''+                                       , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec'''''''''''' }++                                    gNoNestedPartySubIDsP'''''''''''' = groupP gNoNestedPartySubIDsSpec''''''''''''+                                    gNoNestedPartySubIDsSpec'''''''''''' = FGSpec+                                       { gsLength = tNoNestedPartySubIDs+                                       , gsSeperator = tNestedPartySubID+                                       , gsBody = gNoNestedPartySubIDsBody'''''''''''' }+                                       where+                                       gNoNestedPartySubIDsBody'''''''''''' = +                                          LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                           LT.new++++                  gNoPartyIDs'''''' = FIXTag+                     { tName = "NoPartyIDs"+                     , tnum = tnum tNoPartyIDs+                     , tparser = gNoPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec'''''' }++                  gNoPartyIDsP'''''' = groupP gNoPartyIDsSpec''''''+                  gNoPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartyIDs+                     , gsSeperator = tPartyID+                     , gsBody = gNoPartyIDsBody'''''' }+                     where+                     gNoPartyIDsBody'''''' = +                        LT.insert (tnum tPartyIDSource) tPartyIDSource $+                        LT.insert (tnum tPartyRole) tPartyRole $+                        LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs'''''''''                         LT.new+                        where+                           gNoPartySubIDs''''''''' = FIXTag+                              { tName = "NoPartySubIDs"+                              , tnum = tnum tNoPartySubIDs+                              , tparser = gNoPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec''''''''' }++                           gNoPartySubIDsP''''''''' = groupP gNoPartySubIDsSpec'''''''''+                           gNoPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoPartySubIDs+                              , gsSeperator = tPartySubID+                              , gsBody = gNoPartySubIDsBody''''''''' }+                              where+                              gNoPartySubIDsBody''''''''' = +                                 LT.insert (tnum tPartySubIDType) tPartySubIDType                                  LT.new++++         gNoStipulations''' = FIXTag+            { tName = "NoStipulations"+            , tnum = tnum tNoStipulations+            , tparser = gNoStipulationsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }++         gNoStipulationsP''' = groupP gNoStipulationsSpec'''+         gNoStipulationsSpec''' = FGSpec+            { gsLength = tNoStipulations+            , gsSeperator = tStipulationType+            , gsBody = gNoStipulationsBody''' }+            where+            gNoStipulationsBody''' = +               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new++         gNoTradingSessions''' = FIXTag+            { tName = "NoTradingSessions"+            , tnum = tnum tNoTradingSessions+            , tparser = gNoTradingSessionsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }++         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''+         gNoTradingSessionsSpec''' = FGSpec+            { gsLength = tNoTradingSessions+            , gsSeperator = tTradingSessionID+            , gsBody = gNoTradingSessionsBody''' }+            where+            gNoTradingSessionsBody''' = +               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mCrossOrderCancelReplaceRequest :: FIXMessageSpec+mCrossOrderCancelReplaceRequest = FMSpec+   { msName = "CrossOrderCancelReplaceRequest"+   , msType = C.pack "t"+   , msHeader = headerFIX44+   , msBody = mCrossOrderCancelReplaceRequestBody+   , msTrailer = trailerFIX44 }+   where+   mCrossOrderCancelReplaceRequestBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tCrossID) tCrossID $+      LT.insert (tnum tOrigCrossID) tOrigCrossID $+      LT.insert (tnum tCrossType) tCrossType $+      LT.insert (tnum tCrossPrioritization) tCrossPrioritization $+      LT.insert (tnum tNoSides) gNoSides''' $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tSettlType) tSettlType $+      LT.insert (tnum tSettlDate) tSettlDate $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $+      LT.insert (tnum tProcessCode) tProcessCode $+      LT.insert (tnum tPrevClosePx) tPrevClosePx $+      LT.insert (tnum tLocateReqd) tLocateReqd $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tNoStipulations) gNoStipulations''' $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+      LT.insert (tnum tYieldType) tYieldType $+      LT.insert (tnum tYield) tYield $+      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $+      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $+      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $+      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tComplianceID) tComplianceID $+      LT.insert (tnum tIOIID) tIOIID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tEffectiveTime) tEffectiveTime $+      LT.insert (tnum tExpireDate) tExpireDate $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tGTBookingInst) tGTBookingInst $+      LT.insert (tnum tMaxShow) tMaxShow $+      LT.insert (tnum tPegOffsetValue) tPegOffsetValue $+      LT.insert (tnum tPegMoveType) tPegMoveType $+      LT.insert (tnum tPegOffsetType) tPegOffsetType $+      LT.insert (tnum tPegLimitType) tPegLimitType $+      LT.insert (tnum tPegRoundDirection) tPegRoundDirection $+      LT.insert (tnum tPegScope) tPegScope $+      LT.insert (tnum tDiscretionInst) tDiscretionInst $+      LT.insert (tnum tDiscretionOffsetValue) tDiscretionOffsetValue $+      LT.insert (tnum tDiscretionMoveType) tDiscretionMoveType $+      LT.insert (tnum tDiscretionOffsetType) tDiscretionOffsetType $+      LT.insert (tnum tDiscretionLimitType) tDiscretionLimitType $+      LT.insert (tnum tDiscretionRoundDirection) tDiscretionRoundDirection $+      LT.insert (tnum tDiscretionScope) tDiscretionScope $+      LT.insert (tnum tTargetStrategy) tTargetStrategy $+      LT.insert (tnum tTargetStrategyParameters) tTargetStrategyParameters $+      LT.insert (tnum tParticipationRate) tParticipationRate $+      LT.insert (tnum tCancellationRights) tCancellationRights $+      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $+      LT.insert (tnum tRegistID) tRegistID $+      LT.insert (tnum tDesignation) tDesignation       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoSides''' = FIXTag+            { tName = "NoSides"+            , tnum = tnum tNoSides+            , tparser = gNoSidesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSidesSpec''' }++         gNoSidesP''' = groupP gNoSidesSpec'''+         gNoSidesSpec''' = FGSpec+            { gsLength = tNoSides+            , gsSeperator = tSide+            , gsBody = gNoSidesBody''' }+            where+            gNoSidesBody''' = +               LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+               LT.insert (tnum tClOrdID) tClOrdID $+               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+               LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+               LT.insert (tnum tOrigOrdModTime) tOrigOrdModTime $+               LT.insert (tnum tNoPartyIDs) gNoPartyIDs'''''' $+               LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+               LT.insert (tnum tTradeDate) tTradeDate $+               LT.insert (tnum tAccount) tAccount $+               LT.insert (tnum tAcctIDSource) tAcctIDSource $+               LT.insert (tnum tAccountType) tAccountType $+               LT.insert (tnum tDayBookingInst) tDayBookingInst $+               LT.insert (tnum tBookingUnit) tBookingUnit $+               LT.insert (tnum tPreallocMethod) tPreallocMethod $+               LT.insert (tnum tAllocID) tAllocID $+               LT.insert (tnum tNoAllocs) gNoAllocs'''''' $+               LT.insert (tnum tQtyType) tQtyType $+               LT.insert (tnum tOrderQty) tOrderQty $+               LT.insert (tnum tCashOrderQty) tCashOrderQty $+               LT.insert (tnum tOrderPercent) tOrderPercent $+               LT.insert (tnum tRoundingDirection) tRoundingDirection $+               LT.insert (tnum tRoundingModulus) tRoundingModulus $+               LT.insert (tnum tCommission) tCommission $+               LT.insert (tnum tCommType) tCommType $+               LT.insert (tnum tCommCurrency) tCommCurrency $+               LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+               LT.insert (tnum tOrderCapacity) tOrderCapacity $+               LT.insert (tnum tOrderRestrictions) tOrderRestrictions $+               LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+               LT.insert (tnum tForexReq) tForexReq $+               LT.insert (tnum tSettlCurrency) tSettlCurrency $+               LT.insert (tnum tBookingType) tBookingType $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText $+               LT.insert (tnum tPositionEffect) tPositionEffect $+               LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+               LT.insert (tnum tCashMargin) tCashMargin $+               LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+               LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+               LT.insert (tnum tSideComplianceID) tSideComplianceID                LT.new+               where+                  gNoAllocs'''''' = FIXTag+                     { tName = "NoAllocs"+                     , tnum = tnum tNoAllocs+                     , tparser = gNoAllocsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec'''''' }++                  gNoAllocsP'''''' = groupP gNoAllocsSpec''''''+                  gNoAllocsSpec'''''' = FGSpec+                     { gsLength = tNoAllocs+                     , gsSeperator = tAllocAccount+                     , gsBody = gNoAllocsBody'''''' }+                     where+                     gNoAllocsBody'''''' = +                        LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $+                        LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $+                        LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+                        LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''''' $+                        LT.insert (tnum tAllocQty) tAllocQty                         LT.new+                        where+                           gNoNestedPartyIDs''''''''' = FIXTag+                              { tName = "NoNestedPartyIDs"+                              , tnum = tnum tNoNestedPartyIDs+                              , tparser = gNoNestedPartyIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec''''''''' }++                           gNoNestedPartyIDsP''''''''' = groupP gNoNestedPartyIDsSpec'''''''''+                           gNoNestedPartyIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartyIDs+                              , gsSeperator = tNestedPartyID+                              , gsBody = gNoNestedPartyIDsBody''''''''' }+                              where+                              gNoNestedPartyIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                                 LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                                 LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs''''''''''''                                  LT.new+                                 where+                                    gNoNestedPartySubIDs'''''''''''' = FIXTag+                                       { tName = "NoNestedPartySubIDs"+                                       , tnum = tnum tNoNestedPartySubIDs+                                       , tparser = gNoNestedPartySubIDsP''''''''''''+                                       , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec'''''''''''' }++                                    gNoNestedPartySubIDsP'''''''''''' = groupP gNoNestedPartySubIDsSpec''''''''''''+                                    gNoNestedPartySubIDsSpec'''''''''''' = FGSpec+                                       { gsLength = tNoNestedPartySubIDs+                                       , gsSeperator = tNestedPartySubID+                                       , gsBody = gNoNestedPartySubIDsBody'''''''''''' }+                                       where+                                       gNoNestedPartySubIDsBody'''''''''''' = +                                          LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                           LT.new++++                  gNoPartyIDs'''''' = FIXTag+                     { tName = "NoPartyIDs"+                     , tnum = tnum tNoPartyIDs+                     , tparser = gNoPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec'''''' }++                  gNoPartyIDsP'''''' = groupP gNoPartyIDsSpec''''''+                  gNoPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartyIDs+                     , gsSeperator = tPartyID+                     , gsBody = gNoPartyIDsBody'''''' }+                     where+                     gNoPartyIDsBody'''''' = +                        LT.insert (tnum tPartyIDSource) tPartyIDSource $+                        LT.insert (tnum tPartyRole) tPartyRole $+                        LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs'''''''''                         LT.new+                        where+                           gNoPartySubIDs''''''''' = FIXTag+                              { tName = "NoPartySubIDs"+                              , tnum = tnum tNoPartySubIDs+                              , tparser = gNoPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec''''''''' }++                           gNoPartySubIDsP''''''''' = groupP gNoPartySubIDsSpec'''''''''+                           gNoPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoPartySubIDs+                              , gsSeperator = tPartySubID+                              , gsBody = gNoPartySubIDsBody''''''''' }+                              where+                              gNoPartySubIDsBody''''''''' = +                                 LT.insert (tnum tPartySubIDType) tPartySubIDType                                  LT.new++++         gNoStipulations''' = FIXTag+            { tName = "NoStipulations"+            , tnum = tnum tNoStipulations+            , tparser = gNoStipulationsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }++         gNoStipulationsP''' = groupP gNoStipulationsSpec'''+         gNoStipulationsSpec''' = FGSpec+            { gsLength = tNoStipulations+            , gsSeperator = tStipulationType+            , gsBody = gNoStipulationsBody''' }+            where+            gNoStipulationsBody''' = +               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new++         gNoTradingSessions''' = FIXTag+            { tName = "NoTradingSessions"+            , tnum = tnum tNoTradingSessions+            , tparser = gNoTradingSessionsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }++         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''+         gNoTradingSessionsSpec''' = FGSpec+            { gsLength = tNoTradingSessions+            , gsSeperator = tTradingSessionID+            , gsBody = gNoTradingSessionsBody''' }+            where+            gNoTradingSessionsBody''' = +               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mCrossOrderCancelRequest :: FIXMessageSpec+mCrossOrderCancelRequest = FMSpec+   { msName = "CrossOrderCancelRequest"+   , msType = C.pack "u"+   , msHeader = headerFIX44+   , msBody = mCrossOrderCancelRequestBody+   , msTrailer = trailerFIX44 }+   where+   mCrossOrderCancelRequestBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tCrossID) tCrossID $+      LT.insert (tnum tOrigCrossID) tOrigCrossID $+      LT.insert (tnum tCrossType) tCrossType $+      LT.insert (tnum tCrossPrioritization) tCrossPrioritization $+      LT.insert (tnum tNoSides) gNoSides''' $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tTransactTime) tTransactTime       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoSides''' = FIXTag+            { tName = "NoSides"+            , tnum = tnum tNoSides+            , tparser = gNoSidesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSidesSpec''' }++         gNoSidesP''' = groupP gNoSidesSpec'''+         gNoSidesSpec''' = FGSpec+            { gsLength = tNoSides+            , gsSeperator = tSide+            , gsBody = gNoSidesBody''' }+            where+            gNoSidesBody''' = +               LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+               LT.insert (tnum tClOrdID) tClOrdID $+               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+               LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+               LT.insert (tnum tOrigOrdModTime) tOrigOrdModTime $+               LT.insert (tnum tNoPartyIDs) gNoPartyIDs'''''' $+               LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+               LT.insert (tnum tTradeDate) tTradeDate $+               LT.insert (tnum tOrderQty) tOrderQty $+               LT.insert (tnum tCashOrderQty) tCashOrderQty $+               LT.insert (tnum tOrderPercent) tOrderPercent $+               LT.insert (tnum tRoundingDirection) tRoundingDirection $+               LT.insert (tnum tRoundingModulus) tRoundingModulus $+               LT.insert (tnum tComplianceID) tComplianceID $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new+               where+                  gNoPartyIDs'''''' = FIXTag+                     { tName = "NoPartyIDs"+                     , tnum = tnum tNoPartyIDs+                     , tparser = gNoPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec'''''' }++                  gNoPartyIDsP'''''' = groupP gNoPartyIDsSpec''''''+                  gNoPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartyIDs+                     , gsSeperator = tPartyID+                     , gsBody = gNoPartyIDsBody'''''' }+                     where+                     gNoPartyIDsBody'''''' = +                        LT.insert (tnum tPartyIDSource) tPartyIDSource $+                        LT.insert (tnum tPartyRole) tPartyRole $+                        LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs'''''''''                         LT.new+                        where+                           gNoPartySubIDs''''''''' = FIXTag+                              { tName = "NoPartySubIDs"+                              , tnum = tnum tNoPartySubIDs+                              , tparser = gNoPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec''''''''' }++                           gNoPartySubIDsP''''''''' = groupP gNoPartySubIDsSpec'''''''''+                           gNoPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoPartySubIDs+                              , gsSeperator = tPartySubID+                              , gsBody = gNoPartySubIDsBody''''''''' }+                              where+                              gNoPartySubIDsBody''''''''' = +                                 LT.insert (tnum tPartySubIDType) tPartySubIDType                                  LT.new++++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mSecurityTypeRequest :: FIXMessageSpec+mSecurityTypeRequest = FMSpec+   { msName = "SecurityTypeRequest"+   , msType = C.pack "v"+   , msHeader = headerFIX44+   , msBody = mSecurityTypeRequestBody+   , msTrailer = trailerFIX44 }+   where+   mSecurityTypeRequestBody = +      LT.insert (tnum tSecurityReqID) tSecurityReqID $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType       LT.new+++mSecurityTypes :: FIXMessageSpec+mSecurityTypes = FMSpec+   { msName = "SecurityTypes"+   , msType = C.pack "w"+   , msHeader = headerFIX44+   , msBody = mSecurityTypesBody+   , msTrailer = trailerFIX44 }+   where+   mSecurityTypesBody = +      LT.insert (tnum tSecurityReqID) tSecurityReqID $+      LT.insert (tnum tSecurityResponseID) tSecurityResponseID $+      LT.insert (tnum tSecurityResponseType) tSecurityResponseType $+      LT.insert (tnum tTotNoSecurityTypes) tTotNoSecurityTypes $+      LT.insert (tnum tLastFragment) tLastFragment $+      LT.insert (tnum tNoSecurityTypes) gNoSecurityTypes''' $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType       LT.new+      where+         gNoSecurityTypes''' = FIXTag+            { tName = "NoSecurityTypes"+            , tnum = tnum tNoSecurityTypes+            , tparser = gNoSecurityTypesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityTypesSpec''' }++         gNoSecurityTypesP''' = groupP gNoSecurityTypesSpec'''+         gNoSecurityTypesSpec''' = FGSpec+            { gsLength = tNoSecurityTypes+            , gsSeperator = tSecurityType+            , gsBody = gNoSecurityTypesBody''' }+            where+            gNoSecurityTypesBody''' = +               LT.insert (tnum tSecuritySubType) tSecuritySubType $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode                LT.new++++mSecurityListRequest :: FIXMessageSpec+mSecurityListRequest = FMSpec+   { msName = "SecurityListRequest"+   , msType = C.pack "x"+   , msHeader = headerFIX44+   , msBody = mSecurityListRequestBody+   , msTrailer = trailerFIX44 }+   where+   mSecurityListRequestBody = +      LT.insert (tnum tSecurityReqID) tSecurityReqID $+      LT.insert (tnum tSecurityListRequestType) tSecurityListRequestType $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tDeliveryForm) tDeliveryForm $+      LT.insert (tnum tPctAtRisk) tPctAtRisk $+      LT.insert (tnum tNoInstrAttrib) gNoInstrAttrib''' $+      LT.insert (tnum tAgreementDesc) tAgreementDesc $+      LT.insert (tnum tAgreementID) tAgreementID $+      LT.insert (tnum tAgreementDate) tAgreementDate $+      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+      LT.insert (tnum tTerminationType) tTerminationType $+      LT.insert (tnum tStartDate) tStartDate $+      LT.insert (tnum tEndDate) tEndDate $+      LT.insert (tnum tDeliveryType) tDeliveryType $+      LT.insert (tnum tMarginRatio) tMarginRatio $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoInstrAttrib''' = FIXTag+            { tName = "NoInstrAttrib"+            , tnum = tnum tNoInstrAttrib+            , tparser = gNoInstrAttribP'''+            , arbitraryValue = arbibtraryFIXGroup gNoInstrAttribSpec''' }++         gNoInstrAttribP''' = groupP gNoInstrAttribSpec'''+         gNoInstrAttribSpec''' = FGSpec+            { gsLength = tNoInstrAttrib+            , gsSeperator = tInstrAttribType+            , gsBody = gNoInstrAttribBody''' }+            where+            gNoInstrAttribBody''' = +               LT.insert (tnum tInstrAttribValue) tInstrAttribValue                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mSecurityList :: FIXMessageSpec+mSecurityList = FMSpec+   { msName = "SecurityList"+   , msType = C.pack "y"+   , msHeader = headerFIX44+   , msBody = mSecurityListBody+   , msTrailer = trailerFIX44 }+   where+   mSecurityListBody = +      LT.insert (tnum tSecurityReqID) tSecurityReqID $+      LT.insert (tnum tSecurityResponseID) tSecurityResponseID $+      LT.insert (tnum tSecurityRequestResult) tSecurityRequestResult $+      LT.insert (tnum tTotNoRelatedSym) tTotNoRelatedSym $+      LT.insert (tnum tLastFragment) tLastFragment $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym'''       LT.new+      where+         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tSymbol+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tSecuritySubType) tSecuritySubType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tPool) tPool $+               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+               LT.insert (tnum tCPProgram) tCPProgram $+               LT.insert (tnum tCPRegType) tCPRegType $+               LT.insert (tnum tNoEvents) gNoEvents'''''' $+               LT.insert (tnum tDatedDate) tDatedDate $+               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+               LT.insert (tnum tDeliveryForm) tDeliveryForm $+               LT.insert (tnum tPctAtRisk) tPctAtRisk $+               LT.insert (tnum tNoInstrAttrib) gNoInstrAttrib'''''' $+               LT.insert (tnum tAgreementDesc) tAgreementDesc $+               LT.insert (tnum tAgreementID) tAgreementID $+               LT.insert (tnum tAgreementDate) tAgreementDate $+               LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+               LT.insert (tnum tTerminationType) tTerminationType $+               LT.insert (tnum tStartDate) tStartDate $+               LT.insert (tnum tEndDate) tEndDate $+               LT.insert (tnum tDeliveryType) tDeliveryType $+               LT.insert (tnum tMarginRatio) tMarginRatio $+               LT.insert (tnum tNoUnderlyings) gNoUnderlyings'''''' $+               LT.insert (tnum tCurrency) tCurrency $+               LT.insert (tnum tNoStipulations) gNoStipulations'''''' $+               LT.insert (tnum tNoLegs) gNoLegs'''''' $+               LT.insert (tnum tSpread) tSpread $+               LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+               LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+               LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+               LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+               LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+               LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+               LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+               LT.insert (tnum tYieldType) tYieldType $+               LT.insert (tnum tYield) tYield $+               LT.insert (tnum tYieldCalcDate) tYieldCalcDate $+               LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $+               LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $+               LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $+               LT.insert (tnum tRoundLot) tRoundLot $+               LT.insert (tnum tMinTradeVol) tMinTradeVol $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+               LT.insert (tnum tExpirationCycle) tExpirationCycle $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new+               where+                  gNoEvents'''''' = FIXTag+                     { tName = "NoEvents"+                     , tnum = tnum tNoEvents+                     , tparser = gNoEventsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }++                  gNoEventsP'''''' = groupP gNoEventsSpec''''''+                  gNoEventsSpec'''''' = FGSpec+                     { gsLength = tNoEvents+                     , gsSeperator = tEventType+                     , gsBody = gNoEventsBody'''''' }+                     where+                     gNoEventsBody'''''' = +                        LT.insert (tnum tEventDate) tEventDate $+                        LT.insert (tnum tEventPx) tEventPx $+                        LT.insert (tnum tEventText) tEventText                         LT.new++                  gNoInstrAttrib'''''' = FIXTag+                     { tName = "NoInstrAttrib"+                     , tnum = tnum tNoInstrAttrib+                     , tparser = gNoInstrAttribP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoInstrAttribSpec'''''' }++                  gNoInstrAttribP'''''' = groupP gNoInstrAttribSpec''''''+                  gNoInstrAttribSpec'''''' = FGSpec+                     { gsLength = tNoInstrAttrib+                     , gsSeperator = tInstrAttribType+                     , gsBody = gNoInstrAttribBody'''''' }+                     where+                     gNoInstrAttribBody'''''' = +                        LT.insert (tnum tInstrAttribValue) tInstrAttribValue                         LT.new++                  gNoLegs'''''' = FIXTag+                     { tName = "NoLegs"+                     , tnum = tnum tNoLegs+                     , tparser = gNoLegsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec'''''' }++                  gNoLegsP'''''' = groupP gNoLegsSpec''''''+                  gNoLegsSpec'''''' = FGSpec+                     { gsLength = tNoLegs+                     , gsSeperator = tLegSymbol+                     , gsBody = gNoLegsBody'''''' }+                     where+                     gNoLegsBody'''''' = +                        LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+                        LT.insert (tnum tLegSecurityID) tLegSecurityID $+                        LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+                        LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID''''''''' $+                        LT.insert (tnum tLegProduct) tLegProduct $+                        LT.insert (tnum tLegCFICode) tLegCFICode $+                        LT.insert (tnum tLegSecurityType) tLegSecurityType $+                        LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+                        LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+                        LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+                        LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+                        LT.insert (tnum tLegIssueDate) tLegIssueDate $+                        LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+                        LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+                        LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+                        LT.insert (tnum tLegFactor) tLegFactor $+                        LT.insert (tnum tLegCreditRating) tLegCreditRating $+                        LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+                        LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+                        LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+                        LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+                        LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+                        LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+                        LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+                        LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+                        LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+                        LT.insert (tnum tLegCouponRate) tLegCouponRate $+                        LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+                        LT.insert (tnum tLegIssuer) tLegIssuer $+                        LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+                        LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+                        LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+                        LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+                        LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+                        LT.insert (tnum tLegRatioQty) tLegRatioQty $+                        LT.insert (tnum tLegSide) tLegSide $+                        LT.insert (tnum tLegCurrency) tLegCurrency $+                        LT.insert (tnum tLegPool) tLegPool $+                        LT.insert (tnum tLegDatedDate) tLegDatedDate $+                        LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+                        LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $+                        LT.insert (tnum tLegSwapType) tLegSwapType $+                        LT.insert (tnum tLegSettlType) tLegSettlType $+                        LT.insert (tnum tNoLegStipulations) gNoLegStipulations''''''''' $+                        LT.insert (tnum tLegBenchmarkCurveCurrency) tLegBenchmarkCurveCurrency $+                        LT.insert (tnum tLegBenchmarkCurveName) tLegBenchmarkCurveName $+                        LT.insert (tnum tLegBenchmarkCurvePoint) tLegBenchmarkCurvePoint $+                        LT.insert (tnum tLegBenchmarkPrice) tLegBenchmarkPrice $+                        LT.insert (tnum tLegBenchmarkPriceType) tLegBenchmarkPriceType                         LT.new+                        where+                           gNoLegSecurityAltID''''''''' = FIXTag+                              { tName = "NoLegSecurityAltID"+                              , tnum = tnum tNoLegSecurityAltID+                              , tparser = gNoLegSecurityAltIDP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec''''''''' }++                           gNoLegSecurityAltIDP''''''''' = groupP gNoLegSecurityAltIDSpec'''''''''+                           gNoLegSecurityAltIDSpec''''''''' = FGSpec+                              { gsLength = tNoLegSecurityAltID+                              , gsSeperator = tLegSecurityAltID+                              , gsBody = gNoLegSecurityAltIDBody''''''''' }+                              where+                              gNoLegSecurityAltIDBody''''''''' = +                                 LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                                  LT.new++                           gNoLegStipulations''''''''' = FIXTag+                              { tName = "NoLegStipulations"+                              , tnum = tnum tNoLegStipulations+                              , tparser = gNoLegStipulationsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec''''''''' }++                           gNoLegStipulationsP''''''''' = groupP gNoLegStipulationsSpec'''''''''+                           gNoLegStipulationsSpec''''''''' = FGSpec+                              { gsLength = tNoLegStipulations+                              , gsSeperator = tLegStipulationType+                              , gsBody = gNoLegStipulationsBody''''''''' }+                              where+                              gNoLegStipulationsBody''''''''' = +                                 LT.insert (tnum tLegStipulationValue) tLegStipulationValue                                  LT.new+++                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new++                  gNoStipulations'''''' = FIXTag+                     { tName = "NoStipulations"+                     , tnum = tnum tNoStipulations+                     , tparser = gNoStipulationsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec'''''' }++                  gNoStipulationsP'''''' = groupP gNoStipulationsSpec''''''+                  gNoStipulationsSpec'''''' = FGSpec+                     { gsLength = tNoStipulations+                     , gsSeperator = tStipulationType+                     , gsBody = gNoStipulationsBody'''''' }+                     where+                     gNoStipulationsBody'''''' = +                        LT.insert (tnum tStipulationValue) tStipulationValue                         LT.new++                  gNoUnderlyings'''''' = FIXTag+                     { tName = "NoUnderlyings"+                     , tnum = tnum tNoUnderlyings+                     , tparser = gNoUnderlyingsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec'''''' }++                  gNoUnderlyingsP'''''' = groupP gNoUnderlyingsSpec''''''+                  gNoUnderlyingsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyings+                     , gsSeperator = tUnderlyingSymbol+                     , gsBody = gNoUnderlyingsBody'''''' }+                     where+                     gNoUnderlyingsBody'''''' = +                        LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+                        LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+                        LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+                        LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''''''''' $+                        LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+                        LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+                        LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+                        LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+                        LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+                        LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+                        LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+                        LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+                        LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+                        LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+                        LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+                        LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+                        LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+                        LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+                        LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+                        LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+                        LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+                        LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+                        LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+                        LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+                        LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+                        LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+                        LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+                        LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+                        LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+                        LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+                        LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+                        LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+                        LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+                        LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+                        LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+                        LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+                        LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+                        LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+                        LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+                        LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+                        LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+                        LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+                        LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+                        LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+                        LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''''''                         LT.new+                        where+                           gNoUnderlyingSecurityAltID''''''''' = FIXTag+                              { tName = "NoUnderlyingSecurityAltID"+                              , tnum = tnum tNoUnderlyingSecurityAltID+                              , tparser = gNoUnderlyingSecurityAltIDP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''''''''' }++                           gNoUnderlyingSecurityAltIDP''''''''' = groupP gNoUnderlyingSecurityAltIDSpec'''''''''+                           gNoUnderlyingSecurityAltIDSpec''''''''' = FGSpec+                              { gsLength = tNoUnderlyingSecurityAltID+                              , gsSeperator = tUnderlyingSecurityAltID+                              , gsBody = gNoUnderlyingSecurityAltIDBody''''''''' }+                              where+                              gNoUnderlyingSecurityAltIDBody''''''''' = +                                 LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                                  LT.new++                           gNoUnderlyingStips''''''''' = FIXTag+                              { tName = "NoUnderlyingStips"+                              , tnum = tnum tNoUnderlyingStips+                              , tparser = gNoUnderlyingStipsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''''''''' }++                           gNoUnderlyingStipsP''''''''' = groupP gNoUnderlyingStipsSpec'''''''''+                           gNoUnderlyingStipsSpec''''''''' = FGSpec+                              { gsLength = tNoUnderlyingStips+                              , gsSeperator = tUnderlyingStipType+                              , gsBody = gNoUnderlyingStipsBody''''''''' }+                              where+                              gNoUnderlyingStipsBody''''''''' = +                                 LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                                  LT.new++++++mDerivativeSecurityListRequest :: FIXMessageSpec+mDerivativeSecurityListRequest = FMSpec+   { msName = "DerivativeSecurityListRequest"+   , msType = C.pack "z"+   , msHeader = headerFIX44+   , msBody = mDerivativeSecurityListRequestBody+   , msTrailer = trailerFIX44 }+   where+   mDerivativeSecurityListRequestBody = +      LT.insert (tnum tSecurityReqID) tSecurityReqID $+      LT.insert (tnum tSecurityListRequestType) tSecurityListRequestType $+      LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $+      LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+      LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+      LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+      LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''' $+      LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+      LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+      LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+      LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+      LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+      LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+      LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+      LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+      LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+      LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+      LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+      LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+      LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+      LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+      LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+      LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+      LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+      LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+      LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+      LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+      LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+      LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+      LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+      LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+      LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+      LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+      LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+      LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+      LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+      LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+      LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+      LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+      LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+      LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+      LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+      LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+      LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+      LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+      LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+      LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+      LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''' $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType       LT.new+      where+         gNoUnderlyingSecurityAltID''' = FIXTag+            { tName = "NoUnderlyingSecurityAltID"+            , tnum = tnum tNoUnderlyingSecurityAltID+            , tparser = gNoUnderlyingSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''' }++         gNoUnderlyingSecurityAltIDP''' = groupP gNoUnderlyingSecurityAltIDSpec'''+         gNoUnderlyingSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoUnderlyingSecurityAltID+            , gsSeperator = tUnderlyingSecurityAltID+            , gsBody = gNoUnderlyingSecurityAltIDBody''' }+            where+            gNoUnderlyingSecurityAltIDBody''' = +               LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                LT.new++         gNoUnderlyingStips''' = FIXTag+            { tName = "NoUnderlyingStips"+            , tnum = tnum tNoUnderlyingStips+            , tparser = gNoUnderlyingStipsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''' }++         gNoUnderlyingStipsP''' = groupP gNoUnderlyingStipsSpec'''+         gNoUnderlyingStipsSpec''' = FGSpec+            { gsLength = tNoUnderlyingStips+            , gsSeperator = tUnderlyingStipType+            , gsBody = gNoUnderlyingStipsBody''' }+            where+            gNoUnderlyingStipsBody''' = +               LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                LT.new++++mDerivativeSecurityList :: FIXMessageSpec+mDerivativeSecurityList = FMSpec+   { msName = "DerivativeSecurityList"+   , msType = C.pack "AA"+   , msHeader = headerFIX44+   , msBody = mDerivativeSecurityListBody+   , msTrailer = trailerFIX44 }+   where+   mDerivativeSecurityListBody = +      LT.insert (tnum tSecurityReqID) tSecurityReqID $+      LT.insert (tnum tSecurityResponseID) tSecurityResponseID $+      LT.insert (tnum tSecurityRequestResult) tSecurityRequestResult $+      LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $+      LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+      LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+      LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+      LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''' $+      LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+      LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+      LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+      LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+      LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+      LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+      LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+      LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+      LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+      LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+      LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+      LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+      LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+      LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+      LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+      LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+      LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+      LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+      LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+      LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+      LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+      LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+      LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+      LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+      LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+      LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+      LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+      LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+      LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+      LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+      LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+      LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+      LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+      LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+      LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+      LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+      LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+      LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+      LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+      LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+      LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''' $+      LT.insert (tnum tTotNoRelatedSym) tTotNoRelatedSym $+      LT.insert (tnum tLastFragment) tLastFragment $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym'''       LT.new+      where+         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tSymbol+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tSecuritySubType) tSecuritySubType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tPool) tPool $+               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+               LT.insert (tnum tCPProgram) tCPProgram $+               LT.insert (tnum tCPRegType) tCPRegType $+               LT.insert (tnum tNoEvents) gNoEvents'''''' $+               LT.insert (tnum tDatedDate) tDatedDate $+               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+               LT.insert (tnum tCurrency) tCurrency $+               LT.insert (tnum tExpirationCycle) tExpirationCycle $+               LT.insert (tnum tDeliveryForm) tDeliveryForm $+               LT.insert (tnum tPctAtRisk) tPctAtRisk $+               LT.insert (tnum tNoInstrAttrib) gNoInstrAttrib'''''' $+               LT.insert (tnum tNoLegs) gNoLegs'''''' $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText                LT.new+               where+                  gNoEvents'''''' = FIXTag+                     { tName = "NoEvents"+                     , tnum = tnum tNoEvents+                     , tparser = gNoEventsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }++                  gNoEventsP'''''' = groupP gNoEventsSpec''''''+                  gNoEventsSpec'''''' = FGSpec+                     { gsLength = tNoEvents+                     , gsSeperator = tEventType+                     , gsBody = gNoEventsBody'''''' }+                     where+                     gNoEventsBody'''''' = +                        LT.insert (tnum tEventDate) tEventDate $+                        LT.insert (tnum tEventPx) tEventPx $+                        LT.insert (tnum tEventText) tEventText                         LT.new++                  gNoInstrAttrib'''''' = FIXTag+                     { tName = "NoInstrAttrib"+                     , tnum = tnum tNoInstrAttrib+                     , tparser = gNoInstrAttribP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoInstrAttribSpec'''''' }++                  gNoInstrAttribP'''''' = groupP gNoInstrAttribSpec''''''+                  gNoInstrAttribSpec'''''' = FGSpec+                     { gsLength = tNoInstrAttrib+                     , gsSeperator = tInstrAttribType+                     , gsBody = gNoInstrAttribBody'''''' }+                     where+                     gNoInstrAttribBody'''''' = +                        LT.insert (tnum tInstrAttribValue) tInstrAttribValue                         LT.new++                  gNoLegs'''''' = FIXTag+                     { tName = "NoLegs"+                     , tnum = tnum tNoLegs+                     , tparser = gNoLegsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec'''''' }++                  gNoLegsP'''''' = groupP gNoLegsSpec''''''+                  gNoLegsSpec'''''' = FGSpec+                     { gsLength = tNoLegs+                     , gsSeperator = tLegSymbol+                     , gsBody = gNoLegsBody'''''' }+                     where+                     gNoLegsBody'''''' = +                        LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+                        LT.insert (tnum tLegSecurityID) tLegSecurityID $+                        LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+                        LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID''''''''' $+                        LT.insert (tnum tLegProduct) tLegProduct $+                        LT.insert (tnum tLegCFICode) tLegCFICode $+                        LT.insert (tnum tLegSecurityType) tLegSecurityType $+                        LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+                        LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+                        LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+                        LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+                        LT.insert (tnum tLegIssueDate) tLegIssueDate $+                        LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+                        LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+                        LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+                        LT.insert (tnum tLegFactor) tLegFactor $+                        LT.insert (tnum tLegCreditRating) tLegCreditRating $+                        LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+                        LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+                        LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+                        LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+                        LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+                        LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+                        LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+                        LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+                        LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+                        LT.insert (tnum tLegCouponRate) tLegCouponRate $+                        LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+                        LT.insert (tnum tLegIssuer) tLegIssuer $+                        LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+                        LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+                        LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+                        LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+                        LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+                        LT.insert (tnum tLegRatioQty) tLegRatioQty $+                        LT.insert (tnum tLegSide) tLegSide $+                        LT.insert (tnum tLegCurrency) tLegCurrency $+                        LT.insert (tnum tLegPool) tLegPool $+                        LT.insert (tnum tLegDatedDate) tLegDatedDate $+                        LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+                        LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                         LT.new+                        where+                           gNoLegSecurityAltID''''''''' = FIXTag+                              { tName = "NoLegSecurityAltID"+                              , tnum = tnum tNoLegSecurityAltID+                              , tparser = gNoLegSecurityAltIDP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec''''''''' }++                           gNoLegSecurityAltIDP''''''''' = groupP gNoLegSecurityAltIDSpec'''''''''+                           gNoLegSecurityAltIDSpec''''''''' = FGSpec+                              { gsLength = tNoLegSecurityAltID+                              , gsSeperator = tLegSecurityAltID+                              , gsBody = gNoLegSecurityAltIDBody''''''''' }+                              where+                              gNoLegSecurityAltIDBody''''''''' = +                                 LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                                  LT.new+++                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new+++         gNoUnderlyingSecurityAltID''' = FIXTag+            { tName = "NoUnderlyingSecurityAltID"+            , tnum = tnum tNoUnderlyingSecurityAltID+            , tparser = gNoUnderlyingSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''' }++         gNoUnderlyingSecurityAltIDP''' = groupP gNoUnderlyingSecurityAltIDSpec'''+         gNoUnderlyingSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoUnderlyingSecurityAltID+            , gsSeperator = tUnderlyingSecurityAltID+            , gsBody = gNoUnderlyingSecurityAltIDBody''' }+            where+            gNoUnderlyingSecurityAltIDBody''' = +               LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                LT.new++         gNoUnderlyingStips''' = FIXTag+            { tName = "NoUnderlyingStips"+            , tnum = tnum tNoUnderlyingStips+            , tparser = gNoUnderlyingStipsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''' }++         gNoUnderlyingStipsP''' = groupP gNoUnderlyingStipsSpec'''+         gNoUnderlyingStipsSpec''' = FGSpec+            { gsLength = tNoUnderlyingStips+            , gsSeperator = tUnderlyingStipType+            , gsBody = gNoUnderlyingStipsBody''' }+            where+            gNoUnderlyingStipsBody''' = +               LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                LT.new++++mNewOrderMultileg :: FIXMessageSpec+mNewOrderMultileg = FMSpec+   { msName = "NewOrderMultileg"+   , msType = C.pack "AB"+   , msHeader = headerFIX44+   , msBody = mNewOrderMultilegBody+   , msTrailer = trailerFIX44 }+   where+   mNewOrderMultilegBody = +      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tDayBookingInst) tDayBookingInst $+      LT.insert (tnum tBookingUnit) tBookingUnit $+      LT.insert (tnum tPreallocMethod) tPreallocMethod $+      LT.insert (tnum tAllocID) tAllocID $+      LT.insert (tnum tNoAllocs) gNoAllocs''' $+      LT.insert (tnum tSettlType) tSettlType $+      LT.insert (tnum tSettlDate) tSettlDate $+      LT.insert (tnum tCashMargin) tCashMargin $+      LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $+      LT.insert (tnum tProcessCode) tProcessCode $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tPrevClosePx) tPrevClosePx $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tLocateReqd) tLocateReqd $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tQtyType) tQtyType $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrderPercent) tOrderPercent $+      LT.insert (tnum tRoundingDirection) tRoundingDirection $+      LT.insert (tnum tRoundingModulus) tRoundingModulus $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tComplianceID) tComplianceID $+      LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+      LT.insert (tnum tIOIID) tIOIID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tEffectiveTime) tEffectiveTime $+      LT.insert (tnum tExpireDate) tExpireDate $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tGTBookingInst) tGTBookingInst $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tCommCurrency) tCommCurrency $+      LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+      LT.insert (tnum tOrderCapacity) tOrderCapacity $+      LT.insert (tnum tOrderRestrictions) tOrderRestrictions $+      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+      LT.insert (tnum tForexReq) tForexReq $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tBookingType) tBookingType $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tPositionEffect) tPositionEffect $+      LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+      LT.insert (tnum tMaxShow) tMaxShow $+      LT.insert (tnum tPegOffsetValue) tPegOffsetValue $+      LT.insert (tnum tPegMoveType) tPegMoveType $+      LT.insert (tnum tPegOffsetType) tPegOffsetType $+      LT.insert (tnum tPegLimitType) tPegLimitType $+      LT.insert (tnum tPegRoundDirection) tPegRoundDirection $+      LT.insert (tnum tPegScope) tPegScope $+      LT.insert (tnum tDiscretionInst) tDiscretionInst $+      LT.insert (tnum tDiscretionOffsetValue) tDiscretionOffsetValue $+      LT.insert (tnum tDiscretionMoveType) tDiscretionMoveType $+      LT.insert (tnum tDiscretionOffsetType) tDiscretionOffsetType $+      LT.insert (tnum tDiscretionLimitType) tDiscretionLimitType $+      LT.insert (tnum tDiscretionRoundDirection) tDiscretionRoundDirection $+      LT.insert (tnum tDiscretionScope) tDiscretionScope $+      LT.insert (tnum tTargetStrategy) tTargetStrategy $+      LT.insert (tnum tTargetStrategyParameters) tTargetStrategyParameters $+      LT.insert (tnum tParticipationRate) tParticipationRate $+      LT.insert (tnum tCancellationRights) tCancellationRights $+      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $+      LT.insert (tnum tRegistID) tRegistID $+      LT.insert (tnum tDesignation) tDesignation $+      LT.insert (tnum tMultiLegRptTypeReq) tMultiLegRptTypeReq       LT.new+      where+         gNoAllocs''' = FIXTag+            { tName = "NoAllocs"+            , tnum = tnum tNoAllocs+            , tparser = gNoAllocsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }++         gNoAllocsP''' = groupP gNoAllocsSpec'''+         gNoAllocsSpec''' = FGSpec+            { gsLength = tNoAllocs+            , gsSeperator = tAllocAccount+            , gsBody = gNoAllocsBody''' }+            where+            gNoAllocsBody''' = +               LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $+               LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $+               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+               LT.insert (tnum tNoNested3PartyIDs) gNoNested3PartyIDs'''''' $+               LT.insert (tnum tAllocQty) tAllocQty                LT.new+               where+                  gNoNested3PartyIDs'''''' = FIXTag+                     { tName = "NoNested3PartyIDs"+                     , tnum = tnum tNoNested3PartyIDs+                     , tparser = gNoNested3PartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNested3PartyIDsSpec'''''' }++                  gNoNested3PartyIDsP'''''' = groupP gNoNested3PartyIDsSpec''''''+                  gNoNested3PartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNested3PartyIDs+                     , gsSeperator = tNested3PartyID+                     , gsBody = gNoNested3PartyIDsBody'''''' }+                     where+                     gNoNested3PartyIDsBody'''''' = +                        LT.insert (tnum tNested3PartyIDSource) tNested3PartyIDSource $+                        LT.insert (tnum tNested3PartyRole) tNested3PartyRole $+                        LT.insert (tnum tNoNested3PartySubIDs) gNoNested3PartySubIDs'''''''''                         LT.new+                        where+                           gNoNested3PartySubIDs''''''''' = FIXTag+                              { tName = "NoNested3PartySubIDs"+                              , tnum = tnum tNoNested3PartySubIDs+                              , tparser = gNoNested3PartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNested3PartySubIDsSpec''''''''' }++                           gNoNested3PartySubIDsP''''''''' = groupP gNoNested3PartySubIDsSpec'''''''''+                           gNoNested3PartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNested3PartySubIDs+                              , gsSeperator = tNested3PartySubID+                              , gsBody = gNoNested3PartySubIDsBody''''''''' }+                              where+                              gNoNested3PartySubIDsBody''''''''' = +                                 LT.insert (tnum tNested3PartySubIDType) tNested3PartySubIDType                                  LT.new++++         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $+               LT.insert (tnum tLegQty) tLegQty $+               LT.insert (tnum tLegSwapType) tLegSwapType $+               LT.insert (tnum tNoLegStipulations) gNoLegStipulations'''''' $+               LT.insert (tnum tNoLegAllocs) gNoLegAllocs'''''' $+               LT.insert (tnum tLegPositionEffect) tLegPositionEffect $+               LT.insert (tnum tLegCoveredOrUncovered) tLegCoveredOrUncovered $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $+               LT.insert (tnum tLegRefID) tLegRefID $+               LT.insert (tnum tLegPrice) tLegPrice $+               LT.insert (tnum tLegSettlType) tLegSettlType $+               LT.insert (tnum tLegSettlDate) tLegSettlDate                LT.new+               where+                  gNoLegAllocs'''''' = FIXTag+                     { tName = "NoLegAllocs"+                     , tnum = tnum tNoLegAllocs+                     , tparser = gNoLegAllocsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegAllocsSpec'''''' }++                  gNoLegAllocsP'''''' = groupP gNoLegAllocsSpec''''''+                  gNoLegAllocsSpec'''''' = FGSpec+                     { gsLength = tNoLegAllocs+                     , gsSeperator = tLegAllocAccount+                     , gsBody = gNoLegAllocsBody'''''' }+                     where+                     gNoLegAllocsBody'''''' = +                        LT.insert (tnum tLegIndividualAllocID) tLegIndividualAllocID $+                        LT.insert (tnum tNoNested2PartyIDs) gNoNested2PartyIDs''''''''' $+                        LT.insert (tnum tLegAllocQty) tLegAllocQty $+                        LT.insert (tnum tLegAllocAcctIDSource) tLegAllocAcctIDSource $+                        LT.insert (tnum tLegSettlCurrency) tLegSettlCurrency                         LT.new+                        where+                           gNoNested2PartyIDs''''''''' = FIXTag+                              { tName = "NoNested2PartyIDs"+                              , tnum = tnum tNoNested2PartyIDs+                              , tparser = gNoNested2PartyIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNested2PartyIDsSpec''''''''' }++                           gNoNested2PartyIDsP''''''''' = groupP gNoNested2PartyIDsSpec'''''''''+                           gNoNested2PartyIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNested2PartyIDs+                              , gsSeperator = tNested2PartyID+                              , gsBody = gNoNested2PartyIDsBody''''''''' }+                              where+                              gNoNested2PartyIDsBody''''''''' = +                                 LT.insert (tnum tNested2PartyIDSource) tNested2PartyIDSource $+                                 LT.insert (tnum tNested2PartyRole) tNested2PartyRole $+                                 LT.insert (tnum tNoNested2PartySubIDs) gNoNested2PartySubIDs''''''''''''                                  LT.new+                                 where+                                    gNoNested2PartySubIDs'''''''''''' = FIXTag+                                       { tName = "NoNested2PartySubIDs"+                                       , tnum = tnum tNoNested2PartySubIDs+                                       , tparser = gNoNested2PartySubIDsP''''''''''''+                                       , arbitraryValue = arbibtraryFIXGroup gNoNested2PartySubIDsSpec'''''''''''' }++                                    gNoNested2PartySubIDsP'''''''''''' = groupP gNoNested2PartySubIDsSpec''''''''''''+                                    gNoNested2PartySubIDsSpec'''''''''''' = FGSpec+                                       { gsLength = tNoNested2PartySubIDs+                                       , gsSeperator = tNested2PartySubID+                                       , gsBody = gNoNested2PartySubIDsBody'''''''''''' }+                                       where+                                       gNoNested2PartySubIDsBody'''''''''''' = +                                          LT.insert (tnum tNested2PartySubIDType) tNested2PartySubIDType                                           LT.new++++                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new++                  gNoLegStipulations'''''' = FIXTag+                     { tName = "NoLegStipulations"+                     , tnum = tnum tNoLegStipulations+                     , tparser = gNoLegStipulationsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec'''''' }++                  gNoLegStipulationsP'''''' = groupP gNoLegStipulationsSpec''''''+                  gNoLegStipulationsSpec'''''' = FGSpec+                     { gsLength = tNoLegStipulations+                     , gsSeperator = tLegStipulationType+                     , gsBody = gNoLegStipulationsBody'''''' }+                     where+                     gNoLegStipulationsBody'''''' = +                        LT.insert (tnum tLegStipulationValue) tLegStipulationValue                         LT.new++                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new+                        where+                           gNoNestedPartySubIDs''''''''' = FIXTag+                              { tName = "NoNestedPartySubIDs"+                              , tnum = tnum tNoNestedPartySubIDs+                              , tparser = gNoNestedPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }++                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''+                           gNoNestedPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartySubIDs+                              , gsSeperator = tNestedPartySubID+                              , gsBody = gNoNestedPartySubIDsBody''''''''' }+                              where+                              gNoNestedPartySubIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new++++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoTradingSessions''' = FIXTag+            { tName = "NoTradingSessions"+            , tnum = tnum tNoTradingSessions+            , tparser = gNoTradingSessionsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }++         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''+         gNoTradingSessionsSpec''' = FGSpec+            { gsLength = tNoTradingSessions+            , gsSeperator = tTradingSessionID+            , gsBody = gNoTradingSessionsBody''' }+            where+            gNoTradingSessionsBody''' = +               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mMultilegOrderCancelReplace :: FIXMessageSpec+mMultilegOrderCancelReplace = FMSpec+   { msName = "MultilegOrderCancelReplace"+   , msType = C.pack "AC"+   , msHeader = headerFIX44+   , msBody = mMultilegOrderCancelReplaceBody+   , msTrailer = trailerFIX44 }+   where+   mMultilegOrderCancelReplaceBody = +      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+      LT.insert (tnum tOrigOrdModTime) tOrigOrdModTime $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tDayBookingInst) tDayBookingInst $+      LT.insert (tnum tBookingUnit) tBookingUnit $+      LT.insert (tnum tPreallocMethod) tPreallocMethod $+      LT.insert (tnum tAllocID) tAllocID $+      LT.insert (tnum tNoAllocs) gNoAllocs''' $+      LT.insert (tnum tSettlType) tSettlType $+      LT.insert (tnum tSettlDate) tSettlDate $+      LT.insert (tnum tCashMargin) tCashMargin $+      LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+      LT.insert (tnum tHandlInst) tHandlInst $+      LT.insert (tnum tExecInst) tExecInst $+      LT.insert (tnum tMinQty) tMinQty $+      LT.insert (tnum tMaxFloor) tMaxFloor $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $+      LT.insert (tnum tProcessCode) tProcessCode $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tPrevClosePx) tPrevClosePx $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tLocateReqd) tLocateReqd $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tQtyType) tQtyType $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrderPercent) tOrderPercent $+      LT.insert (tnum tRoundingDirection) tRoundingDirection $+      LT.insert (tnum tRoundingModulus) tRoundingModulus $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tStopPx) tStopPx $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tComplianceID) tComplianceID $+      LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+      LT.insert (tnum tIOIID) tIOIID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tTimeInForce) tTimeInForce $+      LT.insert (tnum tEffectiveTime) tEffectiveTime $+      LT.insert (tnum tExpireDate) tExpireDate $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tGTBookingInst) tGTBookingInst $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tCommCurrency) tCommCurrency $+      LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+      LT.insert (tnum tOrderCapacity) tOrderCapacity $+      LT.insert (tnum tOrderRestrictions) tOrderRestrictions $+      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+      LT.insert (tnum tForexReq) tForexReq $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tBookingType) tBookingType $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tPositionEffect) tPositionEffect $+      LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+      LT.insert (tnum tMaxShow) tMaxShow $+      LT.insert (tnum tPegOffsetValue) tPegOffsetValue $+      LT.insert (tnum tPegMoveType) tPegMoveType $+      LT.insert (tnum tPegOffsetType) tPegOffsetType $+      LT.insert (tnum tPegLimitType) tPegLimitType $+      LT.insert (tnum tPegRoundDirection) tPegRoundDirection $+      LT.insert (tnum tPegScope) tPegScope $+      LT.insert (tnum tDiscretionInst) tDiscretionInst $+      LT.insert (tnum tDiscretionOffsetValue) tDiscretionOffsetValue $+      LT.insert (tnum tDiscretionMoveType) tDiscretionMoveType $+      LT.insert (tnum tDiscretionOffsetType) tDiscretionOffsetType $+      LT.insert (tnum tDiscretionLimitType) tDiscretionLimitType $+      LT.insert (tnum tDiscretionRoundDirection) tDiscretionRoundDirection $+      LT.insert (tnum tDiscretionScope) tDiscretionScope $+      LT.insert (tnum tTargetStrategy) tTargetStrategy $+      LT.insert (tnum tTargetStrategyParameters) tTargetStrategyParameters $+      LT.insert (tnum tParticipationRate) tParticipationRate $+      LT.insert (tnum tCancellationRights) tCancellationRights $+      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $+      LT.insert (tnum tRegistID) tRegistID $+      LT.insert (tnum tDesignation) tDesignation $+      LT.insert (tnum tMultiLegRptTypeReq) tMultiLegRptTypeReq       LT.new+      where+         gNoAllocs''' = FIXTag+            { tName = "NoAllocs"+            , tnum = tnum tNoAllocs+            , tparser = gNoAllocsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }++         gNoAllocsP''' = groupP gNoAllocsSpec'''+         gNoAllocsSpec''' = FGSpec+            { gsLength = tNoAllocs+            , gsSeperator = tAllocAccount+            , gsBody = gNoAllocsBody''' }+            where+            gNoAllocsBody''' = +               LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $+               LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $+               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+               LT.insert (tnum tNoNested3PartyIDs) gNoNested3PartyIDs'''''' $+               LT.insert (tnum tAllocQty) tAllocQty                LT.new+               where+                  gNoNested3PartyIDs'''''' = FIXTag+                     { tName = "NoNested3PartyIDs"+                     , tnum = tnum tNoNested3PartyIDs+                     , tparser = gNoNested3PartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNested3PartyIDsSpec'''''' }++                  gNoNested3PartyIDsP'''''' = groupP gNoNested3PartyIDsSpec''''''+                  gNoNested3PartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNested3PartyIDs+                     , gsSeperator = tNested3PartyID+                     , gsBody = gNoNested3PartyIDsBody'''''' }+                     where+                     gNoNested3PartyIDsBody'''''' = +                        LT.insert (tnum tNested3PartyIDSource) tNested3PartyIDSource $+                        LT.insert (tnum tNested3PartyRole) tNested3PartyRole $+                        LT.insert (tnum tNoNested3PartySubIDs) gNoNested3PartySubIDs'''''''''                         LT.new+                        where+                           gNoNested3PartySubIDs''''''''' = FIXTag+                              { tName = "NoNested3PartySubIDs"+                              , tnum = tnum tNoNested3PartySubIDs+                              , tparser = gNoNested3PartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNested3PartySubIDsSpec''''''''' }++                           gNoNested3PartySubIDsP''''''''' = groupP gNoNested3PartySubIDsSpec'''''''''+                           gNoNested3PartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNested3PartySubIDs+                              , gsSeperator = tNested3PartySubID+                              , gsBody = gNoNested3PartySubIDsBody''''''''' }+                              where+                              gNoNested3PartySubIDsBody''''''''' = +                                 LT.insert (tnum tNested3PartySubIDType) tNested3PartySubIDType                                  LT.new++++         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $+               LT.insert (tnum tLegQty) tLegQty $+               LT.insert (tnum tLegSwapType) tLegSwapType $+               LT.insert (tnum tNoLegStipulations) gNoLegStipulations'''''' $+               LT.insert (tnum tNoLegAllocs) gNoLegAllocs'''''' $+               LT.insert (tnum tLegPositionEffect) tLegPositionEffect $+               LT.insert (tnum tLegCoveredOrUncovered) tLegCoveredOrUncovered $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $+               LT.insert (tnum tLegRefID) tLegRefID $+               LT.insert (tnum tLegPrice) tLegPrice $+               LT.insert (tnum tLegSettlType) tLegSettlType $+               LT.insert (tnum tLegSettlDate) tLegSettlDate                LT.new+               where+                  gNoLegAllocs'''''' = FIXTag+                     { tName = "NoLegAllocs"+                     , tnum = tnum tNoLegAllocs+                     , tparser = gNoLegAllocsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegAllocsSpec'''''' }++                  gNoLegAllocsP'''''' = groupP gNoLegAllocsSpec''''''+                  gNoLegAllocsSpec'''''' = FGSpec+                     { gsLength = tNoLegAllocs+                     , gsSeperator = tLegAllocAccount+                     , gsBody = gNoLegAllocsBody'''''' }+                     where+                     gNoLegAllocsBody'''''' = +                        LT.insert (tnum tLegIndividualAllocID) tLegIndividualAllocID $+                        LT.insert (tnum tNoNested2PartyIDs) gNoNested2PartyIDs''''''''' $+                        LT.insert (tnum tLegAllocQty) tLegAllocQty $+                        LT.insert (tnum tLegAllocAcctIDSource) tLegAllocAcctIDSource $+                        LT.insert (tnum tLegSettlCurrency) tLegSettlCurrency                         LT.new+                        where+                           gNoNested2PartyIDs''''''''' = FIXTag+                              { tName = "NoNested2PartyIDs"+                              , tnum = tnum tNoNested2PartyIDs+                              , tparser = gNoNested2PartyIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNested2PartyIDsSpec''''''''' }++                           gNoNested2PartyIDsP''''''''' = groupP gNoNested2PartyIDsSpec'''''''''+                           gNoNested2PartyIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNested2PartyIDs+                              , gsSeperator = tNested2PartyID+                              , gsBody = gNoNested2PartyIDsBody''''''''' }+                              where+                              gNoNested2PartyIDsBody''''''''' = +                                 LT.insert (tnum tNested2PartyIDSource) tNested2PartyIDSource $+                                 LT.insert (tnum tNested2PartyRole) tNested2PartyRole $+                                 LT.insert (tnum tNoNested2PartySubIDs) gNoNested2PartySubIDs''''''''''''                                  LT.new+                                 where+                                    gNoNested2PartySubIDs'''''''''''' = FIXTag+                                       { tName = "NoNested2PartySubIDs"+                                       , tnum = tnum tNoNested2PartySubIDs+                                       , tparser = gNoNested2PartySubIDsP''''''''''''+                                       , arbitraryValue = arbibtraryFIXGroup gNoNested2PartySubIDsSpec'''''''''''' }++                                    gNoNested2PartySubIDsP'''''''''''' = groupP gNoNested2PartySubIDsSpec''''''''''''+                                    gNoNested2PartySubIDsSpec'''''''''''' = FGSpec+                                       { gsLength = tNoNested2PartySubIDs+                                       , gsSeperator = tNested2PartySubID+                                       , gsBody = gNoNested2PartySubIDsBody'''''''''''' }+                                       where+                                       gNoNested2PartySubIDsBody'''''''''''' = +                                          LT.insert (tnum tNested2PartySubIDType) tNested2PartySubIDType                                           LT.new++++                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new++                  gNoLegStipulations'''''' = FIXTag+                     { tName = "NoLegStipulations"+                     , tnum = tnum tNoLegStipulations+                     , tparser = gNoLegStipulationsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec'''''' }++                  gNoLegStipulationsP'''''' = groupP gNoLegStipulationsSpec''''''+                  gNoLegStipulationsSpec'''''' = FGSpec+                     { gsLength = tNoLegStipulations+                     , gsSeperator = tLegStipulationType+                     , gsBody = gNoLegStipulationsBody'''''' }+                     where+                     gNoLegStipulationsBody'''''' = +                        LT.insert (tnum tLegStipulationValue) tLegStipulationValue                         LT.new++                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new+                        where+                           gNoNestedPartySubIDs''''''''' = FIXTag+                              { tName = "NoNestedPartySubIDs"+                              , tnum = tnum tNoNestedPartySubIDs+                              , tparser = gNoNestedPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }++                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''+                           gNoNestedPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartySubIDs+                              , gsSeperator = tNestedPartySubID+                              , gsBody = gNoNestedPartySubIDsBody''''''''' }+                              where+                              gNoNestedPartySubIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new++++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoTradingSessions''' = FIXTag+            { tName = "NoTradingSessions"+            , tnum = tnum tNoTradingSessions+            , tparser = gNoTradingSessionsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }++         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''+         gNoTradingSessionsSpec''' = FGSpec+            { gsLength = tNoTradingSessions+            , gsSeperator = tTradingSessionID+            , gsBody = gNoTradingSessionsBody''' }+            where+            gNoTradingSessionsBody''' = +               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mTradeCaptureReportRequest :: FIXMessageSpec+mTradeCaptureReportRequest = FMSpec+   { msName = "TradeCaptureReportRequest"+   , msType = C.pack "AD"+   , msHeader = headerFIX44+   , msBody = mTradeCaptureReportRequestBody+   , msTrailer = trailerFIX44 }+   where+   mTradeCaptureReportRequestBody = +      LT.insert (tnum tTradeRequestID) tTradeRequestID $+      LT.insert (tnum tTradeRequestType) tTradeRequestType $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $+      LT.insert (tnum tTradeReportID) tTradeReportID $+      LT.insert (tnum tSecondaryTradeReportID) tSecondaryTradeReportID $+      LT.insert (tnum tExecID) tExecID $+      LT.insert (tnum tExecType) tExecType $+      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tMatchStatus) tMatchStatus $+      LT.insert (tnum tTrdType) tTrdType $+      LT.insert (tnum tTrdSubType) tTrdSubType $+      LT.insert (tnum tTransferReason) tTransferReason $+      LT.insert (tnum tSecondaryTrdType) tSecondaryTrdType $+      LT.insert (tnum tTradeLinkID) tTradeLinkID $+      LT.insert (tnum tTrdMatchID) tTrdMatchID $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tDeliveryForm) tDeliveryForm $+      LT.insert (tnum tPctAtRisk) tPctAtRisk $+      LT.insert (tnum tNoInstrAttrib) gNoInstrAttrib''' $+      LT.insert (tnum tAgreementDesc) tAgreementDesc $+      LT.insert (tnum tAgreementID) tAgreementID $+      LT.insert (tnum tAgreementDate) tAgreementDate $+      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+      LT.insert (tnum tTerminationType) tTerminationType $+      LT.insert (tnum tStartDate) tStartDate $+      LT.insert (tnum tEndDate) tEndDate $+      LT.insert (tnum tDeliveryType) tDeliveryType $+      LT.insert (tnum tMarginRatio) tMarginRatio $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tNoDates) gNoDates''' $+      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tTimeBracket) tTimeBracket $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tMultiLegReportingType) tMultiLegReportingType $+      LT.insert (tnum tTradeInputSource) tTradeInputSource $+      LT.insert (tnum tTradeInputDevice) tTradeInputDevice $+      LT.insert (tnum tResponseTransportType) tResponseTransportType $+      LT.insert (tnum tResponseDestination) tResponseDestination $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoDates''' = FIXTag+            { tName = "NoDates"+            , tnum = tnum tNoDates+            , tparser = gNoDatesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoDatesSpec''' }++         gNoDatesP''' = groupP gNoDatesSpec'''+         gNoDatesSpec''' = FGSpec+            { gsLength = tNoDates+            , gsSeperator = tTradeDate+            , gsBody = gNoDatesBody''' }+            where+            gNoDatesBody''' = +               LT.insert (tnum tTransactTime) tTransactTime                LT.new++         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoInstrAttrib''' = FIXTag+            { tName = "NoInstrAttrib"+            , tnum = tnum tNoInstrAttrib+            , tparser = gNoInstrAttribP'''+            , arbitraryValue = arbibtraryFIXGroup gNoInstrAttribSpec''' }++         gNoInstrAttribP''' = groupP gNoInstrAttribSpec'''+         gNoInstrAttribSpec''' = FGSpec+            { gsLength = tNoInstrAttrib+            , gsSeperator = tInstrAttribType+            , gsBody = gNoInstrAttribBody''' }+            where+            gNoInstrAttribBody''' = +               LT.insert (tnum tInstrAttribValue) tInstrAttribValue                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mTradeCaptureReport :: FIXMessageSpec+mTradeCaptureReport = FMSpec+   { msName = "TradeCaptureReport"+   , msType = C.pack "AE"+   , msHeader = headerFIX44+   , msBody = mTradeCaptureReportBody+   , msTrailer = trailerFIX44 }+   where+   mTradeCaptureReportBody = +      LT.insert (tnum tTradeReportID) tTradeReportID $+      LT.insert (tnum tTradeReportTransType) tTradeReportTransType $+      LT.insert (tnum tTradeReportType) tTradeReportType $+      LT.insert (tnum tTradeRequestID) tTradeRequestID $+      LT.insert (tnum tTrdType) tTrdType $+      LT.insert (tnum tTrdSubType) tTrdSubType $+      LT.insert (tnum tSecondaryTrdType) tSecondaryTrdType $+      LT.insert (tnum tTransferReason) tTransferReason $+      LT.insert (tnum tExecType) tExecType $+      LT.insert (tnum tTotNumTradeReports) tTotNumTradeReports $+      LT.insert (tnum tLastRptRequested) tLastRptRequested $+      LT.insert (tnum tUnsolicitedIndicator) tUnsolicitedIndicator $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $+      LT.insert (tnum tTradeReportRefID) tTradeReportRefID $+      LT.insert (tnum tSecondaryTradeReportRefID) tSecondaryTradeReportRefID $+      LT.insert (tnum tSecondaryTradeReportID) tSecondaryTradeReportID $+      LT.insert (tnum tTradeLinkID) tTradeLinkID $+      LT.insert (tnum tTrdMatchID) tTrdMatchID $+      LT.insert (tnum tExecID) tExecID $+      LT.insert (tnum tOrdStatus) tOrdStatus $+      LT.insert (tnum tSecondaryExecID) tSecondaryExecID $+      LT.insert (tnum tExecRestatementReason) tExecRestatementReason $+      LT.insert (tnum tPreviouslyReported) tPreviouslyReported $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tAgreementDesc) tAgreementDesc $+      LT.insert (tnum tAgreementID) tAgreementID $+      LT.insert (tnum tAgreementDate) tAgreementDate $+      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+      LT.insert (tnum tTerminationType) tTerminationType $+      LT.insert (tnum tStartDate) tStartDate $+      LT.insert (tnum tEndDate) tEndDate $+      LT.insert (tnum tDeliveryType) tDeliveryType $+      LT.insert (tnum tMarginRatio) tMarginRatio $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrderPercent) tOrderPercent $+      LT.insert (tnum tRoundingDirection) tRoundingDirection $+      LT.insert (tnum tRoundingModulus) tRoundingModulus $+      LT.insert (tnum tQtyType) tQtyType $+      LT.insert (tnum tYieldType) tYieldType $+      LT.insert (tnum tYield) tYield $+      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $+      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $+      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $+      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tUnderlyingTradingSessionID) tUnderlyingTradingSessionID $+      LT.insert (tnum tUnderlyingTradingSessionSubID) tUnderlyingTradingSessionSubID $+      LT.insert (tnum tLastQty) tLastQty $+      LT.insert (tnum tLastPx) tLastPx $+      LT.insert (tnum tLastParPx) tLastParPx $+      LT.insert (tnum tLastSpotRate) tLastSpotRate $+      LT.insert (tnum tLastForwardPoints) tLastForwardPoints $+      LT.insert (tnum tLastMkt) tLastMkt $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $+      LT.insert (tnum tAvgPx) tAvgPx $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+      LT.insert (tnum tAvgPxIndicator) tAvgPxIndicator $+      LT.insert (tnum tNoPosAmt) gNoPosAmt''' $+      LT.insert (tnum tMultiLegReportingType) tMultiLegReportingType $+      LT.insert (tnum tTradeLegRefID) tTradeLegRefID $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tNoTrdRegTimestamps) gNoTrdRegTimestamps''' $+      LT.insert (tnum tSettlType) tSettlType $+      LT.insert (tnum tSettlDate) tSettlDate $+      LT.insert (tnum tMatchStatus) tMatchStatus $+      LT.insert (tnum tMatchType) tMatchType $+      LT.insert (tnum tNoSides) gNoSides'''       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $+               LT.insert (tnum tLegQty) tLegQty $+               LT.insert (tnum tLegSwapType) tLegSwapType $+               LT.insert (tnum tNoLegStipulations) gNoLegStipulations'''''' $+               LT.insert (tnum tLegPositionEffect) tLegPositionEffect $+               LT.insert (tnum tLegCoveredOrUncovered) tLegCoveredOrUncovered $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $+               LT.insert (tnum tLegRefID) tLegRefID $+               LT.insert (tnum tLegPrice) tLegPrice $+               LT.insert (tnum tLegSettlType) tLegSettlType $+               LT.insert (tnum tLegSettlDate) tLegSettlDate $+               LT.insert (tnum tLegLastPx) tLegLastPx                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new++                  gNoLegStipulations'''''' = FIXTag+                     { tName = "NoLegStipulations"+                     , tnum = tnum tNoLegStipulations+                     , tparser = gNoLegStipulationsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec'''''' }++                  gNoLegStipulationsP'''''' = groupP gNoLegStipulationsSpec''''''+                  gNoLegStipulationsSpec'''''' = FGSpec+                     { gsLength = tNoLegStipulations+                     , gsSeperator = tLegStipulationType+                     , gsBody = gNoLegStipulationsBody'''''' }+                     where+                     gNoLegStipulationsBody'''''' = +                        LT.insert (tnum tLegStipulationValue) tLegStipulationValue                         LT.new++                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new+                        where+                           gNoNestedPartySubIDs''''''''' = FIXTag+                              { tName = "NoNestedPartySubIDs"+                              , tnum = tnum tNoNestedPartySubIDs+                              , tparser = gNoNestedPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }++                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''+                           gNoNestedPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartySubIDs+                              , gsSeperator = tNestedPartySubID+                              , gsBody = gNoNestedPartySubIDsBody''''''''' }+                              where+                              gNoNestedPartySubIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new++++         gNoPosAmt''' = FIXTag+            { tName = "NoPosAmt"+            , tnum = tnum tNoPosAmt+            , tparser = gNoPosAmtP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPosAmtSpec''' }++         gNoPosAmtP''' = groupP gNoPosAmtSpec'''+         gNoPosAmtSpec''' = FGSpec+            { gsLength = tNoPosAmt+            , gsSeperator = tPosAmtType+            , gsBody = gNoPosAmtBody''' }+            where+            gNoPosAmtBody''' = +               LT.insert (tnum tPosAmt) tPosAmt                LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoSides''' = FIXTag+            { tName = "NoSides"+            , tnum = tnum tNoSides+            , tparser = gNoSidesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSidesSpec''' }++         gNoSidesP''' = groupP gNoSidesSpec'''+         gNoSidesSpec''' = FGSpec+            { gsLength = tNoSides+            , gsSeperator = tSide+            , gsBody = gNoSidesBody''' }+            where+            gNoSidesBody''' = +               LT.insert (tnum tOrderID) tOrderID $+               LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+               LT.insert (tnum tClOrdID) tClOrdID $+               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+               LT.insert (tnum tListID) tListID $+               LT.insert (tnum tNoPartyIDs) gNoPartyIDs'''''' $+               LT.insert (tnum tAccount) tAccount $+               LT.insert (tnum tAcctIDSource) tAcctIDSource $+               LT.insert (tnum tAccountType) tAccountType $+               LT.insert (tnum tProcessCode) tProcessCode $+               LT.insert (tnum tOddLot) tOddLot $+               LT.insert (tnum tNoClearingInstructions) gNoClearingInstructions'''''' $+               LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+               LT.insert (tnum tTradeInputSource) tTradeInputSource $+               LT.insert (tnum tTradeInputDevice) tTradeInputDevice $+               LT.insert (tnum tOrderInputDevice) tOrderInputDevice $+               LT.insert (tnum tCurrency) tCurrency $+               LT.insert (tnum tComplianceID) tComplianceID $+               LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+               LT.insert (tnum tOrderCapacity) tOrderCapacity $+               LT.insert (tnum tOrderRestrictions) tOrderRestrictions $+               LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+               LT.insert (tnum tOrdType) tOrdType $+               LT.insert (tnum tExecInst) tExecInst $+               LT.insert (tnum tTransBkdTime) tTransBkdTime $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+               LT.insert (tnum tTimeBracket) tTimeBracket $+               LT.insert (tnum tCommission) tCommission $+               LT.insert (tnum tCommType) tCommType $+               LT.insert (tnum tCommCurrency) tCommCurrency $+               LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+               LT.insert (tnum tGrossTradeAmt) tGrossTradeAmt $+               LT.insert (tnum tNumDaysInterest) tNumDaysInterest $+               LT.insert (tnum tExDate) tExDate $+               LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $+               LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+               LT.insert (tnum tInterestAtMaturity) tInterestAtMaturity $+               LT.insert (tnum tEndAccruedInterestAmt) tEndAccruedInterestAmt $+               LT.insert (tnum tStartCash) tStartCash $+               LT.insert (tnum tEndCash) tEndCash $+               LT.insert (tnum tConcession) tConcession $+               LT.insert (tnum tTotalTakedown) tTotalTakedown $+               LT.insert (tnum tNetMoney) tNetMoney $+               LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $+               LT.insert (tnum tSettlCurrency) tSettlCurrency $+               LT.insert (tnum tSettlCurrFxRate) tSettlCurrFxRate $+               LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $+               LT.insert (tnum tPositionEffect) tPositionEffect $+               LT.insert (tnum tText) tText $+               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+               LT.insert (tnum tEncodedText) tEncodedText $+               LT.insert (tnum tSideMultiLegReportingType) tSideMultiLegReportingType $+               LT.insert (tnum tNoContAmts) gNoContAmts'''''' $+               LT.insert (tnum tNoStipulations) gNoStipulations'''''' $+               LT.insert (tnum tNoMiscFees) gNoMiscFees'''''' $+               LT.insert (tnum tExchangeRule) tExchangeRule $+               LT.insert (tnum tTradeAllocIndicator) tTradeAllocIndicator $+               LT.insert (tnum tPreallocMethod) tPreallocMethod $+               LT.insert (tnum tAllocID) tAllocID $+               LT.insert (tnum tNoAllocs) gNoAllocs'''''' $+               LT.insert (tnum tCopyMsgIndicator) tCopyMsgIndicator $+               LT.insert (tnum tPublishTrdIndicator) tPublishTrdIndicator $+               LT.insert (tnum tShortSaleReason) tShortSaleReason                LT.new+               where+                  gNoAllocs'''''' = FIXTag+                     { tName = "NoAllocs"+                     , tnum = tnum tNoAllocs+                     , tparser = gNoAllocsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec'''''' }++                  gNoAllocsP'''''' = groupP gNoAllocsSpec''''''+                  gNoAllocsSpec'''''' = FGSpec+                     { gsLength = tNoAllocs+                     , gsSeperator = tAllocAccount+                     , gsBody = gNoAllocsBody'''''' }+                     where+                     gNoAllocsBody'''''' = +                        LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $+                        LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $+                        LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+                        LT.insert (tnum tNoNested2PartyIDs) gNoNested2PartyIDs''''''''' $+                        LT.insert (tnum tAllocQty) tAllocQty                         LT.new+                        where+                           gNoNested2PartyIDs''''''''' = FIXTag+                              { tName = "NoNested2PartyIDs"+                              , tnum = tnum tNoNested2PartyIDs+                              , tparser = gNoNested2PartyIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNested2PartyIDsSpec''''''''' }++                           gNoNested2PartyIDsP''''''''' = groupP gNoNested2PartyIDsSpec'''''''''+                           gNoNested2PartyIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNested2PartyIDs+                              , gsSeperator = tNested2PartyID+                              , gsBody = gNoNested2PartyIDsBody''''''''' }+                              where+                              gNoNested2PartyIDsBody''''''''' = +                                 LT.insert (tnum tNested2PartyIDSource) tNested2PartyIDSource $+                                 LT.insert (tnum tNested2PartyRole) tNested2PartyRole $+                                 LT.insert (tnum tNoNested2PartySubIDs) gNoNested2PartySubIDs''''''''''''                                  LT.new+                                 where+                                    gNoNested2PartySubIDs'''''''''''' = FIXTag+                                       { tName = "NoNested2PartySubIDs"+                                       , tnum = tnum tNoNested2PartySubIDs+                                       , tparser = gNoNested2PartySubIDsP''''''''''''+                                       , arbitraryValue = arbibtraryFIXGroup gNoNested2PartySubIDsSpec'''''''''''' }++                                    gNoNested2PartySubIDsP'''''''''''' = groupP gNoNested2PartySubIDsSpec''''''''''''+                                    gNoNested2PartySubIDsSpec'''''''''''' = FGSpec+                                       { gsLength = tNoNested2PartySubIDs+                                       , gsSeperator = tNested2PartySubID+                                       , gsBody = gNoNested2PartySubIDsBody'''''''''''' }+                                       where+                                       gNoNested2PartySubIDsBody'''''''''''' = +                                          LT.insert (tnum tNested2PartySubIDType) tNested2PartySubIDType                                           LT.new++++                  gNoClearingInstructions'''''' = FIXTag+                     { tName = "NoClearingInstructions"+                     , tnum = tnum tNoClearingInstructions+                     , tparser = gNoClearingInstructionsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoClearingInstructionsSpec'''''' }++                  gNoClearingInstructionsP'''''' = groupP gNoClearingInstructionsSpec''''''+                  gNoClearingInstructionsSpec'''''' = FGSpec+                     { gsLength = tNoClearingInstructions+                     , gsSeperator = tClearingInstruction+                     , gsBody = gNoClearingInstructionsBody'''''' }+                     where+                     gNoClearingInstructionsBody'''''' = +                        LT.new++                  gNoContAmts'''''' = FIXTag+                     { tName = "NoContAmts"+                     , tnum = tnum tNoContAmts+                     , tparser = gNoContAmtsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoContAmtsSpec'''''' }++                  gNoContAmtsP'''''' = groupP gNoContAmtsSpec''''''+                  gNoContAmtsSpec'''''' = FGSpec+                     { gsLength = tNoContAmts+                     , gsSeperator = tContAmtType+                     , gsBody = gNoContAmtsBody'''''' }+                     where+                     gNoContAmtsBody'''''' = +                        LT.insert (tnum tContAmtValue) tContAmtValue $+                        LT.insert (tnum tContAmtCurr) tContAmtCurr                         LT.new++                  gNoMiscFees'''''' = FIXTag+                     { tName = "NoMiscFees"+                     , tnum = tnum tNoMiscFees+                     , tparser = gNoMiscFeesP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec'''''' }++                  gNoMiscFeesP'''''' = groupP gNoMiscFeesSpec''''''+                  gNoMiscFeesSpec'''''' = FGSpec+                     { gsLength = tNoMiscFees+                     , gsSeperator = tMiscFeeAmt+                     , gsBody = gNoMiscFeesBody'''''' }+                     where+                     gNoMiscFeesBody'''''' = +                        LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $+                        LT.insert (tnum tMiscFeeType) tMiscFeeType $+                        LT.insert (tnum tMiscFeeBasis) tMiscFeeBasis                         LT.new++                  gNoPartyIDs'''''' = FIXTag+                     { tName = "NoPartyIDs"+                     , tnum = tnum tNoPartyIDs+                     , tparser = gNoPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec'''''' }++                  gNoPartyIDsP'''''' = groupP gNoPartyIDsSpec''''''+                  gNoPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartyIDs+                     , gsSeperator = tPartyID+                     , gsBody = gNoPartyIDsBody'''''' }+                     where+                     gNoPartyIDsBody'''''' = +                        LT.insert (tnum tPartyIDSource) tPartyIDSource $+                        LT.insert (tnum tPartyRole) tPartyRole $+                        LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs'''''''''                         LT.new+                        where+                           gNoPartySubIDs''''''''' = FIXTag+                              { tName = "NoPartySubIDs"+                              , tnum = tnum tNoPartySubIDs+                              , tparser = gNoPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec''''''''' }++                           gNoPartySubIDsP''''''''' = groupP gNoPartySubIDsSpec'''''''''+                           gNoPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoPartySubIDs+                              , gsSeperator = tPartySubID+                              , gsBody = gNoPartySubIDsBody''''''''' }+                              where+                              gNoPartySubIDsBody''''''''' = +                                 LT.insert (tnum tPartySubIDType) tPartySubIDType                                  LT.new+++                  gNoStipulations'''''' = FIXTag+                     { tName = "NoStipulations"+                     , tnum = tnum tNoStipulations+                     , tparser = gNoStipulationsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec'''''' }++                  gNoStipulationsP'''''' = groupP gNoStipulationsSpec''''''+                  gNoStipulationsSpec'''''' = FGSpec+                     { gsLength = tNoStipulations+                     , gsSeperator = tStipulationType+                     , gsBody = gNoStipulationsBody'''''' }+                     where+                     gNoStipulationsBody'''''' = +                        LT.insert (tnum tStipulationValue) tStipulationValue                         LT.new+++         gNoTrdRegTimestamps''' = FIXTag+            { tName = "NoTrdRegTimestamps"+            , tnum = tnum tNoTrdRegTimestamps+            , tparser = gNoTrdRegTimestampsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTrdRegTimestampsSpec''' }++         gNoTrdRegTimestampsP''' = groupP gNoTrdRegTimestampsSpec'''+         gNoTrdRegTimestampsSpec''' = FGSpec+            { gsLength = tNoTrdRegTimestamps+            , gsSeperator = tTrdRegTimestamp+            , gsBody = gNoTrdRegTimestampsBody''' }+            where+            gNoTrdRegTimestampsBody''' = +               LT.insert (tnum tTrdRegTimestampType) tTrdRegTimestampType $+               LT.insert (tnum tTrdRegTimestampOrigin) tTrdRegTimestampOrigin                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mOrderMassStatusRequest :: FIXMessageSpec+mOrderMassStatusRequest = FMSpec+   { msName = "OrderMassStatusRequest"+   , msType = C.pack "AF"+   , msHeader = headerFIX44+   , msBody = mOrderMassStatusRequestBody+   , msTrailer = trailerFIX44 }+   where+   mOrderMassStatusRequestBody = +      LT.insert (tnum tMassStatusReqID) tMassStatusReqID $+      LT.insert (tnum tMassStatusReqType) tMassStatusReqType $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $+      LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+      LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+      LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+      LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''' $+      LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+      LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+      LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+      LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+      LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+      LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+      LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+      LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+      LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+      LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+      LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+      LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+      LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+      LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+      LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+      LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+      LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+      LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+      LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+      LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+      LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+      LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+      LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+      LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+      LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+      LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+      LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+      LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+      LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+      LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+      LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+      LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+      LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+      LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+      LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+      LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+      LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+      LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+      LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+      LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+      LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''' $+      LT.insert (tnum tSide) tSide       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoUnderlyingSecurityAltID''' = FIXTag+            { tName = "NoUnderlyingSecurityAltID"+            , tnum = tnum tNoUnderlyingSecurityAltID+            , tparser = gNoUnderlyingSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''' }++         gNoUnderlyingSecurityAltIDP''' = groupP gNoUnderlyingSecurityAltIDSpec'''+         gNoUnderlyingSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoUnderlyingSecurityAltID+            , gsSeperator = tUnderlyingSecurityAltID+            , gsBody = gNoUnderlyingSecurityAltIDBody''' }+            where+            gNoUnderlyingSecurityAltIDBody''' = +               LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                LT.new++         gNoUnderlyingStips''' = FIXTag+            { tName = "NoUnderlyingStips"+            , tnum = tnum tNoUnderlyingStips+            , tparser = gNoUnderlyingStipsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''' }++         gNoUnderlyingStipsP''' = groupP gNoUnderlyingStipsSpec'''+         gNoUnderlyingStipsSpec''' = FGSpec+            { gsLength = tNoUnderlyingStips+            , gsSeperator = tUnderlyingStipType+            , gsBody = gNoUnderlyingStipsBody''' }+            where+            gNoUnderlyingStipsBody''' = +               LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                LT.new++++mQuoteRequestReject :: FIXMessageSpec+mQuoteRequestReject = FMSpec+   { msName = "QuoteRequestReject"+   , msType = C.pack "AG"+   , msHeader = headerFIX44+   , msBody = mQuoteRequestRejectBody+   , msTrailer = trailerFIX44 }+   where+   mQuoteRequestRejectBody = +      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tRFQReqID) tRFQReqID $+      LT.insert (tnum tQuoteRequestRejectReason) tQuoteRequestRejectReason $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym''' $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tSymbol+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tSecuritySubType) tSecuritySubType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tPool) tPool $+               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+               LT.insert (tnum tCPProgram) tCPProgram $+               LT.insert (tnum tCPRegType) tCPRegType $+               LT.insert (tnum tNoEvents) gNoEvents'''''' $+               LT.insert (tnum tDatedDate) tDatedDate $+               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+               LT.insert (tnum tAgreementDesc) tAgreementDesc $+               LT.insert (tnum tAgreementID) tAgreementID $+               LT.insert (tnum tAgreementDate) tAgreementDate $+               LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+               LT.insert (tnum tTerminationType) tTerminationType $+               LT.insert (tnum tStartDate) tStartDate $+               LT.insert (tnum tEndDate) tEndDate $+               LT.insert (tnum tDeliveryType) tDeliveryType $+               LT.insert (tnum tMarginRatio) tMarginRatio $+               LT.insert (tnum tNoUnderlyings) gNoUnderlyings'''''' $+               LT.insert (tnum tPrevClosePx) tPrevClosePx $+               LT.insert (tnum tQuoteRequestType) tQuoteRequestType $+               LT.insert (tnum tQuoteType) tQuoteType $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+               LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+               LT.insert (tnum tSide) tSide $+               LT.insert (tnum tQtyType) tQtyType $+               LT.insert (tnum tOrderQty) tOrderQty $+               LT.insert (tnum tCashOrderQty) tCashOrderQty $+               LT.insert (tnum tOrderPercent) tOrderPercent $+               LT.insert (tnum tRoundingDirection) tRoundingDirection $+               LT.insert (tnum tRoundingModulus) tRoundingModulus $+               LT.insert (tnum tSettlType) tSettlType $+               LT.insert (tnum tSettlDate) tSettlDate $+               LT.insert (tnum tSettlDate2) tSettlDate2 $+               LT.insert (tnum tOrderQty2) tOrderQty2 $+               LT.insert (tnum tCurrency) tCurrency $+               LT.insert (tnum tNoStipulations) gNoStipulations'''''' $+               LT.insert (tnum tAccount) tAccount $+               LT.insert (tnum tAcctIDSource) tAcctIDSource $+               LT.insert (tnum tAccountType) tAccountType $+               LT.insert (tnum tNoLegs) gNoLegs'''''' $+               LT.insert (tnum tNoQuoteQualifiers) gNoQuoteQualifiers'''''' $+               LT.insert (tnum tQuotePriceType) tQuotePriceType $+               LT.insert (tnum tOrdType) tOrdType $+               LT.insert (tnum tExpireTime) tExpireTime $+               LT.insert (tnum tTransactTime) tTransactTime $+               LT.insert (tnum tSpread) tSpread $+               LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+               LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+               LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+               LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+               LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+               LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+               LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+               LT.insert (tnum tPriceType) tPriceType $+               LT.insert (tnum tPrice) tPrice $+               LT.insert (tnum tPrice2) tPrice2 $+               LT.insert (tnum tYieldType) tYieldType $+               LT.insert (tnum tYield) tYield $+               LT.insert (tnum tYieldCalcDate) tYieldCalcDate $+               LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $+               LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $+               LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $+               LT.insert (tnum tNoPartyIDs) gNoPartyIDs''''''                LT.new+               where+                  gNoEvents'''''' = FIXTag+                     { tName = "NoEvents"+                     , tnum = tnum tNoEvents+                     , tparser = gNoEventsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }++                  gNoEventsP'''''' = groupP gNoEventsSpec''''''+                  gNoEventsSpec'''''' = FGSpec+                     { gsLength = tNoEvents+                     , gsSeperator = tEventType+                     , gsBody = gNoEventsBody'''''' }+                     where+                     gNoEventsBody'''''' = +                        LT.insert (tnum tEventDate) tEventDate $+                        LT.insert (tnum tEventPx) tEventPx $+                        LT.insert (tnum tEventText) tEventText                         LT.new++                  gNoLegs'''''' = FIXTag+                     { tName = "NoLegs"+                     , tnum = tnum tNoLegs+                     , tparser = gNoLegsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec'''''' }++                  gNoLegsP'''''' = groupP gNoLegsSpec''''''+                  gNoLegsSpec'''''' = FGSpec+                     { gsLength = tNoLegs+                     , gsSeperator = tLegSymbol+                     , gsBody = gNoLegsBody'''''' }+                     where+                     gNoLegsBody'''''' = +                        LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+                        LT.insert (tnum tLegSecurityID) tLegSecurityID $+                        LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+                        LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID''''''''' $+                        LT.insert (tnum tLegProduct) tLegProduct $+                        LT.insert (tnum tLegCFICode) tLegCFICode $+                        LT.insert (tnum tLegSecurityType) tLegSecurityType $+                        LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+                        LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+                        LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+                        LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+                        LT.insert (tnum tLegIssueDate) tLegIssueDate $+                        LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+                        LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+                        LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+                        LT.insert (tnum tLegFactor) tLegFactor $+                        LT.insert (tnum tLegCreditRating) tLegCreditRating $+                        LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+                        LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+                        LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+                        LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+                        LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+                        LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+                        LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+                        LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+                        LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+                        LT.insert (tnum tLegCouponRate) tLegCouponRate $+                        LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+                        LT.insert (tnum tLegIssuer) tLegIssuer $+                        LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+                        LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+                        LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+                        LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+                        LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+                        LT.insert (tnum tLegRatioQty) tLegRatioQty $+                        LT.insert (tnum tLegSide) tLegSide $+                        LT.insert (tnum tLegCurrency) tLegCurrency $+                        LT.insert (tnum tLegPool) tLegPool $+                        LT.insert (tnum tLegDatedDate) tLegDatedDate $+                        LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+                        LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $+                        LT.insert (tnum tLegQty) tLegQty $+                        LT.insert (tnum tLegSwapType) tLegSwapType $+                        LT.insert (tnum tLegSettlType) tLegSettlType $+                        LT.insert (tnum tLegSettlDate) tLegSettlDate $+                        LT.insert (tnum tNoLegStipulations) gNoLegStipulations''''''''' $+                        LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''''' $+                        LT.insert (tnum tLegBenchmarkCurveCurrency) tLegBenchmarkCurveCurrency $+                        LT.insert (tnum tLegBenchmarkCurveName) tLegBenchmarkCurveName $+                        LT.insert (tnum tLegBenchmarkCurvePoint) tLegBenchmarkCurvePoint $+                        LT.insert (tnum tLegBenchmarkPrice) tLegBenchmarkPrice $+                        LT.insert (tnum tLegBenchmarkPriceType) tLegBenchmarkPriceType                         LT.new+                        where+                           gNoLegSecurityAltID''''''''' = FIXTag+                              { tName = "NoLegSecurityAltID"+                              , tnum = tnum tNoLegSecurityAltID+                              , tparser = gNoLegSecurityAltIDP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec''''''''' }++                           gNoLegSecurityAltIDP''''''''' = groupP gNoLegSecurityAltIDSpec'''''''''+                           gNoLegSecurityAltIDSpec''''''''' = FGSpec+                              { gsLength = tNoLegSecurityAltID+                              , gsSeperator = tLegSecurityAltID+                              , gsBody = gNoLegSecurityAltIDBody''''''''' }+                              where+                              gNoLegSecurityAltIDBody''''''''' = +                                 LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                                  LT.new++                           gNoLegStipulations''''''''' = FIXTag+                              { tName = "NoLegStipulations"+                              , tnum = tnum tNoLegStipulations+                              , tparser = gNoLegStipulationsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec''''''''' }++                           gNoLegStipulationsP''''''''' = groupP gNoLegStipulationsSpec'''''''''+                           gNoLegStipulationsSpec''''''''' = FGSpec+                              { gsLength = tNoLegStipulations+                              , gsSeperator = tLegStipulationType+                              , gsBody = gNoLegStipulationsBody''''''''' }+                              where+                              gNoLegStipulationsBody''''''''' = +                                 LT.insert (tnum tLegStipulationValue) tLegStipulationValue                                  LT.new++                           gNoNestedPartyIDs''''''''' = FIXTag+                              { tName = "NoNestedPartyIDs"+                              , tnum = tnum tNoNestedPartyIDs+                              , tparser = gNoNestedPartyIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec''''''''' }++                           gNoNestedPartyIDsP''''''''' = groupP gNoNestedPartyIDsSpec'''''''''+                           gNoNestedPartyIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartyIDs+                              , gsSeperator = tNestedPartyID+                              , gsBody = gNoNestedPartyIDsBody''''''''' }+                              where+                              gNoNestedPartyIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                                 LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                                 LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs''''''''''''                                  LT.new+                                 where+                                    gNoNestedPartySubIDs'''''''''''' = FIXTag+                                       { tName = "NoNestedPartySubIDs"+                                       , tnum = tnum tNoNestedPartySubIDs+                                       , tparser = gNoNestedPartySubIDsP''''''''''''+                                       , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec'''''''''''' }++                                    gNoNestedPartySubIDsP'''''''''''' = groupP gNoNestedPartySubIDsSpec''''''''''''+                                    gNoNestedPartySubIDsSpec'''''''''''' = FGSpec+                                       { gsLength = tNoNestedPartySubIDs+                                       , gsSeperator = tNestedPartySubID+                                       , gsBody = gNoNestedPartySubIDsBody'''''''''''' }+                                       where+                                       gNoNestedPartySubIDsBody'''''''''''' = +                                          LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                           LT.new++++                  gNoPartyIDs'''''' = FIXTag+                     { tName = "NoPartyIDs"+                     , tnum = tnum tNoPartyIDs+                     , tparser = gNoPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec'''''' }++                  gNoPartyIDsP'''''' = groupP gNoPartyIDsSpec''''''+                  gNoPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartyIDs+                     , gsSeperator = tPartyID+                     , gsBody = gNoPartyIDsBody'''''' }+                     where+                     gNoPartyIDsBody'''''' = +                        LT.insert (tnum tPartyIDSource) tPartyIDSource $+                        LT.insert (tnum tPartyRole) tPartyRole $+                        LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs'''''''''                         LT.new+                        where+                           gNoPartySubIDs''''''''' = FIXTag+                              { tName = "NoPartySubIDs"+                              , tnum = tnum tNoPartySubIDs+                              , tparser = gNoPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec''''''''' }++                           gNoPartySubIDsP''''''''' = groupP gNoPartySubIDsSpec'''''''''+                           gNoPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoPartySubIDs+                              , gsSeperator = tPartySubID+                              , gsBody = gNoPartySubIDsBody''''''''' }+                              where+                              gNoPartySubIDsBody''''''''' = +                                 LT.insert (tnum tPartySubIDType) tPartySubIDType                                  LT.new+++                  gNoQuoteQualifiers'''''' = FIXTag+                     { tName = "NoQuoteQualifiers"+                     , tnum = tnum tNoQuoteQualifiers+                     , tparser = gNoQuoteQualifiersP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoQuoteQualifiersSpec'''''' }++                  gNoQuoteQualifiersP'''''' = groupP gNoQuoteQualifiersSpec''''''+                  gNoQuoteQualifiersSpec'''''' = FGSpec+                     { gsLength = tNoQuoteQualifiers+                     , gsSeperator = tQuoteQualifier+                     , gsBody = gNoQuoteQualifiersBody'''''' }+                     where+                     gNoQuoteQualifiersBody'''''' = +                        LT.new++                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new++                  gNoStipulations'''''' = FIXTag+                     { tName = "NoStipulations"+                     , tnum = tnum tNoStipulations+                     , tparser = gNoStipulationsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec'''''' }++                  gNoStipulationsP'''''' = groupP gNoStipulationsSpec''''''+                  gNoStipulationsSpec'''''' = FGSpec+                     { gsLength = tNoStipulations+                     , gsSeperator = tStipulationType+                     , gsBody = gNoStipulationsBody'''''' }+                     where+                     gNoStipulationsBody'''''' = +                        LT.insert (tnum tStipulationValue) tStipulationValue                         LT.new++                  gNoUnderlyings'''''' = FIXTag+                     { tName = "NoUnderlyings"+                     , tnum = tnum tNoUnderlyings+                     , tparser = gNoUnderlyingsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec'''''' }++                  gNoUnderlyingsP'''''' = groupP gNoUnderlyingsSpec''''''+                  gNoUnderlyingsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyings+                     , gsSeperator = tUnderlyingSymbol+                     , gsBody = gNoUnderlyingsBody'''''' }+                     where+                     gNoUnderlyingsBody'''''' = +                        LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+                        LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+                        LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+                        LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''''''''' $+                        LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+                        LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+                        LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+                        LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+                        LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+                        LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+                        LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+                        LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+                        LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+                        LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+                        LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+                        LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+                        LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+                        LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+                        LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+                        LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+                        LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+                        LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+                        LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+                        LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+                        LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+                        LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+                        LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+                        LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+                        LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+                        LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+                        LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+                        LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+                        LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+                        LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+                        LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+                        LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+                        LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+                        LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+                        LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+                        LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+                        LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+                        LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+                        LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+                        LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+                        LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''''''                         LT.new+                        where+                           gNoUnderlyingSecurityAltID''''''''' = FIXTag+                              { tName = "NoUnderlyingSecurityAltID"+                              , tnum = tnum tNoUnderlyingSecurityAltID+                              , tparser = gNoUnderlyingSecurityAltIDP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''''''''' }++                           gNoUnderlyingSecurityAltIDP''''''''' = groupP gNoUnderlyingSecurityAltIDSpec'''''''''+                           gNoUnderlyingSecurityAltIDSpec''''''''' = FGSpec+                              { gsLength = tNoUnderlyingSecurityAltID+                              , gsSeperator = tUnderlyingSecurityAltID+                              , gsBody = gNoUnderlyingSecurityAltIDBody''''''''' }+                              where+                              gNoUnderlyingSecurityAltIDBody''''''''' = +                                 LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                                  LT.new++                           gNoUnderlyingStips''''''''' = FIXTag+                              { tName = "NoUnderlyingStips"+                              , tnum = tnum tNoUnderlyingStips+                              , tparser = gNoUnderlyingStipsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''''''''' }++                           gNoUnderlyingStipsP''''''''' = groupP gNoUnderlyingStipsSpec'''''''''+                           gNoUnderlyingStipsSpec''''''''' = FGSpec+                              { gsLength = tNoUnderlyingStips+                              , gsSeperator = tUnderlyingStipType+                              , gsBody = gNoUnderlyingStipsBody''''''''' }+                              where+                              gNoUnderlyingStipsBody''''''''' = +                                 LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                                  LT.new++++++mRFQRequest :: FIXMessageSpec+mRFQRequest = FMSpec+   { msName = "RFQRequest"+   , msType = C.pack "AH"+   , msHeader = headerFIX44+   , msBody = mRFQRequestBody+   , msTrailer = trailerFIX44 }+   where+   mRFQRequestBody = +      LT.insert (tnum tRFQReqID) tRFQReqID $+      LT.insert (tnum tNoRelatedSym) gNoRelatedSym''' $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType       LT.new+      where+         gNoRelatedSym''' = FIXTag+            { tName = "NoRelatedSym"+            , tnum = tnum tNoRelatedSym+            , tparser = gNoRelatedSymP'''+            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }++         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''+         gNoRelatedSymSpec''' = FGSpec+            { gsLength = tNoRelatedSym+            , gsSeperator = tSymbol+            , gsBody = gNoRelatedSymBody''' }+            where+            gNoRelatedSymBody''' = +               LT.insert (tnum tSymbolSfx) tSymbolSfx $+               LT.insert (tnum tSecurityID) tSecurityID $+               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $+               LT.insert (tnum tProduct) tProduct $+               LT.insert (tnum tCFICode) tCFICode $+               LT.insert (tnum tSecurityType) tSecurityType $+               LT.insert (tnum tSecuritySubType) tSecuritySubType $+               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+               LT.insert (tnum tMaturityDate) tMaturityDate $+               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+               LT.insert (tnum tIssueDate) tIssueDate $+               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+               LT.insert (tnum tFactor) tFactor $+               LT.insert (tnum tCreditRating) tCreditRating $+               LT.insert (tnum tInstrRegistry) tInstrRegistry $+               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+               LT.insert (tnum tRedemptionDate) tRedemptionDate $+               LT.insert (tnum tStrikePrice) tStrikePrice $+               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+               LT.insert (tnum tOptAttribute) tOptAttribute $+               LT.insert (tnum tContractMultiplier) tContractMultiplier $+               LT.insert (tnum tCouponRate) tCouponRate $+               LT.insert (tnum tSecurityExchange) tSecurityExchange $+               LT.insert (tnum tIssuer) tIssuer $+               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+               LT.insert (tnum tSecurityDesc) tSecurityDesc $+               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+               LT.insert (tnum tPool) tPool $+               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+               LT.insert (tnum tCPProgram) tCPProgram $+               LT.insert (tnum tCPRegType) tCPRegType $+               LT.insert (tnum tNoEvents) gNoEvents'''''' $+               LT.insert (tnum tDatedDate) tDatedDate $+               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+               LT.insert (tnum tNoUnderlyings) gNoUnderlyings'''''' $+               LT.insert (tnum tNoLegs) gNoLegs'''''' $+               LT.insert (tnum tPrevClosePx) tPrevClosePx $+               LT.insert (tnum tQuoteRequestType) tQuoteRequestType $+               LT.insert (tnum tQuoteType) tQuoteType $+               LT.insert (tnum tTradingSessionID) tTradingSessionID $+               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new+               where+                  gNoEvents'''''' = FIXTag+                     { tName = "NoEvents"+                     , tnum = tnum tNoEvents+                     , tparser = gNoEventsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }++                  gNoEventsP'''''' = groupP gNoEventsSpec''''''+                  gNoEventsSpec'''''' = FGSpec+                     { gsLength = tNoEvents+                     , gsSeperator = tEventType+                     , gsBody = gNoEventsBody'''''' }+                     where+                     gNoEventsBody'''''' = +                        LT.insert (tnum tEventDate) tEventDate $+                        LT.insert (tnum tEventPx) tEventPx $+                        LT.insert (tnum tEventText) tEventText                         LT.new++                  gNoLegs'''''' = FIXTag+                     { tName = "NoLegs"+                     , tnum = tnum tNoLegs+                     , tparser = gNoLegsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec'''''' }++                  gNoLegsP'''''' = groupP gNoLegsSpec''''''+                  gNoLegsSpec'''''' = FGSpec+                     { gsLength = tNoLegs+                     , gsSeperator = tLegSymbol+                     , gsBody = gNoLegsBody'''''' }+                     where+                     gNoLegsBody'''''' = +                        LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+                        LT.insert (tnum tLegSecurityID) tLegSecurityID $+                        LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+                        LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID''''''''' $+                        LT.insert (tnum tLegProduct) tLegProduct $+                        LT.insert (tnum tLegCFICode) tLegCFICode $+                        LT.insert (tnum tLegSecurityType) tLegSecurityType $+                        LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+                        LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+                        LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+                        LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+                        LT.insert (tnum tLegIssueDate) tLegIssueDate $+                        LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+                        LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+                        LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+                        LT.insert (tnum tLegFactor) tLegFactor $+                        LT.insert (tnum tLegCreditRating) tLegCreditRating $+                        LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+                        LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+                        LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+                        LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+                        LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+                        LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+                        LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+                        LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+                        LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+                        LT.insert (tnum tLegCouponRate) tLegCouponRate $+                        LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+                        LT.insert (tnum tLegIssuer) tLegIssuer $+                        LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+                        LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+                        LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+                        LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+                        LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+                        LT.insert (tnum tLegRatioQty) tLegRatioQty $+                        LT.insert (tnum tLegSide) tLegSide $+                        LT.insert (tnum tLegCurrency) tLegCurrency $+                        LT.insert (tnum tLegPool) tLegPool $+                        LT.insert (tnum tLegDatedDate) tLegDatedDate $+                        LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+                        LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                         LT.new+                        where+                           gNoLegSecurityAltID''''''''' = FIXTag+                              { tName = "NoLegSecurityAltID"+                              , tnum = tnum tNoLegSecurityAltID+                              , tparser = gNoLegSecurityAltIDP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec''''''''' }++                           gNoLegSecurityAltIDP''''''''' = groupP gNoLegSecurityAltIDSpec'''''''''+                           gNoLegSecurityAltIDSpec''''''''' = FGSpec+                              { gsLength = tNoLegSecurityAltID+                              , gsSeperator = tLegSecurityAltID+                              , gsBody = gNoLegSecurityAltIDBody''''''''' }+                              where+                              gNoLegSecurityAltIDBody''''''''' = +                                 LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                                  LT.new+++                  gNoSecurityAltID'''''' = FIXTag+                     { tName = "NoSecurityAltID"+                     , tnum = tnum tNoSecurityAltID+                     , tparser = gNoSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }++                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''+                  gNoSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoSecurityAltID+                     , gsSeperator = tSecurityAltID+                     , gsBody = gNoSecurityAltIDBody'''''' }+                     where+                     gNoSecurityAltIDBody'''''' = +                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new++                  gNoUnderlyings'''''' = FIXTag+                     { tName = "NoUnderlyings"+                     , tnum = tnum tNoUnderlyings+                     , tparser = gNoUnderlyingsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec'''''' }++                  gNoUnderlyingsP'''''' = groupP gNoUnderlyingsSpec''''''+                  gNoUnderlyingsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyings+                     , gsSeperator = tUnderlyingSymbol+                     , gsBody = gNoUnderlyingsBody'''''' }+                     where+                     gNoUnderlyingsBody'''''' = +                        LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+                        LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+                        LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+                        LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''''''''' $+                        LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+                        LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+                        LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+                        LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+                        LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+                        LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+                        LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+                        LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+                        LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+                        LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+                        LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+                        LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+                        LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+                        LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+                        LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+                        LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+                        LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+                        LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+                        LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+                        LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+                        LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+                        LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+                        LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+                        LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+                        LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+                        LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+                        LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+                        LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+                        LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+                        LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+                        LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+                        LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+                        LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+                        LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+                        LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+                        LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+                        LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+                        LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+                        LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+                        LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+                        LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''''''                         LT.new+                        where+                           gNoUnderlyingSecurityAltID''''''''' = FIXTag+                              { tName = "NoUnderlyingSecurityAltID"+                              , tnum = tnum tNoUnderlyingSecurityAltID+                              , tparser = gNoUnderlyingSecurityAltIDP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''''''''' }++                           gNoUnderlyingSecurityAltIDP''''''''' = groupP gNoUnderlyingSecurityAltIDSpec'''''''''+                           gNoUnderlyingSecurityAltIDSpec''''''''' = FGSpec+                              { gsLength = tNoUnderlyingSecurityAltID+                              , gsSeperator = tUnderlyingSecurityAltID+                              , gsBody = gNoUnderlyingSecurityAltIDBody''''''''' }+                              where+                              gNoUnderlyingSecurityAltIDBody''''''''' = +                                 LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                                  LT.new++                           gNoUnderlyingStips''''''''' = FIXTag+                              { tName = "NoUnderlyingStips"+                              , tnum = tnum tNoUnderlyingStips+                              , tparser = gNoUnderlyingStipsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''''''''' }++                           gNoUnderlyingStipsP''''''''' = groupP gNoUnderlyingStipsSpec'''''''''+                           gNoUnderlyingStipsSpec''''''''' = FGSpec+                              { gsLength = tNoUnderlyingStips+                              , gsSeperator = tUnderlyingStipType+                              , gsBody = gNoUnderlyingStipsBody''''''''' }+                              where+                              gNoUnderlyingStipsBody''''''''' = +                                 LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                                  LT.new++++++mQuoteStatusReport :: FIXMessageSpec+mQuoteStatusReport = FMSpec+   { msName = "QuoteStatusReport"+   , msType = C.pack "AI"+   , msHeader = headerFIX44+   , msBody = mQuoteStatusReportBody+   , msTrailer = trailerFIX44 }+   where+   mQuoteStatusReportBody = +      LT.insert (tnum tQuoteStatusReqID) tQuoteStatusReqID $+      LT.insert (tnum tQuoteReqID) tQuoteReqID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tQuoteRespID) tQuoteRespID $+      LT.insert (tnum tQuoteType) tQuoteType $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tAgreementDesc) tAgreementDesc $+      LT.insert (tnum tAgreementID) tAgreementID $+      LT.insert (tnum tAgreementDate) tAgreementDate $+      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+      LT.insert (tnum tTerminationType) tTerminationType $+      LT.insert (tnum tStartDate) tStartDate $+      LT.insert (tnum tEndDate) tEndDate $+      LT.insert (tnum tDeliveryType) tDeliveryType $+      LT.insert (tnum tMarginRatio) tMarginRatio $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrderPercent) tOrderPercent $+      LT.insert (tnum tRoundingDirection) tRoundingDirection $+      LT.insert (tnum tRoundingModulus) tRoundingModulus $+      LT.insert (tnum tSettlType) tSettlType $+      LT.insert (tnum tSettlDate) tSettlDate $+      LT.insert (tnum tSettlDate2) tSettlDate2 $+      LT.insert (tnum tOrderQty2) tOrderQty2 $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tNoStipulations) gNoStipulations''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tNoQuoteQualifiers) gNoQuoteQualifiers''' $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+      LT.insert (tnum tYieldType) tYieldType $+      LT.insert (tnum tYield) tYield $+      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $+      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $+      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $+      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $+      LT.insert (tnum tBidPx) tBidPx $+      LT.insert (tnum tOfferPx) tOfferPx $+      LT.insert (tnum tMktBidPx) tMktBidPx $+      LT.insert (tnum tMktOfferPx) tMktOfferPx $+      LT.insert (tnum tMinBidSize) tMinBidSize $+      LT.insert (tnum tBidSize) tBidSize $+      LT.insert (tnum tMinOfferSize) tMinOfferSize $+      LT.insert (tnum tOfferSize) tOfferSize $+      LT.insert (tnum tValidUntilTime) tValidUntilTime $+      LT.insert (tnum tBidSpotRate) tBidSpotRate $+      LT.insert (tnum tOfferSpotRate) tOfferSpotRate $+      LT.insert (tnum tBidForwardPoints) tBidForwardPoints $+      LT.insert (tnum tOfferForwardPoints) tOfferForwardPoints $+      LT.insert (tnum tMidPx) tMidPx $+      LT.insert (tnum tBidYield) tBidYield $+      LT.insert (tnum tMidYield) tMidYield $+      LT.insert (tnum tOfferYield) tOfferYield $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tBidForwardPoints2) tBidForwardPoints2 $+      LT.insert (tnum tOfferForwardPoints2) tOfferForwardPoints2 $+      LT.insert (tnum tSettlCurrBidFxRate) tSettlCurrBidFxRate $+      LT.insert (tnum tSettlCurrOfferFxRate) tSettlCurrOfferFxRate $+      LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tQuoteStatus) tQuoteStatus $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $+               LT.insert (tnum tLegQty) tLegQty $+               LT.insert (tnum tLegSwapType) tLegSwapType $+               LT.insert (tnum tLegSettlType) tLegSettlType $+               LT.insert (tnum tLegSettlDate) tLegSettlDate $+               LT.insert (tnum tNoLegStipulations) gNoLegStipulations'''''' $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new++                  gNoLegStipulations'''''' = FIXTag+                     { tName = "NoLegStipulations"+                     , tnum = tnum tNoLegStipulations+                     , tparser = gNoLegStipulationsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec'''''' }++                  gNoLegStipulationsP'''''' = groupP gNoLegStipulationsSpec''''''+                  gNoLegStipulationsSpec'''''' = FGSpec+                     { gsLength = tNoLegStipulations+                     , gsSeperator = tLegStipulationType+                     , gsBody = gNoLegStipulationsBody'''''' }+                     where+                     gNoLegStipulationsBody'''''' = +                        LT.insert (tnum tLegStipulationValue) tLegStipulationValue                         LT.new++                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new+                        where+                           gNoNestedPartySubIDs''''''''' = FIXTag+                              { tName = "NoNestedPartySubIDs"+                              , tnum = tnum tNoNestedPartySubIDs+                              , tparser = gNoNestedPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }++                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''+                           gNoNestedPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartySubIDs+                              , gsSeperator = tNestedPartySubID+                              , gsBody = gNoNestedPartySubIDsBody''''''''' }+                              where+                              gNoNestedPartySubIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new++++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoQuoteQualifiers''' = FIXTag+            { tName = "NoQuoteQualifiers"+            , tnum = tnum tNoQuoteQualifiers+            , tparser = gNoQuoteQualifiersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoQuoteQualifiersSpec''' }++         gNoQuoteQualifiersP''' = groupP gNoQuoteQualifiersSpec'''+         gNoQuoteQualifiersSpec''' = FGSpec+            { gsLength = tNoQuoteQualifiers+            , gsSeperator = tQuoteQualifier+            , gsBody = gNoQuoteQualifiersBody''' }+            where+            gNoQuoteQualifiersBody''' = +               LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoStipulations''' = FIXTag+            { tName = "NoStipulations"+            , tnum = tnum tNoStipulations+            , tparser = gNoStipulationsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }++         gNoStipulationsP''' = groupP gNoStipulationsSpec'''+         gNoStipulationsSpec''' = FGSpec+            { gsLength = tNoStipulations+            , gsSeperator = tStipulationType+            , gsBody = gNoStipulationsBody''' }+            where+            gNoStipulationsBody''' = +               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mQuoteResponse :: FIXMessageSpec+mQuoteResponse = FMSpec+   { msName = "QuoteResponse"+   , msType = C.pack "AJ"+   , msHeader = headerFIX44+   , msBody = mQuoteResponseBody+   , msTrailer = trailerFIX44 }+   where+   mQuoteResponseBody = +      LT.insert (tnum tQuoteRespID) tQuoteRespID $+      LT.insert (tnum tQuoteID) tQuoteID $+      LT.insert (tnum tQuoteRespType) tQuoteRespType $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tOrderCapacity) tOrderCapacity $+      LT.insert (tnum tIOIID) tIOIID $+      LT.insert (tnum tQuoteType) tQuoteType $+      LT.insert (tnum tNoQuoteQualifiers) gNoQuoteQualifiers''' $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tAgreementDesc) tAgreementDesc $+      LT.insert (tnum tAgreementID) tAgreementID $+      LT.insert (tnum tAgreementDate) tAgreementDate $+      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+      LT.insert (tnum tTerminationType) tTerminationType $+      LT.insert (tnum tStartDate) tStartDate $+      LT.insert (tnum tEndDate) tEndDate $+      LT.insert (tnum tDeliveryType) tDeliveryType $+      LT.insert (tnum tMarginRatio) tMarginRatio $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tOrderQty) tOrderQty $+      LT.insert (tnum tCashOrderQty) tCashOrderQty $+      LT.insert (tnum tOrderPercent) tOrderPercent $+      LT.insert (tnum tRoundingDirection) tRoundingDirection $+      LT.insert (tnum tRoundingModulus) tRoundingModulus $+      LT.insert (tnum tSettlType) tSettlType $+      LT.insert (tnum tSettlDate) tSettlDate $+      LT.insert (tnum tSettlDate2) tSettlDate2 $+      LT.insert (tnum tOrderQty2) tOrderQty2 $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tNoStipulations) gNoStipulations''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tBidPx) tBidPx $+      LT.insert (tnum tOfferPx) tOfferPx $+      LT.insert (tnum tMktBidPx) tMktBidPx $+      LT.insert (tnum tMktOfferPx) tMktOfferPx $+      LT.insert (tnum tMinBidSize) tMinBidSize $+      LT.insert (tnum tBidSize) tBidSize $+      LT.insert (tnum tMinOfferSize) tMinOfferSize $+      LT.insert (tnum tOfferSize) tOfferSize $+      LT.insert (tnum tValidUntilTime) tValidUntilTime $+      LT.insert (tnum tBidSpotRate) tBidSpotRate $+      LT.insert (tnum tOfferSpotRate) tOfferSpotRate $+      LT.insert (tnum tBidForwardPoints) tBidForwardPoints $+      LT.insert (tnum tOfferForwardPoints) tOfferForwardPoints $+      LT.insert (tnum tMidPx) tMidPx $+      LT.insert (tnum tBidYield) tBidYield $+      LT.insert (tnum tMidYield) tMidYield $+      LT.insert (tnum tOfferYield) tOfferYield $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tOrdType) tOrdType $+      LT.insert (tnum tBidForwardPoints2) tBidForwardPoints2 $+      LT.insert (tnum tOfferForwardPoints2) tOfferForwardPoints2 $+      LT.insert (tnum tSettlCurrBidFxRate) tSettlCurrBidFxRate $+      LT.insert (tnum tSettlCurrOfferFxRate) tSettlCurrOfferFxRate $+      LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+      LT.insert (tnum tExDestination) tExDestination $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+      LT.insert (tnum tYieldType) tYieldType $+      LT.insert (tnum tYield) tYield $+      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $+      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $+      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $+      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $+               LT.insert (tnum tLegQty) tLegQty $+               LT.insert (tnum tLegSwapType) tLegSwapType $+               LT.insert (tnum tLegSettlType) tLegSettlType $+               LT.insert (tnum tLegSettlDate) tLegSettlDate $+               LT.insert (tnum tNoLegStipulations) gNoLegStipulations'''''' $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $+               LT.insert (tnum tLegPriceType) tLegPriceType $+               LT.insert (tnum tLegBidPx) tLegBidPx $+               LT.insert (tnum tLegOfferPx) tLegOfferPx $+               LT.insert (tnum tLegBenchmarkCurveCurrency) tLegBenchmarkCurveCurrency $+               LT.insert (tnum tLegBenchmarkCurveName) tLegBenchmarkCurveName $+               LT.insert (tnum tLegBenchmarkCurvePoint) tLegBenchmarkCurvePoint $+               LT.insert (tnum tLegBenchmarkPrice) tLegBenchmarkPrice $+               LT.insert (tnum tLegBenchmarkPriceType) tLegBenchmarkPriceType                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new++                  gNoLegStipulations'''''' = FIXTag+                     { tName = "NoLegStipulations"+                     , tnum = tnum tNoLegStipulations+                     , tparser = gNoLegStipulationsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec'''''' }++                  gNoLegStipulationsP'''''' = groupP gNoLegStipulationsSpec''''''+                  gNoLegStipulationsSpec'''''' = FGSpec+                     { gsLength = tNoLegStipulations+                     , gsSeperator = tLegStipulationType+                     , gsBody = gNoLegStipulationsBody'''''' }+                     where+                     gNoLegStipulationsBody'''''' = +                        LT.insert (tnum tLegStipulationValue) tLegStipulationValue                         LT.new++                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new+                        where+                           gNoNestedPartySubIDs''''''''' = FIXTag+                              { tName = "NoNestedPartySubIDs"+                              , tnum = tnum tNoNestedPartySubIDs+                              , tparser = gNoNestedPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }++                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''+                           gNoNestedPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartySubIDs+                              , gsSeperator = tNestedPartySubID+                              , gsBody = gNoNestedPartySubIDsBody''''''''' }+                              where+                              gNoNestedPartySubIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new++++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoQuoteQualifiers''' = FIXTag+            { tName = "NoQuoteQualifiers"+            , tnum = tnum tNoQuoteQualifiers+            , tparser = gNoQuoteQualifiersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoQuoteQualifiersSpec''' }++         gNoQuoteQualifiersP''' = groupP gNoQuoteQualifiersSpec'''+         gNoQuoteQualifiersSpec''' = FGSpec+            { gsLength = tNoQuoteQualifiers+            , gsSeperator = tQuoteQualifier+            , gsBody = gNoQuoteQualifiersBody''' }+            where+            gNoQuoteQualifiersBody''' = +               LT.new++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoStipulations''' = FIXTag+            { tName = "NoStipulations"+            , tnum = tnum tNoStipulations+            , tparser = gNoStipulationsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }++         gNoStipulationsP''' = groupP gNoStipulationsSpec'''+         gNoStipulationsSpec''' = FGSpec+            { gsLength = tNoStipulations+            , gsSeperator = tStipulationType+            , gsBody = gNoStipulationsBody''' }+            where+            gNoStipulationsBody''' = +               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mConfirmation :: FIXMessageSpec+mConfirmation = FMSpec+   { msName = "Confirmation"+   , msType = C.pack "AK"+   , msHeader = headerFIX44+   , msBody = mConfirmationBody+   , msTrailer = trailerFIX44 }+   where+   mConfirmationBody = +      LT.insert (tnum tConfirmID) tConfirmID $+      LT.insert (tnum tConfirmRefID) tConfirmRefID $+      LT.insert (tnum tConfirmReqID) tConfirmReqID $+      LT.insert (tnum tConfirmTransType) tConfirmTransType $+      LT.insert (tnum tConfirmType) tConfirmType $+      LT.insert (tnum tCopyMsgIndicator) tCopyMsgIndicator $+      LT.insert (tnum tLegalConfirm) tLegalConfirm $+      LT.insert (tnum tConfirmStatus) tConfirmStatus $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tNoOrders) gNoOrders''' $+      LT.insert (tnum tAllocID) tAllocID $+      LT.insert (tnum tSecondaryAllocID) tSecondaryAllocID $+      LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tNoTrdRegTimestamps) gNoTrdRegTimestamps''' $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tDeliveryForm) tDeliveryForm $+      LT.insert (tnum tPctAtRisk) tPctAtRisk $+      LT.insert (tnum tNoInstrAttrib) gNoInstrAttrib''' $+      LT.insert (tnum tAgreementDesc) tAgreementDesc $+      LT.insert (tnum tAgreementID) tAgreementID $+      LT.insert (tnum tAgreementDate) tAgreementDate $+      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+      LT.insert (tnum tTerminationType) tTerminationType $+      LT.insert (tnum tStartDate) tStartDate $+      LT.insert (tnum tEndDate) tEndDate $+      LT.insert (tnum tDeliveryType) tDeliveryType $+      LT.insert (tnum tMarginRatio) tMarginRatio $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tYieldType) tYieldType $+      LT.insert (tnum tYield) tYield $+      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $+      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $+      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $+      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $+      LT.insert (tnum tAllocQty) tAllocQty $+      LT.insert (tnum tQtyType) tQtyType $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tLastMkt) tLastMkt $+      LT.insert (tnum tNoCapacities) gNoCapacities''' $+      LT.insert (tnum tAllocAccount) tAllocAccount $+      LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $+      LT.insert (tnum tAllocAccountType) tAllocAccountType $+      LT.insert (tnum tAvgPx) tAvgPx $+      LT.insert (tnum tAvgPxPrecision) tAvgPxPrecision $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tAvgParPx) tAvgParPx $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+      LT.insert (tnum tReportedPx) tReportedPx $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tProcessCode) tProcessCode $+      LT.insert (tnum tGrossTradeAmt) tGrossTradeAmt $+      LT.insert (tnum tNumDaysInterest) tNumDaysInterest $+      LT.insert (tnum tExDate) tExDate $+      LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $+      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+      LT.insert (tnum tInterestAtMaturity) tInterestAtMaturity $+      LT.insert (tnum tEndAccruedInterestAmt) tEndAccruedInterestAmt $+      LT.insert (tnum tStartCash) tStartCash $+      LT.insert (tnum tEndCash) tEndCash $+      LT.insert (tnum tConcession) tConcession $+      LT.insert (tnum tTotalTakedown) tTotalTakedown $+      LT.insert (tnum tNetMoney) tNetMoney $+      LT.insert (tnum tMaturityNetMoney) tMaturityNetMoney $+      LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $+      LT.insert (tnum tSettlCurrency) tSettlCurrency $+      LT.insert (tnum tSettlCurrFxRate) tSettlCurrFxRate $+      LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $+      LT.insert (tnum tSettlType) tSettlType $+      LT.insert (tnum tSettlDate) tSettlDate $+      LT.insert (tnum tSettlDeliveryType) tSettlDeliveryType $+      LT.insert (tnum tStandInstDbType) tStandInstDbType $+      LT.insert (tnum tStandInstDbName) tStandInstDbName $+      LT.insert (tnum tStandInstDbID) tStandInstDbID $+      LT.insert (tnum tNoDlvyInst) gNoDlvyInst''' $+      LT.insert (tnum tCommission) tCommission $+      LT.insert (tnum tCommType) tCommType $+      LT.insert (tnum tCommCurrency) tCommCurrency $+      LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+      LT.insert (tnum tSharedCommission) tSharedCommission $+      LT.insert (tnum tNoStipulations) gNoStipulations''' $+      LT.insert (tnum tNoMiscFees) gNoMiscFees'''       LT.new+      where+         gNoCapacities''' = FIXTag+            { tName = "NoCapacities"+            , tnum = tnum tNoCapacities+            , tparser = gNoCapacitiesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoCapacitiesSpec''' }++         gNoCapacitiesP''' = groupP gNoCapacitiesSpec'''+         gNoCapacitiesSpec''' = FGSpec+            { gsLength = tNoCapacities+            , gsSeperator = tOrderCapacity+            , gsBody = gNoCapacitiesBody''' }+            where+            gNoCapacitiesBody''' = +               LT.insert (tnum tOrderRestrictions) tOrderRestrictions $+               LT.insert (tnum tOrderCapacityQty) tOrderCapacityQty                LT.new++         gNoDlvyInst''' = FIXTag+            { tName = "NoDlvyInst"+            , tnum = tnum tNoDlvyInst+            , tparser = gNoDlvyInstP'''+            , arbitraryValue = arbibtraryFIXGroup gNoDlvyInstSpec''' }++         gNoDlvyInstP''' = groupP gNoDlvyInstSpec'''+         gNoDlvyInstSpec''' = FGSpec+            { gsLength = tNoDlvyInst+            , gsSeperator = tSettlInstSource+            , gsBody = gNoDlvyInstBody''' }+            where+            gNoDlvyInstBody''' = +               LT.insert (tnum tDlvyInstType) tDlvyInstType $+               LT.insert (tnum tNoSettlPartyIDs) gNoSettlPartyIDs''''''                LT.new+               where+                  gNoSettlPartyIDs'''''' = FIXTag+                     { tName = "NoSettlPartyIDs"+                     , tnum = tnum tNoSettlPartyIDs+                     , tparser = gNoSettlPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSettlPartyIDsSpec'''''' }++                  gNoSettlPartyIDsP'''''' = groupP gNoSettlPartyIDsSpec''''''+                  gNoSettlPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoSettlPartyIDs+                     , gsSeperator = tSettlPartyID+                     , gsBody = gNoSettlPartyIDsBody'''''' }+                     where+                     gNoSettlPartyIDsBody'''''' = +                        LT.insert (tnum tSettlPartyIDSource) tSettlPartyIDSource $+                        LT.insert (tnum tSettlPartyRole) tSettlPartyRole $+                        LT.insert (tnum tNoSettlPartySubIDs) gNoSettlPartySubIDs'''''''''                         LT.new+                        where+                           gNoSettlPartySubIDs''''''''' = FIXTag+                              { tName = "NoSettlPartySubIDs"+                              , tnum = tnum tNoSettlPartySubIDs+                              , tparser = gNoSettlPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoSettlPartySubIDsSpec''''''''' }++                           gNoSettlPartySubIDsP''''''''' = groupP gNoSettlPartySubIDsSpec'''''''''+                           gNoSettlPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoSettlPartySubIDs+                              , gsSeperator = tSettlPartySubID+                              , gsBody = gNoSettlPartySubIDsBody''''''''' }+                              where+                              gNoSettlPartySubIDsBody''''''''' = +                                 LT.insert (tnum tSettlPartySubIDType) tSettlPartySubIDType                                  LT.new++++         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoInstrAttrib''' = FIXTag+            { tName = "NoInstrAttrib"+            , tnum = tnum tNoInstrAttrib+            , tparser = gNoInstrAttribP'''+            , arbitraryValue = arbibtraryFIXGroup gNoInstrAttribSpec''' }++         gNoInstrAttribP''' = groupP gNoInstrAttribSpec'''+         gNoInstrAttribSpec''' = FGSpec+            { gsLength = tNoInstrAttrib+            , gsSeperator = tInstrAttribType+            , gsBody = gNoInstrAttribBody''' }+            where+            gNoInstrAttribBody''' = +               LT.insert (tnum tInstrAttribValue) tInstrAttribValue                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoMiscFees''' = FIXTag+            { tName = "NoMiscFees"+            , tnum = tnum tNoMiscFees+            , tparser = gNoMiscFeesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec''' }++         gNoMiscFeesP''' = groupP gNoMiscFeesSpec'''+         gNoMiscFeesSpec''' = FGSpec+            { gsLength = tNoMiscFees+            , gsSeperator = tMiscFeeAmt+            , gsBody = gNoMiscFeesBody''' }+            where+            gNoMiscFeesBody''' = +               LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $+               LT.insert (tnum tMiscFeeType) tMiscFeeType $+               LT.insert (tnum tMiscFeeBasis) tMiscFeeBasis                LT.new++         gNoOrders''' = FIXTag+            { tName = "NoOrders"+            , tnum = tnum tNoOrders+            , tparser = gNoOrdersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoOrdersSpec''' }++         gNoOrdersP''' = groupP gNoOrdersSpec'''+         gNoOrdersSpec''' = FGSpec+            { gsLength = tNoOrders+            , gsSeperator = tClOrdID+            , gsBody = gNoOrdersBody''' }+            where+            gNoOrdersBody''' = +               LT.insert (tnum tOrderID) tOrderID $+               LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+               LT.insert (tnum tListID) tListID $+               LT.insert (tnum tNoNested2PartyIDs) gNoNested2PartyIDs'''''' $+               LT.insert (tnum tOrderQty) tOrderQty $+               LT.insert (tnum tOrderAvgPx) tOrderAvgPx $+               LT.insert (tnum tOrderBookingQty) tOrderBookingQty                LT.new+               where+                  gNoNested2PartyIDs'''''' = FIXTag+                     { tName = "NoNested2PartyIDs"+                     , tnum = tnum tNoNested2PartyIDs+                     , tparser = gNoNested2PartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNested2PartyIDsSpec'''''' }++                  gNoNested2PartyIDsP'''''' = groupP gNoNested2PartyIDsSpec''''''+                  gNoNested2PartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNested2PartyIDs+                     , gsSeperator = tNested2PartyID+                     , gsBody = gNoNested2PartyIDsBody'''''' }+                     where+                     gNoNested2PartyIDsBody'''''' = +                        LT.insert (tnum tNested2PartyIDSource) tNested2PartyIDSource $+                        LT.insert (tnum tNested2PartyRole) tNested2PartyRole $+                        LT.insert (tnum tNoNested2PartySubIDs) gNoNested2PartySubIDs'''''''''                         LT.new+                        where+                           gNoNested2PartySubIDs''''''''' = FIXTag+                              { tName = "NoNested2PartySubIDs"+                              , tnum = tnum tNoNested2PartySubIDs+                              , tparser = gNoNested2PartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNested2PartySubIDsSpec''''''''' }++                           gNoNested2PartySubIDsP''''''''' = groupP gNoNested2PartySubIDsSpec'''''''''+                           gNoNested2PartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNested2PartySubIDs+                              , gsSeperator = tNested2PartySubID+                              , gsBody = gNoNested2PartySubIDsBody''''''''' }+                              where+                              gNoNested2PartySubIDsBody''''''''' = +                                 LT.insert (tnum tNested2PartySubIDType) tNested2PartySubIDType                                  LT.new++++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoStipulations''' = FIXTag+            { tName = "NoStipulations"+            , tnum = tnum tNoStipulations+            , tparser = gNoStipulationsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }++         gNoStipulationsP''' = groupP gNoStipulationsSpec'''+         gNoStipulationsSpec''' = FGSpec+            { gsLength = tNoStipulations+            , gsSeperator = tStipulationType+            , gsBody = gNoStipulationsBody''' }+            where+            gNoStipulationsBody''' = +               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new++         gNoTrdRegTimestamps''' = FIXTag+            { tName = "NoTrdRegTimestamps"+            , tnum = tnum tNoTrdRegTimestamps+            , tparser = gNoTrdRegTimestampsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTrdRegTimestampsSpec''' }++         gNoTrdRegTimestampsP''' = groupP gNoTrdRegTimestampsSpec'''+         gNoTrdRegTimestampsSpec''' = FGSpec+            { gsLength = tNoTrdRegTimestamps+            , gsSeperator = tTrdRegTimestamp+            , gsBody = gNoTrdRegTimestampsBody''' }+            where+            gNoTrdRegTimestampsBody''' = +               LT.insert (tnum tTrdRegTimestampType) tTrdRegTimestampType $+               LT.insert (tnum tTrdRegTimestampOrigin) tTrdRegTimestampOrigin                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mPositionMaintenanceRequest :: FIXMessageSpec+mPositionMaintenanceRequest = FMSpec+   { msName = "PositionMaintenanceRequest"+   , msType = C.pack "AL"+   , msHeader = headerFIX44+   , msBody = mPositionMaintenanceRequestBody+   , msTrailer = trailerFIX44 }+   where+   mPositionMaintenanceRequestBody = +      LT.insert (tnum tPosReqID) tPosReqID $+      LT.insert (tnum tPosTransType) tPosTransType $+      LT.insert (tnum tPosMaintAction) tPosMaintAction $+      LT.insert (tnum tOrigPosReqRefID) tOrigPosReqRefID $+      LT.insert (tnum tPosMaintRptRefID) tPosMaintRptRefID $+      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $+      LT.insert (tnum tSettlSessID) tSettlSessID $+      LT.insert (tnum tSettlSessSubID) tSettlSessSubID $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tNoPositions) gNoPositions''' $+      LT.insert (tnum tAdjustmentType) tAdjustmentType $+      LT.insert (tnum tContraryInstructionIndicator) tContraryInstructionIndicator $+      LT.insert (tnum tPriorSpreadIndicator) tPriorSpreadIndicator $+      LT.insert (tnum tThresholdAmount) tThresholdAmount $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoPositions''' = FIXTag+            { tName = "NoPositions"+            , tnum = tnum tNoPositions+            , tparser = gNoPositionsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPositionsSpec''' }++         gNoPositionsP''' = groupP gNoPositionsSpec'''+         gNoPositionsSpec''' = FGSpec+            { gsLength = tNoPositions+            , gsSeperator = tPosType+            , gsBody = gNoPositionsBody''' }+            where+            gNoPositionsBody''' = +               LT.insert (tnum tLongQty) tLongQty $+               LT.insert (tnum tShortQty) tShortQty $+               LT.insert (tnum tPosQtyStatus) tPosQtyStatus $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''                LT.new+               where+                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new+                        where+                           gNoNestedPartySubIDs''''''''' = FIXTag+                              { tName = "NoNestedPartySubIDs"+                              , tnum = tnum tNoNestedPartySubIDs+                              , tparser = gNoNestedPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }++                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''+                           gNoNestedPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartySubIDs+                              , gsSeperator = tNestedPartySubID+                              , gsBody = gNoNestedPartySubIDsBody''''''''' }+                              where+                              gNoNestedPartySubIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new++++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoTradingSessions''' = FIXTag+            { tName = "NoTradingSessions"+            , tnum = tnum tNoTradingSessions+            , tparser = gNoTradingSessionsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }++         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''+         gNoTradingSessionsSpec''' = FGSpec+            { gsLength = tNoTradingSessions+            , gsSeperator = tTradingSessionID+            , gsBody = gNoTradingSessionsBody''' }+            where+            gNoTradingSessionsBody''' = +               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mPositionMaintenanceReport :: FIXMessageSpec+mPositionMaintenanceReport = FMSpec+   { msName = "PositionMaintenanceReport"+   , msType = C.pack "AM"+   , msHeader = headerFIX44+   , msBody = mPositionMaintenanceReportBody+   , msTrailer = trailerFIX44 }+   where+   mPositionMaintenanceReportBody = +      LT.insert (tnum tPosMaintRptID) tPosMaintRptID $+      LT.insert (tnum tPosTransType) tPosTransType $+      LT.insert (tnum tPosReqID) tPosReqID $+      LT.insert (tnum tPosMaintAction) tPosMaintAction $+      LT.insert (tnum tOrigPosReqRefID) tOrigPosReqRefID $+      LT.insert (tnum tPosMaintStatus) tPosMaintStatus $+      LT.insert (tnum tPosMaintResult) tPosMaintResult $+      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $+      LT.insert (tnum tSettlSessID) tSettlSessID $+      LT.insert (tnum tSettlSessSubID) tSettlSessSubID $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tNoPositions) gNoPositions''' $+      LT.insert (tnum tNoPosAmt) gNoPosAmt''' $+      LT.insert (tnum tAdjustmentType) tAdjustmentType $+      LT.insert (tnum tThresholdAmount) tThresholdAmount $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoPosAmt''' = FIXTag+            { tName = "NoPosAmt"+            , tnum = tnum tNoPosAmt+            , tparser = gNoPosAmtP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPosAmtSpec''' }++         gNoPosAmtP''' = groupP gNoPosAmtSpec'''+         gNoPosAmtSpec''' = FGSpec+            { gsLength = tNoPosAmt+            , gsSeperator = tPosAmtType+            , gsBody = gNoPosAmtBody''' }+            where+            gNoPosAmtBody''' = +               LT.insert (tnum tPosAmt) tPosAmt                LT.new++         gNoPositions''' = FIXTag+            { tName = "NoPositions"+            , tnum = tnum tNoPositions+            , tparser = gNoPositionsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPositionsSpec''' }++         gNoPositionsP''' = groupP gNoPositionsSpec'''+         gNoPositionsSpec''' = FGSpec+            { gsLength = tNoPositions+            , gsSeperator = tPosType+            , gsBody = gNoPositionsBody''' }+            where+            gNoPositionsBody''' = +               LT.insert (tnum tLongQty) tLongQty $+               LT.insert (tnum tShortQty) tShortQty $+               LT.insert (tnum tPosQtyStatus) tPosQtyStatus $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''                LT.new+               where+                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new+                        where+                           gNoNestedPartySubIDs''''''''' = FIXTag+                              { tName = "NoNestedPartySubIDs"+                              , tnum = tnum tNoNestedPartySubIDs+                              , tparser = gNoNestedPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }++                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''+                           gNoNestedPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartySubIDs+                              , gsSeperator = tNestedPartySubID+                              , gsBody = gNoNestedPartySubIDsBody''''''''' }+                              where+                              gNoNestedPartySubIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new++++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoTradingSessions''' = FIXTag+            { tName = "NoTradingSessions"+            , tnum = tnum tNoTradingSessions+            , tparser = gNoTradingSessionsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }++         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''+         gNoTradingSessionsSpec''' = FGSpec+            { gsLength = tNoTradingSessions+            , gsSeperator = tTradingSessionID+            , gsBody = gNoTradingSessionsBody''' }+            where+            gNoTradingSessionsBody''' = +               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mRequestForPositions :: FIXMessageSpec+mRequestForPositions = FMSpec+   { msName = "RequestForPositions"+   , msType = C.pack "AN"+   , msHeader = headerFIX44+   , msBody = mRequestForPositionsBody+   , msTrailer = trailerFIX44 }+   where+   mRequestForPositionsBody = +      LT.insert (tnum tPosReqID) tPosReqID $+      LT.insert (tnum tPosReqType) tPosReqType $+      LT.insert (tnum tMatchStatus) tMatchStatus $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $+      LT.insert (tnum tSettlSessID) tSettlSessID $+      LT.insert (tnum tSettlSessSubID) tSettlSessSubID $+      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tResponseTransportType) tResponseTransportType $+      LT.insert (tnum tResponseDestination) tResponseDestination $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoTradingSessions''' = FIXTag+            { tName = "NoTradingSessions"+            , tnum = tnum tNoTradingSessions+            , tparser = gNoTradingSessionsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }++         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''+         gNoTradingSessionsSpec''' = FGSpec+            { gsLength = tNoTradingSessions+            , gsSeperator = tTradingSessionID+            , gsBody = gNoTradingSessionsBody''' }+            where+            gNoTradingSessionsBody''' = +               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mRequestForPositionsAck :: FIXMessageSpec+mRequestForPositionsAck = FMSpec+   { msName = "RequestForPositionsAck"+   , msType = C.pack "AO"+   , msHeader = headerFIX44+   , msBody = mRequestForPositionsAckBody+   , msTrailer = trailerFIX44 }+   where+   mRequestForPositionsAckBody = +      LT.insert (tnum tPosMaintRptID) tPosMaintRptID $+      LT.insert (tnum tPosReqID) tPosReqID $+      LT.insert (tnum tTotalNumPosReports) tTotalNumPosReports $+      LT.insert (tnum tUnsolicitedIndicator) tUnsolicitedIndicator $+      LT.insert (tnum tPosReqResult) tPosReqResult $+      LT.insert (tnum tPosReqStatus) tPosReqStatus $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tResponseTransportType) tResponseTransportType $+      LT.insert (tnum tResponseDestination) tResponseDestination $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mPositionReport :: FIXMessageSpec+mPositionReport = FMSpec+   { msName = "PositionReport"+   , msType = C.pack "AP"+   , msHeader = headerFIX44+   , msBody = mPositionReportBody+   , msTrailer = trailerFIX44 }+   where+   mPositionReportBody = +      LT.insert (tnum tPosMaintRptID) tPosMaintRptID $+      LT.insert (tnum tPosReqID) tPosReqID $+      LT.insert (tnum tPosReqType) tPosReqType $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $+      LT.insert (tnum tTotalNumPosReports) tTotalNumPosReports $+      LT.insert (tnum tUnsolicitedIndicator) tUnsolicitedIndicator $+      LT.insert (tnum tPosReqResult) tPosReqResult $+      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $+      LT.insert (tnum tSettlSessID) tSettlSessID $+      LT.insert (tnum tSettlSessSubID) tSettlSessSubID $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tSettlPrice) tSettlPrice $+      LT.insert (tnum tSettlPriceType) tSettlPriceType $+      LT.insert (tnum tPriorSettlPrice) tPriorSettlPrice $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tNoPositions) gNoPositions''' $+      LT.insert (tnum tNoPosAmt) gNoPosAmt''' $+      LT.insert (tnum tRegistStatus) tRegistStatus $+      LT.insert (tnum tDeliveryDate) tDeliveryDate $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoPosAmt''' = FIXTag+            { tName = "NoPosAmt"+            , tnum = tnum tNoPosAmt+            , tparser = gNoPosAmtP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPosAmtSpec''' }++         gNoPosAmtP''' = groupP gNoPosAmtSpec'''+         gNoPosAmtSpec''' = FGSpec+            { gsLength = tNoPosAmt+            , gsSeperator = tPosAmtType+            , gsBody = gNoPosAmtBody''' }+            where+            gNoPosAmtBody''' = +               LT.insert (tnum tPosAmt) tPosAmt                LT.new++         gNoPositions''' = FIXTag+            { tName = "NoPositions"+            , tnum = tnum tNoPositions+            , tparser = gNoPositionsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPositionsSpec''' }++         gNoPositionsP''' = groupP gNoPositionsSpec'''+         gNoPositionsSpec''' = FGSpec+            { gsLength = tNoPositions+            , gsSeperator = tPosType+            , gsBody = gNoPositionsBody''' }+            where+            gNoPositionsBody''' = +               LT.insert (tnum tLongQty) tLongQty $+               LT.insert (tnum tShortQty) tShortQty $+               LT.insert (tnum tPosQtyStatus) tPosQtyStatus $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''                LT.new+               where+                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new+                        where+                           gNoNestedPartySubIDs''''''''' = FIXTag+                              { tName = "NoNestedPartySubIDs"+                              , tnum = tnum tNoNestedPartySubIDs+                              , tparser = gNoNestedPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }++                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''+                           gNoNestedPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartySubIDs+                              , gsSeperator = tNestedPartySubID+                              , gsBody = gNoNestedPartySubIDsBody''''''''' }+                              where+                              gNoNestedPartySubIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new++++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''' $+               LT.insert (tnum tUnderlyingSettlPrice) tUnderlyingSettlPrice $+               LT.insert (tnum tUnderlyingSettlPriceType) tUnderlyingSettlPriceType                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mTradeCaptureReportRequestAck :: FIXMessageSpec+mTradeCaptureReportRequestAck = FMSpec+   { msName = "TradeCaptureReportRequestAck"+   , msType = C.pack "AQ"+   , msHeader = headerFIX44+   , msBody = mTradeCaptureReportRequestAckBody+   , msTrailer = trailerFIX44 }+   where+   mTradeCaptureReportRequestAckBody = +      LT.insert (tnum tTradeRequestID) tTradeRequestID $+      LT.insert (tnum tTradeRequestType) tTradeRequestType $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $+      LT.insert (tnum tTotNumTradeReports) tTotNumTradeReports $+      LT.insert (tnum tTradeRequestResult) tTradeRequestResult $+      LT.insert (tnum tTradeRequestStatus) tTradeRequestStatus $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tMultiLegReportingType) tMultiLegReportingType $+      LT.insert (tnum tResponseTransportType) tResponseTransportType $+      LT.insert (tnum tResponseDestination) tResponseDestination $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mTradeCaptureReportAck :: FIXMessageSpec+mTradeCaptureReportAck = FMSpec+   { msName = "TradeCaptureReportAck"+   , msType = C.pack "AR"+   , msHeader = headerFIX44+   , msBody = mTradeCaptureReportAckBody+   , msTrailer = trailerFIX44 }+   where+   mTradeCaptureReportAckBody = +      LT.insert (tnum tTradeReportID) tTradeReportID $+      LT.insert (tnum tTradeReportTransType) tTradeReportTransType $+      LT.insert (tnum tTradeReportType) tTradeReportType $+      LT.insert (tnum tTrdType) tTrdType $+      LT.insert (tnum tTrdSubType) tTrdSubType $+      LT.insert (tnum tSecondaryTrdType) tSecondaryTrdType $+      LT.insert (tnum tTransferReason) tTransferReason $+      LT.insert (tnum tExecType) tExecType $+      LT.insert (tnum tTradeReportRefID) tTradeReportRefID $+      LT.insert (tnum tSecondaryTradeReportRefID) tSecondaryTradeReportRefID $+      LT.insert (tnum tTrdRptStatus) tTrdRptStatus $+      LT.insert (tnum tTradeReportRejectReason) tTradeReportRejectReason $+      LT.insert (tnum tSecondaryTradeReportID) tSecondaryTradeReportID $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $+      LT.insert (tnum tTradeLinkID) tTradeLinkID $+      LT.insert (tnum tTrdMatchID) tTrdMatchID $+      LT.insert (tnum tExecID) tExecID $+      LT.insert (tnum tSecondaryExecID) tSecondaryExecID $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tNoTrdRegTimestamps) gNoTrdRegTimestamps''' $+      LT.insert (tnum tResponseTransportType) tResponseTransportType $+      LT.insert (tnum tResponseDestination) tResponseDestination $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+      LT.insert (tnum tOrderCapacity) tOrderCapacity $+      LT.insert (tnum tOrderRestrictions) tOrderRestrictions $+      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAcctIDSource) tAcctIDSource $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tPositionEffect) tPositionEffect $+      LT.insert (tnum tPreallocMethod) tPreallocMethod $+      LT.insert (tnum tNoAllocs) gNoAllocs'''       LT.new+      where+         gNoAllocs''' = FIXTag+            { tName = "NoAllocs"+            , tnum = tnum tNoAllocs+            , tparser = gNoAllocsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }++         gNoAllocsP''' = groupP gNoAllocsSpec'''+         gNoAllocsSpec''' = FGSpec+            { gsLength = tNoAllocs+            , gsSeperator = tAllocAccount+            , gsBody = gNoAllocsBody''' }+            where+            gNoAllocsBody''' = +               LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $+               LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $+               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+               LT.insert (tnum tNoNested2PartyIDs) gNoNested2PartyIDs'''''' $+               LT.insert (tnum tAllocQty) tAllocQty                LT.new+               where+                  gNoNested2PartyIDs'''''' = FIXTag+                     { tName = "NoNested2PartyIDs"+                     , tnum = tnum tNoNested2PartyIDs+                     , tparser = gNoNested2PartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNested2PartyIDsSpec'''''' }++                  gNoNested2PartyIDsP'''''' = groupP gNoNested2PartyIDsSpec''''''+                  gNoNested2PartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNested2PartyIDs+                     , gsSeperator = tNested2PartyID+                     , gsBody = gNoNested2PartyIDsBody'''''' }+                     where+                     gNoNested2PartyIDsBody'''''' = +                        LT.insert (tnum tNested2PartyIDSource) tNested2PartyIDSource $+                        LT.insert (tnum tNested2PartyRole) tNested2PartyRole $+                        LT.insert (tnum tNoNested2PartySubIDs) gNoNested2PartySubIDs'''''''''                         LT.new+                        where+                           gNoNested2PartySubIDs''''''''' = FIXTag+                              { tName = "NoNested2PartySubIDs"+                              , tnum = tnum tNoNested2PartySubIDs+                              , tparser = gNoNested2PartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNested2PartySubIDsSpec''''''''' }++                           gNoNested2PartySubIDsP''''''''' = groupP gNoNested2PartySubIDsSpec'''''''''+                           gNoNested2PartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNested2PartySubIDs+                              , gsSeperator = tNested2PartySubID+                              , gsBody = gNoNested2PartySubIDsBody''''''''' }+                              where+                              gNoNested2PartySubIDsBody''''''''' = +                                 LT.insert (tnum tNested2PartySubIDType) tNested2PartySubIDType                                  LT.new++++         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $+               LT.insert (tnum tLegQty) tLegQty $+               LT.insert (tnum tLegSwapType) tLegSwapType $+               LT.insert (tnum tNoLegStipulations) gNoLegStipulations'''''' $+               LT.insert (tnum tLegPositionEffect) tLegPositionEffect $+               LT.insert (tnum tLegCoveredOrUncovered) tLegCoveredOrUncovered $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $+               LT.insert (tnum tLegRefID) tLegRefID $+               LT.insert (tnum tLegPrice) tLegPrice $+               LT.insert (tnum tLegSettlType) tLegSettlType $+               LT.insert (tnum tLegSettlDate) tLegSettlDate $+               LT.insert (tnum tLegLastPx) tLegLastPx                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new++                  gNoLegStipulations'''''' = FIXTag+                     { tName = "NoLegStipulations"+                     , tnum = tnum tNoLegStipulations+                     , tparser = gNoLegStipulationsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec'''''' }++                  gNoLegStipulationsP'''''' = groupP gNoLegStipulationsSpec''''''+                  gNoLegStipulationsSpec'''''' = FGSpec+                     { gsLength = tNoLegStipulations+                     , gsSeperator = tLegStipulationType+                     , gsBody = gNoLegStipulationsBody'''''' }+                     where+                     gNoLegStipulationsBody'''''' = +                        LT.insert (tnum tLegStipulationValue) tLegStipulationValue                         LT.new++                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new+                        where+                           gNoNestedPartySubIDs''''''''' = FIXTag+                              { tName = "NoNestedPartySubIDs"+                              , tnum = tnum tNoNestedPartySubIDs+                              , tparser = gNoNestedPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }++                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''+                           gNoNestedPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartySubIDs+                              , gsSeperator = tNestedPartySubID+                              , gsBody = gNoNestedPartySubIDsBody''''''''' }+                              where+                              gNoNestedPartySubIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new++++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoTrdRegTimestamps''' = FIXTag+            { tName = "NoTrdRegTimestamps"+            , tnum = tnum tNoTrdRegTimestamps+            , tparser = gNoTrdRegTimestampsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTrdRegTimestampsSpec''' }++         gNoTrdRegTimestampsP''' = groupP gNoTrdRegTimestampsSpec'''+         gNoTrdRegTimestampsSpec''' = FGSpec+            { gsLength = tNoTrdRegTimestamps+            , gsSeperator = tTrdRegTimestamp+            , gsBody = gNoTrdRegTimestampsBody''' }+            where+            gNoTrdRegTimestampsBody''' = +               LT.insert (tnum tTrdRegTimestampType) tTrdRegTimestampType $+               LT.insert (tnum tTrdRegTimestampOrigin) tTrdRegTimestampOrigin                LT.new++++mAllocationReport :: FIXMessageSpec+mAllocationReport = FMSpec+   { msName = "AllocationReport"+   , msType = C.pack "AS"+   , msHeader = headerFIX44+   , msBody = mAllocationReportBody+   , msTrailer = trailerFIX44 }+   where+   mAllocationReportBody = +      LT.insert (tnum tAllocReportID) tAllocReportID $+      LT.insert (tnum tAllocID) tAllocID $+      LT.insert (tnum tAllocTransType) tAllocTransType $+      LT.insert (tnum tAllocReportRefID) tAllocReportRefID $+      LT.insert (tnum tAllocCancReplaceReason) tAllocCancReplaceReason $+      LT.insert (tnum tSecondaryAllocID) tSecondaryAllocID $+      LT.insert (tnum tAllocReportType) tAllocReportType $+      LT.insert (tnum tAllocStatus) tAllocStatus $+      LT.insert (tnum tAllocRejCode) tAllocRejCode $+      LT.insert (tnum tRefAllocID) tRefAllocID $+      LT.insert (tnum tAllocIntermedReqType) tAllocIntermedReqType $+      LT.insert (tnum tAllocLinkID) tAllocLinkID $+      LT.insert (tnum tAllocLinkType) tAllocLinkType $+      LT.insert (tnum tBookingRefID) tBookingRefID $+      LT.insert (tnum tAllocNoOrdersType) tAllocNoOrdersType $+      LT.insert (tnum tNoOrders) gNoOrders''' $+      LT.insert (tnum tNoExecs) gNoExecs''' $+      LT.insert (tnum tPreviouslyReported) tPreviouslyReported $+      LT.insert (tnum tReversalIndicator) tReversalIndicator $+      LT.insert (tnum tMatchType) tMatchType $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tDeliveryForm) tDeliveryForm $+      LT.insert (tnum tPctAtRisk) tPctAtRisk $+      LT.insert (tnum tNoInstrAttrib) gNoInstrAttrib''' $+      LT.insert (tnum tAgreementDesc) tAgreementDesc $+      LT.insert (tnum tAgreementID) tAgreementID $+      LT.insert (tnum tAgreementDate) tAgreementDate $+      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+      LT.insert (tnum tTerminationType) tTerminationType $+      LT.insert (tnum tStartDate) tStartDate $+      LT.insert (tnum tEndDate) tEndDate $+      LT.insert (tnum tDeliveryType) tDeliveryType $+      LT.insert (tnum tMarginRatio) tMarginRatio $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tQuantity) tQuantity $+      LT.insert (tnum tQtyType) tQtyType $+      LT.insert (tnum tLastMkt) tLastMkt $+      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tAvgPx) tAvgPx $+      LT.insert (tnum tAvgParPx) tAvgParPx $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tAvgPxPrecision) tAvgPxPrecision $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tSettlType) tSettlType $+      LT.insert (tnum tSettlDate) tSettlDate $+      LT.insert (tnum tBookingType) tBookingType $+      LT.insert (tnum tGrossTradeAmt) tGrossTradeAmt $+      LT.insert (tnum tConcession) tConcession $+      LT.insert (tnum tTotalTakedown) tTotalTakedown $+      LT.insert (tnum tNetMoney) tNetMoney $+      LT.insert (tnum tPositionEffect) tPositionEffect $+      LT.insert (tnum tAutoAcceptIndicator) tAutoAcceptIndicator $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tNumDaysInterest) tNumDaysInterest $+      LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $+      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+      LT.insert (tnum tTotalAccruedInterestAmt) tTotalAccruedInterestAmt $+      LT.insert (tnum tInterestAtMaturity) tInterestAtMaturity $+      LT.insert (tnum tEndAccruedInterestAmt) tEndAccruedInterestAmt $+      LT.insert (tnum tStartCash) tStartCash $+      LT.insert (tnum tEndCash) tEndCash $+      LT.insert (tnum tLegalConfirm) tLegalConfirm $+      LT.insert (tnum tNoStipulations) gNoStipulations''' $+      LT.insert (tnum tYieldType) tYieldType $+      LT.insert (tnum tYield) tYield $+      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $+      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $+      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $+      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $+      LT.insert (tnum tTotNoAllocs) tTotNoAllocs $+      LT.insert (tnum tLastFragment) tLastFragment $+      LT.insert (tnum tNoAllocs) gNoAllocs'''       LT.new+      where+         gNoAllocs''' = FIXTag+            { tName = "NoAllocs"+            , tnum = tnum tNoAllocs+            , tparser = gNoAllocsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }++         gNoAllocsP''' = groupP gNoAllocsSpec'''+         gNoAllocsSpec''' = FGSpec+            { gsLength = tNoAllocs+            , gsSeperator = tAllocAccount+            , gsBody = gNoAllocsBody''' }+            where+            gNoAllocsBody''' = +               LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $+               LT.insert (tnum tMatchStatus) tMatchStatus $+               LT.insert (tnum tAllocPrice) tAllocPrice $+               LT.insert (tnum tAllocQty) tAllocQty $+               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+               LT.insert (tnum tProcessCode) tProcessCode $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $+               LT.insert (tnum tNotifyBrokerOfCredit) tNotifyBrokerOfCredit $+               LT.insert (tnum tAllocHandlInst) tAllocHandlInst $+               LT.insert (tnum tAllocText) tAllocText $+               LT.insert (tnum tEncodedAllocTextLen) tEncodedAllocTextLen $+               LT.insert (tnum tEncodedAllocText) tEncodedAllocText $+               LT.insert (tnum tCommission) tCommission $+               LT.insert (tnum tCommType) tCommType $+               LT.insert (tnum tCommCurrency) tCommCurrency $+               LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+               LT.insert (tnum tAllocAvgPx) tAllocAvgPx $+               LT.insert (tnum tAllocNetMoney) tAllocNetMoney $+               LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $+               LT.insert (tnum tAllocSettlCurrAmt) tAllocSettlCurrAmt $+               LT.insert (tnum tSettlCurrency) tSettlCurrency $+               LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $+               LT.insert (tnum tSettlCurrFxRate) tSettlCurrFxRate $+               LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $+               LT.insert (tnum tAllocAccruedInterestAmt) tAllocAccruedInterestAmt $+               LT.insert (tnum tAllocInterestAtMaturity) tAllocInterestAtMaturity $+               LT.insert (tnum tNoMiscFees) gNoMiscFees'''''' $+               LT.insert (tnum tNoClearingInstructions) gNoClearingInstructions'''''' $+               LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+               LT.insert (tnum tAllocSettlInstType) tAllocSettlInstType $+               LT.insert (tnum tSettlDeliveryType) tSettlDeliveryType $+               LT.insert (tnum tStandInstDbType) tStandInstDbType $+               LT.insert (tnum tStandInstDbName) tStandInstDbName $+               LT.insert (tnum tStandInstDbID) tStandInstDbID $+               LT.insert (tnum tNoDlvyInst) gNoDlvyInst''''''                LT.new+               where+                  gNoClearingInstructions'''''' = FIXTag+                     { tName = "NoClearingInstructions"+                     , tnum = tnum tNoClearingInstructions+                     , tparser = gNoClearingInstructionsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoClearingInstructionsSpec'''''' }++                  gNoClearingInstructionsP'''''' = groupP gNoClearingInstructionsSpec''''''+                  gNoClearingInstructionsSpec'''''' = FGSpec+                     { gsLength = tNoClearingInstructions+                     , gsSeperator = tClearingInstruction+                     , gsBody = gNoClearingInstructionsBody'''''' }+                     where+                     gNoClearingInstructionsBody'''''' = +                        LT.new++                  gNoDlvyInst'''''' = FIXTag+                     { tName = "NoDlvyInst"+                     , tnum = tnum tNoDlvyInst+                     , tparser = gNoDlvyInstP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoDlvyInstSpec'''''' }++                  gNoDlvyInstP'''''' = groupP gNoDlvyInstSpec''''''+                  gNoDlvyInstSpec'''''' = FGSpec+                     { gsLength = tNoDlvyInst+                     , gsSeperator = tSettlInstSource+                     , gsBody = gNoDlvyInstBody'''''' }+                     where+                     gNoDlvyInstBody'''''' = +                        LT.insert (tnum tDlvyInstType) tDlvyInstType $+                        LT.insert (tnum tNoSettlPartyIDs) gNoSettlPartyIDs'''''''''                         LT.new+                        where+                           gNoSettlPartyIDs''''''''' = FIXTag+                              { tName = "NoSettlPartyIDs"+                              , tnum = tnum tNoSettlPartyIDs+                              , tparser = gNoSettlPartyIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoSettlPartyIDsSpec''''''''' }++                           gNoSettlPartyIDsP''''''''' = groupP gNoSettlPartyIDsSpec'''''''''+                           gNoSettlPartyIDsSpec''''''''' = FGSpec+                              { gsLength = tNoSettlPartyIDs+                              , gsSeperator = tSettlPartyID+                              , gsBody = gNoSettlPartyIDsBody''''''''' }+                              where+                              gNoSettlPartyIDsBody''''''''' = +                                 LT.insert (tnum tSettlPartyIDSource) tSettlPartyIDSource $+                                 LT.insert (tnum tSettlPartyRole) tSettlPartyRole $+                                 LT.insert (tnum tNoSettlPartySubIDs) gNoSettlPartySubIDs''''''''''''                                  LT.new+                                 where+                                    gNoSettlPartySubIDs'''''''''''' = FIXTag+                                       { tName = "NoSettlPartySubIDs"+                                       , tnum = tnum tNoSettlPartySubIDs+                                       , tparser = gNoSettlPartySubIDsP''''''''''''+                                       , arbitraryValue = arbibtraryFIXGroup gNoSettlPartySubIDsSpec'''''''''''' }++                                    gNoSettlPartySubIDsP'''''''''''' = groupP gNoSettlPartySubIDsSpec''''''''''''+                                    gNoSettlPartySubIDsSpec'''''''''''' = FGSpec+                                       { gsLength = tNoSettlPartySubIDs+                                       , gsSeperator = tSettlPartySubID+                                       , gsBody = gNoSettlPartySubIDsBody'''''''''''' }+                                       where+                                       gNoSettlPartySubIDsBody'''''''''''' = +                                          LT.insert (tnum tSettlPartySubIDType) tSettlPartySubIDType                                           LT.new++++                  gNoMiscFees'''''' = FIXTag+                     { tName = "NoMiscFees"+                     , tnum = tnum tNoMiscFees+                     , tparser = gNoMiscFeesP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec'''''' }++                  gNoMiscFeesP'''''' = groupP gNoMiscFeesSpec''''''+                  gNoMiscFeesSpec'''''' = FGSpec+                     { gsLength = tNoMiscFees+                     , gsSeperator = tMiscFeeAmt+                     , gsBody = gNoMiscFeesBody'''''' }+                     where+                     gNoMiscFeesBody'''''' = +                        LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $+                        LT.insert (tnum tMiscFeeType) tMiscFeeType $+                        LT.insert (tnum tMiscFeeBasis) tMiscFeeBasis                         LT.new++                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new+                        where+                           gNoNestedPartySubIDs''''''''' = FIXTag+                              { tName = "NoNestedPartySubIDs"+                              , tnum = tnum tNoNestedPartySubIDs+                              , tparser = gNoNestedPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }++                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''+                           gNoNestedPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartySubIDs+                              , gsSeperator = tNestedPartySubID+                              , gsBody = gNoNestedPartySubIDsBody''''''''' }+                              where+                              gNoNestedPartySubIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new++++         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoExecs''' = FIXTag+            { tName = "NoExecs"+            , tnum = tnum tNoExecs+            , tparser = gNoExecsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoExecsSpec''' }++         gNoExecsP''' = groupP gNoExecsSpec'''+         gNoExecsSpec''' = FGSpec+            { gsLength = tNoExecs+            , gsSeperator = tLastQty+            , gsBody = gNoExecsBody''' }+            where+            gNoExecsBody''' = +               LT.insert (tnum tExecID) tExecID $+               LT.insert (tnum tSecondaryExecID) tSecondaryExecID $+               LT.insert (tnum tLastPx) tLastPx $+               LT.insert (tnum tLastParPx) tLastParPx $+               LT.insert (tnum tLastCapacity) tLastCapacity                LT.new++         gNoInstrAttrib''' = FIXTag+            { tName = "NoInstrAttrib"+            , tnum = tnum tNoInstrAttrib+            , tparser = gNoInstrAttribP'''+            , arbitraryValue = arbibtraryFIXGroup gNoInstrAttribSpec''' }++         gNoInstrAttribP''' = groupP gNoInstrAttribSpec'''+         gNoInstrAttribSpec''' = FGSpec+            { gsLength = tNoInstrAttrib+            , gsSeperator = tInstrAttribType+            , gsBody = gNoInstrAttribBody''' }+            where+            gNoInstrAttribBody''' = +               LT.insert (tnum tInstrAttribValue) tInstrAttribValue                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoOrders''' = FIXTag+            { tName = "NoOrders"+            , tnum = tnum tNoOrders+            , tparser = gNoOrdersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoOrdersSpec''' }++         gNoOrdersP''' = groupP gNoOrdersSpec'''+         gNoOrdersSpec''' = FGSpec+            { gsLength = tNoOrders+            , gsSeperator = tClOrdID+            , gsBody = gNoOrdersBody''' }+            where+            gNoOrdersBody''' = +               LT.insert (tnum tOrderID) tOrderID $+               LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+               LT.insert (tnum tListID) tListID $+               LT.insert (tnum tNoNested2PartyIDs) gNoNested2PartyIDs'''''' $+               LT.insert (tnum tOrderQty) tOrderQty $+               LT.insert (tnum tOrderAvgPx) tOrderAvgPx $+               LT.insert (tnum tOrderBookingQty) tOrderBookingQty                LT.new+               where+                  gNoNested2PartyIDs'''''' = FIXTag+                     { tName = "NoNested2PartyIDs"+                     , tnum = tnum tNoNested2PartyIDs+                     , tparser = gNoNested2PartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNested2PartyIDsSpec'''''' }++                  gNoNested2PartyIDsP'''''' = groupP gNoNested2PartyIDsSpec''''''+                  gNoNested2PartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNested2PartyIDs+                     , gsSeperator = tNested2PartyID+                     , gsBody = gNoNested2PartyIDsBody'''''' }+                     where+                     gNoNested2PartyIDsBody'''''' = +                        LT.insert (tnum tNested2PartyIDSource) tNested2PartyIDSource $+                        LT.insert (tnum tNested2PartyRole) tNested2PartyRole $+                        LT.insert (tnum tNoNested2PartySubIDs) gNoNested2PartySubIDs'''''''''                         LT.new+                        where+                           gNoNested2PartySubIDs''''''''' = FIXTag+                              { tName = "NoNested2PartySubIDs"+                              , tnum = tnum tNoNested2PartySubIDs+                              , tparser = gNoNested2PartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNested2PartySubIDsSpec''''''''' }++                           gNoNested2PartySubIDsP''''''''' = groupP gNoNested2PartySubIDsSpec'''''''''+                           gNoNested2PartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNested2PartySubIDs+                              , gsSeperator = tNested2PartySubID+                              , gsBody = gNoNested2PartySubIDsBody''''''''' }+                              where+                              gNoNested2PartySubIDsBody''''''''' = +                                 LT.insert (tnum tNested2PartySubIDType) tNested2PartySubIDType                                  LT.new++++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoStipulations''' = FIXTag+            { tName = "NoStipulations"+            , tnum = tnum tNoStipulations+            , tparser = gNoStipulationsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }++         gNoStipulationsP''' = groupP gNoStipulationsSpec'''+         gNoStipulationsSpec''' = FGSpec+            { gsLength = tNoStipulations+            , gsSeperator = tStipulationType+            , gsBody = gNoStipulationsBody''' }+            where+            gNoStipulationsBody''' = +               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mAllocationReportAck :: FIXMessageSpec+mAllocationReportAck = FMSpec+   { msName = "AllocationReportAck"+   , msType = C.pack "AT"+   , msHeader = headerFIX44+   , msBody = mAllocationReportAckBody+   , msTrailer = trailerFIX44 }+   where+   mAllocationReportAckBody = +      LT.insert (tnum tAllocReportID) tAllocReportID $+      LT.insert (tnum tAllocID) tAllocID $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tSecondaryAllocID) tSecondaryAllocID $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tAllocStatus) tAllocStatus $+      LT.insert (tnum tAllocRejCode) tAllocRejCode $+      LT.insert (tnum tAllocReportType) tAllocReportType $+      LT.insert (tnum tAllocIntermedReqType) tAllocIntermedReqType $+      LT.insert (tnum tMatchStatus) tMatchStatus $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText $+      LT.insert (tnum tNoAllocs) gNoAllocs'''       LT.new+      where+         gNoAllocs''' = FIXTag+            { tName = "NoAllocs"+            , tnum = tnum tNoAllocs+            , tparser = gNoAllocsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }++         gNoAllocsP''' = groupP gNoAllocsSpec'''+         gNoAllocsSpec''' = FGSpec+            { gsLength = tNoAllocs+            , gsSeperator = tAllocAccount+            , gsBody = gNoAllocsBody''' }+            where+            gNoAllocsBody''' = +               LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $+               LT.insert (tnum tAllocPrice) tAllocPrice $+               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+               LT.insert (tnum tIndividualAllocRejCode) tIndividualAllocRejCode $+               LT.insert (tnum tAllocText) tAllocText $+               LT.insert (tnum tEncodedAllocTextLen) tEncodedAllocTextLen $+               LT.insert (tnum tEncodedAllocText) tEncodedAllocText                LT.new++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++++mConfirmationAck :: FIXMessageSpec+mConfirmationAck = FMSpec+   { msName = "ConfirmationAck"+   , msType = C.pack "AU"+   , msHeader = headerFIX44+   , msBody = mConfirmationAckBody+   , msTrailer = trailerFIX44 }+   where+   mConfirmationAckBody = +      LT.insert (tnum tConfirmID) tConfirmID $+      LT.insert (tnum tTradeDate) tTradeDate $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tAffirmStatus) tAffirmStatus $+      LT.insert (tnum tConfirmRejReason) tConfirmRejReason $+      LT.insert (tnum tMatchStatus) tMatchStatus $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+++mSettlementInstructionRequest :: FIXMessageSpec+mSettlementInstructionRequest = FMSpec+   { msName = "SettlementInstructionRequest"+   , msType = C.pack "AV"+   , msHeader = headerFIX44+   , msBody = mSettlementInstructionRequestBody+   , msTrailer = trailerFIX44 }+   where+   mSettlementInstructionRequestBody = +      LT.insert (tnum tSettlInstReqID) tSettlInstReqID $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAllocAccount) tAllocAccount $+      LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tEffectiveTime) tEffectiveTime $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tLastUpdateTime) tLastUpdateTime $+      LT.insert (tnum tStandInstDbType) tStandInstDbType $+      LT.insert (tnum tStandInstDbName) tStandInstDbName $+      LT.insert (tnum tStandInstDbID) tStandInstDbID       LT.new+      where+         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++++mAssignmentReport :: FIXMessageSpec+mAssignmentReport = FMSpec+   { msName = "AssignmentReport"+   , msType = C.pack "AW"+   , msHeader = headerFIX44+   , msBody = mAssignmentReportBody+   , msTrailer = trailerFIX44 }+   where+   mAssignmentReportBody = +      LT.insert (tnum tAsgnRptID) tAsgnRptID $+      LT.insert (tnum tTotNumAssignmentReports) tTotNumAssignmentReports $+      LT.insert (tnum tLastRptRequested) tLastRptRequested $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tNoPositions) gNoPositions''' $+      LT.insert (tnum tNoPosAmt) gNoPosAmt''' $+      LT.insert (tnum tThresholdAmount) tThresholdAmount $+      LT.insert (tnum tSettlPrice) tSettlPrice $+      LT.insert (tnum tSettlPriceType) tSettlPriceType $+      LT.insert (tnum tUnderlyingSettlPrice) tUnderlyingSettlPrice $+      LT.insert (tnum tExpireDate) tExpireDate $+      LT.insert (tnum tAssignmentMethod) tAssignmentMethod $+      LT.insert (tnum tAssignmentUnit) tAssignmentUnit $+      LT.insert (tnum tOpenInterest) tOpenInterest $+      LT.insert (tnum tExerciseMethod) tExerciseMethod $+      LT.insert (tnum tSettlSessID) tSettlSessID $+      LT.insert (tnum tSettlSessSubID) tSettlSessSubID $+      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoPosAmt''' = FIXTag+            { tName = "NoPosAmt"+            , tnum = tnum tNoPosAmt+            , tparser = gNoPosAmtP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPosAmtSpec''' }++         gNoPosAmtP''' = groupP gNoPosAmtSpec'''+         gNoPosAmtSpec''' = FGSpec+            { gsLength = tNoPosAmt+            , gsSeperator = tPosAmtType+            , gsBody = gNoPosAmtBody''' }+            where+            gNoPosAmtBody''' = +               LT.insert (tnum tPosAmt) tPosAmt                LT.new++         gNoPositions''' = FIXTag+            { tName = "NoPositions"+            , tnum = tnum tNoPositions+            , tparser = gNoPositionsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPositionsSpec''' }++         gNoPositionsP''' = groupP gNoPositionsSpec'''+         gNoPositionsSpec''' = FGSpec+            { gsLength = tNoPositions+            , gsSeperator = tPosType+            , gsBody = gNoPositionsBody''' }+            where+            gNoPositionsBody''' = +               LT.insert (tnum tLongQty) tLongQty $+               LT.insert (tnum tShortQty) tShortQty $+               LT.insert (tnum tPosQtyStatus) tPosQtyStatus $+               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''                LT.new+               where+                  gNoNestedPartyIDs'''''' = FIXTag+                     { tName = "NoNestedPartyIDs"+                     , tnum = tnum tNoNestedPartyIDs+                     , tparser = gNoNestedPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }++                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''+                  gNoNestedPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNestedPartyIDs+                     , gsSeperator = tNestedPartyID+                     , gsBody = gNoNestedPartyIDsBody'''''' }+                     where+                     gNoNestedPartyIDsBody'''''' = +                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new+                        where+                           gNoNestedPartySubIDs''''''''' = FIXTag+                              { tName = "NoNestedPartySubIDs"+                              , tnum = tnum tNoNestedPartySubIDs+                              , tparser = gNoNestedPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }++                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''+                           gNoNestedPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNestedPartySubIDs+                              , gsSeperator = tNestedPartySubID+                              , gsBody = gNoNestedPartySubIDsBody''''''''' }+                              where+                              gNoNestedPartySubIDsBody''''''''' = +                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new++++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mCollateralRequest :: FIXMessageSpec+mCollateralRequest = FMSpec+   { msName = "CollateralRequest"+   , msType = C.pack "AX"+   , msHeader = headerFIX44+   , msBody = mCollateralRequestBody+   , msTrailer = trailerFIX44 }+   where+   mCollateralRequestBody = +      LT.insert (tnum tCollReqID) tCollReqID $+      LT.insert (tnum tCollAsgnReason) tCollAsgnReason $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tNoExecs) gNoExecs''' $+      LT.insert (tnum tNoTrades) gNoTrades''' $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tAgreementDesc) tAgreementDesc $+      LT.insert (tnum tAgreementID) tAgreementID $+      LT.insert (tnum tAgreementDate) tAgreementDate $+      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+      LT.insert (tnum tTerminationType) tTerminationType $+      LT.insert (tnum tStartDate) tStartDate $+      LT.insert (tnum tEndDate) tEndDate $+      LT.insert (tnum tDeliveryType) tDeliveryType $+      LT.insert (tnum tMarginRatio) tMarginRatio $+      LT.insert (tnum tSettlDate) tSettlDate $+      LT.insert (tnum tQuantity) tQuantity $+      LT.insert (tnum tQtyType) tQtyType $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tMarginExcess) tMarginExcess $+      LT.insert (tnum tTotalNetValue) tTotalNetValue $+      LT.insert (tnum tCashOutstanding) tCashOutstanding $+      LT.insert (tnum tNoTrdRegTimestamps) gNoTrdRegTimestamps''' $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tNoMiscFees) gNoMiscFees''' $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+      LT.insert (tnum tEndAccruedInterestAmt) tEndAccruedInterestAmt $+      LT.insert (tnum tStartCash) tStartCash $+      LT.insert (tnum tEndCash) tEndCash $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+      LT.insert (tnum tNoStipulations) gNoStipulations''' $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSettlSessID) tSettlSessID $+      LT.insert (tnum tSettlSessSubID) tSettlSessSubID $+      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoExecs''' = FIXTag+            { tName = "NoExecs"+            , tnum = tnum tNoExecs+            , tparser = gNoExecsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoExecsSpec''' }++         gNoExecsP''' = groupP gNoExecsSpec'''+         gNoExecsSpec''' = FGSpec+            { gsLength = tNoExecs+            , gsSeperator = tExecID+            , gsBody = gNoExecsBody''' }+            where+            gNoExecsBody''' = +               LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoMiscFees''' = FIXTag+            { tName = "NoMiscFees"+            , tnum = tnum tNoMiscFees+            , tparser = gNoMiscFeesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec''' }++         gNoMiscFeesP''' = groupP gNoMiscFeesSpec'''+         gNoMiscFeesSpec''' = FGSpec+            { gsLength = tNoMiscFees+            , gsSeperator = tMiscFeeAmt+            , gsBody = gNoMiscFeesBody''' }+            where+            gNoMiscFeesBody''' = +               LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $+               LT.insert (tnum tMiscFeeType) tMiscFeeType $+               LT.insert (tnum tMiscFeeBasis) tMiscFeeBasis                LT.new++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoStipulations''' = FIXTag+            { tName = "NoStipulations"+            , tnum = tnum tNoStipulations+            , tparser = gNoStipulationsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }++         gNoStipulationsP''' = groupP gNoStipulationsSpec'''+         gNoStipulationsSpec''' = FGSpec+            { gsLength = tNoStipulations+            , gsSeperator = tStipulationType+            , gsBody = gNoStipulationsBody''' }+            where+            gNoStipulationsBody''' = +               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new++         gNoTrades''' = FIXTag+            { tName = "NoTrades"+            , tnum = tnum tNoTrades+            , tparser = gNoTradesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradesSpec''' }++         gNoTradesP''' = groupP gNoTradesSpec'''+         gNoTradesSpec''' = FGSpec+            { gsLength = tNoTrades+            , gsSeperator = tTradeReportID+            , gsBody = gNoTradesBody''' }+            where+            gNoTradesBody''' = +               LT.insert (tnum tSecondaryTradeReportID) tSecondaryTradeReportID                LT.new++         gNoTrdRegTimestamps''' = FIXTag+            { tName = "NoTrdRegTimestamps"+            , tnum = tnum tNoTrdRegTimestamps+            , tparser = gNoTrdRegTimestampsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTrdRegTimestampsSpec''' }++         gNoTrdRegTimestampsP''' = groupP gNoTrdRegTimestampsSpec'''+         gNoTrdRegTimestampsSpec''' = FGSpec+            { gsLength = tNoTrdRegTimestamps+            , gsSeperator = tTrdRegTimestamp+            , gsBody = gNoTrdRegTimestampsBody''' }+            where+            gNoTrdRegTimestampsBody''' = +               LT.insert (tnum tTrdRegTimestampType) tTrdRegTimestampType $+               LT.insert (tnum tTrdRegTimestampOrigin) tTrdRegTimestampOrigin                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''' $+               LT.insert (tnum tCollAction) tCollAction                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mCollateralAssignment :: FIXMessageSpec+mCollateralAssignment = FMSpec+   { msName = "CollateralAssignment"+   , msType = C.pack "AY"+   , msHeader = headerFIX44+   , msBody = mCollateralAssignmentBody+   , msTrailer = trailerFIX44 }+   where+   mCollateralAssignmentBody = +      LT.insert (tnum tCollAsgnID) tCollAsgnID $+      LT.insert (tnum tCollReqID) tCollReqID $+      LT.insert (tnum tCollAsgnReason) tCollAsgnReason $+      LT.insert (tnum tCollAsgnTransType) tCollAsgnTransType $+      LT.insert (tnum tCollAsgnRefID) tCollAsgnRefID $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tExpireTime) tExpireTime $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tNoExecs) gNoExecs''' $+      LT.insert (tnum tNoTrades) gNoTrades''' $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tAgreementDesc) tAgreementDesc $+      LT.insert (tnum tAgreementID) tAgreementID $+      LT.insert (tnum tAgreementDate) tAgreementDate $+      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+      LT.insert (tnum tTerminationType) tTerminationType $+      LT.insert (tnum tStartDate) tStartDate $+      LT.insert (tnum tEndDate) tEndDate $+      LT.insert (tnum tDeliveryType) tDeliveryType $+      LT.insert (tnum tMarginRatio) tMarginRatio $+      LT.insert (tnum tSettlDate) tSettlDate $+      LT.insert (tnum tQuantity) tQuantity $+      LT.insert (tnum tQtyType) tQtyType $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tMarginExcess) tMarginExcess $+      LT.insert (tnum tTotalNetValue) tTotalNetValue $+      LT.insert (tnum tCashOutstanding) tCashOutstanding $+      LT.insert (tnum tNoTrdRegTimestamps) gNoTrdRegTimestamps''' $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tNoMiscFees) gNoMiscFees''' $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+      LT.insert (tnum tEndAccruedInterestAmt) tEndAccruedInterestAmt $+      LT.insert (tnum tStartCash) tStartCash $+      LT.insert (tnum tEndCash) tEndCash $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+      LT.insert (tnum tNoStipulations) gNoStipulations''' $+      LT.insert (tnum tSettlDeliveryType) tSettlDeliveryType $+      LT.insert (tnum tStandInstDbType) tStandInstDbType $+      LT.insert (tnum tStandInstDbName) tStandInstDbName $+      LT.insert (tnum tStandInstDbID) tStandInstDbID $+      LT.insert (tnum tNoDlvyInst) gNoDlvyInst''' $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSettlSessID) tSettlSessID $+      LT.insert (tnum tSettlSessSubID) tSettlSessSubID $+      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoDlvyInst''' = FIXTag+            { tName = "NoDlvyInst"+            , tnum = tnum tNoDlvyInst+            , tparser = gNoDlvyInstP'''+            , arbitraryValue = arbibtraryFIXGroup gNoDlvyInstSpec''' }++         gNoDlvyInstP''' = groupP gNoDlvyInstSpec'''+         gNoDlvyInstSpec''' = FGSpec+            { gsLength = tNoDlvyInst+            , gsSeperator = tSettlInstSource+            , gsBody = gNoDlvyInstBody''' }+            where+            gNoDlvyInstBody''' = +               LT.insert (tnum tDlvyInstType) tDlvyInstType $+               LT.insert (tnum tNoSettlPartyIDs) gNoSettlPartyIDs''''''                LT.new+               where+                  gNoSettlPartyIDs'''''' = FIXTag+                     { tName = "NoSettlPartyIDs"+                     , tnum = tnum tNoSettlPartyIDs+                     , tparser = gNoSettlPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSettlPartyIDsSpec'''''' }++                  gNoSettlPartyIDsP'''''' = groupP gNoSettlPartyIDsSpec''''''+                  gNoSettlPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoSettlPartyIDs+                     , gsSeperator = tSettlPartyID+                     , gsBody = gNoSettlPartyIDsBody'''''' }+                     where+                     gNoSettlPartyIDsBody'''''' = +                        LT.insert (tnum tSettlPartyIDSource) tSettlPartyIDSource $+                        LT.insert (tnum tSettlPartyRole) tSettlPartyRole $+                        LT.insert (tnum tNoSettlPartySubIDs) gNoSettlPartySubIDs'''''''''                         LT.new+                        where+                           gNoSettlPartySubIDs''''''''' = FIXTag+                              { tName = "NoSettlPartySubIDs"+                              , tnum = tnum tNoSettlPartySubIDs+                              , tparser = gNoSettlPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoSettlPartySubIDsSpec''''''''' }++                           gNoSettlPartySubIDsP''''''''' = groupP gNoSettlPartySubIDsSpec'''''''''+                           gNoSettlPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoSettlPartySubIDs+                              , gsSeperator = tSettlPartySubID+                              , gsBody = gNoSettlPartySubIDsBody''''''''' }+                              where+                              gNoSettlPartySubIDsBody''''''''' = +                                 LT.insert (tnum tSettlPartySubIDType) tSettlPartySubIDType                                  LT.new++++         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoExecs''' = FIXTag+            { tName = "NoExecs"+            , tnum = tnum tNoExecs+            , tparser = gNoExecsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoExecsSpec''' }++         gNoExecsP''' = groupP gNoExecsSpec'''+         gNoExecsSpec''' = FGSpec+            { gsLength = tNoExecs+            , gsSeperator = tExecID+            , gsBody = gNoExecsBody''' }+            where+            gNoExecsBody''' = +               LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoMiscFees''' = FIXTag+            { tName = "NoMiscFees"+            , tnum = tnum tNoMiscFees+            , tparser = gNoMiscFeesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec''' }++         gNoMiscFeesP''' = groupP gNoMiscFeesSpec'''+         gNoMiscFeesSpec''' = FGSpec+            { gsLength = tNoMiscFees+            , gsSeperator = tMiscFeeAmt+            , gsBody = gNoMiscFeesBody''' }+            where+            gNoMiscFeesBody''' = +               LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $+               LT.insert (tnum tMiscFeeType) tMiscFeeType $+               LT.insert (tnum tMiscFeeBasis) tMiscFeeBasis                LT.new++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoStipulations''' = FIXTag+            { tName = "NoStipulations"+            , tnum = tnum tNoStipulations+            , tparser = gNoStipulationsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }++         gNoStipulationsP''' = groupP gNoStipulationsSpec'''+         gNoStipulationsSpec''' = FGSpec+            { gsLength = tNoStipulations+            , gsSeperator = tStipulationType+            , gsBody = gNoStipulationsBody''' }+            where+            gNoStipulationsBody''' = +               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new++         gNoTrades''' = FIXTag+            { tName = "NoTrades"+            , tnum = tnum tNoTrades+            , tparser = gNoTradesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradesSpec''' }++         gNoTradesP''' = groupP gNoTradesSpec'''+         gNoTradesSpec''' = FGSpec+            { gsLength = tNoTrades+            , gsSeperator = tTradeReportID+            , gsBody = gNoTradesBody''' }+            where+            gNoTradesBody''' = +               LT.insert (tnum tSecondaryTradeReportID) tSecondaryTradeReportID                LT.new++         gNoTrdRegTimestamps''' = FIXTag+            { tName = "NoTrdRegTimestamps"+            , tnum = tnum tNoTrdRegTimestamps+            , tparser = gNoTrdRegTimestampsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTrdRegTimestampsSpec''' }++         gNoTrdRegTimestampsP''' = groupP gNoTrdRegTimestampsSpec'''+         gNoTrdRegTimestampsSpec''' = FGSpec+            { gsLength = tNoTrdRegTimestamps+            , gsSeperator = tTrdRegTimestamp+            , gsBody = gNoTrdRegTimestampsBody''' }+            where+            gNoTrdRegTimestampsBody''' = +               LT.insert (tnum tTrdRegTimestampType) tTrdRegTimestampType $+               LT.insert (tnum tTrdRegTimestampOrigin) tTrdRegTimestampOrigin                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''' $+               LT.insert (tnum tCollAction) tCollAction                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mCollateralResponse :: FIXMessageSpec+mCollateralResponse = FMSpec+   { msName = "CollateralResponse"+   , msType = C.pack "AZ"+   , msHeader = headerFIX44+   , msBody = mCollateralResponseBody+   , msTrailer = trailerFIX44 }+   where+   mCollateralResponseBody = +      LT.insert (tnum tCollRespID) tCollRespID $+      LT.insert (tnum tCollAsgnID) tCollAsgnID $+      LT.insert (tnum tCollReqID) tCollReqID $+      LT.insert (tnum tCollAsgnReason) tCollAsgnReason $+      LT.insert (tnum tCollAsgnTransType) tCollAsgnTransType $+      LT.insert (tnum tCollAsgnRespType) tCollAsgnRespType $+      LT.insert (tnum tCollAsgnRejectReason) tCollAsgnRejectReason $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tNoExecs) gNoExecs''' $+      LT.insert (tnum tNoTrades) gNoTrades''' $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tAgreementDesc) tAgreementDesc $+      LT.insert (tnum tAgreementID) tAgreementID $+      LT.insert (tnum tAgreementDate) tAgreementDate $+      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+      LT.insert (tnum tTerminationType) tTerminationType $+      LT.insert (tnum tStartDate) tStartDate $+      LT.insert (tnum tEndDate) tEndDate $+      LT.insert (tnum tDeliveryType) tDeliveryType $+      LT.insert (tnum tMarginRatio) tMarginRatio $+      LT.insert (tnum tSettlDate) tSettlDate $+      LT.insert (tnum tQuantity) tQuantity $+      LT.insert (tnum tQtyType) tQtyType $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tMarginExcess) tMarginExcess $+      LT.insert (tnum tTotalNetValue) tTotalNetValue $+      LT.insert (tnum tCashOutstanding) tCashOutstanding $+      LT.insert (tnum tNoTrdRegTimestamps) gNoTrdRegTimestamps''' $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tNoMiscFees) gNoMiscFees''' $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+      LT.insert (tnum tEndAccruedInterestAmt) tEndAccruedInterestAmt $+      LT.insert (tnum tStartCash) tStartCash $+      LT.insert (tnum tEndCash) tEndCash $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+      LT.insert (tnum tNoStipulations) gNoStipulations''' $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoExecs''' = FIXTag+            { tName = "NoExecs"+            , tnum = tnum tNoExecs+            , tparser = gNoExecsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoExecsSpec''' }++         gNoExecsP''' = groupP gNoExecsSpec'''+         gNoExecsSpec''' = FGSpec+            { gsLength = tNoExecs+            , gsSeperator = tExecID+            , gsBody = gNoExecsBody''' }+            where+            gNoExecsBody''' = +               LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoMiscFees''' = FIXTag+            { tName = "NoMiscFees"+            , tnum = tnum tNoMiscFees+            , tparser = gNoMiscFeesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec''' }++         gNoMiscFeesP''' = groupP gNoMiscFeesSpec'''+         gNoMiscFeesSpec''' = FGSpec+            { gsLength = tNoMiscFees+            , gsSeperator = tMiscFeeAmt+            , gsBody = gNoMiscFeesBody''' }+            where+            gNoMiscFeesBody''' = +               LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $+               LT.insert (tnum tMiscFeeType) tMiscFeeType $+               LT.insert (tnum tMiscFeeBasis) tMiscFeeBasis                LT.new++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoStipulations''' = FIXTag+            { tName = "NoStipulations"+            , tnum = tnum tNoStipulations+            , tparser = gNoStipulationsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }++         gNoStipulationsP''' = groupP gNoStipulationsSpec'''+         gNoStipulationsSpec''' = FGSpec+            { gsLength = tNoStipulations+            , gsSeperator = tStipulationType+            , gsBody = gNoStipulationsBody''' }+            where+            gNoStipulationsBody''' = +               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new++         gNoTrades''' = FIXTag+            { tName = "NoTrades"+            , tnum = tnum tNoTrades+            , tparser = gNoTradesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradesSpec''' }++         gNoTradesP''' = groupP gNoTradesSpec'''+         gNoTradesSpec''' = FGSpec+            { gsLength = tNoTrades+            , gsSeperator = tTradeReportID+            , gsBody = gNoTradesBody''' }+            where+            gNoTradesBody''' = +               LT.insert (tnum tSecondaryTradeReportID) tSecondaryTradeReportID                LT.new++         gNoTrdRegTimestamps''' = FIXTag+            { tName = "NoTrdRegTimestamps"+            , tnum = tnum tNoTrdRegTimestamps+            , tparser = gNoTrdRegTimestampsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTrdRegTimestampsSpec''' }++         gNoTrdRegTimestampsP''' = groupP gNoTrdRegTimestampsSpec'''+         gNoTrdRegTimestampsSpec''' = FGSpec+            { gsLength = tNoTrdRegTimestamps+            , gsSeperator = tTrdRegTimestamp+            , gsBody = gNoTrdRegTimestampsBody''' }+            where+            gNoTrdRegTimestampsBody''' = +               LT.insert (tnum tTrdRegTimestampType) tTrdRegTimestampType $+               LT.insert (tnum tTrdRegTimestampOrigin) tTrdRegTimestampOrigin                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''' $+               LT.insert (tnum tCollAction) tCollAction                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mCollateralReport :: FIXMessageSpec+mCollateralReport = FMSpec+   { msName = "CollateralReport"+   , msType = C.pack "BA"+   , msHeader = headerFIX44+   , msBody = mCollateralReportBody+   , msTrailer = trailerFIX44 }+   where+   mCollateralReportBody = +      LT.insert (tnum tCollRptID) tCollRptID $+      LT.insert (tnum tCollInquiryID) tCollInquiryID $+      LT.insert (tnum tCollStatus) tCollStatus $+      LT.insert (tnum tTotNumReports) tTotNumReports $+      LT.insert (tnum tLastRptRequested) tLastRptRequested $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tNoExecs) gNoExecs''' $+      LT.insert (tnum tNoTrades) gNoTrades''' $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tAgreementDesc) tAgreementDesc $+      LT.insert (tnum tAgreementID) tAgreementID $+      LT.insert (tnum tAgreementDate) tAgreementDate $+      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+      LT.insert (tnum tTerminationType) tTerminationType $+      LT.insert (tnum tStartDate) tStartDate $+      LT.insert (tnum tEndDate) tEndDate $+      LT.insert (tnum tDeliveryType) tDeliveryType $+      LT.insert (tnum tMarginRatio) tMarginRatio $+      LT.insert (tnum tSettlDate) tSettlDate $+      LT.insert (tnum tQuantity) tQuantity $+      LT.insert (tnum tQtyType) tQtyType $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tMarginExcess) tMarginExcess $+      LT.insert (tnum tTotalNetValue) tTotalNetValue $+      LT.insert (tnum tCashOutstanding) tCashOutstanding $+      LT.insert (tnum tNoTrdRegTimestamps) gNoTrdRegTimestamps''' $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tNoMiscFees) gNoMiscFees''' $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+      LT.insert (tnum tEndAccruedInterestAmt) tEndAccruedInterestAmt $+      LT.insert (tnum tStartCash) tStartCash $+      LT.insert (tnum tEndCash) tEndCash $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+      LT.insert (tnum tNoStipulations) gNoStipulations''' $+      LT.insert (tnum tSettlDeliveryType) tSettlDeliveryType $+      LT.insert (tnum tStandInstDbType) tStandInstDbType $+      LT.insert (tnum tStandInstDbName) tStandInstDbName $+      LT.insert (tnum tStandInstDbID) tStandInstDbID $+      LT.insert (tnum tNoDlvyInst) gNoDlvyInst''' $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSettlSessID) tSettlSessID $+      LT.insert (tnum tSettlSessSubID) tSettlSessSubID $+      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoDlvyInst''' = FIXTag+            { tName = "NoDlvyInst"+            , tnum = tnum tNoDlvyInst+            , tparser = gNoDlvyInstP'''+            , arbitraryValue = arbibtraryFIXGroup gNoDlvyInstSpec''' }++         gNoDlvyInstP''' = groupP gNoDlvyInstSpec'''+         gNoDlvyInstSpec''' = FGSpec+            { gsLength = tNoDlvyInst+            , gsSeperator = tSettlInstSource+            , gsBody = gNoDlvyInstBody''' }+            where+            gNoDlvyInstBody''' = +               LT.insert (tnum tDlvyInstType) tDlvyInstType $+               LT.insert (tnum tNoSettlPartyIDs) gNoSettlPartyIDs''''''                LT.new+               where+                  gNoSettlPartyIDs'''''' = FIXTag+                     { tName = "NoSettlPartyIDs"+                     , tnum = tnum tNoSettlPartyIDs+                     , tparser = gNoSettlPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSettlPartyIDsSpec'''''' }++                  gNoSettlPartyIDsP'''''' = groupP gNoSettlPartyIDsSpec''''''+                  gNoSettlPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoSettlPartyIDs+                     , gsSeperator = tSettlPartyID+                     , gsBody = gNoSettlPartyIDsBody'''''' }+                     where+                     gNoSettlPartyIDsBody'''''' = +                        LT.insert (tnum tSettlPartyIDSource) tSettlPartyIDSource $+                        LT.insert (tnum tSettlPartyRole) tSettlPartyRole $+                        LT.insert (tnum tNoSettlPartySubIDs) gNoSettlPartySubIDs'''''''''                         LT.new+                        where+                           gNoSettlPartySubIDs''''''''' = FIXTag+                              { tName = "NoSettlPartySubIDs"+                              , tnum = tnum tNoSettlPartySubIDs+                              , tparser = gNoSettlPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoSettlPartySubIDsSpec''''''''' }++                           gNoSettlPartySubIDsP''''''''' = groupP gNoSettlPartySubIDsSpec'''''''''+                           gNoSettlPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoSettlPartySubIDs+                              , gsSeperator = tSettlPartySubID+                              , gsBody = gNoSettlPartySubIDsBody''''''''' }+                              where+                              gNoSettlPartySubIDsBody''''''''' = +                                 LT.insert (tnum tSettlPartySubIDType) tSettlPartySubIDType                                  LT.new++++         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoExecs''' = FIXTag+            { tName = "NoExecs"+            , tnum = tnum tNoExecs+            , tparser = gNoExecsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoExecsSpec''' }++         gNoExecsP''' = groupP gNoExecsSpec'''+         gNoExecsSpec''' = FGSpec+            { gsLength = tNoExecs+            , gsSeperator = tExecID+            , gsBody = gNoExecsBody''' }+            where+            gNoExecsBody''' = +               LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoMiscFees''' = FIXTag+            { tName = "NoMiscFees"+            , tnum = tnum tNoMiscFees+            , tparser = gNoMiscFeesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec''' }++         gNoMiscFeesP''' = groupP gNoMiscFeesSpec'''+         gNoMiscFeesSpec''' = FGSpec+            { gsLength = tNoMiscFees+            , gsSeperator = tMiscFeeAmt+            , gsBody = gNoMiscFeesBody''' }+            where+            gNoMiscFeesBody''' = +               LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $+               LT.insert (tnum tMiscFeeType) tMiscFeeType $+               LT.insert (tnum tMiscFeeBasis) tMiscFeeBasis                LT.new++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoStipulations''' = FIXTag+            { tName = "NoStipulations"+            , tnum = tnum tNoStipulations+            , tparser = gNoStipulationsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }++         gNoStipulationsP''' = groupP gNoStipulationsSpec'''+         gNoStipulationsSpec''' = FGSpec+            { gsLength = tNoStipulations+            , gsSeperator = tStipulationType+            , gsBody = gNoStipulationsBody''' }+            where+            gNoStipulationsBody''' = +               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new++         gNoTrades''' = FIXTag+            { tName = "NoTrades"+            , tnum = tnum tNoTrades+            , tparser = gNoTradesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradesSpec''' }++         gNoTradesP''' = groupP gNoTradesSpec'''+         gNoTradesSpec''' = FGSpec+            { gsLength = tNoTrades+            , gsSeperator = tTradeReportID+            , gsBody = gNoTradesBody''' }+            where+            gNoTradesBody''' = +               LT.insert (tnum tSecondaryTradeReportID) tSecondaryTradeReportID                LT.new++         gNoTrdRegTimestamps''' = FIXTag+            { tName = "NoTrdRegTimestamps"+            , tnum = tnum tNoTrdRegTimestamps+            , tparser = gNoTrdRegTimestampsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTrdRegTimestampsSpec''' }++         gNoTrdRegTimestampsP''' = groupP gNoTrdRegTimestampsSpec'''+         gNoTrdRegTimestampsSpec''' = FGSpec+            { gsLength = tNoTrdRegTimestamps+            , gsSeperator = tTrdRegTimestamp+            , gsBody = gNoTrdRegTimestampsBody''' }+            where+            gNoTrdRegTimestampsBody''' = +               LT.insert (tnum tTrdRegTimestampType) tTrdRegTimestampType $+               LT.insert (tnum tTrdRegTimestampOrigin) tTrdRegTimestampOrigin                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mCollateralInquiry :: FIXMessageSpec+mCollateralInquiry = FMSpec+   { msName = "CollateralInquiry"+   , msType = C.pack "BB"+   , msHeader = headerFIX44+   , msBody = mCollateralInquiryBody+   , msTrailer = trailerFIX44 }+   where+   mCollateralInquiryBody = +      LT.insert (tnum tCollInquiryID) tCollInquiryID $+      LT.insert (tnum tNoCollInquiryQualifier) gNoCollInquiryQualifier''' $+      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $+      LT.insert (tnum tResponseTransportType) tResponseTransportType $+      LT.insert (tnum tResponseDestination) tResponseDestination $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tNoExecs) gNoExecs''' $+      LT.insert (tnum tNoTrades) gNoTrades''' $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tAgreementDesc) tAgreementDesc $+      LT.insert (tnum tAgreementID) tAgreementID $+      LT.insert (tnum tAgreementDate) tAgreementDate $+      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+      LT.insert (tnum tTerminationType) tTerminationType $+      LT.insert (tnum tStartDate) tStartDate $+      LT.insert (tnum tEndDate) tEndDate $+      LT.insert (tnum tDeliveryType) tDeliveryType $+      LT.insert (tnum tMarginRatio) tMarginRatio $+      LT.insert (tnum tSettlDate) tSettlDate $+      LT.insert (tnum tQuantity) tQuantity $+      LT.insert (tnum tQtyType) tQtyType $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tMarginExcess) tMarginExcess $+      LT.insert (tnum tTotalNetValue) tTotalNetValue $+      LT.insert (tnum tCashOutstanding) tCashOutstanding $+      LT.insert (tnum tNoTrdRegTimestamps) gNoTrdRegTimestamps''' $+      LT.insert (tnum tSide) tSide $+      LT.insert (tnum tPrice) tPrice $+      LT.insert (tnum tPriceType) tPriceType $+      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+      LT.insert (tnum tEndAccruedInterestAmt) tEndAccruedInterestAmt $+      LT.insert (tnum tStartCash) tStartCash $+      LT.insert (tnum tEndCash) tEndCash $+      LT.insert (tnum tSpread) tSpread $+      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+      LT.insert (tnum tNoStipulations) gNoStipulations''' $+      LT.insert (tnum tSettlDeliveryType) tSettlDeliveryType $+      LT.insert (tnum tStandInstDbType) tStandInstDbType $+      LT.insert (tnum tStandInstDbName) tStandInstDbName $+      LT.insert (tnum tStandInstDbID) tStandInstDbID $+      LT.insert (tnum tNoDlvyInst) gNoDlvyInst''' $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSettlSessID) tSettlSessID $+      LT.insert (tnum tSettlSessSubID) tSettlSessSubID $+      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoCollInquiryQualifier''' = FIXTag+            { tName = "NoCollInquiryQualifier"+            , tnum = tnum tNoCollInquiryQualifier+            , tparser = gNoCollInquiryQualifierP'''+            , arbitraryValue = arbibtraryFIXGroup gNoCollInquiryQualifierSpec''' }++         gNoCollInquiryQualifierP''' = groupP gNoCollInquiryQualifierSpec'''+         gNoCollInquiryQualifierSpec''' = FGSpec+            { gsLength = tNoCollInquiryQualifier+            , gsSeperator = tCollInquiryQualifier+            , gsBody = gNoCollInquiryQualifierBody''' }+            where+            gNoCollInquiryQualifierBody''' = +               LT.new++         gNoDlvyInst''' = FIXTag+            { tName = "NoDlvyInst"+            , tnum = tnum tNoDlvyInst+            , tparser = gNoDlvyInstP'''+            , arbitraryValue = arbibtraryFIXGroup gNoDlvyInstSpec''' }++         gNoDlvyInstP''' = groupP gNoDlvyInstSpec'''+         gNoDlvyInstSpec''' = FGSpec+            { gsLength = tNoDlvyInst+            , gsSeperator = tSettlInstSource+            , gsBody = gNoDlvyInstBody''' }+            where+            gNoDlvyInstBody''' = +               LT.insert (tnum tDlvyInstType) tDlvyInstType $+               LT.insert (tnum tNoSettlPartyIDs) gNoSettlPartyIDs''''''                LT.new+               where+                  gNoSettlPartyIDs'''''' = FIXTag+                     { tName = "NoSettlPartyIDs"+                     , tnum = tnum tNoSettlPartyIDs+                     , tparser = gNoSettlPartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoSettlPartyIDsSpec'''''' }++                  gNoSettlPartyIDsP'''''' = groupP gNoSettlPartyIDsSpec''''''+                  gNoSettlPartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoSettlPartyIDs+                     , gsSeperator = tSettlPartyID+                     , gsBody = gNoSettlPartyIDsBody'''''' }+                     where+                     gNoSettlPartyIDsBody'''''' = +                        LT.insert (tnum tSettlPartyIDSource) tSettlPartyIDSource $+                        LT.insert (tnum tSettlPartyRole) tSettlPartyRole $+                        LT.insert (tnum tNoSettlPartySubIDs) gNoSettlPartySubIDs'''''''''                         LT.new+                        where+                           gNoSettlPartySubIDs''''''''' = FIXTag+                              { tName = "NoSettlPartySubIDs"+                              , tnum = tnum tNoSettlPartySubIDs+                              , tparser = gNoSettlPartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoSettlPartySubIDsSpec''''''''' }++                           gNoSettlPartySubIDsP''''''''' = groupP gNoSettlPartySubIDsSpec'''''''''+                           gNoSettlPartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoSettlPartySubIDs+                              , gsSeperator = tSettlPartySubID+                              , gsBody = gNoSettlPartySubIDsBody''''''''' }+                              where+                              gNoSettlPartySubIDsBody''''''''' = +                                 LT.insert (tnum tSettlPartySubIDType) tSettlPartySubIDType                                  LT.new++++         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoExecs''' = FIXTag+            { tName = "NoExecs"+            , tnum = tnum tNoExecs+            , tparser = gNoExecsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoExecsSpec''' }++         gNoExecsP''' = groupP gNoExecsSpec'''+         gNoExecsSpec''' = FGSpec+            { gsLength = tNoExecs+            , gsSeperator = tExecID+            , gsBody = gNoExecsBody''' }+            where+            gNoExecsBody''' = +               LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoStipulations''' = FIXTag+            { tName = "NoStipulations"+            , tnum = tnum tNoStipulations+            , tparser = gNoStipulationsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }++         gNoStipulationsP''' = groupP gNoStipulationsSpec'''+         gNoStipulationsSpec''' = FGSpec+            { gsLength = tNoStipulations+            , gsSeperator = tStipulationType+            , gsBody = gNoStipulationsBody''' }+            where+            gNoStipulationsBody''' = +               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new++         gNoTrades''' = FIXTag+            { tName = "NoTrades"+            , tnum = tnum tNoTrades+            , tparser = gNoTradesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradesSpec''' }++         gNoTradesP''' = groupP gNoTradesSpec'''+         gNoTradesSpec''' = FGSpec+            { gsLength = tNoTrades+            , gsSeperator = tTradeReportID+            , gsBody = gNoTradesBody''' }+            where+            gNoTradesBody''' = +               LT.insert (tnum tSecondaryTradeReportID) tSecondaryTradeReportID                LT.new++         gNoTrdRegTimestamps''' = FIXTag+            { tName = "NoTrdRegTimestamps"+            , tnum = tnum tNoTrdRegTimestamps+            , tparser = gNoTrdRegTimestampsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTrdRegTimestampsSpec''' }++         gNoTrdRegTimestampsP''' = groupP gNoTrdRegTimestampsSpec'''+         gNoTrdRegTimestampsSpec''' = FGSpec+            { gsLength = tNoTrdRegTimestamps+            , gsSeperator = tTrdRegTimestamp+            , gsBody = gNoTrdRegTimestampsBody''' }+            where+            gNoTrdRegTimestampsBody''' = +               LT.insert (tnum tTrdRegTimestampType) tTrdRegTimestampType $+               LT.insert (tnum tTrdRegTimestampOrigin) tTrdRegTimestampOrigin                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mNetworkCounterpartySystemStatusRequest :: FIXMessageSpec+mNetworkCounterpartySystemStatusRequest = FMSpec+   { msName = "NetworkCounterpartySystemStatusRequest"+   , msType = C.pack "BC"+   , msHeader = headerFIX44+   , msBody = mNetworkCounterpartySystemStatusRequestBody+   , msTrailer = trailerFIX44 }+   where+   mNetworkCounterpartySystemStatusRequestBody = +      LT.insert (tnum tNetworkRequestType) tNetworkRequestType $+      LT.insert (tnum tNetworkRequestID) tNetworkRequestID $+      LT.insert (tnum tNoCompIDs) gNoCompIDs'''       LT.new+      where+         gNoCompIDs''' = FIXTag+            { tName = "NoCompIDs"+            , tnum = tnum tNoCompIDs+            , tparser = gNoCompIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoCompIDsSpec''' }++         gNoCompIDsP''' = groupP gNoCompIDsSpec'''+         gNoCompIDsSpec''' = FGSpec+            { gsLength = tNoCompIDs+            , gsSeperator = tRefCompID+            , gsBody = gNoCompIDsBody''' }+            where+            gNoCompIDsBody''' = +               LT.insert (tnum tRefSubID) tRefSubID $+               LT.insert (tnum tLocationID) tLocationID $+               LT.insert (tnum tDeskID) tDeskID                LT.new++++mNetworkCounterpartySystemStatusResponse :: FIXMessageSpec+mNetworkCounterpartySystemStatusResponse = FMSpec+   { msName = "NetworkCounterpartySystemStatusResponse"+   , msType = C.pack "BD"+   , msHeader = headerFIX44+   , msBody = mNetworkCounterpartySystemStatusResponseBody+   , msTrailer = trailerFIX44 }+   where+   mNetworkCounterpartySystemStatusResponseBody = +      LT.insert (tnum tNetworkStatusResponseType) tNetworkStatusResponseType $+      LT.insert (tnum tNetworkRequestID) tNetworkRequestID $+      LT.insert (tnum tNetworkResponseID) tNetworkResponseID $+      LT.insert (tnum tLastNetworkResponseID) tLastNetworkResponseID $+      LT.insert (tnum tNoCompIDs) gNoCompIDs'''       LT.new+      where+         gNoCompIDs''' = FIXTag+            { tName = "NoCompIDs"+            , tnum = tnum tNoCompIDs+            , tparser = gNoCompIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoCompIDsSpec''' }++         gNoCompIDsP''' = groupP gNoCompIDsSpec'''+         gNoCompIDsSpec''' = FGSpec+            { gsLength = tNoCompIDs+            , gsSeperator = tRefCompID+            , gsBody = gNoCompIDsBody''' }+            where+            gNoCompIDsBody''' = +               LT.insert (tnum tRefSubID) tRefSubID $+               LT.insert (tnum tLocationID) tLocationID $+               LT.insert (tnum tDeskID) tDeskID $+               LT.insert (tnum tStatusValue) tStatusValue $+               LT.insert (tnum tStatusText) tStatusText                LT.new++++mUserRequest :: FIXMessageSpec+mUserRequest = FMSpec+   { msName = "UserRequest"+   , msType = C.pack "BE"+   , msHeader = headerFIX44+   , msBody = mUserRequestBody+   , msTrailer = trailerFIX44 }+   where+   mUserRequestBody = +      LT.insert (tnum tUserRequestID) tUserRequestID $+      LT.insert (tnum tUserRequestType) tUserRequestType $+      LT.insert (tnum tUsername) tUsername $+      LT.insert (tnum tPassword) tPassword $+      LT.insert (tnum tNewPassword) tNewPassword $+      LT.insert (tnum tRawDataLength) tRawDataLength $+      LT.insert (tnum tRawData) tRawData       LT.new+++mUserResponse :: FIXMessageSpec+mUserResponse = FMSpec+   { msName = "UserResponse"+   , msType = C.pack "BF"+   , msHeader = headerFIX44+   , msBody = mUserResponseBody+   , msTrailer = trailerFIX44 }+   where+   mUserResponseBody = +      LT.insert (tnum tUserRequestID) tUserRequestID $+      LT.insert (tnum tUsername) tUsername $+      LT.insert (tnum tUserStatus) tUserStatus $+      LT.insert (tnum tUserStatusText) tUserStatusText       LT.new+++mCollateralInquiryAck :: FIXMessageSpec+mCollateralInquiryAck = FMSpec+   { msName = "CollateralInquiryAck"+   , msType = C.pack "BG"+   , msHeader = headerFIX44+   , msBody = mCollateralInquiryAckBody+   , msTrailer = trailerFIX44 }+   where+   mCollateralInquiryAckBody = +      LT.insert (tnum tCollInquiryID) tCollInquiryID $+      LT.insert (tnum tCollInquiryStatus) tCollInquiryStatus $+      LT.insert (tnum tCollInquiryResult) tCollInquiryResult $+      LT.insert (tnum tNoCollInquiryQualifier) gNoCollInquiryQualifier''' $+      LT.insert (tnum tTotNumReports) tTotNumReports $+      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $+      LT.insert (tnum tAccount) tAccount $+      LT.insert (tnum tAccountType) tAccountType $+      LT.insert (tnum tClOrdID) tClOrdID $+      LT.insert (tnum tOrderID) tOrderID $+      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+      LT.insert (tnum tNoExecs) gNoExecs''' $+      LT.insert (tnum tNoTrades) gNoTrades''' $+      LT.insert (tnum tSymbol) tSymbol $+      LT.insert (tnum tSymbolSfx) tSymbolSfx $+      LT.insert (tnum tSecurityID) tSecurityID $+      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $+      LT.insert (tnum tProduct) tProduct $+      LT.insert (tnum tCFICode) tCFICode $+      LT.insert (tnum tSecurityType) tSecurityType $+      LT.insert (tnum tSecuritySubType) tSecuritySubType $+      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+      LT.insert (tnum tMaturityDate) tMaturityDate $+      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+      LT.insert (tnum tIssueDate) tIssueDate $+      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+      LT.insert (tnum tFactor) tFactor $+      LT.insert (tnum tCreditRating) tCreditRating $+      LT.insert (tnum tInstrRegistry) tInstrRegistry $+      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+      LT.insert (tnum tRedemptionDate) tRedemptionDate $+      LT.insert (tnum tStrikePrice) tStrikePrice $+      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+      LT.insert (tnum tOptAttribute) tOptAttribute $+      LT.insert (tnum tContractMultiplier) tContractMultiplier $+      LT.insert (tnum tCouponRate) tCouponRate $+      LT.insert (tnum tSecurityExchange) tSecurityExchange $+      LT.insert (tnum tIssuer) tIssuer $+      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+      LT.insert (tnum tSecurityDesc) tSecurityDesc $+      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+      LT.insert (tnum tPool) tPool $+      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+      LT.insert (tnum tCPProgram) tCPProgram $+      LT.insert (tnum tCPRegType) tCPRegType $+      LT.insert (tnum tNoEvents) gNoEvents''' $+      LT.insert (tnum tDatedDate) tDatedDate $+      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+      LT.insert (tnum tAgreementDesc) tAgreementDesc $+      LT.insert (tnum tAgreementID) tAgreementID $+      LT.insert (tnum tAgreementDate) tAgreementDate $+      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+      LT.insert (tnum tTerminationType) tTerminationType $+      LT.insert (tnum tStartDate) tStartDate $+      LT.insert (tnum tEndDate) tEndDate $+      LT.insert (tnum tDeliveryType) tDeliveryType $+      LT.insert (tnum tMarginRatio) tMarginRatio $+      LT.insert (tnum tSettlDate) tSettlDate $+      LT.insert (tnum tQuantity) tQuantity $+      LT.insert (tnum tQtyType) tQtyType $+      LT.insert (tnum tCurrency) tCurrency $+      LT.insert (tnum tNoLegs) gNoLegs''' $+      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $+      LT.insert (tnum tTradingSessionID) tTradingSessionID $+      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+      LT.insert (tnum tSettlSessID) tSettlSessID $+      LT.insert (tnum tSettlSessSubID) tSettlSessSubID $+      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $+      LT.insert (tnum tResponseTransportType) tResponseTransportType $+      LT.insert (tnum tResponseDestination) tResponseDestination $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoCollInquiryQualifier''' = FIXTag+            { tName = "NoCollInquiryQualifier"+            , tnum = tnum tNoCollInquiryQualifier+            , tparser = gNoCollInquiryQualifierP'''+            , arbitraryValue = arbibtraryFIXGroup gNoCollInquiryQualifierSpec''' }++         gNoCollInquiryQualifierP''' = groupP gNoCollInquiryQualifierSpec'''+         gNoCollInquiryQualifierSpec''' = FGSpec+            { gsLength = tNoCollInquiryQualifier+            , gsSeperator = tCollInquiryQualifier+            , gsBody = gNoCollInquiryQualifierBody''' }+            where+            gNoCollInquiryQualifierBody''' = +               LT.new++         gNoEvents''' = FIXTag+            { tName = "NoEvents"+            , tnum = tnum tNoEvents+            , tparser = gNoEventsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }++         gNoEventsP''' = groupP gNoEventsSpec'''+         gNoEventsSpec''' = FGSpec+            { gsLength = tNoEvents+            , gsSeperator = tEventType+            , gsBody = gNoEventsBody''' }+            where+            gNoEventsBody''' = +               LT.insert (tnum tEventDate) tEventDate $+               LT.insert (tnum tEventPx) tEventPx $+               LT.insert (tnum tEventText) tEventText                LT.new++         gNoExecs''' = FIXTag+            { tName = "NoExecs"+            , tnum = tnum tNoExecs+            , tparser = gNoExecsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoExecsSpec''' }++         gNoExecsP''' = groupP gNoExecsSpec'''+         gNoExecsSpec''' = FGSpec+            { gsLength = tNoExecs+            , gsSeperator = tExecID+            , gsBody = gNoExecsBody''' }+            where+            gNoExecsBody''' = +               LT.new++         gNoLegs''' = FIXTag+            { tName = "NoLegs"+            , tnum = tnum tNoLegs+            , tparser = gNoLegsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }++         gNoLegsP''' = groupP gNoLegsSpec'''+         gNoLegsSpec''' = FGSpec+            { gsLength = tNoLegs+            , gsSeperator = tLegSymbol+            , gsBody = gNoLegsBody''' }+            where+            gNoLegsBody''' = +               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+               LT.insert (tnum tLegSecurityID) tLegSecurityID $+               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $+               LT.insert (tnum tLegProduct) tLegProduct $+               LT.insert (tnum tLegCFICode) tLegCFICode $+               LT.insert (tnum tLegSecurityType) tLegSecurityType $+               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+               LT.insert (tnum tLegIssueDate) tLegIssueDate $+               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+               LT.insert (tnum tLegFactor) tLegFactor $+               LT.insert (tnum tLegCreditRating) tLegCreditRating $+               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+               LT.insert (tnum tLegCouponRate) tLegCouponRate $+               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+               LT.insert (tnum tLegIssuer) tLegIssuer $+               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+               LT.insert (tnum tLegRatioQty) tLegRatioQty $+               LT.insert (tnum tLegSide) tLegSide $+               LT.insert (tnum tLegCurrency) tLegCurrency $+               LT.insert (tnum tLegPool) tLegPool $+               LT.insert (tnum tLegDatedDate) tLegDatedDate $+               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new+               where+                  gNoLegSecurityAltID'''''' = FIXTag+                     { tName = "NoLegSecurityAltID"+                     , tnum = tnum tNoLegSecurityAltID+                     , tparser = gNoLegSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }++                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''+                  gNoLegSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoLegSecurityAltID+                     , gsSeperator = tLegSecurityAltID+                     , gsBody = gNoLegSecurityAltIDBody'''''' }+                     where+                     gNoLegSecurityAltIDBody'''''' = +                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new+++         gNoPartyIDs''' = FIXTag+            { tName = "NoPartyIDs"+            , tnum = tnum tNoPartyIDs+            , tparser = gNoPartyIDsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }++         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''+         gNoPartyIDsSpec''' = FGSpec+            { gsLength = tNoPartyIDs+            , gsSeperator = tPartyID+            , gsBody = gNoPartyIDsBody''' }+            where+            gNoPartyIDsBody''' = +               LT.insert (tnum tPartyIDSource) tPartyIDSource $+               LT.insert (tnum tPartyRole) tPartyRole $+               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new+               where+                  gNoPartySubIDs'''''' = FIXTag+                     { tName = "NoPartySubIDs"+                     , tnum = tnum tNoPartySubIDs+                     , tparser = gNoPartySubIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }++                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''+                  gNoPartySubIDsSpec'''''' = FGSpec+                     { gsLength = tNoPartySubIDs+                     , gsSeperator = tPartySubID+                     , gsBody = gNoPartySubIDsBody'''''' }+                     where+                     gNoPartySubIDsBody'''''' = +                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new+++         gNoSecurityAltID''' = FIXTag+            { tName = "NoSecurityAltID"+            , tnum = tnum tNoSecurityAltID+            , tparser = gNoSecurityAltIDP'''+            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }++         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''+         gNoSecurityAltIDSpec''' = FGSpec+            { gsLength = tNoSecurityAltID+            , gsSeperator = tSecurityAltID+            , gsBody = gNoSecurityAltIDBody''' }+            where+            gNoSecurityAltIDBody''' = +               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new++         gNoTrades''' = FIXTag+            { tName = "NoTrades"+            , tnum = tnum tNoTrades+            , tparser = gNoTradesP'''+            , arbitraryValue = arbibtraryFIXGroup gNoTradesSpec''' }++         gNoTradesP''' = groupP gNoTradesSpec'''+         gNoTradesSpec''' = FGSpec+            { gsLength = tNoTrades+            , gsSeperator = tTradeReportID+            , gsBody = gNoTradesBody''' }+            where+            gNoTradesBody''' = +               LT.insert (tnum tSecondaryTradeReportID) tSecondaryTradeReportID                LT.new++         gNoUnderlyings''' = FIXTag+            { tName = "NoUnderlyings"+            , tnum = tnum tNoUnderlyings+            , tparser = gNoUnderlyingsP'''+            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }++         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''+         gNoUnderlyingsSpec''' = FGSpec+            { gsLength = tNoUnderlyings+            , gsSeperator = tUnderlyingSymbol+            , gsBody = gNoUnderlyingsBody''' }+            where+            gNoUnderlyingsBody''' = +               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $+               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new+               where+                  gNoUnderlyingSecurityAltID'''''' = FIXTag+                     { tName = "NoUnderlyingSecurityAltID"+                     , tnum = tnum tNoUnderlyingSecurityAltID+                     , tparser = gNoUnderlyingSecurityAltIDP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }++                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''+                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingSecurityAltID+                     , gsSeperator = tUnderlyingSecurityAltID+                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }+                     where+                     gNoUnderlyingSecurityAltIDBody'''''' = +                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new++                  gNoUnderlyingStips'''''' = FIXTag+                     { tName = "NoUnderlyingStips"+                     , tnum = tnum tNoUnderlyingStips+                     , tparser = gNoUnderlyingStipsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }++                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''+                  gNoUnderlyingStipsSpec'''''' = FGSpec+                     { gsLength = tNoUnderlyingStips+                     , gsSeperator = tUnderlyingStipType+                     , gsBody = gNoUnderlyingStipsBody'''''' }+                     where+                     gNoUnderlyingStipsBody'''''' = +                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new+++++mConfirmationRequest :: FIXMessageSpec+mConfirmationRequest = FMSpec+   { msName = "ConfirmationRequest"+   , msType = C.pack "BH"+   , msHeader = headerFIX44+   , msBody = mConfirmationRequestBody+   , msTrailer = trailerFIX44 }+   where+   mConfirmationRequestBody = +      LT.insert (tnum tConfirmReqID) tConfirmReqID $+      LT.insert (tnum tConfirmType) tConfirmType $+      LT.insert (tnum tNoOrders) gNoOrders''' $+      LT.insert (tnum tAllocID) tAllocID $+      LT.insert (tnum tSecondaryAllocID) tSecondaryAllocID $+      LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+      LT.insert (tnum tTransactTime) tTransactTime $+      LT.insert (tnum tAllocAccount) tAllocAccount $+      LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $+      LT.insert (tnum tAllocAccountType) tAllocAccountType $+      LT.insert (tnum tText) tText $+      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+      LT.insert (tnum tEncodedText) tEncodedText       LT.new+      where+         gNoOrders''' = FIXTag+            { tName = "NoOrders"+            , tnum = tnum tNoOrders+            , tparser = gNoOrdersP'''+            , arbitraryValue = arbibtraryFIXGroup gNoOrdersSpec''' }++         gNoOrdersP''' = groupP gNoOrdersSpec'''+         gNoOrdersSpec''' = FGSpec+            { gsLength = tNoOrders+            , gsSeperator = tClOrdID+            , gsBody = gNoOrdersBody''' }+            where+            gNoOrdersBody''' = +               LT.insert (tnum tOrderID) tOrderID $+               LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+               LT.insert (tnum tListID) tListID $+               LT.insert (tnum tNoNested2PartyIDs) gNoNested2PartyIDs'''''' $+               LT.insert (tnum tOrderQty) tOrderQty $+               LT.insert (tnum tOrderAvgPx) tOrderAvgPx $+               LT.insert (tnum tOrderBookingQty) tOrderBookingQty                LT.new+               where+                  gNoNested2PartyIDs'''''' = FIXTag+                     { tName = "NoNested2PartyIDs"+                     , tnum = tnum tNoNested2PartyIDs+                     , tparser = gNoNested2PartyIDsP''''''+                     , arbitraryValue = arbibtraryFIXGroup gNoNested2PartyIDsSpec'''''' }++                  gNoNested2PartyIDsP'''''' = groupP gNoNested2PartyIDsSpec''''''+                  gNoNested2PartyIDsSpec'''''' = FGSpec+                     { gsLength = tNoNested2PartyIDs+                     , gsSeperator = tNested2PartyID+                     , gsBody = gNoNested2PartyIDsBody'''''' }+                     where+                     gNoNested2PartyIDsBody'''''' = +                        LT.insert (tnum tNested2PartyIDSource) tNested2PartyIDSource $+                        LT.insert (tnum tNested2PartyRole) tNested2PartyRole $+                        LT.insert (tnum tNoNested2PartySubIDs) gNoNested2PartySubIDs'''''''''                         LT.new+                        where+                           gNoNested2PartySubIDs''''''''' = FIXTag+                              { tName = "NoNested2PartySubIDs"+                              , tnum = tnum tNoNested2PartySubIDs+                              , tparser = gNoNested2PartySubIDsP'''''''''+                              , arbitraryValue = arbibtraryFIXGroup gNoNested2PartySubIDsSpec''''''''' }++                           gNoNested2PartySubIDsP''''''''' = groupP gNoNested2PartySubIDsSpec'''''''''+                           gNoNested2PartySubIDsSpec''''''''' = FGSpec+                              { gsLength = tNoNested2PartySubIDs+                              , gsSeperator = tNested2PartySubID+                              , gsBody = gNoNested2PartySubIDsBody''''''''' }+                              where+                              gNoNested2PartySubIDsBody''''''''' = +                                 LT.insert (tnum tNested2PartySubIDType) tNested2PartySubIDType                                  LT.new++++++fix44 :: FIXSpec+fix44 = FSpec+   { fsVersion = "FIX.4.4"+   , fsHeader = headerFIX44+   , fsTrailer = trailerFIX44+   , fsMessages = fix44Messages +   , fsTags = fix44Tags }+   where+      fix44Messages =+          LT.insert (msType mHeartbeat) mHeartbeat $+          LT.insert (msType mTestRequest) mTestRequest $+          LT.insert (msType mResendRequest) mResendRequest $+          LT.insert (msType mReject) mReject $+          LT.insert (msType mSequenceReset) mSequenceReset $+          LT.insert (msType mLogout) mLogout $+          LT.insert (msType mIOI) mIOI $+          LT.insert (msType mAdvertisement) mAdvertisement $+          LT.insert (msType mExecutionReport) mExecutionReport $+          LT.insert (msType mOrderCancelReject) mOrderCancelReject $+          LT.insert (msType mLogon) mLogon $+          LT.insert (msType mNews) mNews $+          LT.insert (msType mEmail) mEmail $+          LT.insert (msType mNewOrderSingle) mNewOrderSingle $+          LT.insert (msType mNewOrderList) mNewOrderList $+          LT.insert (msType mOrderCancelRequest) mOrderCancelRequest $+          LT.insert (msType mOrderCancelReplaceRequest) mOrderCancelReplaceRequest $+          LT.insert (msType mOrderStatusRequest) mOrderStatusRequest $+          LT.insert (msType mAllocationInstruction) mAllocationInstruction $+          LT.insert (msType mListCancelRequest) mListCancelRequest $+          LT.insert (msType mListExecute) mListExecute $+          LT.insert (msType mListStatusRequest) mListStatusRequest $+          LT.insert (msType mListStatus) mListStatus $+          LT.insert (msType mAllocationInstructionAck) mAllocationInstructionAck $+          LT.insert (msType mDontKnowTrade) mDontKnowTrade $+          LT.insert (msType mQuoteRequest) mQuoteRequest $+          LT.insert (msType mQuote) mQuote $+          LT.insert (msType mSettlementInstructions) mSettlementInstructions $+          LT.insert (msType mMarketDataRequest) mMarketDataRequest $+          LT.insert (msType mMarketDataSnapshotFullRefresh) mMarketDataSnapshotFullRefresh $+          LT.insert (msType mMarketDataIncrementalRefresh) mMarketDataIncrementalRefresh $+          LT.insert (msType mMarketDataRequestReject) mMarketDataRequestReject $+          LT.insert (msType mQuoteCancel) mQuoteCancel $+          LT.insert (msType mQuoteStatusRequest) mQuoteStatusRequest $+          LT.insert (msType mMassQuoteAcknowledgement) mMassQuoteAcknowledgement $+          LT.insert (msType mSecurityDefinitionRequest) mSecurityDefinitionRequest $+          LT.insert (msType mSecurityDefinition) mSecurityDefinition $+          LT.insert (msType mSecurityStatusRequest) mSecurityStatusRequest $+          LT.insert (msType mSecurityStatus) mSecurityStatus $+          LT.insert (msType mTradingSessionStatusRequest) mTradingSessionStatusRequest $+          LT.insert (msType mTradingSessionStatus) mTradingSessionStatus $+          LT.insert (msType mMassQuote) mMassQuote $+          LT.insert (msType mBusinessMessageReject) mBusinessMessageReject $+          LT.insert (msType mBidRequest) mBidRequest $+          LT.insert (msType mBidResponse) mBidResponse $+          LT.insert (msType mListStrikePrice) mListStrikePrice $+          LT.insert (msType mRegistrationInstructions) mRegistrationInstructions $+          LT.insert (msType mRegistrationInstructionsResponse) mRegistrationInstructionsResponse $+          LT.insert (msType mOrderMassCancelRequest) mOrderMassCancelRequest $+          LT.insert (msType mOrderMassCancelReport) mOrderMassCancelReport $+          LT.insert (msType mNewOrderCross) mNewOrderCross $+          LT.insert (msType mCrossOrderCancelReplaceRequest) mCrossOrderCancelReplaceRequest $+          LT.insert (msType mCrossOrderCancelRequest) mCrossOrderCancelRequest $+          LT.insert (msType mSecurityTypeRequest) mSecurityTypeRequest $+          LT.insert (msType mSecurityTypes) mSecurityTypes $+          LT.insert (msType mSecurityListRequest) mSecurityListRequest $+          LT.insert (msType mSecurityList) mSecurityList $+          LT.insert (msType mDerivativeSecurityListRequest) mDerivativeSecurityListRequest $+          LT.insert (msType mDerivativeSecurityList) mDerivativeSecurityList $+          LT.insert (msType mNewOrderMultileg) mNewOrderMultileg $+          LT.insert (msType mMultilegOrderCancelReplace) mMultilegOrderCancelReplace $+          LT.insert (msType mTradeCaptureReportRequest) mTradeCaptureReportRequest $+          LT.insert (msType mTradeCaptureReport) mTradeCaptureReport $+          LT.insert (msType mOrderMassStatusRequest) mOrderMassStatusRequest $+          LT.insert (msType mQuoteRequestReject) mQuoteRequestReject $+          LT.insert (msType mRFQRequest) mRFQRequest $+          LT.insert (msType mQuoteStatusReport) mQuoteStatusReport $+          LT.insert (msType mQuoteResponse) mQuoteResponse $+          LT.insert (msType mConfirmation) mConfirmation $+          LT.insert (msType mPositionMaintenanceRequest) mPositionMaintenanceRequest $+          LT.insert (msType mPositionMaintenanceReport) mPositionMaintenanceReport $+          LT.insert (msType mRequestForPositions) mRequestForPositions $+          LT.insert (msType mRequestForPositionsAck) mRequestForPositionsAck $+          LT.insert (msType mPositionReport) mPositionReport $+          LT.insert (msType mTradeCaptureReportRequestAck) mTradeCaptureReportRequestAck $+          LT.insert (msType mTradeCaptureReportAck) mTradeCaptureReportAck $+          LT.insert (msType mAllocationReport) mAllocationReport $+          LT.insert (msType mAllocationReportAck) mAllocationReportAck $+          LT.insert (msType mConfirmationAck) mConfirmationAck $+          LT.insert (msType mSettlementInstructionRequest) mSettlementInstructionRequest $+          LT.insert (msType mAssignmentReport) mAssignmentReport $+          LT.insert (msType mCollateralRequest) mCollateralRequest $+          LT.insert (msType mCollateralAssignment) mCollateralAssignment $+          LT.insert (msType mCollateralResponse) mCollateralResponse $+          LT.insert (msType mCollateralReport) mCollateralReport $+          LT.insert (msType mCollateralInquiry) mCollateralInquiry $+          LT.insert (msType mNetworkCounterpartySystemStatusRequest) mNetworkCounterpartySystemStatusRequest $+          LT.insert (msType mNetworkCounterpartySystemStatusResponse) mNetworkCounterpartySystemStatusResponse $+          LT.insert (msType mUserRequest) mUserRequest $+          LT.insert (msType mUserResponse) mUserResponse $+          LT.insert (msType mCollateralInquiryAck) mCollateralInquiryAck $+          LT.insert (msType mConfirmationRequest) mConfirmationRequest           LT.new +      fix44Tags =+          LT.insert (tnum tAccount) tAccount $+          LT.insert (tnum tAdvId) tAdvId $+          LT.insert (tnum tAdvRefID) tAdvRefID $+          LT.insert (tnum tAdvSide) tAdvSide $+          LT.insert (tnum tAdvTransType) tAdvTransType $+          LT.insert (tnum tAvgPx) tAvgPx $+          LT.insert (tnum tBeginSeqNo) tBeginSeqNo $+          LT.insert (tnum tBeginString) tBeginString $+          LT.insert (tnum tBodyLength) tBodyLength $+          LT.insert (tnum tCheckSum) tCheckSum $+          LT.insert (tnum tClOrdID) tClOrdID $+          LT.insert (tnum tCommission) tCommission $+          LT.insert (tnum tCommType) tCommType $+          LT.insert (tnum tCumQty) tCumQty $+          LT.insert (tnum tCurrency) tCurrency $+          LT.insert (tnum tEndSeqNo) tEndSeqNo $+          LT.insert (tnum tExecID) tExecID $+          LT.insert (tnum tExecInst) tExecInst $+          LT.insert (tnum tExecRefID) tExecRefID $+          LT.insert (tnum tExecTransType) tExecTransType $+          LT.insert (tnum tHandlInst) tHandlInst $+          LT.insert (tnum tSecurityIDSource) tSecurityIDSource $+          LT.insert (tnum tIOIID) tIOIID $+          LT.insert (tnum tIOIOthSvc) tIOIOthSvc $+          LT.insert (tnum tIOIQltyInd) tIOIQltyInd $+          LT.insert (tnum tIOIRefID) tIOIRefID $+          LT.insert (tnum tIOIQty) tIOIQty $+          LT.insert (tnum tIOITransType) tIOITransType $+          LT.insert (tnum tLastCapacity) tLastCapacity $+          LT.insert (tnum tLastMkt) tLastMkt $+          LT.insert (tnum tLastPx) tLastPx $+          LT.insert (tnum tLastQty) tLastQty $+          LT.insert (tnum tNoLinesOfText) tNoLinesOfText $+          LT.insert (tnum tMsgSeqNum) tMsgSeqNum $+          LT.insert (tnum tMsgType) tMsgType $+          LT.insert (tnum tNewSeqNo) tNewSeqNo $+          LT.insert (tnum tOrderID) tOrderID $+          LT.insert (tnum tOrderQty) tOrderQty $+          LT.insert (tnum tOrdStatus) tOrdStatus $+          LT.insert (tnum tOrdType) tOrdType $+          LT.insert (tnum tOrigClOrdID) tOrigClOrdID $+          LT.insert (tnum tOrigTime) tOrigTime $+          LT.insert (tnum tPossDupFlag) tPossDupFlag $+          LT.insert (tnum tPrice) tPrice $+          LT.insert (tnum tRefSeqNum) tRefSeqNum $+          LT.insert (tnum tRelatdSym) tRelatdSym $+          LT.insert (tnum tRule80A) tRule80A $+          LT.insert (tnum tSecurityID) tSecurityID $+          LT.insert (tnum tSenderCompID) tSenderCompID $+          LT.insert (tnum tSenderSubID) tSenderSubID $+          LT.insert (tnum tSendingDate) tSendingDate $+          LT.insert (tnum tSendingTime) tSendingTime $+          LT.insert (tnum tQuantity) tQuantity $+          LT.insert (tnum tSide) tSide $+          LT.insert (tnum tSymbol) tSymbol $+          LT.insert (tnum tTargetCompID) tTargetCompID $+          LT.insert (tnum tTargetSubID) tTargetSubID $+          LT.insert (tnum tText) tText $+          LT.insert (tnum tTimeInForce) tTimeInForce $+          LT.insert (tnum tTransactTime) tTransactTime $+          LT.insert (tnum tUrgency) tUrgency $+          LT.insert (tnum tValidUntilTime) tValidUntilTime $+          LT.insert (tnum tSettlType) tSettlType $+          LT.insert (tnum tSettlDate) tSettlDate $+          LT.insert (tnum tSymbolSfx) tSymbolSfx $+          LT.insert (tnum tListID) tListID $+          LT.insert (tnum tListSeqNo) tListSeqNo $+          LT.insert (tnum tTotNoOrders) tTotNoOrders $+          LT.insert (tnum tListExecInst) tListExecInst $+          LT.insert (tnum tAllocID) tAllocID $+          LT.insert (tnum tAllocTransType) tAllocTransType $+          LT.insert (tnum tRefAllocID) tRefAllocID $+          LT.insert (tnum tNoOrders) tNoOrders $+          LT.insert (tnum tAvgPxPrecision) tAvgPxPrecision $+          LT.insert (tnum tTradeDate) tTradeDate $+          LT.insert (tnum tExecBroker) tExecBroker $+          LT.insert (tnum tPositionEffect) tPositionEffect $+          LT.insert (tnum tNoAllocs) tNoAllocs $+          LT.insert (tnum tAllocAccount) tAllocAccount $+          LT.insert (tnum tAllocQty) tAllocQty $+          LT.insert (tnum tProcessCode) tProcessCode $+          LT.insert (tnum tNoRpts) tNoRpts $+          LT.insert (tnum tRptSeq) tRptSeq $+          LT.insert (tnum tCxlQty) tCxlQty $+          LT.insert (tnum tNoDlvyInst) tNoDlvyInst $+          LT.insert (tnum tDlvyInst) tDlvyInst $+          LT.insert (tnum tAllocStatus) tAllocStatus $+          LT.insert (tnum tAllocRejCode) tAllocRejCode $+          LT.insert (tnum tSignature) tSignature $+          LT.insert (tnum tSecureDataLen) tSecureDataLen $+          LT.insert (tnum tSecureData) tSecureData $+          LT.insert (tnum tBrokerOfCredit) tBrokerOfCredit $+          LT.insert (tnum tSignatureLength) tSignatureLength $+          LT.insert (tnum tEmailType) tEmailType $+          LT.insert (tnum tRawDataLength) tRawDataLength $+          LT.insert (tnum tRawData) tRawData $+          LT.insert (tnum tPossResend) tPossResend $+          LT.insert (tnum tEncryptMethod) tEncryptMethod $+          LT.insert (tnum tStopPx) tStopPx $+          LT.insert (tnum tExDestination) tExDestination $+          LT.insert (tnum tCxlRejReason) tCxlRejReason $+          LT.insert (tnum tOrdRejReason) tOrdRejReason $+          LT.insert (tnum tIOIQualifier) tIOIQualifier $+          LT.insert (tnum tWaveNo) tWaveNo $+          LT.insert (tnum tIssuer) tIssuer $+          LT.insert (tnum tSecurityDesc) tSecurityDesc $+          LT.insert (tnum tHeartBtInt) tHeartBtInt $+          LT.insert (tnum tClientID) tClientID $+          LT.insert (tnum tMinQty) tMinQty $+          LT.insert (tnum tMaxFloor) tMaxFloor $+          LT.insert (tnum tTestReqID) tTestReqID $+          LT.insert (tnum tReportToExch) tReportToExch $+          LT.insert (tnum tLocateReqd) tLocateReqd $+          LT.insert (tnum tOnBehalfOfCompID) tOnBehalfOfCompID $+          LT.insert (tnum tOnBehalfOfSubID) tOnBehalfOfSubID $+          LT.insert (tnum tQuoteID) tQuoteID $+          LT.insert (tnum tNetMoney) tNetMoney $+          LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $+          LT.insert (tnum tSettlCurrency) tSettlCurrency $+          LT.insert (tnum tForexReq) tForexReq $+          LT.insert (tnum tOrigSendingTime) tOrigSendingTime $+          LT.insert (tnum tGapFillFlag) tGapFillFlag $+          LT.insert (tnum tNoExecs) tNoExecs $+          LT.insert (tnum tCxlType) tCxlType $+          LT.insert (tnum tExpireTime) tExpireTime $+          LT.insert (tnum tDKReason) tDKReason $+          LT.insert (tnum tDeliverToCompID) tDeliverToCompID $+          LT.insert (tnum tDeliverToSubID) tDeliverToSubID $+          LT.insert (tnum tIOINaturalFlag) tIOINaturalFlag $+          LT.insert (tnum tQuoteReqID) tQuoteReqID $+          LT.insert (tnum tBidPx) tBidPx $+          LT.insert (tnum tOfferPx) tOfferPx $+          LT.insert (tnum tBidSize) tBidSize $+          LT.insert (tnum tOfferSize) tOfferSize $+          LT.insert (tnum tNoMiscFees) tNoMiscFees $+          LT.insert (tnum tMiscFeeAmt) tMiscFeeAmt $+          LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $+          LT.insert (tnum tMiscFeeType) tMiscFeeType $+          LT.insert (tnum tPrevClosePx) tPrevClosePx $+          LT.insert (tnum tResetSeqNumFlag) tResetSeqNumFlag $+          LT.insert (tnum tSenderLocationID) tSenderLocationID $+          LT.insert (tnum tTargetLocationID) tTargetLocationID $+          LT.insert (tnum tOnBehalfOfLocationID) tOnBehalfOfLocationID $+          LT.insert (tnum tDeliverToLocationID) tDeliverToLocationID $+          LT.insert (tnum tNoRelatedSym) tNoRelatedSym $+          LT.insert (tnum tSubject) tSubject $+          LT.insert (tnum tHeadline) tHeadline $+          LT.insert (tnum tURLLink) tURLLink $+          LT.insert (tnum tExecType) tExecType $+          LT.insert (tnum tLeavesQty) tLeavesQty $+          LT.insert (tnum tCashOrderQty) tCashOrderQty $+          LT.insert (tnum tAllocAvgPx) tAllocAvgPx $+          LT.insert (tnum tAllocNetMoney) tAllocNetMoney $+          LT.insert (tnum tSettlCurrFxRate) tSettlCurrFxRate $+          LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $+          LT.insert (tnum tNumDaysInterest) tNumDaysInterest $+          LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $+          LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $+          LT.insert (tnum tSettlInstMode) tSettlInstMode $+          LT.insert (tnum tAllocText) tAllocText $+          LT.insert (tnum tSettlInstID) tSettlInstID $+          LT.insert (tnum tSettlInstTransType) tSettlInstTransType $+          LT.insert (tnum tEmailThreadID) tEmailThreadID $+          LT.insert (tnum tSettlInstSource) tSettlInstSource $+          LT.insert (tnum tSettlLocation) tSettlLocation $+          LT.insert (tnum tSecurityType) tSecurityType $+          LT.insert (tnum tEffectiveTime) tEffectiveTime $+          LT.insert (tnum tStandInstDbType) tStandInstDbType $+          LT.insert (tnum tStandInstDbName) tStandInstDbName $+          LT.insert (tnum tStandInstDbID) tStandInstDbID $+          LT.insert (tnum tSettlDeliveryType) tSettlDeliveryType $+          LT.insert (tnum tSettlDepositoryCode) tSettlDepositoryCode $+          LT.insert (tnum tSettlBrkrCode) tSettlBrkrCode $+          LT.insert (tnum tSettlInstCode) tSettlInstCode $+          LT.insert (tnum tSecuritySettlAgentName) tSecuritySettlAgentName $+          LT.insert (tnum tSecuritySettlAgentCode) tSecuritySettlAgentCode $+          LT.insert (tnum tSecuritySettlAgentAcctNum) tSecuritySettlAgentAcctNum $+          LT.insert (tnum tSecuritySettlAgentAcctName) tSecuritySettlAgentAcctName $+          LT.insert (tnum tSecuritySettlAgentContactName) tSecuritySettlAgentContactName $+          LT.insert (tnum tSecuritySettlAgentContactPhone) tSecuritySettlAgentContactPhone $+          LT.insert (tnum tCashSettlAgentName) tCashSettlAgentName $+          LT.insert (tnum tCashSettlAgentCode) tCashSettlAgentCode $+          LT.insert (tnum tCashSettlAgentAcctNum) tCashSettlAgentAcctNum $+          LT.insert (tnum tCashSettlAgentAcctName) tCashSettlAgentAcctName $+          LT.insert (tnum tCashSettlAgentContactName) tCashSettlAgentContactName $+          LT.insert (tnum tCashSettlAgentContactPhone) tCashSettlAgentContactPhone $+          LT.insert (tnum tBidSpotRate) tBidSpotRate $+          LT.insert (tnum tBidForwardPoints) tBidForwardPoints $+          LT.insert (tnum tOfferSpotRate) tOfferSpotRate $+          LT.insert (tnum tOfferForwardPoints) tOfferForwardPoints $+          LT.insert (tnum tOrderQty2) tOrderQty2 $+          LT.insert (tnum tSettlDate2) tSettlDate2 $+          LT.insert (tnum tLastSpotRate) tLastSpotRate $+          LT.insert (tnum tLastForwardPoints) tLastForwardPoints $+          LT.insert (tnum tAllocLinkID) tAllocLinkID $+          LT.insert (tnum tAllocLinkType) tAllocLinkType $+          LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $+          LT.insert (tnum tNoIOIQualifiers) tNoIOIQualifiers $+          LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $+          LT.insert (tnum tPutOrCall) tPutOrCall $+          LT.insert (tnum tStrikePrice) tStrikePrice $+          LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $+          LT.insert (tnum tCustomerOrFirm) tCustomerOrFirm $+          LT.insert (tnum tMaturityDay) tMaturityDay $+          LT.insert (tnum tOptAttribute) tOptAttribute $+          LT.insert (tnum tSecurityExchange) tSecurityExchange $+          LT.insert (tnum tNotifyBrokerOfCredit) tNotifyBrokerOfCredit $+          LT.insert (tnum tAllocHandlInst) tAllocHandlInst $+          LT.insert (tnum tMaxShow) tMaxShow $+          LT.insert (tnum tPegOffsetValue) tPegOffsetValue $+          LT.insert (tnum tXmlDataLen) tXmlDataLen $+          LT.insert (tnum tXmlData) tXmlData $+          LT.insert (tnum tSettlInstRefID) tSettlInstRefID $+          LT.insert (tnum tNoRoutingIDs) tNoRoutingIDs $+          LT.insert (tnum tRoutingType) tRoutingType $+          LT.insert (tnum tRoutingID) tRoutingID $+          LT.insert (tnum tSpread) tSpread $+          LT.insert (tnum tBenchmark) tBenchmark $+          LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $+          LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $+          LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $+          LT.insert (tnum tCouponRate) tCouponRate $+          LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $+          LT.insert (tnum tIssueDate) tIssueDate $+          LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $+          LT.insert (tnum tRepurchaseRate) tRepurchaseRate $+          LT.insert (tnum tFactor) tFactor $+          LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $+          LT.insert (tnum tExDate) tExDate $+          LT.insert (tnum tContractMultiplier) tContractMultiplier $+          LT.insert (tnum tNoStipulations) tNoStipulations $+          LT.insert (tnum tStipulationType) tStipulationType $+          LT.insert (tnum tStipulationValue) tStipulationValue $+          LT.insert (tnum tYieldType) tYieldType $+          LT.insert (tnum tYield) tYield $+          LT.insert (tnum tTotalTakedown) tTotalTakedown $+          LT.insert (tnum tConcession) tConcession $+          LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $+          LT.insert (tnum tRedemptionDate) tRedemptionDate $+          LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $+          LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $+          LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $+          LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $+          LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $+          LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $+          LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $+          LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $+          LT.insert (tnum tLegIssueDate) tLegIssueDate $+          LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $+          LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $+          LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $+          LT.insert (tnum tLegFactor) tLegFactor $+          LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $+          LT.insert (tnum tCreditRating) tCreditRating $+          LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $+          LT.insert (tnum tLegCreditRating) tLegCreditRating $+          LT.insert (tnum tTradedFlatSwitch) tTradedFlatSwitch $+          LT.insert (tnum tBasisFeatureDate) tBasisFeatureDate $+          LT.insert (tnum tBasisFeaturePrice) tBasisFeaturePrice $+          LT.insert (tnum tMDReqID) tMDReqID $+          LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $+          LT.insert (tnum tMarketDepth) tMarketDepth $+          LT.insert (tnum tMDUpdateType) tMDUpdateType $+          LT.insert (tnum tAggregatedBook) tAggregatedBook $+          LT.insert (tnum tNoMDEntryTypes) tNoMDEntryTypes $+          LT.insert (tnum tNoMDEntries) tNoMDEntries $+          LT.insert (tnum tMDEntryType) tMDEntryType $+          LT.insert (tnum tMDEntryPx) tMDEntryPx $+          LT.insert (tnum tMDEntrySize) tMDEntrySize $+          LT.insert (tnum tMDEntryDate) tMDEntryDate $+          LT.insert (tnum tMDEntryTime) tMDEntryTime $+          LT.insert (tnum tTickDirection) tTickDirection $+          LT.insert (tnum tMDMkt) tMDMkt $+          LT.insert (tnum tQuoteCondition) tQuoteCondition $+          LT.insert (tnum tTradeCondition) tTradeCondition $+          LT.insert (tnum tMDEntryID) tMDEntryID $+          LT.insert (tnum tMDUpdateAction) tMDUpdateAction $+          LT.insert (tnum tMDEntryRefID) tMDEntryRefID $+          LT.insert (tnum tMDReqRejReason) tMDReqRejReason $+          LT.insert (tnum tMDEntryOriginator) tMDEntryOriginator $+          LT.insert (tnum tLocationID) tLocationID $+          LT.insert (tnum tDeskID) tDeskID $+          LT.insert (tnum tDeleteReason) tDeleteReason $+          LT.insert (tnum tOpenCloseSettlFlag) tOpenCloseSettlFlag $+          LT.insert (tnum tSellerDays) tSellerDays $+          LT.insert (tnum tMDEntryBuyer) tMDEntryBuyer $+          LT.insert (tnum tMDEntrySeller) tMDEntrySeller $+          LT.insert (tnum tMDEntryPositionNo) tMDEntryPositionNo $+          LT.insert (tnum tFinancialStatus) tFinancialStatus $+          LT.insert (tnum tCorporateAction) tCorporateAction $+          LT.insert (tnum tDefBidSize) tDefBidSize $+          LT.insert (tnum tDefOfferSize) tDefOfferSize $+          LT.insert (tnum tNoQuoteEntries) tNoQuoteEntries $+          LT.insert (tnum tNoQuoteSets) tNoQuoteSets $+          LT.insert (tnum tQuoteStatus) tQuoteStatus $+          LT.insert (tnum tQuoteCancelType) tQuoteCancelType $+          LT.insert (tnum tQuoteEntryID) tQuoteEntryID $+          LT.insert (tnum tQuoteRejectReason) tQuoteRejectReason $+          LT.insert (tnum tQuoteResponseLevel) tQuoteResponseLevel $+          LT.insert (tnum tQuoteSetID) tQuoteSetID $+          LT.insert (tnum tQuoteRequestType) tQuoteRequestType $+          LT.insert (tnum tTotNoQuoteEntries) tTotNoQuoteEntries $+          LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $+          LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $+          LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $+          LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $+          LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $+          LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $+          LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $+          LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $+          LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $+          LT.insert (tnum tUnderlyingMaturityDay) tUnderlyingMaturityDay $+          LT.insert (tnum tUnderlyingPutOrCall) tUnderlyingPutOrCall $+          LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $+          LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $+          LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $+          LT.insert (tnum tRatioQty) tRatioQty $+          LT.insert (tnum tSecurityReqID) tSecurityReqID $+          LT.insert (tnum tSecurityRequestType) tSecurityRequestType $+          LT.insert (tnum tSecurityResponseID) tSecurityResponseID $+          LT.insert (tnum tSecurityResponseType) tSecurityResponseType $+          LT.insert (tnum tSecurityStatusReqID) tSecurityStatusReqID $+          LT.insert (tnum tUnsolicitedIndicator) tUnsolicitedIndicator $+          LT.insert (tnum tSecurityTradingStatus) tSecurityTradingStatus $+          LT.insert (tnum tHaltReasonChar) tHaltReasonChar $+          LT.insert (tnum tInViewOfCommon) tInViewOfCommon $+          LT.insert (tnum tDueToRelated) tDueToRelated $+          LT.insert (tnum tBuyVolume) tBuyVolume $+          LT.insert (tnum tSellVolume) tSellVolume $+          LT.insert (tnum tHighPx) tHighPx $+          LT.insert (tnum tLowPx) tLowPx $+          LT.insert (tnum tAdjustment) tAdjustment $+          LT.insert (tnum tTradSesReqID) tTradSesReqID $+          LT.insert (tnum tTradingSessionID) tTradingSessionID $+          LT.insert (tnum tContraTrader) tContraTrader $+          LT.insert (tnum tTradSesMethod) tTradSesMethod $+          LT.insert (tnum tTradSesMode) tTradSesMode $+          LT.insert (tnum tTradSesStatus) tTradSesStatus $+          LT.insert (tnum tTradSesStartTime) tTradSesStartTime $+          LT.insert (tnum tTradSesOpenTime) tTradSesOpenTime $+          LT.insert (tnum tTradSesPreCloseTime) tTradSesPreCloseTime $+          LT.insert (tnum tTradSesCloseTime) tTradSesCloseTime $+          LT.insert (tnum tTradSesEndTime) tTradSesEndTime $+          LT.insert (tnum tNumberOfOrders) tNumberOfOrders $+          LT.insert (tnum tMessageEncoding) tMessageEncoding $+          LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $+          LT.insert (tnum tEncodedIssuer) tEncodedIssuer $+          LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $+          LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $+          LT.insert (tnum tEncodedListExecInstLen) tEncodedListExecInstLen $+          LT.insert (tnum tEncodedListExecInst) tEncodedListExecInst $+          LT.insert (tnum tEncodedTextLen) tEncodedTextLen $+          LT.insert (tnum tEncodedText) tEncodedText $+          LT.insert (tnum tEncodedSubjectLen) tEncodedSubjectLen $+          LT.insert (tnum tEncodedSubject) tEncodedSubject $+          LT.insert (tnum tEncodedHeadlineLen) tEncodedHeadlineLen $+          LT.insert (tnum tEncodedHeadline) tEncodedHeadline $+          LT.insert (tnum tEncodedAllocTextLen) tEncodedAllocTextLen $+          LT.insert (tnum tEncodedAllocText) tEncodedAllocText $+          LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $+          LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $+          LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $+          LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $+          LT.insert (tnum tAllocPrice) tAllocPrice $+          LT.insert (tnum tQuoteSetValidUntilTime) tQuoteSetValidUntilTime $+          LT.insert (tnum tQuoteEntryRejectReason) tQuoteEntryRejectReason $+          LT.insert (tnum tLastMsgSeqNumProcessed) tLastMsgSeqNumProcessed $+          LT.insert (tnum tOnBehalfOfSendingTime) tOnBehalfOfSendingTime $+          LT.insert (tnum tRefTagID) tRefTagID $+          LT.insert (tnum tRefMsgType) tRefMsgType $+          LT.insert (tnum tSessionRejectReason) tSessionRejectReason $+          LT.insert (tnum tBidRequestTransType) tBidRequestTransType $+          LT.insert (tnum tContraBroker) tContraBroker $+          LT.insert (tnum tComplianceID) tComplianceID $+          LT.insert (tnum tSolicitedFlag) tSolicitedFlag $+          LT.insert (tnum tExecRestatementReason) tExecRestatementReason $+          LT.insert (tnum tBusinessRejectRefID) tBusinessRejectRefID $+          LT.insert (tnum tBusinessRejectReason) tBusinessRejectReason $+          LT.insert (tnum tGrossTradeAmt) tGrossTradeAmt $+          LT.insert (tnum tNoContraBrokers) tNoContraBrokers $+          LT.insert (tnum tMaxMessageSize) tMaxMessageSize $+          LT.insert (tnum tNoMsgTypes) tNoMsgTypes $+          LT.insert (tnum tMsgDirection) tMsgDirection $+          LT.insert (tnum tNoTradingSessions) tNoTradingSessions $+          LT.insert (tnum tTotalVolumeTraded) tTotalVolumeTraded $+          LT.insert (tnum tDiscretionInst) tDiscretionInst $+          LT.insert (tnum tDiscretionOffsetValue) tDiscretionOffsetValue $+          LT.insert (tnum tBidID) tBidID $+          LT.insert (tnum tClientBidID) tClientBidID $+          LT.insert (tnum tListName) tListName $+          LT.insert (tnum tTotNoRelatedSym) tTotNoRelatedSym $+          LT.insert (tnum tBidType) tBidType $+          LT.insert (tnum tNumTickets) tNumTickets $+          LT.insert (tnum tSideValue1) tSideValue1 $+          LT.insert (tnum tSideValue2) tSideValue2 $+          LT.insert (tnum tNoBidDescriptors) tNoBidDescriptors $+          LT.insert (tnum tBidDescriptorType) tBidDescriptorType $+          LT.insert (tnum tBidDescriptor) tBidDescriptor $+          LT.insert (tnum tSideValueInd) tSideValueInd $+          LT.insert (tnum tLiquidityPctLow) tLiquidityPctLow $+          LT.insert (tnum tLiquidityPctHigh) tLiquidityPctHigh $+          LT.insert (tnum tLiquidityValue) tLiquidityValue $+          LT.insert (tnum tEFPTrackingError) tEFPTrackingError $+          LT.insert (tnum tFairValue) tFairValue $+          LT.insert (tnum tOutsideIndexPct) tOutsideIndexPct $+          LT.insert (tnum tValueOfFutures) tValueOfFutures $+          LT.insert (tnum tLiquidityIndType) tLiquidityIndType $+          LT.insert (tnum tWtAverageLiquidity) tWtAverageLiquidity $+          LT.insert (tnum tExchangeForPhysical) tExchangeForPhysical $+          LT.insert (tnum tOutMainCntryUIndex) tOutMainCntryUIndex $+          LT.insert (tnum tCrossPercent) tCrossPercent $+          LT.insert (tnum tProgRptReqs) tProgRptReqs $+          LT.insert (tnum tProgPeriodInterval) tProgPeriodInterval $+          LT.insert (tnum tIncTaxInd) tIncTaxInd $+          LT.insert (tnum tNumBidders) tNumBidders $+          LT.insert (tnum tBidTradeType) tBidTradeType $+          LT.insert (tnum tBasisPxType) tBasisPxType $+          LT.insert (tnum tNoBidComponents) tNoBidComponents $+          LT.insert (tnum tCountry) tCountry $+          LT.insert (tnum tTotNoStrikes) tTotNoStrikes $+          LT.insert (tnum tPriceType) tPriceType $+          LT.insert (tnum tDayOrderQty) tDayOrderQty $+          LT.insert (tnum tDayCumQty) tDayCumQty $+          LT.insert (tnum tDayAvgPx) tDayAvgPx $+          LT.insert (tnum tGTBookingInst) tGTBookingInst $+          LT.insert (tnum tNoStrikes) tNoStrikes $+          LT.insert (tnum tListStatusType) tListStatusType $+          LT.insert (tnum tNetGrossInd) tNetGrossInd $+          LT.insert (tnum tListOrderStatus) tListOrderStatus $+          LT.insert (tnum tExpireDate) tExpireDate $+          LT.insert (tnum tListExecInstType) tListExecInstType $+          LT.insert (tnum tCxlRejResponseTo) tCxlRejResponseTo $+          LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $+          LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $+          LT.insert (tnum tContraTradeQty) tContraTradeQty $+          LT.insert (tnum tContraTradeTime) tContraTradeTime $+          LT.insert (tnum tClearingFirm) tClearingFirm $+          LT.insert (tnum tClearingAccount) tClearingAccount $+          LT.insert (tnum tLiquidityNumSecurities) tLiquidityNumSecurities $+          LT.insert (tnum tMultiLegReportingType) tMultiLegReportingType $+          LT.insert (tnum tStrikeTime) tStrikeTime $+          LT.insert (tnum tListStatusText) tListStatusText $+          LT.insert (tnum tEncodedListStatusTextLen) tEncodedListStatusTextLen $+          LT.insert (tnum tEncodedListStatusText) tEncodedListStatusText $+          LT.insert (tnum tPartyIDSource) tPartyIDSource $+          LT.insert (tnum tPartyID) tPartyID $+          LT.insert (tnum tTotalVolumeTradedDate) tTotalVolumeTradedDate $+          LT.insert (tnum tTotalVolumeTradedTime) tTotalVolumeTradedTime $+          LT.insert (tnum tNetChgPrevDay) tNetChgPrevDay $+          LT.insert (tnum tPartyRole) tPartyRole $+          LT.insert (tnum tNoPartyIDs) tNoPartyIDs $+          LT.insert (tnum tNoSecurityAltID) tNoSecurityAltID $+          LT.insert (tnum tSecurityAltID) tSecurityAltID $+          LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource $+          LT.insert (tnum tNoUnderlyingSecurityAltID) tNoUnderlyingSecurityAltID $+          LT.insert (tnum tUnderlyingSecurityAltID) tUnderlyingSecurityAltID $+          LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource $+          LT.insert (tnum tProduct) tProduct $+          LT.insert (tnum tCFICode) tCFICode $+          LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $+          LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $+          LT.insert (tnum tTestMessageIndicator) tTestMessageIndicator $+          LT.insert (tnum tQuantityType) tQuantityType $+          LT.insert (tnum tBookingRefID) tBookingRefID $+          LT.insert (tnum tIndividualAllocID) tIndividualAllocID $+          LT.insert (tnum tRoundingDirection) tRoundingDirection $+          LT.insert (tnum tRoundingModulus) tRoundingModulus $+          LT.insert (tnum tCountryOfIssue) tCountryOfIssue $+          LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $+          LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $+          LT.insert (tnum tNoRegistDtls) tNoRegistDtls $+          LT.insert (tnum tMailingDtls) tMailingDtls $+          LT.insert (tnum tInvestorCountryOfResidence) tInvestorCountryOfResidence $+          LT.insert (tnum tPaymentRef) tPaymentRef $+          LT.insert (tnum tDistribPaymentMethod) tDistribPaymentMethod $+          LT.insert (tnum tCashDistribCurr) tCashDistribCurr $+          LT.insert (tnum tCommCurrency) tCommCurrency $+          LT.insert (tnum tCancellationRights) tCancellationRights $+          LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $+          LT.insert (tnum tMailingInst) tMailingInst $+          LT.insert (tnum tTransBkdTime) tTransBkdTime $+          LT.insert (tnum tExecPriceType) tExecPriceType $+          LT.insert (tnum tExecPriceAdjustment) tExecPriceAdjustment $+          LT.insert (tnum tDateOfBirth) tDateOfBirth $+          LT.insert (tnum tTradeReportTransType) tTradeReportTransType $+          LT.insert (tnum tCardHolderName) tCardHolderName $+          LT.insert (tnum tCardNumber) tCardNumber $+          LT.insert (tnum tCardExpDate) tCardExpDate $+          LT.insert (tnum tCardIssNum) tCardIssNum $+          LT.insert (tnum tPaymentMethod) tPaymentMethod $+          LT.insert (tnum tRegistAcctType) tRegistAcctType $+          LT.insert (tnum tDesignation) tDesignation $+          LT.insert (tnum tTaxAdvantageType) tTaxAdvantageType $+          LT.insert (tnum tRegistRejReasonText) tRegistRejReasonText $+          LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $+          LT.insert (tnum tCashDistribAgentName) tCashDistribAgentName $+          LT.insert (tnum tCashDistribAgentCode) tCashDistribAgentCode $+          LT.insert (tnum tCashDistribAgentAcctNumber) tCashDistribAgentAcctNumber $+          LT.insert (tnum tCashDistribPayRef) tCashDistribPayRef $+          LT.insert (tnum tCashDistribAgentAcctName) tCashDistribAgentAcctName $+          LT.insert (tnum tCardStartDate) tCardStartDate $+          LT.insert (tnum tPaymentDate) tPaymentDate $+          LT.insert (tnum tPaymentRemitterID) tPaymentRemitterID $+          LT.insert (tnum tRegistStatus) tRegistStatus $+          LT.insert (tnum tRegistRejReasonCode) tRegistRejReasonCode $+          LT.insert (tnum tRegistRefID) tRegistRefID $+          LT.insert (tnum tRegistDtls) tRegistDtls $+          LT.insert (tnum tNoDistribInsts) tNoDistribInsts $+          LT.insert (tnum tRegistEmail) tRegistEmail $+          LT.insert (tnum tDistribPercentage) tDistribPercentage $+          LT.insert (tnum tRegistID) tRegistID $+          LT.insert (tnum tRegistTransType) tRegistTransType $+          LT.insert (tnum tExecValuationPoint) tExecValuationPoint $+          LT.insert (tnum tOrderPercent) tOrderPercent $+          LT.insert (tnum tOwnershipType) tOwnershipType $+          LT.insert (tnum tNoContAmts) tNoContAmts $+          LT.insert (tnum tContAmtType) tContAmtType $+          LT.insert (tnum tContAmtValue) tContAmtValue $+          LT.insert (tnum tContAmtCurr) tContAmtCurr $+          LT.insert (tnum tOwnerType) tOwnerType $+          LT.insert (tnum tPartySubID) tPartySubID $+          LT.insert (tnum tNestedPartyID) tNestedPartyID $+          LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $+          LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $+          LT.insert (tnum tSecondaryExecID) tSecondaryExecID $+          LT.insert (tnum tOrderCapacity) tOrderCapacity $+          LT.insert (tnum tOrderRestrictions) tOrderRestrictions $+          LT.insert (tnum tMassCancelRequestType) tMassCancelRequestType $+          LT.insert (tnum tMassCancelResponse) tMassCancelResponse $+          LT.insert (tnum tMassCancelRejectReason) tMassCancelRejectReason $+          LT.insert (tnum tTotalAffectedOrders) tTotalAffectedOrders $+          LT.insert (tnum tNoAffectedOrders) tNoAffectedOrders $+          LT.insert (tnum tAffectedOrderID) tAffectedOrderID $+          LT.insert (tnum tAffectedSecondaryOrderID) tAffectedSecondaryOrderID $+          LT.insert (tnum tQuoteType) tQuoteType $+          LT.insert (tnum tNestedPartyRole) tNestedPartyRole $+          LT.insert (tnum tNoNestedPartyIDs) tNoNestedPartyIDs $+          LT.insert (tnum tTotalAccruedInterestAmt) tTotalAccruedInterestAmt $+          LT.insert (tnum tMaturityDate) tMaturityDate $+          LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $+          LT.insert (tnum tInstrRegistry) tInstrRegistry $+          LT.insert (tnum tCashMargin) tCashMargin $+          LT.insert (tnum tNestedPartySubID) tNestedPartySubID $+          LT.insert (tnum tScope) tScope $+          LT.insert (tnum tMDImplicitDelete) tMDImplicitDelete $+          LT.insert (tnum tCrossID) tCrossID $+          LT.insert (tnum tCrossType) tCrossType $+          LT.insert (tnum tCrossPrioritization) tCrossPrioritization $+          LT.insert (tnum tOrigCrossID) tOrigCrossID $+          LT.insert (tnum tNoSides) tNoSides $+          LT.insert (tnum tUsername) tUsername $+          LT.insert (tnum tPassword) tPassword $+          LT.insert (tnum tNoLegs) tNoLegs $+          LT.insert (tnum tLegCurrency) tLegCurrency $+          LT.insert (tnum tTotNoSecurityTypes) tTotNoSecurityTypes $+          LT.insert (tnum tNoSecurityTypes) tNoSecurityTypes $+          LT.insert (tnum tSecurityListRequestType) tSecurityListRequestType $+          LT.insert (tnum tSecurityRequestResult) tSecurityRequestResult $+          LT.insert (tnum tRoundLot) tRoundLot $+          LT.insert (tnum tMinTradeVol) tMinTradeVol $+          LT.insert (tnum tMultiLegRptTypeReq) tMultiLegRptTypeReq $+          LT.insert (tnum tLegPositionEffect) tLegPositionEffect $+          LT.insert (tnum tLegCoveredOrUncovered) tLegCoveredOrUncovered $+          LT.insert (tnum tLegPrice) tLegPrice $+          LT.insert (tnum tTradSesStatusRejReason) tTradSesStatusRejReason $+          LT.insert (tnum tTradeRequestID) tTradeRequestID $+          LT.insert (tnum tTradeRequestType) tTradeRequestType $+          LT.insert (tnum tPreviouslyReported) tPreviouslyReported $+          LT.insert (tnum tTradeReportID) tTradeReportID $+          LT.insert (tnum tTradeReportRefID) tTradeReportRefID $+          LT.insert (tnum tMatchStatus) tMatchStatus $+          LT.insert (tnum tMatchType) tMatchType $+          LT.insert (tnum tOddLot) tOddLot $+          LT.insert (tnum tNoClearingInstructions) tNoClearingInstructions $+          LT.insert (tnum tClearingInstruction) tClearingInstruction $+          LT.insert (tnum tTradeInputSource) tTradeInputSource $+          LT.insert (tnum tTradeInputDevice) tTradeInputDevice $+          LT.insert (tnum tNoDates) tNoDates $+          LT.insert (tnum tAccountType) tAccountType $+          LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $+          LT.insert (tnum tClOrdLinkID) tClOrdLinkID $+          LT.insert (tnum tMassStatusReqID) tMassStatusReqID $+          LT.insert (tnum tMassStatusReqType) tMassStatusReqType $+          LT.insert (tnum tOrigOrdModTime) tOrigOrdModTime $+          LT.insert (tnum tLegSettlType) tLegSettlType $+          LT.insert (tnum tLegSettlDate) tLegSettlDate $+          LT.insert (tnum tDayBookingInst) tDayBookingInst $+          LT.insert (tnum tBookingUnit) tBookingUnit $+          LT.insert (tnum tPreallocMethod) tPreallocMethod $+          LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $+          LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $+          LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $+          LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $+          LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $+          LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $+          LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $+          LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $+          LT.insert (tnum tLegSymbol) tLegSymbol $+          LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $+          LT.insert (tnum tLegSecurityID) tLegSecurityID $+          LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $+          LT.insert (tnum tNoLegSecurityAltID) tNoLegSecurityAltID $+          LT.insert (tnum tLegSecurityAltID) tLegSecurityAltID $+          LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource $+          LT.insert (tnum tLegProduct) tLegProduct $+          LT.insert (tnum tLegCFICode) tLegCFICode $+          LT.insert (tnum tLegSecurityType) tLegSecurityType $+          LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $+          LT.insert (tnum tLegMaturityDate) tLegMaturityDate $+          LT.insert (tnum tLegStrikePrice) tLegStrikePrice $+          LT.insert (tnum tLegOptAttribute) tLegOptAttribute $+          LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $+          LT.insert (tnum tLegCouponRate) tLegCouponRate $+          LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $+          LT.insert (tnum tLegIssuer) tLegIssuer $+          LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $+          LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $+          LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $+          LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $+          LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $+          LT.insert (tnum tLegRatioQty) tLegRatioQty $+          LT.insert (tnum tLegSide) tLegSide $+          LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $+          LT.insert (tnum tAllocType) tAllocType $+          LT.insert (tnum tNoHops) tNoHops $+          LT.insert (tnum tHopCompID) tHopCompID $+          LT.insert (tnum tHopSendingTime) tHopSendingTime $+          LT.insert (tnum tHopRefID) tHopRefID $+          LT.insert (tnum tMidPx) tMidPx $+          LT.insert (tnum tBidYield) tBidYield $+          LT.insert (tnum tMidYield) tMidYield $+          LT.insert (tnum tOfferYield) tOfferYield $+          LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $+          LT.insert (tnum tWorkingIndicator) tWorkingIndicator $+          LT.insert (tnum tLegLastPx) tLegLastPx $+          LT.insert (tnum tPriorityIndicator) tPriorityIndicator $+          LT.insert (tnum tPriceImprovement) tPriceImprovement $+          LT.insert (tnum tPrice2) tPrice2 $+          LT.insert (tnum tLastForwardPoints2) tLastForwardPoints2 $+          LT.insert (tnum tBidForwardPoints2) tBidForwardPoints2 $+          LT.insert (tnum tOfferForwardPoints2) tOfferForwardPoints2 $+          LT.insert (tnum tRFQReqID) tRFQReqID $+          LT.insert (tnum tMktBidPx) tMktBidPx $+          LT.insert (tnum tMktOfferPx) tMktOfferPx $+          LT.insert (tnum tMinBidSize) tMinBidSize $+          LT.insert (tnum tMinOfferSize) tMinOfferSize $+          LT.insert (tnum tQuoteStatusReqID) tQuoteStatusReqID $+          LT.insert (tnum tLegalConfirm) tLegalConfirm $+          LT.insert (tnum tUnderlyingLastPx) tUnderlyingLastPx $+          LT.insert (tnum tUnderlyingLastQty) tUnderlyingLastQty $+          LT.insert (tnum tSecDefStatus) tSecDefStatus $+          LT.insert (tnum tLegRefID) tLegRefID $+          LT.insert (tnum tContraLegRefID) tContraLegRefID $+          LT.insert (tnum tSettlCurrBidFxRate) tSettlCurrBidFxRate $+          LT.insert (tnum tSettlCurrOfferFxRate) tSettlCurrOfferFxRate $+          LT.insert (tnum tQuoteRequestRejectReason) tQuoteRequestRejectReason $+          LT.insert (tnum tSideComplianceID) tSideComplianceID $+          LT.insert (tnum tAcctIDSource) tAcctIDSource $+          LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $+          LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $+          LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $+          LT.insert (tnum tConfirmID) tConfirmID $+          LT.insert (tnum tConfirmStatus) tConfirmStatus $+          LT.insert (tnum tConfirmTransType) tConfirmTransType $+          LT.insert (tnum tContractSettlMonth) tContractSettlMonth $+          LT.insert (tnum tDeliveryForm) tDeliveryForm $+          LT.insert (tnum tLastParPx) tLastParPx $+          LT.insert (tnum tNoLegAllocs) tNoLegAllocs $+          LT.insert (tnum tLegAllocAccount) tLegAllocAccount $+          LT.insert (tnum tLegIndividualAllocID) tLegIndividualAllocID $+          LT.insert (tnum tLegAllocQty) tLegAllocQty $+          LT.insert (tnum tLegAllocAcctIDSource) tLegAllocAcctIDSource $+          LT.insert (tnum tLegSettlCurrency) tLegSettlCurrency $+          LT.insert (tnum tLegBenchmarkCurveCurrency) tLegBenchmarkCurveCurrency $+          LT.insert (tnum tLegBenchmarkCurveName) tLegBenchmarkCurveName $+          LT.insert (tnum tLegBenchmarkCurvePoint) tLegBenchmarkCurvePoint $+          LT.insert (tnum tLegBenchmarkPrice) tLegBenchmarkPrice $+          LT.insert (tnum tLegBenchmarkPriceType) tLegBenchmarkPriceType $+          LT.insert (tnum tLegBidPx) tLegBidPx $+          LT.insert (tnum tLegIOIQty) tLegIOIQty $+          LT.insert (tnum tNoLegStipulations) tNoLegStipulations $+          LT.insert (tnum tLegOfferPx) tLegOfferPx $+          LT.insert (tnum tLegOrderQty) tLegOrderQty $+          LT.insert (tnum tLegPriceType) tLegPriceType $+          LT.insert (tnum tLegQty) tLegQty $+          LT.insert (tnum tLegStipulationType) tLegStipulationType $+          LT.insert (tnum tLegStipulationValue) tLegStipulationValue $+          LT.insert (tnum tLegSwapType) tLegSwapType $+          LT.insert (tnum tPool) tPool $+          LT.insert (tnum tQuotePriceType) tQuotePriceType $+          LT.insert (tnum tQuoteRespID) tQuoteRespID $+          LT.insert (tnum tQuoteRespType) tQuoteRespType $+          LT.insert (tnum tQuoteQualifier) tQuoteQualifier $+          LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $+          LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $+          LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $+          LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $+          LT.insert (tnum tReversalIndicator) tReversalIndicator $+          LT.insert (tnum tYieldCalcDate) tYieldCalcDate $+          LT.insert (tnum tNoPositions) tNoPositions $+          LT.insert (tnum tPosType) tPosType $+          LT.insert (tnum tLongQty) tLongQty $+          LT.insert (tnum tShortQty) tShortQty $+          LT.insert (tnum tPosQtyStatus) tPosQtyStatus $+          LT.insert (tnum tPosAmtType) tPosAmtType $+          LT.insert (tnum tPosAmt) tPosAmt $+          LT.insert (tnum tPosTransType) tPosTransType $+          LT.insert (tnum tPosReqID) tPosReqID $+          LT.insert (tnum tNoUnderlyings) tNoUnderlyings $+          LT.insert (tnum tPosMaintAction) tPosMaintAction $+          LT.insert (tnum tOrigPosReqRefID) tOrigPosReqRefID $+          LT.insert (tnum tPosMaintRptRefID) tPosMaintRptRefID $+          LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $+          LT.insert (tnum tSettlSessID) tSettlSessID $+          LT.insert (tnum tSettlSessSubID) tSettlSessSubID $+          LT.insert (tnum tAdjustmentType) tAdjustmentType $+          LT.insert (tnum tContraryInstructionIndicator) tContraryInstructionIndicator $+          LT.insert (tnum tPriorSpreadIndicator) tPriorSpreadIndicator $+          LT.insert (tnum tPosMaintRptID) tPosMaintRptID $+          LT.insert (tnum tPosMaintStatus) tPosMaintStatus $+          LT.insert (tnum tPosMaintResult) tPosMaintResult $+          LT.insert (tnum tPosReqType) tPosReqType $+          LT.insert (tnum tResponseTransportType) tResponseTransportType $+          LT.insert (tnum tResponseDestination) tResponseDestination $+          LT.insert (tnum tTotalNumPosReports) tTotalNumPosReports $+          LT.insert (tnum tPosReqResult) tPosReqResult $+          LT.insert (tnum tPosReqStatus) tPosReqStatus $+          LT.insert (tnum tSettlPrice) tSettlPrice $+          LT.insert (tnum tSettlPriceType) tSettlPriceType $+          LT.insert (tnum tUnderlyingSettlPrice) tUnderlyingSettlPrice $+          LT.insert (tnum tUnderlyingSettlPriceType) tUnderlyingSettlPriceType $+          LT.insert (tnum tPriorSettlPrice) tPriorSettlPrice $+          LT.insert (tnum tNoQuoteQualifiers) tNoQuoteQualifiers $+          LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $+          LT.insert (tnum tAllocSettlCurrAmt) tAllocSettlCurrAmt $+          LT.insert (tnum tInterestAtMaturity) tInterestAtMaturity $+          LT.insert (tnum tLegDatedDate) tLegDatedDate $+          LT.insert (tnum tLegPool) tLegPool $+          LT.insert (tnum tAllocInterestAtMaturity) tAllocInterestAtMaturity $+          LT.insert (tnum tAllocAccruedInterestAmt) tAllocAccruedInterestAmt $+          LT.insert (tnum tDeliveryDate) tDeliveryDate $+          LT.insert (tnum tAssignmentMethod) tAssignmentMethod $+          LT.insert (tnum tAssignmentUnit) tAssignmentUnit $+          LT.insert (tnum tOpenInterest) tOpenInterest $+          LT.insert (tnum tExerciseMethod) tExerciseMethod $+          LT.insert (tnum tTotNumTradeReports) tTotNumTradeReports $+          LT.insert (tnum tTradeRequestResult) tTradeRequestResult $+          LT.insert (tnum tTradeRequestStatus) tTradeRequestStatus $+          LT.insert (tnum tTradeReportRejectReason) tTradeReportRejectReason $+          LT.insert (tnum tSideMultiLegReportingType) tSideMultiLegReportingType $+          LT.insert (tnum tNoPosAmt) tNoPosAmt $+          LT.insert (tnum tAutoAcceptIndicator) tAutoAcceptIndicator $+          LT.insert (tnum tAllocReportID) tAllocReportID $+          LT.insert (tnum tNoNested2PartyIDs) tNoNested2PartyIDs $+          LT.insert (tnum tNested2PartyID) tNested2PartyID $+          LT.insert (tnum tNested2PartyIDSource) tNested2PartyIDSource $+          LT.insert (tnum tNested2PartyRole) tNested2PartyRole $+          LT.insert (tnum tNested2PartySubID) tNested2PartySubID $+          LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $+          LT.insert (tnum tSecuritySubType) tSecuritySubType $+          LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $+          LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $+          LT.insert (tnum tAllowableOneSidednessPct) tAllowableOneSidednessPct $+          LT.insert (tnum tAllowableOneSidednessValue) tAllowableOneSidednessValue $+          LT.insert (tnum tAllowableOneSidednessCurr) tAllowableOneSidednessCurr $+          LT.insert (tnum tNoTrdRegTimestamps) tNoTrdRegTimestamps $+          LT.insert (tnum tTrdRegTimestamp) tTrdRegTimestamp $+          LT.insert (tnum tTrdRegTimestampType) tTrdRegTimestampType $+          LT.insert (tnum tTrdRegTimestampOrigin) tTrdRegTimestampOrigin $+          LT.insert (tnum tConfirmRefID) tConfirmRefID $+          LT.insert (tnum tConfirmType) tConfirmType $+          LT.insert (tnum tConfirmRejReason) tConfirmRejReason $+          LT.insert (tnum tBookingType) tBookingType $+          LT.insert (tnum tIndividualAllocRejCode) tIndividualAllocRejCode $+          LT.insert (tnum tSettlInstMsgID) tSettlInstMsgID $+          LT.insert (tnum tNoSettlInst) tNoSettlInst $+          LT.insert (tnum tLastUpdateTime) tLastUpdateTime $+          LT.insert (tnum tAllocSettlInstType) tAllocSettlInstType $+          LT.insert (tnum tNoSettlPartyIDs) tNoSettlPartyIDs $+          LT.insert (tnum tSettlPartyID) tSettlPartyID $+          LT.insert (tnum tSettlPartyIDSource) tSettlPartyIDSource $+          LT.insert (tnum tSettlPartyRole) tSettlPartyRole $+          LT.insert (tnum tSettlPartySubID) tSettlPartySubID $+          LT.insert (tnum tSettlPartySubIDType) tSettlPartySubIDType $+          LT.insert (tnum tDlvyInstType) tDlvyInstType $+          LT.insert (tnum tTerminationType) tTerminationType $+          LT.insert (tnum tNextExpectedMsgSeqNum) tNextExpectedMsgSeqNum $+          LT.insert (tnum tOrdStatusReqID) tOrdStatusReqID $+          LT.insert (tnum tSettlInstReqID) tSettlInstReqID $+          LT.insert (tnum tSettlInstReqRejCode) tSettlInstReqRejCode $+          LT.insert (tnum tSecondaryAllocID) tSecondaryAllocID $+          LT.insert (tnum tAllocReportType) tAllocReportType $+          LT.insert (tnum tAllocReportRefID) tAllocReportRefID $+          LT.insert (tnum tAllocCancReplaceReason) tAllocCancReplaceReason $+          LT.insert (tnum tCopyMsgIndicator) tCopyMsgIndicator $+          LT.insert (tnum tAllocAccountType) tAllocAccountType $+          LT.insert (tnum tOrderAvgPx) tOrderAvgPx $+          LT.insert (tnum tOrderBookingQty) tOrderBookingQty $+          LT.insert (tnum tNoSettlPartySubIDs) tNoSettlPartySubIDs $+          LT.insert (tnum tNoPartySubIDs) tNoPartySubIDs $+          LT.insert (tnum tPartySubIDType) tPartySubIDType $+          LT.insert (tnum tNoNestedPartySubIDs) tNoNestedPartySubIDs $+          LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType $+          LT.insert (tnum tNoNested2PartySubIDs) tNoNested2PartySubIDs $+          LT.insert (tnum tNested2PartySubIDType) tNested2PartySubIDType $+          LT.insert (tnum tAllocIntermedReqType) tAllocIntermedReqType $+          LT.insert (tnum tUnderlyingPx) tUnderlyingPx $+          LT.insert (tnum tPriceDelta) tPriceDelta $+          LT.insert (tnum tApplQueueMax) tApplQueueMax $+          LT.insert (tnum tApplQueueDepth) tApplQueueDepth $+          LT.insert (tnum tApplQueueResolution) tApplQueueResolution $+          LT.insert (tnum tApplQueueAction) tApplQueueAction $+          LT.insert (tnum tNoAltMDSource) tNoAltMDSource $+          LT.insert (tnum tAltMDSourceID) tAltMDSourceID $+          LT.insert (tnum tSecondaryTradeReportID) tSecondaryTradeReportID $+          LT.insert (tnum tAvgPxIndicator) tAvgPxIndicator $+          LT.insert (tnum tTradeLinkID) tTradeLinkID $+          LT.insert (tnum tOrderInputDevice) tOrderInputDevice $+          LT.insert (tnum tUnderlyingTradingSessionID) tUnderlyingTradingSessionID $+          LT.insert (tnum tUnderlyingTradingSessionSubID) tUnderlyingTradingSessionSubID $+          LT.insert (tnum tTradeLegRefID) tTradeLegRefID $+          LT.insert (tnum tExchangeRule) tExchangeRule $+          LT.insert (tnum tTradeAllocIndicator) tTradeAllocIndicator $+          LT.insert (tnum tExpirationCycle) tExpirationCycle $+          LT.insert (tnum tTrdType) tTrdType $+          LT.insert (tnum tTrdSubType) tTrdSubType $+          LT.insert (tnum tTransferReason) tTransferReason $+          LT.insert (tnum tAsgnReqID) tAsgnReqID $+          LT.insert (tnum tTotNumAssignmentReports) tTotNumAssignmentReports $+          LT.insert (tnum tAsgnRptID) tAsgnRptID $+          LT.insert (tnum tThresholdAmount) tThresholdAmount $+          LT.insert (tnum tPegMoveType) tPegMoveType $+          LT.insert (tnum tPegOffsetType) tPegOffsetType $+          LT.insert (tnum tPegLimitType) tPegLimitType $+          LT.insert (tnum tPegRoundDirection) tPegRoundDirection $+          LT.insert (tnum tPeggedPrice) tPeggedPrice $+          LT.insert (tnum tPegScope) tPegScope $+          LT.insert (tnum tDiscretionMoveType) tDiscretionMoveType $+          LT.insert (tnum tDiscretionOffsetType) tDiscretionOffsetType $+          LT.insert (tnum tDiscretionLimitType) tDiscretionLimitType $+          LT.insert (tnum tDiscretionRoundDirection) tDiscretionRoundDirection $+          LT.insert (tnum tDiscretionPrice) tDiscretionPrice $+          LT.insert (tnum tDiscretionScope) tDiscretionScope $+          LT.insert (tnum tTargetStrategy) tTargetStrategy $+          LT.insert (tnum tTargetStrategyParameters) tTargetStrategyParameters $+          LT.insert (tnum tParticipationRate) tParticipationRate $+          LT.insert (tnum tTargetStrategyPerformance) tTargetStrategyPerformance $+          LT.insert (tnum tLastLiquidityInd) tLastLiquidityInd $+          LT.insert (tnum tPublishTrdIndicator) tPublishTrdIndicator $+          LT.insert (tnum tShortSaleReason) tShortSaleReason $+          LT.insert (tnum tQtyType) tQtyType $+          LT.insert (tnum tSecondaryTrdType) tSecondaryTrdType $+          LT.insert (tnum tTradeReportType) tTradeReportType $+          LT.insert (tnum tAllocNoOrdersType) tAllocNoOrdersType $+          LT.insert (tnum tSharedCommission) tSharedCommission $+          LT.insert (tnum tConfirmReqID) tConfirmReqID $+          LT.insert (tnum tAvgParPx) tAvgParPx $+          LT.insert (tnum tReportedPx) tReportedPx $+          LT.insert (tnum tNoCapacities) tNoCapacities $+          LT.insert (tnum tOrderCapacityQty) tOrderCapacityQty $+          LT.insert (tnum tNoEvents) tNoEvents $+          LT.insert (tnum tEventType) tEventType $+          LT.insert (tnum tEventDate) tEventDate $+          LT.insert (tnum tEventPx) tEventPx $+          LT.insert (tnum tEventText) tEventText $+          LT.insert (tnum tPctAtRisk) tPctAtRisk $+          LT.insert (tnum tNoInstrAttrib) tNoInstrAttrib $+          LT.insert (tnum tInstrAttribType) tInstrAttribType $+          LT.insert (tnum tInstrAttribValue) tInstrAttribValue $+          LT.insert (tnum tDatedDate) tDatedDate $+          LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $+          LT.insert (tnum tCPProgram) tCPProgram $+          LT.insert (tnum tCPRegType) tCPRegType $+          LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $+          LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $+          LT.insert (tnum tUnderlyingQty) tUnderlyingQty $+          LT.insert (tnum tTrdMatchID) tTrdMatchID $+          LT.insert (tnum tSecondaryTradeReportRefID) tSecondaryTradeReportRefID $+          LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $+          LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $+          LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $+          LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $+          LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $+          LT.insert (tnum tNoUnderlyingStips) tNoUnderlyingStips $+          LT.insert (tnum tUnderlyingStipType) tUnderlyingStipType $+          LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue $+          LT.insert (tnum tMaturityNetMoney) tMaturityNetMoney $+          LT.insert (tnum tMiscFeeBasis) tMiscFeeBasis $+          LT.insert (tnum tTotNoAllocs) tTotNoAllocs $+          LT.insert (tnum tLastFragment) tLastFragment $+          LT.insert (tnum tCollReqID) tCollReqID $+          LT.insert (tnum tCollAsgnReason) tCollAsgnReason $+          LT.insert (tnum tCollInquiryQualifier) tCollInquiryQualifier $+          LT.insert (tnum tNoTrades) tNoTrades $+          LT.insert (tnum tMarginRatio) tMarginRatio $+          LT.insert (tnum tMarginExcess) tMarginExcess $+          LT.insert (tnum tTotalNetValue) tTotalNetValue $+          LT.insert (tnum tCashOutstanding) tCashOutstanding $+          LT.insert (tnum tCollAsgnID) tCollAsgnID $+          LT.insert (tnum tCollAsgnTransType) tCollAsgnTransType $+          LT.insert (tnum tCollRespID) tCollRespID $+          LT.insert (tnum tCollAsgnRespType) tCollAsgnRespType $+          LT.insert (tnum tCollAsgnRejectReason) tCollAsgnRejectReason $+          LT.insert (tnum tCollAsgnRefID) tCollAsgnRefID $+          LT.insert (tnum tCollRptID) tCollRptID $+          LT.insert (tnum tCollInquiryID) tCollInquiryID $+          LT.insert (tnum tCollStatus) tCollStatus $+          LT.insert (tnum tTotNumReports) tTotNumReports $+          LT.insert (tnum tLastRptRequested) tLastRptRequested $+          LT.insert (tnum tAgreementDesc) tAgreementDesc $+          LT.insert (tnum tAgreementID) tAgreementID $+          LT.insert (tnum tAgreementDate) tAgreementDate $+          LT.insert (tnum tStartDate) tStartDate $+          LT.insert (tnum tEndDate) tEndDate $+          LT.insert (tnum tAgreementCurrency) tAgreementCurrency $+          LT.insert (tnum tDeliveryType) tDeliveryType $+          LT.insert (tnum tEndAccruedInterestAmt) tEndAccruedInterestAmt $+          LT.insert (tnum tStartCash) tStartCash $+          LT.insert (tnum tEndCash) tEndCash $+          LT.insert (tnum tUserRequestID) tUserRequestID $+          LT.insert (tnum tUserRequestType) tUserRequestType $+          LT.insert (tnum tNewPassword) tNewPassword $+          LT.insert (tnum tUserStatus) tUserStatus $+          LT.insert (tnum tUserStatusText) tUserStatusText $+          LT.insert (tnum tStatusValue) tStatusValue $+          LT.insert (tnum tStatusText) tStatusText $+          LT.insert (tnum tRefCompID) tRefCompID $+          LT.insert (tnum tRefSubID) tRefSubID $+          LT.insert (tnum tNetworkResponseID) tNetworkResponseID $+          LT.insert (tnum tNetworkRequestID) tNetworkRequestID $+          LT.insert (tnum tLastNetworkResponseID) tLastNetworkResponseID $+          LT.insert (tnum tNetworkRequestType) tNetworkRequestType $+          LT.insert (tnum tNoCompIDs) tNoCompIDs $+          LT.insert (tnum tNetworkStatusResponseType) tNetworkStatusResponseType $+          LT.insert (tnum tNoCollInquiryQualifier) tNoCollInquiryQualifier $+          LT.insert (tnum tTrdRptStatus) tTrdRptStatus $+          LT.insert (tnum tAffirmStatus) tAffirmStatus $+          LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $+          LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $+          LT.insert (tnum tTimeBracket) tTimeBracket $+          LT.insert (tnum tCollAction) tCollAction $+          LT.insert (tnum tCollInquiryStatus) tCollInquiryStatus $+          LT.insert (tnum tCollInquiryResult) tCollInquiryResult $+          LT.insert (tnum tStrikeCurrency) tStrikeCurrency $+          LT.insert (tnum tNoNested3PartyIDs) tNoNested3PartyIDs $+          LT.insert (tnum tNested3PartyID) tNested3PartyID $+          LT.insert (tnum tNested3PartyIDSource) tNested3PartyIDSource $+          LT.insert (tnum tNested3PartyRole) tNested3PartyRole $+          LT.insert (tnum tNoNested3PartySubIDs) tNoNested3PartySubIDs $+          LT.insert (tnum tNested3PartySubID) tNested3PartySubID $+          LT.insert (tnum tNested3PartySubIDType) tNested3PartySubIDType $+          LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $+          LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $+          LT.new 
+ src/Data/LookupTable.hs view
@@ -0,0 +1,52 @@+{-# LANGUAGE FunctionalDependencies, ExistentialQuantification, MultiParamTypeClasses, FlexibleInstances #-}++-- Module   : Data.LookupTable+-- License  : GPLv2++module Data.LookupTable +    ( LookupTable+    , new+    , lookup+    , insert+    , toList+    , fromList +    ) where++import Prelude hiding (lookup)++import Data.Map (Map)+import qualified Data.Map as Map+import qualified Data.List as List+import Data.IntMap (IntMap)+import qualified Data.IntMap as IntMap++class Ord k => LookupTable k v t +        | t -> k+        , t -> v +    where+    new :: t+    lookup :: k -> t -> Maybe v+    insert :: k -> v -> t -> t+    toList :: t -> [(k, v)]+    fromList :: [(k, v)] -> t++instance Ord k => LookupTable k v (Map k v) where +    new      = Map.empty+    lookup   = Map.lookup+    insert   = Map.insert+    toList   = Map.toList+    fromList = Map.fromList++instance Ord k => LookupTable k v [(k,v)] where+    new      = []+    lookup   = List.lookup  +    insert   = curry (:)+    toList   = id+    fromList = id++instance LookupTable Int v (IntMap v) where+    new      = IntMap.empty+    lookup   = IntMap.lookup+    insert   = IntMap.insert+    toList   = IntMap.toList+    fromList = IntMap.fromList
+ src/Utils/Generator.hs view
@@ -0,0 +1,383 @@+{-# LANGUAGE GeneralizedNewtypeDeriving, FlexibleContexts #-}++import Text.XML.HaXml+import qualified Text.XML.HaXml.Pretty as P +import System.Environment ( getArgs )+import Data.LookupTable ( LookupTable )+import qualified Data.LookupTable as LT+import Data.Map ( Map )+import Data.Maybe ( fromMaybe )+import Control.Monad ( liftM )+import Control.Applicative ( (<$>) )+import Data.FIX.Parser ( tBeginString, tBodyLength, tCheckSum, tMsgType )+import qualified Data.FIX.Message as FM ( tName ) +++main = do+    args <- getArgs+    xmlContent <- readFile $ xmlFile args+    let xmlDoc = xmlParse "/dev/null" xmlContent+        modName = moduleName args in +        do --- print the module header with all the imports ---  +           putStr $ moduleHeader modName xmlDoc ++ "\n\n"+           {-putStr $ concatMap (show . P.content) $ content $ getFieldSpec xmlDoc-}++           --- declare all FIX Tags ---+           putStr $ genFIXFields xmlDoc++           --- declare the FIX header ---+           putStr $ genFIXHeader xmlDoc++           --- declare the FIX trailer ---+           putStr $ genFIXTrailer xmlDoc++           --- declare all FIX messages ---+           putStr $ genFIXMessages xmlDoc++           {-putStr $ genFIXGroups xmlDoc-}+           putStr $ genFIXSpec xmlDoc+    where+        moduleHeader mod' doc = +            "module " ++ mod' ++ " ( " ++ fixSpecName doc ++ " ) where\n" +++            "import qualified Data.ByteString.Char8 as C\n" ++ +            "import qualified Data.LookupTable as LT ( new, insert )\n" +++            "import Data.FIX.Message\n" ++ +            "import Data.FIX.Parser\n" +++            "import Data.Functor ( (<$>) )\n" +++            "import Data.FIX.Arbitrary \n" +++            "import Test.QuickCheck ( arbitrary )\n" ++        -- command line options +        xmlFile :: [String] -> String+        xmlFile = head ++        moduleName :: [String] -> String+        moduleName xs | length xs > 1 = head $ tail xs+                      | otherwise = error +                            "you need to specify a name for the module"++_commonTag :: Content a -> Bool+_commonTag (CElem e _) = +               let tags = map FM.tName [tBeginString, tBodyLength, tCheckSum, tMsgType]+                   tag = getNameAttr e+               in +                   elem tag tags+_commonTag _ = False++genFIXHeader :: Document a -> String+genFIXHeader doc = let name = headerName doc in+    name ++ " :: FIXTags\n" +++    name ++ " = \n" ++ tags' ++ "\n\n"+    where   +        tags' = let h = getHeaderSpec doc +                    header = filter (not . _commonTag) $ content h +                in +                    fieldsOf 1 header++genFIXTrailer :: Document a -> String+genFIXTrailer doc = let name = trailerName doc in +    name ++ " :: FIXTags\n" +++    name ++ " = \n" ++ tags' ++ "\n\n"+    where   +        tags' = let h = getTrailerSpec doc +                    trailer = filter (not . _commonTag) $ content h +                in +                    fieldsOf 1 trailer++genFIXMessages :: Document a -> String+genFIXMessages doc = concatMap genMessage $ messagesOf doc+    where+        genMessage :: Content a -> String+        genMessage (CElem e _) = +            let msg' = getNameAttr e+                msg = mName msg'+                msgBody' = msg ++ "Body"+                mType = getMsgTypeAttr e +                tags' = fieldsOf 2 $ content e+                indent = replicate 3 ' '+            in +                msg ++ " :: FIXMessageSpec\n" +++                msg ++ " = FMSpec\n" +++                indent ++ "{ msName = \"" ++ msg' ++ "\"\n" +++                indent ++ ", msType = C.pack \"" ++ mType ++ "\"\n" +++                indent ++ ", msHeader = " ++ headerName doc ++ '\n' :+                indent ++ ", msBody = " ++ msgBody' ++  '\n' :+                indent ++ ", msTrailer = " ++ trailerName doc ++ " }\n" +++                indent ++ "where\n" +++                indent ++ msgBody' ++ " = \n" ++ tags' ++ "\n\n"++        getMsgTypeAttr = getAttr "msgtype"++genFIXFields :: Document a -> String+genFIXFields doc = let fields = filter (not . _commonTag) $ +                                    content $ getFieldSpec doc +                    in concatMap fieldDef fields++genFIXSpec :: Document a -> String+genFIXSpec doc = let +                spec' = fixSpecName doc +                fix = getFIXSpec doc+                major = getAttr "major" fix+                minor = getAttr "minor" fix++               in  +                   spec' ++ " :: FIXSpec\n" +++                   spec' ++ " = FSpec\n" +++                   "   { fsVersion = \"FIX." ++ +                        major ++ "." ++ minor++ "\"\n" ++ +                   "   , fsHeader = " ++ headerName doc ++ '\n' :+                   "   , fsTrailer = " ++ trailerName doc ++ '\n' : +                   "   , fsMessages = " ++ spec' ++ "Messages \n" +++		   "   , fsTags = " ++ spec' ++ "Tags }\n" +++                   "   where\n" +++                   "      " ++ spec' ++ "Messages =\n" ++ messageMap +++                   "          LT.new \n" +++		   "      " ++ spec' ++ "Tags =\n" ++ tagsMap +++                   "          LT.new \n" +               where+                rmLastNewline text | length text > 2 = init . init $ text+                                   | otherwise = text+                messageMap = rmLastNewline (concatMap _insertMsg $ messagesOf doc)+                _insertMsg (CElem e _) = +                    let msg' = mName $ getNameAttr e in +                        "          LT.insert (msType " ++ msg' ++ ") " ++ +                        msg' ++ " $\n" +                _insertMsg _ = undefined+		tagsMap = concatMap _insertTag $ content $ getFieldSpec doc +		_insertTag (CElem e _) = let fname = tName (getNameAttr e) in+                        "          LT.insert (tnum " ++ fname ++ ") " ++ fname ++ " $\n"+		_insertTag _ = ""++type Groups a = Map String [Content a]++-- ?Name :: String -> String +tName = (:) 't'+mName = (:) 'm'+fName = (:) 'f'+gName = (:) 'g'++versionFIX :: Document a -> String+versionFIX doc = major ++ minor +               where +                  fix = getFIXSpec doc +                  major = getAttr "major" fix+                  minor = getAttr "minor" fix++-- *Name :: Document a -> String +headerName  d = "headerFIX" ++ versionFIX d+trailerName d = "trailerFIX" ++ versionFIX d+fixSpecName a = "fix" ++ versionFIX a++content :: Element a -> [Content a]+content (Elem _ _ cs) = cs++cElement :: Content a -> Element a+cElement (CElem e _) = e+cElement _ = error "not an element"++attributes :: Element a -> [Attribute]+attributes (Elem _ as _) = as++getFIXSpec :: Document a -> Element a+getFIXSpec doc = case doc of+    Document _ _ (es@(Elem (N n) _ _)) _ +        -> if n == "fix" then es else error "no specification for fix" +    _   -> error "unknown error"+++_matchName :: String -> Content a -> Bool+_matchName name (CElem (Elem (N n) _ _) _) = n == name+_matchName name _ = False++_lookup :: Show k => LookupTable k v t => k -> t -> v+_lookup key t = fromMaybe (error $ "couldn't find key " ++ show key)+                    $ LT.lookup key t++getSpec :: String -> Document a -> Maybe (Element a)+getSpec name doc = +    let fix = getFIXSpec doc in+        case filter (_matchName name) (content fix)  of +            CElem es _ : _ -> Just es+            _ -> Nothing++getFieldSpec = fromMaybe (error "fields not defined") . getSpec "fields"+getHeaderSpec = fromMaybe (error "header not defined") . getSpec "header"+getTrailerSpec = fromMaybe (error "trailer not defined") . getSpec "trailer"+getMessagesSpec = fromMaybe (error "messages not defined") . getSpec "messages"+getComponentsSpec = fromMaybe (Elem (N "components") [] []) . getSpec "components"++getAttr :: String -> Element a -> String+getAttr name e = _lookup name $ fromAttributes $ attributes e ++getNameAttr = getAttr "name"++fromAttributes :: [Attribute] -> Map String String +fromAttributes = foldr _insert LT.new +    where +        _insert :: Attribute -> Map String String -> Map String String+        _insert (N k, AttValue (Left v : _)) = LT.insert k v +        _insert (N k, _) = LT.insert k ""++++fieldDef :: Content a -> String+fieldDef (CElem e _) = +    let name = getNameAttr e+        fname = tName name+        fenum = getAttr "number" e+        ftype = getAttr "type" e+        tparser = "to" ++ typeOfFIX ftype+	arbValue' = let t' = typeOfFIX ftype in +		case t' of +		"FIXChar" -> "FIXChar <$> (return 'A')"+		"FIXDouble" -> "FIXDouble <$> (return (-2.112 :: Double))"+		_ -> t' ++ " <$> arbitrary" +    in+        fname ++ " :: FIXTag\n" ++ +        fname ++ " = FIXTag \n" ++ +            "   { tName = \"" ++ name ++ "\"\n" +++            "   , tnum = " ++ fenum ++ '\n' :+            "   , tparser = "  ++ tparser ++ '\n' :+            "   , arbitraryValue = " ++ arbValue' ++ " }\n\n"+    where++        typeOfFIX :: String -> String+        typeOfFIX x = fromMaybe (error $ "unknown type " ++ x) $ +                        LT.lookup x values' +            where+                values' :: Map String String+                values' = +                    LT.insert "INT" "FIXInt" $+                    LT.insert "STRING" "FIXString" $+                    LT.insert "DAYOFMONTH" "FIXInt" $+                    LT.insert "CHAR" "FIXChar" $+                    LT.insert "FLOAT" "FIXDouble" $+                    LT.insert "QTY" "FIXDouble" $+                    LT.insert "PRICE" "FIXDouble" $+                    LT.insert "QUANTITY" "FIXDouble" $+                    LT.insert "PRICEOFFSET" "FIXDouble" $+                    LT.insert "AMT" "FIXDouble" $+                    LT.insert "BOOLEAN" "FIXBool" $+                    LT.insert "MULTIPLEVALUESTRING" "FIXMultipleValueString" $+                    LT.insert "CURRENCY" "FIXString" $+                    LT.insert "EXCHANGE" "FIXString" $+                    LT.insert "UTCTIMESTAMP" "FIXTimestamp" $+                    LT.insert "UTCTIMEONLY" "FIXTimeOnly" $+                    LT.insert "UTCDATE" "FIXDateOnly" $+                    LT.insert "MONTHYEAR" "FIXMonthYear" $+                    LT.insert "LOCALMKTDATE" "FIXDateOnly" $+                    LT.insert "DATA" "FIXData" $+                    LT.insert "LENGTH" "FIXInt" $+                    LT.insert "TIME" "FIXTimestamp" $ +                    LT.insert "SEQNUM" "FIXInt"  $+                    LT.insert "NUMINGROUP" "FIXInt" $+                    LT.insert "PERCENTAGE" "FIXDouble" $+                    LT.insert "COUNTRY" "FIXString" $ +                    LT.insert "UTCDATEONLY" "FIXDateOnly" $+                    LT.insert "DATE" "FIXDateOnly" +                    LT.new+fieldDef _ = ""++type Components a = [(String, [Content a])]++componentsOf :: Document a -> Components a+componentsOf doc = let spec' = getComponentsSpec doc in+    foldr _insert LT.new $ content spec'+        where+            _insert c t +                | _matchName "component" c = let elem = cElement c in+                          LT.insert (getNameAttr elem) (content elem) t+                | otherwise = t++expandComp :: Components a -> Content a -> Content a+expandComp comps c@(CElem (Elem n as cs) i) = +    CElem (Elem n as (concatMap _expand cs)) i+    where+        _expand c | _matchName "component" c = +                    let name = getNameAttr $ cElement c+                        compCont = _lookup name comps +                    in+                        concatMap _expand compCont+                  | otherwise = [ expandComp comps c ]+expandComp comps c = c++messagesOf :: Document a -> [Content a]+messagesOf doc = +    let all = getMessagesSpec doc +        msgOnly = filter (_matchName "message") (content all) +    in+        map (expandComp (componentsOf doc)) msgOnly++fieldsOf :: Int -> [Content a] -> String+fieldsOf l cs = +    let groups = LT.toList $ groupsOf cs +        rmLastNewline text | length text > 2 = init . init $ text+                           | otherwise = text+    in +        rmLastNewline (concatMap _insertTag cs) ++ +        indent ++ "LT.new\n" +++            if not (null groups) then+               indent ++ "where\n" ++ concatMap (genGroups (l + 1)) groups+            else ""+                +    where +        indent = replicate (l * 3)  ' '+        suffix = replicate (l + 1) '\''+        _insertTag c+            | _matchName "field" c = +                    let n' = tName $ getNameAttr $ cElement c+                    in indent ++ "LT.insert (tnum " ++ n' ++ ") " ++ n' ++ " $\n"+            | _matchName "group" c = +                    let n = getNameAttr $ cElement c+                    in indent ++ "LT.insert (tnum " ++ tName n ++ ") " ++ gName n ++ suffix ++ " $\n"+            | otherwise = ""+        +        genGroups _ (_, _:[]) = error "group should have a sperator"+        genGroups l (n, gcs') = +            let (s, gcs) = getSepAndCont gcs'+                sname = tName $ getNameAttr $ cElement s +                gname = gName n+                indent' = replicate (l * 3)  ' '+                indent'' = replicate ((l + 1) * 3)  ' '+                suffix' = replicate l '\''+                tags' = fieldsOf (l + 2) gcs+            in+                indent' ++ gname ++ suffix' ++ " = FIXTag\n" +++                indent'' ++ "{ tName = \"" ++ n ++ "\"\n" +++                indent'' ++ ", tnum = tnum " ++ tName n ++ '\n' :+                indent'' ++ ", tparser = " ++ gname ++ "P" ++ suffix' ++ '\n' : +                indent'' ++ ", arbitraryValue = arbibtraryFIXGroup " ++ +                                gname ++ "Spec" ++ suffix' ++ " }\n\n" +++                indent' ++ gname ++ "P" ++ suffix' ++ " = groupP " ++ gname ++ "Spec" ++ suffix' ++ '\n' :+                indent' ++ gname ++ "Spec" ++ suffix' ++ " = FGSpec\n" +++                indent'' ++ "{ gsLength = " ++ tName n ++ '\n' :+                indent'' ++ ", gsSeperator = " ++ sname ++ '\n' :+                indent'' ++ ", gsBody = " ++ gname ++ "Body" ++ suffix' ++ " }\n" +++                indent'' ++ "where\n" +++                indent'' ++ gname ++ "Body" ++ suffix' ++ " = \n"  ++ tags' ++ "\n"++            where+                getSepAndCont [] = undefined+                getSepAndCont (c@(CElem _ _):ds) = (c, ds)+                getSepAndCont (_ : ds) = getSepAndCont ds++groupsOf :: [Content a] -> Groups a+groupsOf cs = addGroups LT.new cs+    where+        addGroups :: Groups a -> [Content a] -> Groups a+        addGroups t = foldr _insert t +            where +                _insert :: Content a -> Groups a -> Groups a+                _insert c@(CElem e _) gs+                          | _matchName "group" c = +                                let gname = getNameAttr e+                                    gcontent = content e+                                in LT.insert gname gcontent gs+                          | _matchName "message" c = +                                let mcontent = content e in +                                    addGroups gs mcontent +                          | otherwise = gs+                _insert _ gs = gs +++