fixedRandSeq ::
    (Int -> Int) -> Gen a -> [a]
fixedRandSeq fixedRandSeqQuantityOfSize gen =
    aux 0 0
    where
    aux prevQuantity size 
        = newSeqPortion ++ (aux currQuantity (size + 1))
        where
        newSeqPortion 
            =
            take (currQuantity - prevQuantity) $ 
                map (\g -> unGen gen g size) 
                    randomGens
        currQuantity = fixedRandSeqQuantityOfSize size
    randomGens 
        = map snd $ drop 13 $ iterate (R.next . snd) (0,g)
    g = QCR.mkQCGen 754657854089 -- no magic, just bashed at the keyboard at random
fixedRandSeq ::
    (Int -> Int) -> Gen a -> [a]
fixedRandSeq fixedRandSeqQuantityOfSize gen =
    aux 0 0
    where
    aux prevQuantity size 
        = newSeqPortion ++ (aux currQuantity (size + 1))
        where
        newSeqPortion 
            =
            take (currQuantity - prevQuantity) $ 
                map (\g -> unGen gen g size) 
                    randomGens
        currQuantity = fixedRandSeqQuantityOfSize size
    randomGens 
        = map snd $ drop 13 $ iterate (R.next . snd) (0,g)
    g = QCR.mkQCGen 754657854089 -- no magic, just bashed at the keyboard at random
fixedRandSeq fixedRandSeqQuantityOfSize gen =
    aux 0 0
    where
    aux prevQuantity size 
        = newSeqPortion ++ (aux currQuantity (size + 1))
        where
        newSeqPortion 
            =
            take (currQuantity - prevQuantity) $ 
                map (\g -> unGen gen g size) 
                    randomGens
        currQuantity = fixedRandSeqQuantityOfSize size
    randomGens 
        = map snd $ drop 13 $ iterate (R.next . snd) (0,g)
    g = QCR.mkQCGen 754657854089 -- no magic, just bashed at the keyboard at random