@@ -6,14 +6,16 @@ module Halogen.VDom.Types
66 , unGraft
77 , runGraft
88 , ElemSpec (..)
9+ , ElemName (..)
910 , Namespace (..)
10- , unNamespace
1111 ) where
1212
1313import Prelude
1414import Data.Bifunctor (class Bifunctor , bimap )
15+ import Data.Generic (class Generic )
1516import Data.Maybe (Maybe )
16- import Data.Tuple (Tuple )
17+ import Data.Newtype (class Newtype )
18+ import Data.Tuple (Tuple )
1719import Unsafe.Coerce (unsafeCoerce )
1820
1921data VDom a w
@@ -72,14 +74,25 @@ runGraft =
7274 in
7375 go v
7476
75- data ElemSpec a = ElemSpec (Maybe Namespace ) String a
77+ data ElemSpec a = ElemSpec (Maybe Namespace ) ElemName a
78+
79+ derive instance eqElemSpec ∷ Eq a ⇒ Eq (ElemSpec a )
80+ derive instance ordElemSpec ∷ Ord a ⇒ Ord (ElemSpec a )
81+ derive instance genericElemSpec ∷ Generic a ⇒ Generic (ElemSpec a )
7682
7783instance functorElemSpec ∷ Functor ElemSpec where
7884 map f (ElemSpec ns name a) = ElemSpec ns name (f a)
7985
80- newtype Namespace = Namespace String
86+ newtype ElemName = ElemName String
8187
82- derive instance eqNamespace ∷ Eq Namespace
88+ derive instance newtypeElemName ∷ Newtype ElemName _
89+ derive newtype instance eqElemName ∷ Eq ElemName
90+ derive newtype instance ordElemName ∷ Ord ElemName
91+ derive instance genericElemName ∷ Generic ElemName
92+
93+ newtype Namespace = Namespace String
8394
84- unNamespace ∷ Namespace → String
85- unNamespace (Namespace s) = s
95+ derive instance newtypeNamespace ∷ Newtype Namespace _
96+ derive newtype instance eqNamespace ∷ Eq Namespace
97+ derive newtype instance ordNamespace ∷ Ord Namespace
98+ derive instance genericNamespace ∷ Generic Namespace
0 commit comments