packages feed

abt-0.1.0.0: src/Abt/Class/Monad.hs

{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE UnicodeSyntax #-}

module Abt.Class.Monad where

import Control.Applicative

class (Ord v, Eq v, Show v, Monad m, Applicative m) ⇒ MonadVar v m | m → v where
  -- | Generates a fresh variable
  fresh ∷ m v

  -- | Generates a fresh variable tagged with a name
  named ∷ String → m v