   # Type an expression
 ms[':'] = ms_typed = (ctx, call) ->
     hasName = requireName ctx, 'Name required to declare typed values for now'
-    [type, constraintSeq, rest...] = _arguments call
+    [docs, defs] = partition isComment, _arguments call
+    [type, constraintSeq, rest...] = defs
     compiledType =
       if isSeq constraintSeq
         constraints = typeConstraintsCompile ctx, _terms constraintSeq

    ctx.preDeclare name,
      id: id
      type: explicitType
      docs: documentation
  explicitType

preDeclarePatterns = (ctx, patterns) ->

    expression = constraintSeq
  compiledType = new Constrained constraints, typeCompile ctx, type
  if name = ctx.definitionName()
    preDeclareExplicitlyTyped ctx, compiledType, docs
  call.tea = compiledType
  assignCompile ctx, call, (termCompile ctx, expression)

