packages feed

prompt-hs-1.0.0.0: src/System/Prompt/Requirement.hs

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}

-- |
-- Module : System.Prompt
-- License : BSD-3-Clause
module System.Prompt.Requirement
  ( Requirement (..),
    SRequirement (..),
  )
where

-- | Whether an answer to a question is needed
--
-- This is a [singleton](https://hackage.haskell.org/package/singletons), deliberately named
-- in reverse compared to normal to simplify readability for library users unfamiliar with
-- singletons.
data Requirement (requirement :: SRequirement) where
  -- | An answer is required
  Required :: Requirement 'SRequired
  -- | An answer is not required
  Optional :: Requirement 'SOptional

-- | Whether an answer to a question is needed
data SRequirement
  = -- | An answer is required
    SRequired
  | -- | An answer is not required
    SOptional