     throw new Error "matching on hash maps not supported yet"
   else
     [labels, items] = unzip pairs _terms form
-    keyType = new TypeApp hashmapType, stringType
-    compiledItems = uniformCollectionCompile ctx, form, items, keyType
+    keyedType = markOrigin (new TypeApp hashmapType, stringType), form
+    compiledItems = uniformCollectionCompile ctx, form, items, keyedType
     keys = (map (__ string_, _labelName), labels)
     assignCompile ctx, form, (irMap keys, compiledItems)
 

  {constraints, itemType, compiled} = termsCompileExpectingSameType ctx, items
  (labelOperator form) if not isCall form
  form.tea = new Constrained (join moreConstraints, constraints),
      new TypeApp collectionType, itemType
  compiled

termsCompileExpectingSameType = (ctx, items) ->

      className = op.symbol
      {constraint} = ctx.classNamed className
      paramKinds = (map kind, constraint.types.types)
      markOrigin (new ClassConstraint op.symbol,
        new Types (typesCompile ctx, args, paramKinds)), expression
    else
      malformed ctx, expression, 'Class name required in a constraint'
  else
