@@ -61,9 +61,11 @@ deriving via (Compound (Maybe x)) instance (Typeable x, Hashable x, BuildFrom x)
6161-- this isn't wonderful, but we need a hand-rolled instance for recursive datatypes right now.
6262-- with an arbitrary-ish interface, we could use a size parameter, rng access etc.
6363instance (BuildFrom x) => BuildFrom [x] where
64− extras stash = map (\xs -> (concatMap fst xs, map snd xs)) $ powerset $ extras @x stash
64+ extras stash = map (\xs -> (concatMap fst xs, map snd xs)) $ notpowerset $ extras @x stash
6565 where
66− powerset xs = filterM (const [True, False]) xs
66+ -- powerset creates way too much stuff. something better here eventually.
67+ notpowerset xs = xs:map pure xs
68+
6769
6870instance (Hashable x, Typeable x, Generic x, GBuildFrom (Rep x)) => BuildFrom (Compound (x :: Type)) where
6971 extras stash = fmap (Compound . to) <$> gExtras stash