lio-0.11.3.0: LIO/TCB/TypeVals.hs
{-# LANGUAGE CPP #-}
#if 0
genTypesVals :: Int -> IO ()
genTypesVals n0 =
putStrLn $ "#define TypesVals(macro) \\\n" ++ concatMap doit [1..n0]
where doit n = " macro(" ++ icl " -> " (as n) ++ ", \\\n" ++
" " ++ icl " " (as n) ++ ")" ++
(if n < n0 then "; \\\n" else "\n")
as n = map (\i -> "a" ++ show i) [1..n]
icl _ [] = []
icl s (h:t) = h ++ concatMap (\a -> s ++ a) t
#endif
#define TypesVals(macro) \
macro(a1, \
a1); \
macro(a1 -> a2, \
a1 a2); \
macro(a1 -> a2 -> a3, \
a1 a2 a3); \
macro(a1 -> a2 -> a3 -> a4, \
a1 a2 a3 a4); \
macro(a1 -> a2 -> a3 -> a4 -> a5, \
a1 a2 a3 a4 a5); \
macro(a1 -> a2 -> a3 -> a4 -> a5 -> a6, \
a1 a2 a3 a4 a5 a6); \
macro(a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7, \
a1 a2 a3 a4 a5 a6 a7); \
macro(a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8, \
a1 a2 a3 a4 a5 a6 a7 a8); \
macro(a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> a9, \
a1 a2 a3 a4 a5 a6 a7 a8 a9); \
macro(a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> a9 -> a10, \
a1 a2 a3 a4 a5 a6 a7 a8 a9 a10)