removed the type parameter from the idempotent eval, so that we 
can introduce an catch-all Object version
simplified the Arrow interfaces; using the Type parameters to make it
possibile to bound the types used by morph