#!/usr/bin/env bash

NUMDEP=10000
NUMMOD=100

seq 1 $NUMDEP | xargs -I{} touch foo{}

cat > T22744.hs << EOF
module Main where
EOF

for i in $(seq $NUMMOD); do
  cat > M$i.hs << EOF
{-# LANGUAGE TemplateHaskell #-}
module M$i where
import Language.Haskell.TH.Syntax
import Control.Monad

\$(do forM_ [1..$NUMDEP] $ \i -> addDependentFile $ "foo" ++ show i
     return [])
EOF
  echo "import M$i" >> T22744.hs
done

cat >> T22744.hs << EOF
main = pure ()
EOF

