{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies #-}
{-# LANGUAGE FlexibleInstances #-}
-- .$Header: c:/Source/Haskell/Type/Data/Type/RCS/Apply.hs,v 1.2 2011/03/05 00:26:32 dosuser Exp dosuser $
module Data.Type.Apply where

-- A heterogeneous apply operator

class Apply f a r | f a -> r where
  apply :: f -> a -> r
  apply = undefined

-- Normal function application
instance Apply (x -> y) x y where
  apply f x = f x

-- vim: expandtab:tabstop=4:shiftwidth=4