packages feed

implicit-0.4.0.0: tests/Graphics/Implicit/Test/Utils.hs

{- ORMOLU_DISABLE -}
module Graphics.Implicit.Test.Utils (randomGroups) where

import Prelude (drop, (<*>), (<$>), take, length, pure)
import Test.QuickCheck ( choose, Gen )

randomGroups :: [a] -> Gen [[a]]
randomGroups [] = pure []
randomGroups as = do
  n <- choose (1, length as)
  (:) <$> pure (take n as)
      <*> randomGroups (drop n as)