1 -- | Semantics for Identity (aka. R, or meta-circular representation).
 
   2 module SemanticEval where
 
   4 import Data.Functor.Identity
 
   7 instance Abstractable Identity where
 
   8   lam f = Identity (runIdentity . f . Identity)
 
   9   (.@) f x = Identity ((runIdentity f) (runIdentity x))
 
  10 {- Defined in Data.Functor.Identity
 
  11 instance Num a => Num (Identity a)
 
  12 instance Fractional a => Fractional (Identity a)
 
  15 eval :: Identity a -> a