tcfail067.hs:1:14: warning: [-Wdeprecated-flags (in -Wdefault)] -XDatatypeContexts is deprecated: It was widely considered a misfeature, and has been removed from the Haskell language. tcfail067.hs:12:16: error: [GHC-39999] • No instance for ‘Ord a’ arising from a use of ‘SubRange’ Possible fix: add (Ord a) to the context of the type signature for: subRangeValue :: forall a. SubRange a -> a • In the pattern: SubRange (lower, upper) value In an equation for ‘subRangeValue’: subRangeValue (SubRange (lower, upper) value) = value tcfail067.hs:15:11: error: [GHC-39999] • No instance for ‘Ord a’ arising from a use of ‘SubRange’ Possible fix: add (Ord a) to the context of the type signature for: subRange :: forall a. SubRange a -> (a, a) • In the pattern: SubRange r value In an equation for ‘subRange’: subRange (SubRange r value) = r tcfail067.hs:46:12: error: [GHC-39999] • Could not deduce ‘Ord a’ arising from a use of ‘SubRange’ from the context: Show a bound by the type signature for: showRange :: forall a. Show a => SubRange a -> String at tcfail067.hs:45:1-43 Possible fix: add (Ord a) to the context of the type signature for: showRange :: forall a. Show a => SubRange a -> String • In the pattern: SubRange (lower, upper) value In an equation for ‘showRange’: showRange (SubRange (lower, upper) value) = show value ++ " :" ++ show lower ++ ".." ++ show upper tcfail067.hs:61:12: error: [GHC-39999] • Could not deduce ‘Ord a’ arising from a use of ‘numSubRangeNegate’ from the context: Num a bound by the instance declaration at tcfail067.hs:60:10-34 Possible fix: add (Ord a) to the context of the instance declaration • In the expression: numSubRangeNegate In an equation for ‘negate’: negate = numSubRangeNegate In the instance declaration for ‘Num (SubRange a)’ tcfail067.hs:65:19: error: [GHC-39999] • Could not deduce ‘Ord a’ arising from a use of ‘SubRange’ from the context: Num a bound by the instance declaration at tcfail067.hs:60:10-34 Possible fix: add (Ord a) to the context of the instance declaration • In the expression: SubRange (fromInteger a, fromInteger a) (fromInteger a) In an equation for ‘fromInteger’: fromInteger a = SubRange (fromInteger a, fromInteger a) (fromInteger a) In the instance declaration for ‘Num (SubRange a)’ tcfail067.hs:74:5: error: [GHC-39999] • Could not deduce ‘Ord a’ arising from a use of ‘SubRange’ from the context: Num a bound by the type signature for: numSubRangeBinOp :: forall a. Num a => (a -> a -> a) -> SubRange a -> SubRange a -> SubRange a at tcfail067.hs:(71,1)-(72,58) Possible fix: add (Ord a) to the context of the type signature for: numSubRangeBinOp :: forall a. Num a => (a -> a -> a) -> SubRange a -> SubRange a -> SubRange a • In the expression: SubRange (result, result) result In an equation for ‘numSubRangeBinOp’: numSubRangeBinOp op a b = SubRange (result, result) result where result = (subRangeValue a) `op` (subRangeValue b)