module Data.DOM.Range
       (setStart, setEnd, setStartBefore, setStartAfter, setEndBefore,
        setEndAfter, collapse, selectNode, selectNodeContents,
        compareBoundaryPoints, deleteContents, extractContents,
        cloneContents, insertNode, surroundContents, cloneRange, toString,
        detach, cSTART_TO_START, cSTART_TO_END, cEND_TO_END, cEND_TO_START,
        get'startContainer, getm'startContainer, get'startOffset,
        getm'startOffset, get'endContainer, getm'endContainer,
        get'endOffset, getm'endOffset, get'collapsed, getm'collapsed,
        get'commonAncestorContainer, getm'commonAncestorContainer)
       where
import Data.DOM.Ranges
import Control.Monad
import WebBits.JavaScript
import Data.DOM.WBTypes
import Data.DOM.Dom
import Data.DOM.Document (createElement)
 
setStart ::
         (Monad mn, CRange this, CNode refNode) =>
           Expression refNode ->
             Expression Double -> Expression this -> mn (Expression ())
setStart a b thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "setStart")
       return (CallExpr et r [a /\ et, b /\ et])
 
setEnd ::
       (Monad mn, CRange this, CNode refNode) =>
         Expression refNode ->
           Expression Double -> Expression this -> mn (Expression ())
setEnd a b thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "setEnd")
       return (CallExpr et r [a /\ et, b /\ et])
 
setStartBefore ::
               (Monad mn, CRange this, CNode refNode) =>
                 Expression refNode -> Expression this -> mn (Expression ())
setStartBefore a thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "setStartBefore")
       return (CallExpr et r [a /\ et])
 
setStartAfter ::
              (Monad mn, CRange this, CNode refNode) =>
                Expression refNode -> Expression this -> mn (Expression ())
setStartAfter a thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "setStartAfter")
       return (CallExpr et r [a /\ et])
 
setEndBefore ::
             (Monad mn, CRange this, CNode refNode) =>
               Expression refNode -> Expression this -> mn (Expression ())
setEndBefore a thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "setEndBefore")
       return (CallExpr et r [a /\ et])
 
setEndAfter ::
            (Monad mn, CRange this, CNode refNode) =>
              Expression refNode -> Expression this -> mn (Expression ())
setEndAfter a thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "setEndAfter")
       return (CallExpr et r [a /\ et])
 
collapse ::
         (Monad mn, CRange this) =>
           Expression Bool -> Expression this -> mn (Expression ())
collapse a thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "collapse")
       return (CallExpr et r [a /\ et])
 
selectNode ::
           (Monad mn, CRange this, CNode refNode) =>
             Expression refNode -> Expression this -> mn (Expression ())
selectNode a thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "selectNode")
       return (CallExpr et r [a /\ et])
 
selectNodeContents ::
                   (Monad mn, CRange this, CNode refNode) =>
                     Expression refNode -> Expression this -> mn (Expression ())
selectNodeContents a thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "selectNodeContents")
       return (CallExpr et r [a /\ et])
 
compareBoundaryPoints ::
                      (Monad mn, CRange this, CRange sourceRange) =>
                        Expression Double ->
                          Expression sourceRange -> Expression this -> mn (Expression Double)
compareBoundaryPoints a b thisp
  = do let et = undefined :: Double
       let r = DotRef et (thisp /\ et) (Id et "compareBoundaryPoints")
       return (CallExpr et r [a /\ et, b /\ et])
 
deleteContents ::
               (Monad mn, CRange this) => Expression this -> mn (Expression ())
deleteContents thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "deleteContents")
       return (CallExpr et r [])
 
extractContents ::
                (Monad mn, CRange this, CDocumentFragment zz) =>
                  Expression this -> mn (Expression zz)
extractContents thisp
  = do let et = undefined :: zz
       let r = DotRef et (thisp /\ et) (Id et "extractContents")
       return (CallExpr et r [])
 
cloneContents ::
              (Monad mn, CRange this, CDocumentFragment zz) =>
                Expression this -> mn (Expression zz)
