open-adt-1.0: lib/Data/OpenADT.hs
-- |
-- Module : Data.OpenADT
-- Copyright : Copyright (c) Jordan Woehr, 2018
-- License : BSD
-- Maintainer : Jordan Woehr
-- Stability : experimental
--
-- This module defines the 'OpenADT' type, which is an algebraic data type
-- with constructors defined by its argument's row type.
module Data.OpenADT
( module Data.OpenADT
, module Data.OpenADT.TH
, module Data.OpenADT.VarF
, module Data.OpenADT.VariantsF
)
where
import Data.Functor.Foldable ( Fix(..) )
import Data.OpenADT.TH
import Data.OpenADT.VarF
import Data.OpenADT.VariantsF
-- | A algebraic data type that can have constructors added and removed.
type OpenADT r = Fix (VarF r)