{-# LANGUAGE TemplateHaskell #-}
module MagicHaskeller.Combinators where
import MagicHaskeller.ExprStaged
import Language.Haskell.TH
import Debug.Trace
finiteHVss :: [[a]]
finiteHVss = $(do dss <- mapM (\lenavails -> mapM (\arity -> hdmnTHEQ arity lenavails) [0..maxArity]) [0..maxLenavails]
return $ ListE $ map ListE dss)
finiteHVsss :: [[[a]]]
finiteHVsss = $(do dsss <- mapM (\debindex -> mapM (\lenavails -> mapM (\arity -> aimnTHEQ debindex arity lenavails) [0..maxArity]) [debindex+1..maxLenavails]) [0..maxDebindex]
return $ ListE $ map (ListE . map ListE) dsss)