--- /dev/null
+package org.simantics.scl.compiler.internal.elaboration.constraints;\r
+\r
+import org.simantics.scl.compiler.elaboration.expressions.Expression;\r
+import org.simantics.scl.compiler.top.SCLCompilerConfiguration;\r
+import org.simantics.scl.compiler.types.TPred;\r
+import org.simantics.scl.compiler.types.Type;\r
+\r
+class Reduction {\r
+ Expression generator;\r
+ Type[] parameters;\r
+ TPred[] demands;\r
+ \r
+ public Reduction(Expression generator, Type[] parameters, TPred[] demands) {\r
+ if(SCLCompilerConfiguration.DEBUG) {\r
+ if(generator == null)\r
+ throw new NullPointerException();\r
+ for(Type parameter : parameters)\r
+ if(parameter == null)\r
+ throw new NullPointerException();\r
+ for(Type demand : demands)\r
+ if(demand == null)\r
+ throw new NullPointerException();\r
+ }\r
+ this.generator = generator;\r
+ this.parameters = parameters;\r
+ this.demands = demands;\r
+ }\r
+}\r