--- /dev/null
+\r
+@JavaType "org.simantics.scl.compiler.elaboration.expressions.Expression"\r
+data Expression = \r
+ @JavaType "org/simantics/scl/compiler/elaboration/expressions/EIntegerLiteral"\r
+ @FieldNames [value]\r
+ EIntegerLiteral String\r
+ | @JavaType "org.simantics.scl.compiler.elaboration.expressions.ERealLiteral"\r
+ @FieldNames [value]\r
+ ERealLiteral String\r
+\r
+changeType :: Expression -> Expression\r
+changeType (EIntegerLiteral value) = ERealLiteral value\r
+changeType (ERealLiteral value) = EIntegerLiteral value\r
+\r
+main :: Expression\r
+main = changeType (EIntegerLiteral "123") \r
+--\r
+123
\ No newline at end of file