{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies #-}
{-# LANGUAGE FlexibleInstances #-}
-- .$Header: c:/Source/Haskell/Type/Data/Type/RCS/Apply.hs,v 1.1 2010/01/16 00:39:25 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