     # or agreement to some legal terms and conditions. The field
     # that it creates is rendered as inline (see semantic man).
     checkbox: (identity, synopsis, onpos, onneg) ->
-        assert _.isString what = "ui checkbox".toString()
+        assert _.isString(identity), "invalid field identity"
+        assert _.isString(synopsis), "invalid field synopsis"
+        assert _.isString what = "ui checkbox" # wrapping sel
         assert _.isObject label = $ "<label>", class: "label"
         assert _.isObject input = $ "<input>", type: "checkbox"
         assert _.isObject input.attr name: identity.toString()

    # a good idea to use such a field for inputting sorts data that
    # is not strictly required, but is usually optional, as example.
    regular: (identity, synopsis, icon) ->
        assert _.isObject input = $ "<input>", type: "text"
        assert _.isObject label = $ "<label>", class: "label"
        assert _.isObject input.attr name: identity.toString()
        field = $("<div>", class: "field").appendTo @element
        wrap = $ "<div>", class: "icon input ui left labeled"
        input.on "input", -> do -> field.removeClass "error"
        assert icon = $ "<i>", class: "icon #{icon}" if icon
        assert input.attr placeholder: synopsis.toString()
        try $(field).data "identity", identity.toString()
        field.addClass try identity.toString() if identity

    # and can optionally attach an icon to the field (recommended).
    # In other ways, it is structurally equal to `starred` field.
    hidden: (identity, synopsis, icon) ->
        assert _.isString(identity), "invalid field identity"
        assert _.isString(synopsis), "invalid field synopsis"
        assert _.isObject label = $ "<label>", class: "label"
        assert _.isObject input = $ "<input>", type: "password"
        assert _.isObject input.attr name: identity.toString()
