------------------------------------------------------------------------
-- Modality variants
------------------------------------------------------------------------

open import Tools.Level

module Graded.Modality.Variant (a : Level) where

open import Tools.Bool

-- Modality variants:
-- * Modalities can come with one mode (๐Ÿ™แต) or two (๐Ÿ™แต and ๐Ÿ˜แต).

record Modality-variant : Set (lsuc a) where
  no-eta-equality
  pattern

  field
    -- Is the mode ๐Ÿ˜แต allowed?
    ๐Ÿ˜แต-allowed : Bool

-- A variant for which ๐Ÿ˜แต is allowed if the boolean is true.

๐Ÿ˜แต-allowed-if : Bool โ†’ Modality-variant
๐Ÿ˜แต-allowed-if ok = record
  { ๐Ÿ˜แต-allowed   = ok
  }