1 package org.simantics.scl.compiler.elaboration.chr.relations;
\r
3 import org.simantics.scl.compiler.elaboration.chr.CHRRelation;
\r
4 import org.simantics.scl.compiler.types.TVar;
\r
5 import org.simantics.scl.compiler.types.Type;
\r
6 import org.simantics.scl.compiler.types.Types;
\r
8 public enum SpecialCHRRelation implements CHRRelation {
\r
10 MEMBER(A, Types.list(A)),
\r
11 CHECK(Types.BOOLEAN),
\r
12 EXECUTE(Types.UNIT);
\r
14 private final TVar[] typeVariables;
\r
15 private final Type[] parameterTypes;
\r
17 private SpecialCHRRelation(Type ... parameterTypes) {
\r
18 this.typeVariables = Types.freeVarsArray(parameterTypes);
\r
19 this.parameterTypes = parameterTypes;
\r
23 public TVar[] getTypeVariables() {
\r
24 return typeVariables;
\r
28 public Type[] getParameterTypes() {
\r
29 return parameterTypes;
\r