     if not isCall instanceConstraint
       return malformed call, 'Instance requires a class constraint'
     else
-      instanceType = typeConstraintCompile instanceConstraint
+      instanceType = typeConstraintCompile ctx, instanceConstraint
     [constraintSeq, wheres...] = defs
     if not isSeq constraintSeq
       wheres = defs
       constraints = []
     else
-      constraints = typeConstraintsCompile _terms constraintSeq
+      constraints = typeConstraintsCompile ctx, _terms constraintSeq
 
     # TODO: defer if class does not exist
     className = instanceType.className

        ctx.declare "#{constr.symbol}.#{label}",
          arity: ["#{constr.symbol[0].toLowerCase()}#{constr.symbol[1...]}"]
          type: quantifyUnbound ctx, toConstrained typeFn dataType, paramTypes[i]
    # We don't add binding to kind constructors, but maybe we need to
    # ctx.addType dataName, dataType


    # Translate
    concat (for [constr, params] in defs

    @cacheScopes = [[]]
    @_assignTos = []
    topScope = @_augmentScope builtInContext()
    topScope.typeNames = builtInTypeNames()
    topScope.topLevel = yes
    @scopes = [topScope]
    @classParams = newMap()
