..

Compose through a plate
Allows to apply function to result of another function with multiple arguments.
>>> (show ... (+)) 1 2
"3"

>>> show ... 5
"5"

>>> (null ... zip5) [1] [2] [3] [] [5]
True
Inspired by http://stackoverflow.com/questions/9656797/variadic-compose-function.

Performance

To check the performance there was done a bunch of benchmarks. Benchmarks were made on examples given above and also on the functions of many arguments. The results are showing that the operator (...) performs as fast as plain applications of the operator (.) on almost all the tests, but (...) leads to the performance draw-down if ghc fails to inline it. Slow behavior was noticed on functions without type specifications. That's why keep in mind that providing explicit type declarations for functions is very important when using (...). Relying on type inference will lead to the situation when all optimizations disappear due to very general inferred type. However, functions without type specification but with applied INLINE pragma are fast again.
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 ]
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"
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 through a plate
Given a value and a proof, attach the proof as a ghost proof on the value.
Apply an implication to the ghost proof attached to a value, leaving the value unchanged.
Take a simple function with one named argument and a named return, plus an implication relating a precondition to a postcondition of the function, and produce a function between refined input and output types.
newtype NonEmpty xs = NonEmpty Defn
type role Nonempty nominal -- disallows coercion of Nonempty's argument.

newtype Reverse  xs = Reverse  Defn
type role Reverse nominal

rev :: ([a] ~~ xs) -> ([a] ~~ Reverse xs)
rev xs = defn (reverse (the xs))

rev_nonempty_lemma :: NonEmpty xs -> Proof (NonEmpty (Reverse xs))

rev' :: ([a] ?NonEmpty) -> ([a] ?NonEmpty)
rev' = rev ...? rev_nonempty_lemma
Generate infinite sequences, 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]
Generate infinite sequences, 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]
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 .:?.