{-# LANGUAGE ConstraintKinds       #-}
{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleContexts      #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE GADTs                 #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverlappingInstances  #-}
{-# LANGUAGE ScopedTypeVariables   #-}
{-# LANGUAGE TypeFamilies          #-}
{-# LANGUAGE TypeOperators         #-}

module Data.OpenUnion (
  -- * UnionType
    Union
  -- * Utility Functions
  , exhaust
  , (||>)
  , picked
  , liftU
  , retractU
  , hoistU
  -- * Constraints
  , Member
  , Include(..)
  , type ()
  , type ()
  , type ()
  ) where
import Data.OpenUnion.Internal