Lambda calculus
Mogensen extends Scott encoding to encode any untyped lambda term as data. This allows a lambda term to be represented as data, within a Lambda calculus meta program. The meta function "mse" converts a lambda term into the corresponding data representation of the lambda term;