module Data.DOM.HTMLTableElement
       (createTHead, deleteTHead, createTFoot, deleteTFoot, createCaption,
        deleteCaption, insertRow, deleteRow, set'caption, get'caption,
        getm'caption, set'tHead, get'tHead, getm'tHead, set'tFoot,
        get'tFoot, getm'tFoot, get'rows, getm'rows, get'tBodies,
        getm'tBodies, set'align, get'align, getm'align, set'bgColor,
        get'bgColor, getm'bgColor, set'border, get'border, getm'border,
        set'cellPadding, get'cellPadding, getm'cellPadding,
        set'cellSpacing, get'cellSpacing, getm'cellSpacing, set'frame,
        get'frame, getm'frame, set'rules, get'rules, getm'rules,
        set'summary, get'summary, getm'summary, set'width, get'width,
        getm'width, mkTable)
       where
import Data.DOM.Html2
import Control.Monad
import BrownPLT.JavaScript
import Data.DOM.WBTypes
import Data.DOM.Dom
import Data.DOM.Document (createElement)
 
createTHead ::
            (Monad mn, CHTMLTableElement this, CHTMLElement zz) =>
              Expression this -> mn (Expression zz)
createTHead thisp
  = do let et = undefined :: zz
       let r = DotRef et (thisp /\ et) (Id et "createTHead")
       return (CallExpr et r [])
 
deleteTHead ::
            (Monad mn, CHTMLTableElement this) =>
              Expression this -> mn (Expression ())
deleteTHead thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "deleteTHead")
       return (CallExpr et r [])
 
createTFoot ::
            (Monad mn, CHTMLTableElement this, CHTMLElement zz) =>
              Expression this -> mn (Expression zz)
createTFoot thisp
  = do let et = undefined :: zz
       let r = DotRef et (thisp /\ et) (Id et "createTFoot")
       return (CallExpr et r [])
 
deleteTFoot ::
            (Monad mn, CHTMLTableElement this) =>
              Expression this -> mn (Expression ())
deleteTFoot thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "deleteTFoot")
       return (CallExpr et r [])
 
createCaption ::
              (Monad mn, CHTMLTableElement this, CHTMLElement zz) =>
                Expression this -> mn (Expression zz)
createCaption thisp
  = do let et = undefined :: zz
       let r = DotRef et (thisp /\ et) (Id et "createCaption")
       return (CallExpr et r [])
 
deleteCaption ::
              (Monad mn, CHTMLTableElement this) =>
                Expression this -> mn (Expression ())
deleteCaption thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "deleteCaption")
       return (CallExpr et r [])
 
insertRow ::
          (Monad mn, CHTMLTableElement this, CHTMLElement zz) =>
            Expression Double -> Expression this -> mn (Expression zz)
insertRow a thisp
  = do let et = undefined :: zz
       let r = DotRef et (thisp /\ et) (Id et "insertRow")
       return (CallExpr et r [a /\ et])
 
deleteRow ::
          (Monad mn, CHTMLTableElement this) =>
            Expression Double -> Expression this -> mn (Expression ())
deleteRow a thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "deleteRow")
       return (CallExpr et r [a /\ et])
 
set'caption ::
            (Monad mn, CHTMLTableCaptionElement val, CHTMLTableElement zz) =>
              Expression val -> Expression zz -> mn (Expression zz)
set'caption = setjsProperty "caption"
 
get'caption ::
            (Monad mn, CHTMLTableElement this, CHTMLTableCaptionElement zz) =>
              Expression this -> mn (Expression zz)
get'caption thisp
  = do let et = undefined :: zz
       let r = DotRef et (thisp /\ et) (Id et "caption")
       return r
 
getm'caption ::
             (Monad mn, CHTMLTableElement this) =>
               Expression this -> mn (Expression THTMLTableCaptionElement)
getm'caption = get'caption
 
