on dev help sign in
remove patterns
66ccd16Eitan Chatav
squeal-postgresql/src/Squeal/PostgreSQL/Expression/Range.hs+23−20
@@ -35,10 +35,10 @@ module Squeal.PostgreSQL.Expression.Range
35 ( range
35 ( range
36 , Range (..)
36 , Range (..)
37 , (<=..<=), (<..<), (<=..<), (<..<=)
37 , (<=..<=), (<..<), (<=..<), (<..<=)
38− , pattern HalfGT, pattern HalfGTE
38+ , halfGT, halfGTE, halfLT, halfLTE
39− , pattern HalfLT, pattern HalfLTE
39+ , point
40 , Bound (..)
40 , Bound (..)
41− , pattern Closed, pattern Open
41+ , closed, open
42 ) where
42 ) where
43
43
44import Data.Bool
44import Data.Bool
@@ -54,7 +54,7 @@ import Squeal.PostgreSQL.Schema
54-- $setup
54-- $setup
55-- >>> import Squeal.PostgreSQL
55-- >>> import Squeal.PostgreSQL
56
56
57−-- | >>> printSQL $ range (HalfGTE now)
57+-- | >>> printSQL $ range (halfGTE now)
58-- [now(), )
58-- [now(), )
59-- >>> printSQL $ range (0 <..<= (pi & astype numeric))
59-- >>> printSQL $ range (0 <..<= (pi & astype numeric))
60-- (0, (pi() :: numeric)]
60-- (0, (pi() :: numeric)]
@@ -70,9 +70,9 @@ data Bound x = Bound
70 ( Eq, Ord, Show, Read, GHC.Generic
70 ( Eq, Ord, Show, Read, GHC.Generic
71 , Functor, Foldable, Traversable )
71 , Functor, Foldable, Traversable )
72 deriving anyclass (SOP.Generic, SOP.HasDatatypeInfo)
72 deriving anyclass (SOP.Generic, SOP.HasDatatypeInfo)
73−pattern Closed, Open :: Maybe x -> Bound x
73+closed, open :: Maybe x -> Bound x
74−pattern Closed x = Bound True x
74+closed x = Bound True x
75−pattern Open x = Bound False x
75+open x = Bound False x
76
76
77data Range x
77data Range x
78 = Empty
78 = Empty
@@ -88,19 +88,22 @@ instance RenderSQL x => RenderSQL (Range x) where
88 Empty -> "empty"
88 Empty -> "empty"
89 NonEmpty l u -> commaSeparated [renderLower l, renderUpper u]
89 NonEmpty l u -> commaSeparated [renderLower l, renderUpper u]
90 where
90 where
91− renderLower (Bound isClosed x) =
91+ renderLower (Bound isclosed x) =
92− bool "(" "[" isClosed <> maybe "" renderSQL x
92+ bool "(" "[" isclosed <> maybe "" renderSQL x
93− renderUpper (Bound isClosed x) =
93+ renderUpper (Bound isclosed x) =
94− maybe "" renderSQL x <> bool ")" "]" isClosed
94+ maybe "" renderSQL x <> bool ")" "]" isclosed
95
95
96(<=..<=), (<..<), (<=..<), (<..<=) :: x -> x -> Range x
96(<=..<=), (<..<), (<=..<), (<..<=) :: x -> x -> Range x
97−x <=..<= y = NonEmpty (Closed (Just x)) (Closed (Just y))
97+x <=..<= y = NonEmpty (closed (Just x)) (closed (Just y))
98−x <..< y = NonEmpty (Open (Just x)) (Open (Just y))
98+x <..< y = NonEmpty (open (Just x)) (open (Just y))
99−x <=..< y = NonEmpty (Closed (Just x)) (Open (Just y))
99+x <=..< y = NonEmpty (closed (Just x)) (open (Just y))
100−x <..<= y = NonEmpty (Open (Just x)) (Closed (Just y))
100+x <..<= y = NonEmpty (open (Just x)) (closed (Just y))
101
101
102−pattern HalfGT, HalfGTE, HalfLT, HalfLTE :: x -> Range x
102+halfGT, halfGTE, halfLT, halfLTE :: x -> Range x
103−pattern HalfGT x = NonEmpty (Open (Just x)) (Open Nothing)
103+halfGT x = NonEmpty (open (Just x)) (open Nothing)
104−pattern HalfGTE x = NonEmpty (Closed (Just x)) (Open Nothing)
104+halfGTE x = NonEmpty (closed (Just x)) (open Nothing)
105−pattern HalfLT x = NonEmpty (Open Nothing) (Open (Just x))
105+halfLT x = NonEmpty (open Nothing) (open (Just x))
106−pattern HalfLTE x = NonEmpty (Open Nothing) (Closed (Just x))
106+halfLTE x = NonEmpty (open Nothing) (closed (Just x))
107+
108+point :: x -> Range x
109+point x = x <=..<= x