[get rid of use of scoped type variables to make compatable with newer ghc's
John Meacham <john@repetae.net>**20080114084740] {
hunk ./GetOptions.hs 4
--- | This module provides an advanced option parsing routine which can properly parse 
+-- | This module provides an advanced option parsing routine which can properly parse
hunk ./GetOptions.hs 10
-    -- ** Option Parsing 
-    getOptions, 
-    parseOptions, 
+    -- ** Option Parsing
+    getOptions,
+    parseOptions,
hunk ./GetOptions.hs 14
-    (==>), 
-    (??), 
+    (==>),
+    (??),
hunk ./GetOptions.hs 20
-    HasDefault, 
+    HasDefault,
hunk ./GetOptions.hs 54
-    f (MatchSome xs) y = foldr ($) y (map f xs) 
+    f (MatchSome xs) y = foldr ($) y (map f xs)
hunk ./GetOptions.hs 60
-(==>) :: a  -- ^ argument 
+(==>) :: a  -- ^ argument
hunk ./GetOptions.hs 79
-class Option a b where 
+class Option a b where
hunk ./GetOptions.hs 82
-    -- | Process arguments, returning a proper value. 
+    -- | Process arguments, returning a proper value.
hunk ./GetOptions.hs 84
-    
+
hunk ./GetOptions.hs 90
-        _ -> error "argGetInfo: called with MatchSome" 
-    argProcess b ms = argProcess' b (MatchOne ms) 
+        _ -> error "argGetInfo: called with MatchSome"
+    argProcess b ms = argProcess' b (MatchOne ms)
hunk ./GetOptions.hs 93
-    argGetInfo' a b = MatchOne $ argGetInfo a b  
+    argGetInfo' a b = MatchOne $ argGetInfo a b
hunk ./GetOptions.hs 96
-    
+
hunk ./GetOptions.hs 102
-        
+
hunk ./GetOptions.hs 111
--- 
+--
hunk ./GetOptions.hs 113
--- getOptions and what is returned. In the examples below, I will include type information in comments for reference.  
+-- getOptions and what is returned. In the examples below, I will include type information in comments for reference.
hunk ./GetOptions.hs 115
--- 
--- for instance 
hunk ./GetOptions.hs 116
--- > (args,verb) <- getOptions "v|verbose"  --  verb :: Bool 
--- 
+-- for instance
+--
+-- > (args,verb) <- getOptions "v|verbose"  --  verb :: Bool
+--
hunk ./GetOptions.hs 121
--- 
+--
hunk ./GetOptions.hs 128
--- In addition to strings, arguments may be many other basic types, such as Ints, Doubles, or even Either types. If the argument passed on the command line does not 
+-- In addition to strings, arguments may be many other basic types, such as Ints, Doubles, or even Either types. If the argument passed on the command line does not
hunk ./GetOptions.hs 130
--- 
--- Note that multiple options are possible via tuples, which may also be nested. (useful for libraries) 
--- 
+--
+-- Note that multiple options are possible via tuples, which may also be nested. (useful for libraries)
+--
hunk ./GetOptions.hs 135
--- >    ,"o" ==> "out.txt" 
+-- >    ,"o" ==> "out.txt"
hunk ./GetOptions.hs 137
--- 
+--
hunk ./GetOptions.hs 139
--- type of output_name is now String rather than Maybe String. 
--- 
--- Help messages may be specified with the '??' operator. 
--- 
--- For example 
+-- type of output_name is now String rather than Maybe String.
+--
+-- Help messages may be specified with the '??' operator.
+--
+-- For example
hunk ./GetOptions.hs 153
--- 
+--
hunk ./GetOptions.hs 159
--- 
+--
hunk ./GetOptions.hs 179
-parseOptions :: (Option a b,Monad m) => 
+parseOptions :: (Option a b,Monad m) =>
hunk ./GetOptions.hs 182
-    -> (String,m ([String],a)) -- ^ (help text,(non-option args, results) or fail if error found) 
-parseOptions b args = ans where 
+    -> (String,m ([String],a)) -- ^ (help text,(non-option args, results) or fail if error found)
+parseOptions b args = ans where
hunk ./GetOptions.hs 186
-    ans = case ans' of 
-        Left s -> (helpTable,fail $ s) 
+    ans = case ans' of
+        Left s -> (helpTable,fail $ s)
hunk ./GetOptions.hs 189
-    ans' = do      
-        let agi = argGetInfo' (_st ans') b  
+    ans' = do
+        let agi = argGetInfo' (_st ans') b
hunk ./GetOptions.hs 193
-        a <- argProcess' b r 
+        a <- argProcess' b r
hunk ./GetOptions.hs 197
-    pargs xs = ans where    
+    pargs xs = ans where
hunk ./GetOptions.hs 199
-            let cu (x:_:_) = fail $ "Argument occurs more than once: " ++ showArgs x 
+            let cu (x:_:_) = fail $ "Argument occurs more than once: " ++ showArgs x
hunk ./GetOptions.hs 202
-            processArgs aa args 
+            processArgs aa args
hunk ./GetOptions.hs 224
-    
+
hunk ./GetOptions.hs 226
-    h (as,bs) (('-':'-':argname):rs) 
+    h (as,bs) (('-':'-':argname):rs)
hunk ./GetOptions.hs 231
-        where 
+        where
hunk ./GetOptions.hs 234
-        z (as,bs) (c:cs) 
+        z (as,bs) (c:cs)
hunk ./GetOptions.hs 244
-            where 
+            where
hunk ./GetOptions.hs 253
-    
+
hunk ./GetOptions.hs 264
-        (_ :: [(a,String)])-> fail $ "Invalid argument: " ++ argName (undefined :: a) ++ " expected" 
+        (_ :: [(a,String)])-> fail $ "Invalid argument: " ++ argName (undefined :: a) ++ " expected"
+
hunk ./GetOptions.hs 267
-    
hunk ./GetOptions.hs 280
-    argName (_ :: Either a b) 
+    argName (_ :: Either a b)
hunk ./GetOptions.hs 284
-        a1 = argName (_u :: a) 
-        a2 = argName (_u :: b) 
+        a1 = argName (_u :: a)
+        a2 = argName (_u :: b)
hunk ./GetOptions.hs 288
-    readArg s = case readArg s of 
+    readArg s = case readArg s of
hunk ./GetOptions.hs 296
-    argGetInfo _ s = simpleGetInfo ArgNo s 
+    argGetInfo _ s = simpleGetInfo ArgNo s
hunk ./GetOptions.hs 302
-    argGetInfo _ (HasDefault s _) = simpleGetInfo ArgYes s 
+    argGetInfo _ (HasDefault s _) = simpleGetInfo ArgYes s
hunk ./GetOptions.hs 312
-    argGetInfo _ s = simpleGetInfo ArgYes s 
+    argGetInfo _ s = simpleGetInfo ArgYes s
hunk ./GetOptions.hs 318
-    argGetInfo (_::a) (HasDefault s _) =  simpleGetInfo ArgYes s 
+    argGetInfo (_::a) (HasDefault s _) =  simpleGetInfo ArgYes s
hunk ./GetOptions.hs 326
-    argGetInfo _ s = simpleGetInfo ArgYes s 
+    argGetInfo _ s = simpleGetInfo ArgYes s
hunk ./GetOptions.hs 332
-    argGetInfo' a (HasHelp _ b) = argGetInfo' a b 
+    argGetInfo' a (HasHelp _ b) = argGetInfo' a b
hunk ./GetOptions.hs 337
-    argGetInfo' a (NoHelp  b) = argGetInfo' a b 
+    argGetInfo' a (NoHelp  b) = argGetInfo' a b
hunk ./GetOptions.hs 350
-instance (Option a c, Option b d) => Option (a,b) (c,d) where
-    argGetInfo' (_::(a,b)) (x,y) = MatchSome [argGetInfo' (undefined :: a) x,argGetInfo' (undefined :: b) y]
-    argProcess' (x,y) (MatchSome [x',y']) = liftM2 (,) (argProcess' x x') (argProcess' y y')
-    argHelp (_::(a,b)) (x,y) = argHelp (undefined :: a) x ++ argHelp (undefined :: b) y
hunk ./GetOptions.hs 353
-    argGetInfo' (_::(#Tup #t)) (#Tup #x) = MatchSome [#List argGetInfo' (undefined :: #t) #x ] 
+    argGetInfo' ~(#Tup #t) (#Tup #x) = MatchSome [#List argGetInfo' (undefined `asTypeOf` #t) #x ]
hunk ./GetOptions.hs 357
-    argHelp (_::(#Tup #t)) (#Tup #x) = concat [#List argHelp (undefined :: #t) #x]
+    argHelp ~(#Tup #t) (#Tup #x) = concat [#List argHelp (undefined `asTypeOf` #t) #x]
hunk ./GetOptions.hs 361
+
+-- tupgen 2
+instance (Option a1 b1,Option a2 b2) => Option (a1,a2) (b1,b2) where
+    argGetInfo' ~(t1,t2) (x1,x2) = MatchSome [argGetInfo' (undefined `asTypeOf` t1) x1 ,argGetInfo' (undefined `asTypeOf` t2) x2 ]
+    argProcess' (x1,x2) (MatchSome [y1,y2]) = do
+        z1 <- argProcess' x1 y1
+        z2 <- argProcess' x2 y2
+        return (z1,z2)
+    argHelp ~(t1,t2) (x1,x2) = concat [argHelp (undefined `asTypeOf` t1) x1,argHelp (undefined `asTypeOf` t2) x2]
hunk ./GetOptions.hs 372
-    argGetInfo' (_::(t1,t2,t3)) (x1,x2,x3) = MatchSome [argGetInfo' (undefined :: t1) x1 ,argGetInfo' (undefined :: t2) x2 ,argGetInfo' (undefined :: t3) x3 ] 
+    argGetInfo' ~(t1,t2,t3) (x1,x2,x3) = MatchSome [argGetInfo' (undefined `asTypeOf` t1) x1 ,argGetInfo' (undefined `asTypeOf` t2) x2 ,argGetInfo' (undefined `asTypeOf` t3) x3 ]
hunk ./GetOptions.hs 378
-    argHelp (_::(t1,t2,t3)) (x1,x2,x3) = concat [argHelp (undefined :: t1) x1,argHelp (undefined :: t2) x2,argHelp (undefined :: t3) x3]
+    argHelp ~(t1,t2,t3) (x1,x2,x3) = concat [argHelp (undefined `asTypeOf` t1) x1,argHelp (undefined `asTypeOf` t2) x2,argHelp (undefined `asTypeOf` t3) x3]
hunk ./GetOptions.hs 381
-    argGetInfo' (_::(t1,t2,t3,t4)) (x1,x2,x3,x4) = MatchSome [argGetInfo' (undefined :: t1) x1 ,argGetInfo' (undefined :: t2) x2 ,argGetInfo' (undefined :: t3) x3 ,argGetInfo' (undefined :: t4) x4 ] 
+    argGetInfo' ~(t1,t2,t3,t4) (x1,x2,x3,x4) = MatchSome [argGetInfo' (undefined `asTypeOf` t1) x1 ,argGetInfo' (undefined `asTypeOf` t2) x2 ,argGetInfo' (undefined `asTypeOf` t3) x3 ,argGetInfo' (undefined `asTypeOf` t4) x4 ]
hunk ./GetOptions.hs 388
-    argHelp (_::(t1,t2,t3,t4)) (x1,x2,x3,x4) = concat [argHelp (undefined :: t1) x1,argHelp (undefined :: t2) x2,argHelp (undefined :: t3) x3,argHelp (undefined :: t4) x4]
+    argHelp ~(t1,t2,t3,t4) (x1,x2,x3,x4) = concat [argHelp (undefined `asTypeOf` t1) x1,argHelp (undefined `asTypeOf` t2) x2,argHelp (undefined `asTypeOf` t3) x3,argHelp (undefined `asTypeOf` t4) x4]
hunk ./GetOptions.hs 391
-    argGetInfo' (_::(t1,t2,t3,t4,t5)) (x1,x2,x3,x4,x5) = MatchSome [argGetInfo' (undefined :: t1) x1 ,argGetInfo' (undefined :: t2) x2 ,argGetInfo' (undefined :: t3) x3 ,argGetInfo' (undefined :: t4) x4 ,argGetInfo' (undefined :: t5) x5 ] 
+    argGetInfo' ~(t1,t2,t3,t4,t5) (x1,x2,x3,x4,x5) = MatchSome [argGetInfo' (undefined `asTypeOf` t1) x1 ,argGetInfo' (undefined `asTypeOf` t2) x2 ,argGetInfo' (undefined `asTypeOf` t3) x3 ,argGetInfo' (undefined `asTypeOf` t4) x4 ,argGetInfo' (undefined `asTypeOf` t5) x5 ]
hunk ./GetOptions.hs 399
-    argHelp (_::(t1,t2,t3,t4,t5)) (x1,x2,x3,x4,x5) = concat [argHelp (undefined :: t1) x1,argHelp (undefined :: t2) x2,argHelp (undefined :: t3) x3,argHelp (undefined :: t4) x4,argHelp (undefined :: t5) x5]
+    argHelp ~(t1,t2,t3,t4,t5) (x1,x2,x3,x4,x5) = concat [argHelp (undefined `asTypeOf` t1) x1,argHelp (undefined `asTypeOf` t2) x2,argHelp (undefined `asTypeOf` t3) x3,argHelp (undefined `asTypeOf` t4) x4,argHelp (undefined `asTypeOf` t5) x5]
hunk ./GetOptions.hs 402
-    argGetInfo' (_::(t1,t2,t3,t4,t5,t6)) (x1,x2,x3,x4,x5,x6) = MatchSome [argGetInfo' (undefined :: t1) x1 ,argGetInfo' (undefined :: t2) x2 ,argGetInfo' (undefined :: t3) x3 ,argGetInfo' (undefined :: t4) x4 ,argGetInfo' (undefined :: t5) x5 ,argGetInfo' (undefined :: t6) x6 ] 
+    argGetInfo' ~(t1,t2,t3,t4,t5,t6) (x1,x2,x3,x4,x5,x6) = MatchSome [argGetInfo' (undefined `asTypeOf` t1) x1 ,argGetInfo' (undefined `asTypeOf` t2) x2 ,argGetInfo' (undefined `asTypeOf` t3) x3 ,argGetInfo' (undefined `asTypeOf` t4) x4 ,argGetInfo' (undefined `asTypeOf` t5) x5 ,argGetInfo' (undefined `asTypeOf` t6) x6 ]
hunk ./GetOptions.hs 411
-    argHelp (_::(t1,t2,t3,t4,t5,t6)) (x1,x2,x3,x4,x5,x6) = concat [argHelp (undefined :: t1) x1,argHelp (undefined :: t2) x2,argHelp (undefined :: t3) x3,argHelp (undefined :: t4) x4,argHelp (undefined :: t5) x5,argHelp (undefined :: t6) x6]
+    argHelp ~(t1,t2,t3,t4,t5,t6) (x1,x2,x3,x4,x5,x6) = concat [argHelp (undefined `asTypeOf` t1) x1,argHelp (undefined `asTypeOf` t2) x2,argHelp (undefined `asTypeOf` t3) x3,argHelp (undefined `asTypeOf` t4) x4,argHelp (undefined `asTypeOf` t5) x5,argHelp (undefined `asTypeOf` t6) x6]
hunk ./GetOptions.hs 414
-    argGetInfo' (_::(t1,t2,t3,t4,t5,t6,t7)) (x1,x2,x3,x4,x5,x6,x7) = MatchSome [argGetInfo' (undefined :: t1) x1 ,argGetInfo' (undefined :: t2) x2 ,argGetInfo' (undefined :: t3) x3 ,argGetInfo' (undefined :: t4) x4 ,argGetInfo' (undefined :: t5) x5 ,argGetInfo' (undefined :: t6) x6 ,argGetInfo' (undefined :: t7) x7 ] 
+    argGetInfo' ~(t1,t2,t3,t4,t5,t6,t7) (x1,x2,x3,x4,x5,x6,x7) = MatchSome [argGetInfo' (undefined `asTypeOf` t1) x1 ,argGetInfo' (undefined `asTypeOf` t2) x2 ,argGetInfo' (undefined `asTypeOf` t3) x3 ,argGetInfo' (undefined `asTypeOf` t4) x4 ,argGetInfo' (undefined `asTypeOf` t5) x5 ,argGetInfo' (undefined `asTypeOf` t6) x6 ,argGetInfo' (undefined `asTypeOf` t7) x7 ]
hunk ./GetOptions.hs 424
-    argHelp (_::(t1,t2,t3,t4,t5,t6,t7)) (x1,x2,x3,x4,x5,x6,x7) = concat [argHelp (undefined :: t1) x1,argHelp (undefined :: t2) x2,argHelp (undefined :: t3) x3,argHelp (undefined :: t4) x4,argHelp (undefined :: t5) x5,argHelp (undefined :: t6) x6,argHelp (undefined :: t7) x7]
+    argHelp ~(t1,t2,t3,t4,t5,t6,t7) (x1,x2,x3,x4,x5,x6,x7) = concat [argHelp (undefined `asTypeOf` t1) x1,argHelp (undefined `asTypeOf` t2) x2,argHelp (undefined `asTypeOf` t3) x3,argHelp (undefined `asTypeOf` t4) x4,argHelp (undefined `asTypeOf` t5) x5,argHelp (undefined `asTypeOf` t6) x6,argHelp (undefined `asTypeOf` t7) x7]
hunk ./GetOptions.hs 427
-    argGetInfo' (_::(t1,t2,t3,t4,t5,t6,t7,t8)) (x1,x2,x3,x4,x5,x6,x7,x8) = MatchSome [argGetInfo' (undefined :: t1) x1 ,argGetInfo' (undefined :: t2) x2 ,argGetInfo' (undefined :: t3) x3 ,argGetInfo' (undefined :: t4) x4 ,argGetInfo' (undefined :: t5) x5 ,argGetInfo' (undefined :: t6) x6 ,argGetInfo' (undefined :: t7) x7 ,argGetInfo' (undefined :: t8) x8 ] 
+    argGetInfo' ~(t1,t2,t3,t4,t5,t6,t7,t8) (x1,x2,x3,x4,x5,x6,x7,x8) = MatchSome [argGetInfo' (undefined `asTypeOf` t1) x1 ,argGetInfo' (undefined `asTypeOf` t2) x2 ,argGetInfo' (undefined `asTypeOf` t3) x3 ,argGetInfo' (undefined `asTypeOf` t4) x4 ,argGetInfo' (undefined `asTypeOf` t5) x5 ,argGetInfo' (undefined `asTypeOf` t6) x6 ,argGetInfo' (undefined `asTypeOf` t7) x7 ,argGetInfo' (undefined `asTypeOf` t8) x8 ]
hunk ./GetOptions.hs 438
-    argHelp (_::(t1,t2,t3,t4,t5,t6,t7,t8)) (x1,x2,x3,x4,x5,x6,x7,x8) = concat [argHelp (undefined :: t1) x1,argHelp (undefined :: t2) x2,argHelp (undefined :: t3) x3,argHelp (undefined :: t4) x4,argHelp (undefined :: t5) x5,argHelp (undefined :: t6) x6,argHelp (undefined :: t7) x7,argHelp (undefined :: t8) x8]
+    argHelp ~(t1,t2,t3,t4,t5,t6,t7,t8) (x1,x2,x3,x4,x5,x6,x7,x8) = concat [argHelp (undefined `asTypeOf` t1) x1,argHelp (undefined `asTypeOf` t2) x2,argHelp (undefined `asTypeOf` t3) x3,argHelp (undefined `asTypeOf` t4) x4,argHelp (undefined `asTypeOf` t5) x5,argHelp (undefined `asTypeOf` t6) x6,argHelp (undefined `asTypeOf` t7) x7,argHelp (undefined `asTypeOf` t8) x8]
hunk ./GetOptions.hs 441
-    argGetInfo' (_::(t1,t2,t3,t4,t5,t6,t7,t8,t9)) (x1,x2,x3,x4,x5,x6,x7,x8,x9) = MatchSome [argGetInfo' (undefined :: t1) x1 ,argGetInfo' (undefined :: t2) x2 ,argGetInfo' (undefined :: t3) x3 ,argGetInfo' (undefined :: t4) x4 ,argGetInfo' (undefined :: t5) x5 ,argGetInfo' (undefined :: t6) x6 ,argGetInfo' (undefined :: t7) x7 ,argGetInfo' (undefined :: t8) x8 ,argGetInfo' (undefined :: t9) x9 ] 
+    argGetInfo' ~(t1,t2,t3,t4,t5,t6,t7,t8,t9) (x1,x2,x3,x4,x5,x6,x7,x8,x9) = MatchSome [argGetInfo' (undefined `asTypeOf` t1) x1 ,argGetInfo' (undefined `asTypeOf` t2) x2 ,argGetInfo' (undefined `asTypeOf` t3) x3 ,argGetInfo' (undefined `asTypeOf` t4) x4 ,argGetInfo' (undefined `asTypeOf` t5) x5 ,argGetInfo' (undefined `asTypeOf` t6) x6 ,argGetInfo' (undefined `asTypeOf` t7) x7 ,argGetInfo' (undefined `asTypeOf` t8) x8 ,argGetInfo' (undefined `asTypeOf` t9) x9 ]
hunk ./GetOptions.hs 453
-    argHelp (_::(t1,t2,t3,t4,t5,t6,t7,t8,t9)) (x1,x2,x3,x4,x5,x6,x7,x8,x9) = concat [argHelp (undefined :: t1) x1,argHelp (undefined :: t2) x2,argHelp (undefined :: t3) x3,argHelp (undefined :: t4) x4,argHelp (undefined :: t5) x5,argHelp (undefined :: t6) x6,argHelp (undefined :: t7) x7,argHelp (undefined :: t8) x8,argHelp (undefined :: t9) x9]
+    argHelp ~(t1,t2,t3,t4,t5,t6,t7,t8,t9) (x1,x2,x3,x4,x5,x6,x7,x8,x9) = concat [argHelp (undefined `asTypeOf` t1) x1,argHelp (undefined `asTypeOf` t2) x2,argHelp (undefined `asTypeOf` t3) x3,argHelp (undefined `asTypeOf` t4) x4,argHelp (undefined `asTypeOf` t5) x5,argHelp (undefined `asTypeOf` t6) x6,argHelp (undefined `asTypeOf` t7) x7,argHelp (undefined `asTypeOf` t8) x8,argHelp (undefined `asTypeOf` t9) x9]
hunk ./GetOptions.hs 456
-    argGetInfo' (_::(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10) = MatchSome [argGetInfo' (undefined :: t1) x1 ,argGetInfo' (undefined :: t2) x2 ,argGetInfo' (undefined :: t3) x3 ,argGetInfo' (undefined :: t4) x4 ,argGetInfo' (undefined :: t5) x5 ,argGetInfo' (undefined :: t6) x6 ,argGetInfo' (undefined :: t7) x7 ,argGetInfo' (undefined :: t8) x8 ,argGetInfo' (undefined :: t9) x9 ,argGetInfo' (undefined :: t10) x10 ] 
+    argGetInfo' ~(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10) = MatchSome [argGetInfo' (undefined `asTypeOf` t1) x1 ,argGetInfo' (undefined `asTypeOf` t2) x2 ,argGetInfo' (undefined `asTypeOf` t3) x3 ,argGetInfo' (undefined `asTypeOf` t4) x4 ,argGetInfo' (undefined `asTypeOf` t5) x5 ,argGetInfo' (undefined `asTypeOf` t6) x6 ,argGetInfo' (undefined `asTypeOf` t7) x7 ,argGetInfo' (undefined `asTypeOf` t8) x8 ,argGetInfo' (undefined `asTypeOf` t9) x9 ,argGetInfo' (undefined `asTypeOf` t10) x10 ]
hunk ./GetOptions.hs 469
-    argHelp (_::(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10) = concat [argHelp (undefined :: t1) x1,argHelp (undefined :: t2) x2,argHelp (undefined :: t3) x3,argHelp (undefined :: t4) x4,argHelp (undefined :: t5) x5,argHelp (undefined :: t6) x6,argHelp (undefined :: t7) x7,argHelp (undefined :: t8) x8,argHelp (undefined :: t9) x9,argHelp (undefined :: t10) x10]
+    argHelp ~(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10) = concat [argHelp (undefined `asTypeOf` t1) x1,argHelp (undefined `asTypeOf` t2) x2,argHelp (undefined `asTypeOf` t3) x3,argHelp (undefined `asTypeOf` t4) x4,argHelp (undefined `asTypeOf` t5) x5,argHelp (undefined `asTypeOf` t6) x6,argHelp (undefined `asTypeOf` t7) x7,argHelp (undefined `asTypeOf` t8) x8,argHelp (undefined `asTypeOf` t9) x9,argHelp (undefined `asTypeOf` t10) x10]
hunk ./GetOptions.hs 472
-    argGetInfo' (_::(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11)) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11) = MatchSome [argGetInfo' (undefined :: t1) x1 ,argGetInfo' (undefined :: t2) x2 ,argGetInfo' (undefined :: t3) x3 ,argGetInfo' (undefined :: t4) x4 ,argGetInfo' (undefined :: t5) x5 ,argGetInfo' (undefined :: t6) x6 ,argGetInfo' (undefined :: t7) x7 ,argGetInfo' (undefined :: t8) x8 ,argGetInfo' (undefined :: t9) x9 ,argGetInfo' (undefined :: t10) x10 ,argGetInfo' (undefined :: t11) x11 ] 
+    argGetInfo' ~(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11) = MatchSome [argGetInfo' (undefined `asTypeOf` t1) x1 ,argGetInfo' (undefined `asTypeOf` t2) x2 ,argGetInfo' (undefined `asTypeOf` t3) x3 ,argGetInfo' (undefined `asTypeOf` t4) x4 ,argGetInfo' (undefined `asTypeOf` t5) x5 ,argGetInfo' (undefined `asTypeOf` t6) x6 ,argGetInfo' (undefined `asTypeOf` t7) x7 ,argGetInfo' (undefined `asTypeOf` t8) x8 ,argGetInfo' (undefined `asTypeOf` t9) x9 ,argGetInfo' (undefined `asTypeOf` t10) x10 ,argGetInfo' (undefined `asTypeOf` t11) x11 ]
hunk ./GetOptions.hs 486
-    argHelp (_::(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11)) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11) = concat [argHelp (undefined :: t1) x1,argHelp (undefined :: t2) x2,argHelp (undefined :: t3) x3,argHelp (undefined :: t4) x4,argHelp (undefined :: t5) x5,argHelp (undefined :: t6) x6,argHelp (undefined :: t7) x7,argHelp (undefined :: t8) x8,argHelp (undefined :: t9) x9,argHelp (undefined :: t10) x10,argHelp (undefined :: t11) x11]
+    argHelp ~(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11) = concat [argHelp (undefined `asTypeOf` t1) x1,argHelp (undefined `asTypeOf` t2) x2,argHelp (undefined `asTypeOf` t3) x3,argHelp (undefined `asTypeOf` t4) x4,argHelp (undefined `asTypeOf` t5) x5,argHelp (undefined `asTypeOf` t6) x6,argHelp (undefined `asTypeOf` t7) x7,argHelp (undefined `asTypeOf` t8) x8,argHelp (undefined `asTypeOf` t9) x9,argHelp (undefined `asTypeOf` t10) x10,argHelp (undefined `asTypeOf` t11) x11]
hunk ./GetOptions.hs 489
-    argGetInfo' (_::(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12)) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12) = MatchSome [argGetInfo' (undefined :: t1) x1 ,argGetInfo' (undefined :: t2) x2 ,argGetInfo' (undefined :: t3) x3 ,argGetInfo' (undefined :: t4) x4 ,argGetInfo' (undefined :: t5) x5 ,argGetInfo' (undefined :: t6) x6 ,argGetInfo' (undefined :: t7) x7 ,argGetInfo' (undefined :: t8) x8 ,argGetInfo' (undefined :: t9) x9 ,argGetInfo' (undefined :: t10) x10 ,argGetInfo' (undefined :: t11) x11 ,argGetInfo' (undefined :: t12) x12 ] 
+    argGetInfo' ~(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12) = MatchSome [argGetInfo' (undefined `asTypeOf` t1) x1 ,argGetInfo' (undefined `asTypeOf` t2) x2 ,argGetInfo' (undefined `asTypeOf` t3) x3 ,argGetInfo' (undefined `asTypeOf` t4) x4 ,argGetInfo' (undefined `asTypeOf` t5) x5 ,argGetInfo' (undefined `asTypeOf` t6) x6 ,argGetInfo' (undefined `asTypeOf` t7) x7 ,argGetInfo' (undefined `asTypeOf` t8) x8 ,argGetInfo' (undefined `asTypeOf` t9) x9 ,argGetInfo' (undefined `asTypeOf` t10) x10 ,argGetInfo' (undefined `asTypeOf` t11) x11 ,argGetInfo' (undefined `asTypeOf` t12) x12 ]
hunk ./GetOptions.hs 504
-    argHelp (_::(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12)) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12) = concat [argHelp (undefined :: t1) x1,argHelp (undefined :: t2) x2,argHelp (undefined :: t3) x3,argHelp (undefined :: t4) x4,argHelp (undefined :: t5) x5,argHelp (undefined :: t6) x6,argHelp (undefined :: t7) x7,argHelp (undefined :: t8) x8,argHelp (undefined :: t9) x9,argHelp (undefined :: t10) x10,argHelp (undefined :: t11) x11,argHelp (undefined :: t12) x12]
+    argHelp ~(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12) = concat [argHelp (undefined `asTypeOf` t1) x1,argHelp (undefined `asTypeOf` t2) x2,argHelp (undefined `asTypeOf` t3) x3,argHelp (undefined `asTypeOf` t4) x4,argHelp (undefined `asTypeOf` t5) x5,argHelp (undefined `asTypeOf` t6) x6,argHelp (undefined `asTypeOf` t7) x7,argHelp (undefined `asTypeOf` t8) x8,argHelp (undefined `asTypeOf` t9) x9,argHelp (undefined `asTypeOf` t10) x10,argHelp (undefined `asTypeOf` t11) x11,argHelp (undefined `asTypeOf` t12) x12]
hunk ./GetOptions.hs 507
-    argGetInfo' (_::(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13)) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13) = MatchSome [argGetInfo' (undefined :: t1) x1 ,argGetInfo' (undefined :: t2) x2 ,argGetInfo' (undefined :: t3) x3 ,argGetInfo' (undefined :: t4) x4 ,argGetInfo' (undefined :: t5) x5 ,argGetInfo' (undefined :: t6) x6 ,argGetInfo' (undefined :: t7) x7 ,argGetInfo' (undefined :: t8) x8 ,argGetInfo' (undefined :: t9) x9 ,argGetInfo' (undefined :: t10) x10 ,argGetInfo' (undefined :: t11) x11 ,argGetInfo' (undefined :: t12) x12 ,argGetInfo' (undefined :: t13) x13 ] 
+    argGetInfo' ~(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13) = MatchSome [argGetInfo' (undefined `asTypeOf` t1) x1 ,argGetInfo' (undefined `asTypeOf` t2) x2 ,argGetInfo' (undefined `asTypeOf` t3) x3 ,argGetInfo' (undefined `asTypeOf` t4) x4 ,argGetInfo' (undefined `asTypeOf` t5) x5 ,argGetInfo' (undefined `asTypeOf` t6) x6 ,argGetInfo' (undefined `asTypeOf` t7) x7 ,argGetInfo' (undefined `asTypeOf` t8) x8 ,argGetInfo' (undefined `asTypeOf` t9) x9 ,argGetInfo' (undefined `asTypeOf` t10) x10 ,argGetInfo' (undefined `asTypeOf` t11) x11 ,argGetInfo' (undefined `asTypeOf` t12) x12 ,argGetInfo' (undefined `asTypeOf` t13) x13 ]
hunk ./GetOptions.hs 523
-    argHelp (_::(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13)) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13) = concat [argHelp (undefined :: t1) x1,argHelp (undefined :: t2) x2,argHelp (undefined :: t3) x3,argHelp (undefined :: t4) x4,argHelp (undefined :: t5) x5,argHelp (undefined :: t6) x6,argHelp (undefined :: t7) x7,argHelp (undefined :: t8) x8,argHelp (undefined :: t9) x9,argHelp (undefined :: t10) x10,argHelp (undefined :: t11) x11,argHelp (undefined :: t12) x12,argHelp (undefined :: t13) x13]
+    argHelp ~(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13) = concat [argHelp (undefined `asTypeOf` t1) x1,argHelp (undefined `asTypeOf` t2) x2,argHelp (undefined `asTypeOf` t3) x3,argHelp (undefined `asTypeOf` t4) x4,argHelp (undefined `asTypeOf` t5) x5,argHelp (undefined `asTypeOf` t6) x6,argHelp (undefined `asTypeOf` t7) x7,argHelp (undefined `asTypeOf` t8) x8,argHelp (undefined `asTypeOf` t9) x9,argHelp (undefined `asTypeOf` t10) x10,argHelp (undefined `asTypeOf` t11) x11,argHelp (undefined `asTypeOf` t12) x12,argHelp (undefined `asTypeOf` t13) x13]
hunk ./GetOptions.hs 526
-    argGetInfo' (_::(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14)) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14) = MatchSome [argGetInfo' (undefined :: t1) x1 ,argGetInfo' (undefined :: t2) x2 ,argGetInfo' (undefined :: t3) x3 ,argGetInfo' (undefined :: t4) x4 ,argGetInfo' (undefined :: t5) x5 ,argGetInfo' (undefined :: t6) x6 ,argGetInfo' (undefined :: t7) x7 ,argGetInfo' (undefined :: t8) x8 ,argGetInfo' (undefined :: t9) x9 ,argGetInfo' (undefined :: t10) x10 ,argGetInfo' (undefined :: t11) x11 ,argGetInfo' (undefined :: t12) x12 ,argGetInfo' (undefined :: t13) x13 ,argGetInfo' (undefined :: t14) x14 ] 
+    argGetInfo' ~(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14) = MatchSome [argGetInfo' (undefined `asTypeOf` t1) x1 ,argGetInfo' (undefined `asTypeOf` t2) x2 ,argGetInfo' (undefined `asTypeOf` t3) x3 ,argGetInfo' (undefined `asTypeOf` t4) x4 ,argGetInfo' (undefined `asTypeOf` t5) x5 ,argGetInfo' (undefined `asTypeOf` t6) x6 ,argGetInfo' (undefined `asTypeOf` t7) x7 ,argGetInfo' (undefined `asTypeOf` t8) x8 ,argGetInfo' (undefined `asTypeOf` t9) x9 ,argGetInfo' (undefined `asTypeOf` t10) x10 ,argGetInfo' (undefined `asTypeOf` t11) x11 ,argGetInfo' (undefined `asTypeOf` t12) x12 ,argGetInfo' (undefined `asTypeOf` t13) x13 ,argGetInfo' (undefined `asTypeOf` t14) x14 ]
hunk ./GetOptions.hs 543
-    argHelp (_::(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14)) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14) = concat [argHelp (undefined :: t1) x1,argHelp (undefined :: t2) x2,argHelp (undefined :: t3) x3,argHelp (undefined :: t4) x4,argHelp (undefined :: t5) x5,argHelp (undefined :: t6) x6,argHelp (undefined :: t7) x7,argHelp (undefined :: t8) x8,argHelp (undefined :: t9) x9,argHelp (undefined :: t10) x10,argHelp (undefined :: t11) x11,argHelp (undefined :: t12) x12,argHelp (undefined :: t13) x13,argHelp (undefined :: t14) x14]
+    argHelp ~(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14) = concat [argHelp (undefined `asTypeOf` t1) x1,argHelp (undefined `asTypeOf` t2) x2,argHelp (undefined `asTypeOf` t3) x3,argHelp (undefined `asTypeOf` t4) x4,argHelp (undefined `asTypeOf` t5) x5,argHelp (undefined `asTypeOf` t6) x6,argHelp (undefined `asTypeOf` t7) x7,argHelp (undefined `asTypeOf` t8) x8,argHelp (undefined `asTypeOf` t9) x9,argHelp (undefined `asTypeOf` t10) x10,argHelp (undefined `asTypeOf` t11) x11,argHelp (undefined `asTypeOf` t12) x12,argHelp (undefined `asTypeOf` t13) x13,argHelp (undefined `asTypeOf` t14) x14]
hunk ./GetOptions.hs 546
-    argGetInfo' (_::(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15)) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15) = MatchSome [argGetInfo' (undefined :: t1) x1 ,argGetInfo' (undefined :: t2) x2 ,argGetInfo' (undefined :: t3) x3 ,argGetInfo' (undefined :: t4) x4 ,argGetInfo' (undefined :: t5) x5 ,argGetInfo' (undefined :: t6) x6 ,argGetInfo' (undefined :: t7) x7 ,argGetInfo' (undefined :: t8) x8 ,argGetInfo' (undefined :: t9) x9 ,argGetInfo' (undefined :: t10) x10 ,argGetInfo' (undefined :: t11) x11 ,argGetInfo' (undefined :: t12) x12 ,argGetInfo' (undefined :: t13) x13 ,argGetInfo' (undefined :: t14) x14 ,argGetInfo' (undefined :: t15) x15 ] 
+    argGetInfo' ~(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15) = MatchSome [argGetInfo' (undefined `asTypeOf` t1) x1 ,argGetInfo' (undefined `asTypeOf` t2) x2 ,argGetInfo' (undefined `asTypeOf` t3) x3 ,argGetInfo' (undefined `asTypeOf` t4) x4 ,argGetInfo' (undefined `asTypeOf` t5) x5 ,argGetInfo' (undefined `asTypeOf` t6) x6 ,argGetInfo' (undefined `asTypeOf` t7) x7 ,argGetInfo' (undefined `asTypeOf` t8) x8 ,argGetInfo' (undefined `asTypeOf` t9) x9 ,argGetInfo' (undefined `asTypeOf` t10) x10 ,argGetInfo' (undefined `asTypeOf` t11) x11 ,argGetInfo' (undefined `asTypeOf` t12) x12 ,argGetInfo' (undefined `asTypeOf` t13) x13 ,argGetInfo' (undefined `asTypeOf` t14) x14 ,argGetInfo' (undefined `asTypeOf` t15) x15 ]
hunk ./GetOptions.hs 564
-    argHelp (_::(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15)) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15) = concat [argHelp (undefined :: t1) x1,argHelp (undefined :: t2) x2,argHelp (undefined :: t3) x3,argHelp (undefined :: t4) x4,argHelp (undefined :: t5) x5,argHelp (undefined :: t6) x6,argHelp (undefined :: t7) x7,argHelp (undefined :: t8) x8,argHelp (undefined :: t9) x9,argHelp (undefined :: t10) x10,argHelp (undefined :: t11) x11,argHelp (undefined :: t12) x12,argHelp (undefined :: t13) x13,argHelp (undefined :: t14) x14,argHelp (undefined :: t15) x15]
+    argHelp ~(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15) (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15) = concat [argHelp (undefined `asTypeOf` t1) x1,argHelp (undefined `asTypeOf` t2) x2,argHelp (undefined `asTypeOf` t3) x3,argHelp (undefined `asTypeOf` t4) x4,argHelp (undefined `asTypeOf` t5) x5,argHelp (undefined `asTypeOf` t6) x6,argHelp (undefined `asTypeOf` t7) x7,argHelp (undefined `asTypeOf` t8) x8,argHelp (undefined `asTypeOf` t9) x9,argHelp (undefined `asTypeOf` t10) x10,argHelp (undefined `asTypeOf` t11) x11,argHelp (undefined `asTypeOf` t12) x12,argHelp (undefined `asTypeOf` t13) x13,argHelp (undefined `asTypeOf` t14) x14,argHelp (undefined `asTypeOf` t15) x15]
+
}
