File tree Expand file tree Collapse file tree 3 files changed +30
-2
lines changed
Expand file tree Collapse file tree 3 files changed +30
-2
lines changed Original file line number Diff line number Diff line change @@ -46,6 +46,7 @@ default-extensions:
4646 TemplateHaskell
4747 TupleSections
4848 TypeApplications
49+ TypeFamilies
4950 NamedFieldPuns
5051
5152library :
Original file line number Diff line number Diff line change @@ -58,7 +58,7 @@ library
5858 hs-source-dirs :
5959 src
6060 default-extensions :
61- DataKinds DeriveFunctor DeriveGeneric DerivingStrategies DisambiguateRecordFields DuplicateRecordFields FlexibleContexts LambdaCase OverloadedLabels OverloadedRecordDot OverloadedStrings RecordWildCards TemplateHaskell TupleSections TypeApplications NamedFieldPuns
61+ DataKinds DeriveFunctor DeriveGeneric DerivingStrategies DisambiguateRecordFields DuplicateRecordFields FlexibleContexts LambdaCase OverloadedLabels OverloadedRecordDot OverloadedStrings RecordWildCards TemplateHaskell TupleSections TypeApplications TypeFamilies NamedFieldPuns
6262 build-depends :
6363 QuickCheck
6464 , base >= 4.14 && < 5
@@ -86,7 +86,7 @@ test-suite simplex-method-test
8686 hs-source-dirs :
8787 test
8888 default-extensions :
89- DataKinds DeriveFunctor DeriveGeneric DerivingStrategies DisambiguateRecordFields DuplicateRecordFields FlexibleContexts LambdaCase OverloadedLabels OverloadedRecordDot OverloadedStrings RecordWildCards TemplateHaskell TupleSections TypeApplications NamedFieldPuns
89+ DataKinds DeriveFunctor DeriveGeneric DerivingStrategies DisambiguateRecordFields DuplicateRecordFields FlexibleContexts LambdaCase OverloadedLabels OverloadedRecordDot OverloadedStrings RecordWildCards TemplateHaskell TupleSections TypeApplications TypeFamilies NamedFieldPuns
9090 build-depends :
9191 QuickCheck
9292 , base >= 4.14 && < 5
Original file line number Diff line number Diff line change @@ -32,3 +32,30 @@ getMixedComparisonRHS :: MixedComparison a b -> b
3232getMixedComparisonRHS (_ :<= b) = b
3333getMixedComparisonRHS (_ :>= b) = b
3434getMixedComparisonRHS (_ :== b) = b
35+
36+ class MixedComparison2 c where
37+ type LhsType c :: *
38+ type RhsType c :: *
39+
40+ lhs :: c -> LhsType c
41+ rhs :: c -> RhsType c
42+
43+ (.<=) :: c -> Bool
44+ (.>=) :: c -> Bool
45+
46+ (.==) :: c -> Bool
47+ (.==) c = (.>=) c && (.<=) c
48+
49+ data IntComparison = IntComparison Int Int
50+
51+ instance MixedComparison2 IntComparison where
52+ type LhsType IntComparison = Int
53+ type RhsType IntComparison = Int
54+
55+ lhs (IntComparison l _) = l
56+ rhs (IntComparison _ r) = r
57+
58+ (.<=) (IntComparison l r) = l <= r
59+ (.>=) (IntComparison l r) = l >= r
60+
61+ (.==) (IntComparison l r) = l == r
You can’t perform that action at this time.
0 commit comments