@@ -15,22 +15,18 @@ module Text.Markdown.SlamDown.Syntax.FormField
1515import Prelude
1616
1717import Data.Array as A
18- import Data.Eq (class Eq1 )
18+ import Data.Eq (class Eq1 , eq1 )
1919import Data.Functor.Compose (Compose (..))
2020import Data.Identity (Identity (..))
2121import Data.List as L
2222import Data.Maybe as M
2323import Data.Newtype (unwrap )
24- import Data.Ord (class Ord1 )
25- import Data.Set as Set
24+ import Data.Ord (class Ord1 , compare1 )
2625import Data.Traversable as TR
2726import Data.Tuple (uncurry )
28-
2927import Partial.Unsafe (unsafePartial )
30-
3128import Test.StrongCheck.Arbitrary as SCA
3229import Test.StrongCheck.Gen as Gen
33-
3430import Text.Markdown.SlamDown.Syntax.TextBox (TextBox (..), TimePrecision (..), transTextBox , traverseTextBox ) as TB
3531import Text.Markdown.SlamDown.Syntax.Value (class Value , renderValue , stringValue ) as Value
3632
@@ -80,31 +76,39 @@ instance showFormField ∷ (Functor f, Show (f a), Show (TB.TextBox (Compose M.M
8076 CheckBoxes sel ls → " (CheckBoxes " <> show sel <> " " <> show ls <> " )"
8177 DropDown sel ls → " (DropDown " <> show sel <> " " <> show ls <> " )"
8278
83- instance ordFormField ∷ (Functor f , Ord (f a ), Ord (TB.TextBox (Compose M.Maybe f )), Eq (TB.TextBox (Compose M.Maybe f )), Ord (f (L.List a )), Ord (f (Set.Set a )), Ord a ) ⇒ Ord (FormFieldP f a ) where
84- compare =
79+ instance eq1FormField ∷ Eq1 f ⇒ Eq1 (FormFieldP f ) where
80+ eq1 = case _, _ of
81+ TextBox tb1, TextBox tb2 -> tb1 == tb2
82+ RadioButtons sel1 ls1, RadioButtons sel2 ls2 -> sel1 `eq1` sel2 && ls1 `eq1` ls2
83+ CheckBoxes sel1 ls1, CheckBoxes sel2 ls2 -> sel1 `eq1` sel2 && ls1 `eq1` ls2
84+ DropDown M.Nothing ls1, DropDown M.Nothing ls2 -> ls1 `eq1` ls2
85+ DropDown (M.Just sel1) ls1, DropDown (M.Just sel2) ls2 -> sel1 `eq1` sel2 && ls1 `eq1` ls2
86+ _, _ -> false
87+
88+ instance eqFormField :: (Eq1 f , Eq a ) => Eq (FormFieldP f a ) where
89+ eq = eq1
90+
91+ instance ord1FormField ∷ Ord1 f ⇒ Ord1 (FormFieldP f ) where
92+ compare1 =
8593 case _, _ of
8694 TextBox tb1, TextBox tb2 → compare tb1 tb2
8795 TextBox _, _ → LT
8896 _, TextBox _ → GT
8997
90- RadioButtons sel1 ls1, RadioButtons sel2 ls2 → compare sel1 sel2 <> compare ls1 ls2
98+ RadioButtons sel1 ls1, RadioButtons sel2 ls2 → compare1 sel1 sel2 <> compare1 ls1 ls2
9199 RadioButtons _ _, _ → LT
92100 _, RadioButtons _ _ → GT
93101
94- CheckBoxes sel1 ls1, CheckBoxes sel2 ls2 → compare ( Set .fromFoldable <$> sel1) ( Set .fromFoldable <$> sel2) <> compare ls1 ls2
102+ CheckBoxes sel1 ls1, CheckBoxes sel2 ls2 → compare1 sel1 sel2 <> compare1 ls1 ls2
95103 CheckBoxes _ _, _ → LT
96104 _, CheckBoxes _ _ → GT
97105
98- DropDown sel1 ls1, DropDown sel2 ls2 → compare sel1 sel2 <> compare ls1 ls2
106+ DropDown M.Nothing ls1, DropDown M.Nothing ls2 → compare1 ls1 ls2
107+ DropDown (M.Just sel1) ls1, DropDown (M.Just sel2) ls2 → compare1 sel1 sel2 <> compare1 ls1 ls2
108+ _, _ -> EQ
99109
100- instance eqFormField ∷ (Functor f , Eq (f a ), Eq (TB.TextBox (Compose M.Maybe f )), Eq (f (L.List a )), Eq (f (Set.Set a )), Ord a ) ⇒ Eq (FormFieldP f a ) where
101- eq =
102- case _, _ of
103- TextBox tb1, TextBox tb2 → tb1 == tb2
104- RadioButtons sel1 ls1, RadioButtons sel2 ls2 → sel1 == sel2 && ls1 == ls2
105- CheckBoxes sel1 ls1, CheckBoxes sel2 ls2 → ((Set .fromFoldable <$> sel1) == (Set .fromFoldable <$> sel2)) && ls1 == ls2
106- DropDown sel1 ls1, DropDown sel2 ls2 → sel1 == sel2 && ls1 == ls2
107- _, _ → false
110+ instance ordFormField :: (Ord1 f , Ord a ) => Ord (FormFieldP f a ) where
111+ compare = compare1
108112
109113newtype ArbIdentity a = ArbIdentity a
110114
@@ -302,13 +306,10 @@ instance showExpr ∷ (Show a) ⇒ Show (Expr a) where
302306 Unevaluated e → " (Unevaluated " <> show e <> " )"
303307
304308derive instance eqExpr ∷ Eq a ⇒ Eq (Expr a )
305- derive instance ordExpr ∷ Ord a ⇒ Ord ( Expr a )
309+ derive instance eq1 ∷ Eq1 Expr
306310
307- instance eq1 ∷ Eq1 Expr where
308- eq1 = eq
309-
310- instance ord1Expr ∷ Ord1 Expr where
311- compare1 = compare
311+ derive instance ord1Expr ∷ Ord1 Expr
312+ derive instance ordExpr ∷ Ord a ⇒ Ord (Expr a )
312313
313314genExpr ∷ ∀ a . Gen.Gen a → Gen.Gen (Expr a )
314315genExpr g = do
0 commit comments