cloneContents thisp
  = do let et = undefined :: zz
       let r = DotRef et (thisp /\ et) (Id et "cloneContents")
       return (CallExpr et r [])
 
insertNode ::
           (Monad mn, CRange this, CNode newNode) =>
             Expression newNode -> Expression this -> mn (Expression ())
insertNode a thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "insertNode")
       return (CallExpr et r [a /\ et])
 
surroundContents ::
                 (Monad mn, CRange this, CNode newParent) =>
                   Expression newParent -> Expression this -> mn (Expression ())
surroundContents a thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "surroundContents")
       return (CallExpr et r [a /\ et])
 
cloneRange ::
           (Monad mn, CRange this, CRange zz) =>
             Expression this -> mn (Expression zz)
cloneRange thisp
  = do let et = undefined :: zz
       let r = DotRef et (thisp /\ et) (Id et "cloneRange")
       return (CallExpr et r [])
 
toString ::
         (Monad mn, CRange this) =>
           Expression this -> mn (Expression String)
toString thisp
  = do let et = undefined :: String
       let r = DotRef et (thisp /\ et) (Id et "toString")
       return (CallExpr et r [])
 
detach ::
       (Monad mn, CRange this) => Expression this -> mn (Expression ())
detach thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "detach")
       return (CallExpr et r [])
cSTART_TO_START = 0
cSTART_TO_END = 1
cEND_TO_END = 2
cEND_TO_START = 3
 
get'startContainer ::
                   (Monad mn, CRange this, CNode zz) =>
                     Expression this -> mn (Expression zz)
get'startContainer thisp
  = do let et = undefined :: zz
       let r = DotRef et (thisp /\ et) (Id et "startContainer")
       return r
 
getm'startContainer ::
                    (Monad mn, CRange this) => Expression this -> mn (Expression TNode)
getm'startContainer = get'startContainer
 
get'startOffset ::
                (Monad mn, CRange this) =>
                  Expression this -> mn (Expression Double)
get'startOffset thisp
  = do let et = undefined :: Double
       let r = DotRef et (thisp /\ et) (Id et "startOffset")
       return r
 
getm'startOffset ::
                 (Monad mn, CRange this) =>
                   Expression this -> mn (Expression Double)
getm'startOffset = get'startOffset
 
get'endContainer ::
                 (Monad mn, CRange this, CNode zz) =>
                   Expression this -> mn (Expression zz)
get'endContainer thisp
  = do let et = undefined :: zz
       let r = DotRef et (thisp /\ et) (Id et "endContainer")
       return r
 
getm'endContainer ::
                  (Monad mn, CRange this) => Expression this -> mn (Expression TNode)
getm'endContainer = get'endContainer
 
get'endOffset ::
              (Monad mn, CRange this) =>
                Expression this -> mn (Expression Double)
get'endOffset thisp
  = do let et = undefined :: Double
       let r = DotRef et (thisp /\ et) (Id et "endOffset")
       return r
 
getm'endOffset ::
               (Monad mn, CRange this) =>
                 Expression this -> mn (Expression Double)
getm'endOffset = get'endOffset
 
get'collapsed ::
              (Monad mn, CRange this) => Expression this -> mn (Expression Bool)
get'collapsed thisp
  = do let et = undefined :: Bool
       let r = DotRef et (thisp /\ et) (Id et "collapsed")
       return r
 
getm'collapsed ::
               (Monad mn, CRange this) => Expression this -> mn (Expression Bool)
getm'collapsed = get'collapsed
 
get'commonAncestorContainer ::
                            (Monad mn, CRange this, CNode zz) =>
                              Expression this -> mn (Expression zz)
get'commonAncestorContainer thisp
  = do let et = undefined :: zz
       let r = DotRef et (thisp /\ et) (Id et "commonAncestorContainer")
       return r
 
getm'commonAncestorContainer ::
                             (Monad mn, CRange this) => Expression this -> mn (Expression TNode)
getm'commonAncestorContainer = get'commonAncestorContainer