set'tHead ::
          (Monad mn, CHTMLTableSectionElement val, CHTMLTableElement zz) =>
            Expression val -> Expression zz -> mn (Expression zz)
set'tHead = setjsProperty "tHead"
 
get'tHead ::
          (Monad mn, CHTMLTableElement this, CHTMLTableSectionElement zz) =>
            Expression this -> mn (Expression zz)
get'tHead thisp
  = do let et = undefined :: zz
       let r = DotRef et (thisp /\ et) (Id et "tHead")
       return r
 
getm'tHead ::
           (Monad mn, CHTMLTableElement this) =>
             Expression this -> mn (Expression THTMLTableSectionElement)
getm'tHead = get'tHead
 
set'tFoot ::
          (Monad mn, CHTMLTableSectionElement val, CHTMLTableElement zz) =>
            Expression val -> Expression zz -> mn (Expression zz)
set'tFoot = setjsProperty "tFoot"
 
get'tFoot ::
          (Monad mn, CHTMLTableElement this, CHTMLTableSectionElement zz) =>
            Expression this -> mn (Expression zz)
get'tFoot thisp
  = do let et = undefined :: zz
       let r = DotRef et (thisp /\ et) (Id et "tFoot")
       return r
 
getm'tFoot ::
           (Monad mn, CHTMLTableElement this) =>
             Expression this -> mn (Expression THTMLTableSectionElement)
getm'tFoot = get'tFoot
 
get'rows ::
         (Monad mn, CHTMLTableElement this, CHTMLCollection zz) =>
           Expression this -> mn (Expression zz)
get'rows thisp
  = do let et = undefined :: zz
       let r = DotRef et (thisp /\ et) (Id et "rows")
       return r
 
getm'rows ::
          (Monad mn, CHTMLTableElement this) =>
            Expression this -> mn (Expression THTMLCollection)
getm'rows = get'rows
 
get'tBodies ::
            (Monad mn, CHTMLTableElement this, CHTMLCollection zz) =>
              Expression this -> mn (Expression zz)
get'tBodies thisp
  = do let et = undefined :: zz
       let r = DotRef et (thisp /\ et) (Id et "tBodies")
       return r
 
getm'tBodies ::
             (Monad mn, CHTMLTableElement this) =>
               Expression this -> mn (Expression THTMLCollection)
getm'tBodies = get'tBodies
 
set'align ::
          (Monad mn, CHTMLTableElement zz) =>
            Expression String -> Expression zz -> mn (Expression zz)
set'align = setjsProperty "align"
 
get'align ::
          (Monad mn, CHTMLTableElement this) =>
            Expression this -> mn (Expression String)
get'align thisp
  = do let et = undefined :: String
       let r = DotRef et (thisp /\ et) (Id et "align")
       return r
 
getm'align ::
           (Monad mn, CHTMLTableElement this) =>
             Expression this -> mn (Expression String)
getm'align = get'align
 
set'bgColor ::
            (Monad mn, CHTMLTableElement zz) =>
              Expression String -> Expression zz -> mn (Expression zz)
set'bgColor = setjsProperty "bgColor"
 
get'bgColor ::
            (Monad mn, CHTMLTableElement this) =>
              Expression this -> mn (Expression String)
get'bgColor thisp
  = do let et = undefined :: String
       let r = DotRef et (thisp /\ et) (Id et "bgColor")
       return r
 
getm'bgColor ::
             (Monad mn, CHTMLTableElement this) =>
               Expression this -> mn (Expression String)
getm'bgColor = get'bgColor
 
set'border ::
           (Monad mn, CHTMLTableElement zz) =>
             Expression String -> Expression zz -> mn (Expression zz)
set'border = setjsProperty "border"
 
get'border ::
           (Monad mn, CHTMLTableElement this) =>
             Expression this -> mn (Expression String)
get'border thisp
  = do let et = undefined :: String
       let r = DotRef et (thisp /\ et) (Id et "border")
       return r
 
