]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/CHRRelation.java
(refs #7375) Fixed implementation of collectEffects
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / chr / CHRRelation.java
1 package org.simantics.scl.compiler.elaboration.chr;
2
3 import org.simantics.scl.compiler.types.TPred;
4 import org.simantics.scl.compiler.types.TVar;
5 import org.simantics.scl.compiler.types.Type;
6 import org.simantics.scl.compiler.types.Types;
7 import org.simantics.scl.compiler.types.kinds.Kinds;
8
9 import gnu.trove.set.hash.THashSet;
10
11 public interface CHRRelation {
12     public static final TVar A = Types.var(Kinds.STAR);
13     
14     TVar[] getTypeVariables();
15     Type[] getParameterTypes();
16     TPred[] getTypeConstraints();
17     default String[] getFieldNames() {
18         return null;
19     }
20     void collectEnforceEffects(THashSet<Type> effects);
21     void collectQueryEffects(THashSet<Type> effects);
22 }