--- /dev/null
+package org.simantics.scl.compiler.internal.codegen.types;\r
+\r
+import org.cojen.classfile.TypeDesc;\r
+import org.simantics.scl.compiler.elaboration.modules.TypeConstructor;\r
+import org.simantics.scl.compiler.types.Type;\r
+import org.simantics.scl.compiler.types.Types;\r
+import org.simantics.scl.compiler.types.kinds.Kinds;\r
+\r
+public class MaybeType extends TypeConstructor {\r
+ public static final MaybeType INSTANCE = new MaybeType();\r
+ \r
+ private MaybeType() {\r
+ super(Types.MAYBE, Kinds.STAR_TO_STAR);\r
+ isOpen = false;\r
+ setType(Types.con(Types.BUILTIN, "Maybe"), Types.var(Kinds.STAR));\r
+ documentation = "Represents an optional value.";\r
+ }\r
+ \r
+ @Override\r
+ public TypeDesc construct(JavaTypeTranslator translator, Type[] parameters) {\r
+ return JavaTypeTranslator.toObjectType(translator.toTypeDesc(parameters[0]));\r
+ }\r
+\r
+}\r