anchor.diff:                      []
                   |> TextArea
               input
  +            |>! Events.OnChange (fun _ ->
  +                if not readOnly then
  +                    state.Trigger (Success input.Value))
               |>! Events.OnKeyUp (fun _ _ ->
                   if not readOnly then
  -                    state.Trigger (Success input.Value)
  -            )
  -        )
  +                    state.Trigger (Success input.Value)))
   
       /// Given an initial value creates a text area formlet control.
       [<JavaScript>]
  
positive.code:                 state.Trigger (Success value)
              body, reset, state
  
  
  
      [<JavaScript>]
      let private TextAreaControl (readOnly) (value: string) : Formlet<string> =
          InputControl value (fun state ->
  
negative.code:         TextAreaControl true value
  
      [<JavaScript>]
      let private InputField
          (readOnly: bool) (typ: string)
          (cls: string) (value: string) : Formlet<string> =
          InputControl value (fun state ->
              let input =
                  let ro = if readOnly then [Attr.ReadOnly "readonly"] else []
                  Input <| [Attr.Type typ; Attr.Class cls] @ ro
              input
              |>! Events.OnChange (fun _ ->
                  if not readOnly then
                      state.Trigger (Success input.Value))
              |>! Events.OnKeyUp (fun _ _ ->
                  if not readOnly then
                      state.Trigger (Success input.Value)))
  
      [<JavaScript>]
      let private CheckboxControl (readOnly : bool) (def: bool) : Formlet<bool> =
  