module Web.HTML.History where import Data.Newtype (class Newtype) import Effect (Effect) import Foreign (Foreign) import Prelude (class Eq, class Ord, Unit) foreign import data History :: Type -- DocumentTitle will set value of `document.title` newtype DocumentTitle = DocumentTitle String derive instance eqDocumentTitle :: Eq DocumentTitle derive instance ordDocumentTitle :: Ord DocumentTitle derive instance newtypeDocumentTitle :: Newtype DocumentTitle _ newtype Delta = Delta Int derive instance eqDelta :: Eq Delta derive instance ordDelta :: Ord Delta derive instance newtypeDelta :: Newtype Delta _ newtype URL = URL String derive instance eqURL :: Eq URL derive instance ordURL :: Ord URL derive instance newtypeURL :: Newtype URL _ foreign import back :: History -> Effect Unit foreign import forward :: History -> Effect Unit foreign import go :: Delta -> History -> Effect Unit foreign import pushState :: Foreign -> DocumentTitle -> URL -> History -> Effect Unit foreign import replaceState :: Foreign -> DocumentTitle -> URL -> History -> Effect Unit foreign import state :: History -> Effect Foreign