@@ -3,16 +3,26 @@ module DOM.HTML.History where
3
3
import Control.Monad.Eff (Eff )
4
4
import DOM.HTML.Types (HISTORY , History )
5
5
import Data.Foreign (Foreign )
6
- import Prelude (Unit )
6
+ import Data.Newtype (class Newtype )
7
+ import Prelude (class Eq , class Ord , Unit )
7
8
8
9
-- DocumentTitle will set value of `document.title`
9
10
newtype DocumentTitle = DocumentTitle String
11
+ derive instance eqDocumentTitle :: Eq DocumentTitle
12
+ derive instance ordDocumentTitle :: Ord DocumentTitle
13
+ derive instance newtypeDocumentTitle :: Newtype DocumentTitle _
10
14
newtype Delta = Delta Int
11
- newtype URL = URL String -- Unsure how to better type this.
15
+ derive instance eqDelta :: Eq Delta
16
+ derive instance ordDelta :: Ord Delta
17
+ derive instance newtypeDelta :: Newtype Delta _
18
+ newtype URL = URL String
19
+ derive instance eqURL :: Eq URL
20
+ derive instance ordURL :: Ord URL
21
+ derive instance newtypeURL :: Newtype URL _
12
22
13
23
foreign import back :: forall e . History -> Eff (history :: HISTORY | e ) Unit
14
24
foreign import forward :: forall e . History -> Eff (history :: HISTORY | e ) Unit
15
- foreign import go :: forall e . History -> Delta -> Eff (history :: HISTORY | e ) Unit
16
- foreign import pushState :: forall e . History -> Foreign -> DocumentTitle -> URL -> Eff (history :: HISTORY | e ) Unit
17
- foreign import replaceState :: forall e . History -> Foreign -> DocumentTitle -> URL -> Eff (history :: HISTORY | e ) Unit
25
+ foreign import go :: forall e . Delta -> History -> Eff (history :: HISTORY | e ) Unit
26
+ foreign import pushState :: forall e . Foreign -> DocumentTitle -> URL -> History -> Eff (history :: HISTORY | e ) Unit
27
+ foreign import replaceState :: forall e . Foreign -> DocumentTitle -> URL -> History -> Eff (history :: HISTORY | e ) Unit
18
28
foreign import state :: forall e . History -> Eff (history :: HISTORY | e ) Foreign
0 commit comments