.. -package:gdp

Handy synonym for rangeInclusive Seq. Similar to .. for list.
>>> Ix1 4 ... 10
Array D Seq (Sz1 7)
[ 4, 5, 6, 7, 8, 9, 10 ]
Handy synonym for range Seq
>>> Ix1 4 ..: 10
Array D Seq (Sz1 6)
[ 4, 5, 6, 7, 8, 9 ]
Generate an infinite progression, starting from a given element, similar to [x..]. For better user experience consider enabling {-# LANGUAGE PostfixOperators #-}:
>>> :set -XPostfixOperators

>>> Data.List.Infinite.take 10 (0...)
[0,1,2,3,4,5,6,7,8,9]
Beware that for finite types (...) applies cycle atop of [x..]:
>>> :set -XPostfixOperators

>>> Data.List.Infinite.take 10 (EQ...)
[EQ,GT,EQ,GT,EQ,GT,EQ,GT,EQ,GT]
Remember that Int is a finite type as well. One is unlikely to hit this on a 64-bit architecture, but on a 32-bit machine it's fairly possible to traverse ((0 :: Int) ...) far enough to encounter 0 again.
Generate an infinite arithmetic progression, starting from given elements, similar to [x,y..]. For better user experience consider enabling {-# LANGUAGE PostfixOperators #-}:
>>> :set -XPostfixOperators

>>> Data.List.Infinite.take 10 ((1,3)....)
[1,3,5,7,9,11,13,15,17,19]
Beware that for finite types (....) applies cycle atop of [x,y..]:
>>> :set -XPostfixOperators

>>> Data.List.Infinite.take 10 ((EQ,GT)....)
[EQ,GT,EQ,GT,EQ,GT,EQ,GT,EQ,GT]
Remember that Int is a finite type as well: for a sufficiently large step of progression y - x one may observe ((x :: Int, y)....) cycling back to emit x fairly soon.
Creates the list of time units in descending order by provided the highest and the lowest bound of the desired list. Throws the error when time units are not in the right order. Usage example:
>>> seriesF @(Hour ... Second) $ hour 3 +:+ minute 5 +:+ sec 3 +:+ ms 123
"3h5m3+123/1000s"
create a normalised space from two elements
A variant of the setProperty that uses the default parseJSON method from the FromJSON instance to parse the value of the property. Its usage pattern mimics the usage pattern of the .: operator from the aeson library.
data Auth = Auth
{ _user ∷ !String
, _pwd ∷ !String
}

user ∷ Functor f ⇒ (String → f String) → Auth → f Auth
user f s = (\u → s { _user = u }) <$> f (_user s)

pwd ∷ Functor f ⇒ (String → f String) → Auth → f Auth
pwd f s = (\p → s { _pwd = p }) <$> f (_pwd s)

-- or with lenses and TemplateHaskell just:
-- $(makeLenses ''Auth)

instance FromJSON (Auth → Auth) where
parseJSON = withObject "Auth" $ \o → id
<$< user ..: "user" % o
<*< pwd ..: "pwd" % o
Create a directed interval.
Create a non-empty interval, turning it around if necessary
Compose composed with compose operator.
(f ... g) x y === f (g x y)
WarningParser version of .!=.
Synonym version of ..:.
Synonym version of ..:?.
WarningParser version of .:.
WarningParser version of .:?.
A flipped infix operator for runComposeT'.
A convenient infix (flipped) version of toListOf.
>>> [[1,2],[3]]^..id
[[[1,2],[3]]]

>>> [[1,2],[3]]^..traverse
[[1,2],[3]]

>>> [[1,2],[3]]^..traverse.traverse
[1,2,3]
>>> (1,2)^..both
[1,2]
toList xs ≡ xs ^.. folded
(^..) ≡ flip toListOf
(^..) :: s -> Getter s a     -> a :: s -> Fold s a       -> a :: s -> Lens' s a      -> a :: s -> Iso' s a       -> a :: s -> Traversal' s a -> a :: s -> Prism' s a     -> [a]
An infix version of itoListOf.
s ^.. t returns the list of all values that t gets from s. A Maybe contains either 0 or 1 values:
>>> Just 3 ^.. _Just
[3]
Gathering all values in a list of tuples:
>>> [(1,2),(3,4)] ^.. each.each
[1,2,3,4]