packages feed

spectacle-1.0.0: test/unit-tests/Test/Gen/Rec.hs

module Test.Gen.Rec
  ( -- * Record Generators
    empty,
    singleton,

    -- * Re-exports
    Rec,
  )
where

import Hedgehog (MonadGen)

import Data.Type.Rec (Name, Rec, type (#))
import qualified Data.Type.Rec as Rec

-- ---------------------------------------------------------------------------------------------------------------------

empty :: MonadGen m => m (Rec '[])
empty = pure Rec.Nil

singleton :: MonadGen m => Name c -> m a -> m (Rec '[c # a])
singleton n = fmap \x -> Rec.Con n x Rec.Nil