getm'border ::
            (Monad mn, CHTMLTableElement this) =>
              Expression this -> mn (Expression String)
getm'border = get'border
 
set'cellPadding ::
                (Monad mn, CHTMLTableElement zz) =>
                  Expression String -> Expression zz -> mn (Expression zz)
set'cellPadding = setjsProperty "cellPadding"
 
get'cellPadding ::
                (Monad mn, CHTMLTableElement this) =>
                  Expression this -> mn (Expression String)
get'cellPadding thisp
  = do let et = undefined :: String
       let r = DotRef et (thisp /\ et) (Id et "cellPadding")
       return r
 
getm'cellPadding ::
                 (Monad mn, CHTMLTableElement this) =>
                   Expression this -> mn (Expression String)
getm'cellPadding = get'cellPadding
 
set'cellSpacing ::
                (Monad mn, CHTMLTableElement zz) =>
                  Expression String -> Expression zz -> mn (Expression zz)
set'cellSpacing = setjsProperty "cellSpacing"
 
get'cellSpacing ::
                (Monad mn, CHTMLTableElement this) =>
                  Expression this -> mn (Expression String)
get'cellSpacing thisp
  = do let et = undefined :: String
       let r = DotRef et (thisp /\ et) (Id et "cellSpacing")
       return r
 
getm'cellSpacing ::
                 (Monad mn, CHTMLTableElement this) =>
                   Expression this -> mn (Expression String)
getm'cellSpacing = get'cellSpacing
 
set'frame ::
          (Monad mn, CHTMLTableElement zz) =>
            Expression String -> Expression zz -> mn (Expression zz)
set'frame = setjsProperty "frame"
 
get'frame ::
          (Monad mn, CHTMLTableElement this) =>
            Expression this -> mn (Expression String)
get'frame thisp
  = do let et = undefined :: String
       let r = DotRef et (thisp /\ et) (Id et "frame")
       return r
 
getm'frame ::
           (Monad mn, CHTMLTableElement this) =>
             Expression this -> mn (Expression String)
getm'frame = get'frame
 
set'rules ::
          (Monad mn, CHTMLTableElement zz) =>
            Expression String -> Expression zz -> mn (Expression zz)
set'rules = setjsProperty "rules"
 
get'rules ::
          (Monad mn, CHTMLTableElement this) =>
            Expression this -> mn (Expression String)
get'rules thisp
  = do let et = undefined :: String
       let r = DotRef et (thisp /\ et) (Id et "rules")
       return r
 
getm'rules ::
           (Monad mn, CHTMLTableElement this) =>
             Expression this -> mn (Expression String)
getm'rules = get'rules
 
set'summary ::
            (Monad mn, CHTMLTableElement zz) =>
              Expression String -> Expression zz -> mn (Expression zz)
set'summary = setjsProperty "summary"
 
get'summary ::
            (Monad mn, CHTMLTableElement this) =>
              Expression this -> mn (Expression String)
get'summary thisp
  = do let et = undefined :: String
       let r = DotRef et (thisp /\ et) (Id et "summary")
       return r
 
getm'summary ::
             (Monad mn, CHTMLTableElement this) =>
               Expression this -> mn (Expression String)
getm'summary = get'summary
 
set'width ::
          (Monad mn, CHTMLTableElement zz) =>
            Expression String -> Expression zz -> mn (Expression zz)
set'width = setjsProperty "width"
 
get'width ::
          (Monad mn, CHTMLTableElement this) =>
            Expression this -> mn (Expression String)
get'width thisp
  = do let et = undefined :: String
       let r = DotRef et (thisp /\ et) (Id et "width")
       return r
 
getm'width ::
           (Monad mn, CHTMLTableElement this) =>
             Expression this -> mn (Expression String)
getm'width = get'width
 
mkTable ::
        (Monad mn, CHTMLDocument a) =>
          Expression a -> mn (Expression THTMLTableElement)
mkTable = createElement (StringLit "table" "table")