hobbits-1.0: Data/Binding/Hobbits.hs
{-# LANGUAGE TypeOperators #-}
-- |
-- Module : Data.Binding.Hobbits
-- Copyright : (c) 2011 Edwin Westbrook, Nicolas Frisby, and Paul Brauner
--
-- License : BSD3
--
-- Maintainer : emw4@rice.edu
-- Stability : experimental
-- Portability : GHC
--
-- This library implements multi-bindings as described in the paper
-- E. Westbrook, N. Frisby, P. Brauner, \"Hobbits for Haskell: A Library for
-- Higher-Order Encodings in Functional Programming Languages\".
module Data.Binding.Hobbits (
-- * Values under multi-bindings
module Data.Binding.Hobbits.Mb,
-- | The 'Data.Binding.Hobbits.Mb.Mb' type modeling multi-bindings is the
-- central abstract type of the library
-- * Ancilliary modules
module Data.Type.List,
-- | Type lists track the types of bound variables.
module Data.Binding.Hobbits.SuperComb,
-- | The 'Data.Binding.Hobbits.SuperComb.SuperComb' type models
-- super-combinators, which are safe functions to apply under
-- 'Data.Binding.Hobbits.Mb.Mb'.
module Data.Binding.Hobbits.QQ,
-- | The 'Data.Binding.Hobbits.QQ.nuQQ' quasiquoter allows safe pattern
-- matching on 'Data.Binding.Hobbits.Mb.Mb' values.
module Data.Binding.Hobbits.PatternParser,
-- | A simple parser for Haskell patterns.
module Data.Binding.Hobbits.NuElim
-- | The "Data.Binding.Hobbits.NuElim" module allows elimination of
-- bindings and multi-bindings; NOTE: this module is not covered in
-- the \"Hobbits for Haskell\" paper.
) where
import Data.Type.List
import Data.Binding.Hobbits.Mb
import Data.Binding.Hobbits.SuperComb
import Data.Binding.Hobbits.QQ
import Data.Binding.Hobbits.PatternParser
import Data.Binding.Hobbits.NuElim