smsaero-0.2: SMSAero API and HTTP client based on servant library.

Copyright(c) 2015, GetShopTV
LicenseBSD3
Maintainernickolay@getshoptv.com
Stabilityexperimental
Safe HaskellSafe-Inferred
LanguageHaskell2010

SMSAero.Utils

Description

This module defines DistributiveClient class to help distribute functions over alternatives (:<|>).

Synopsis

Documentation

class DistributiveClient client client' where Source

Distribute a client looking like

a -> (b :<|> ... :<|> c)

into

(a -> b) :<|> ...  :<|> (a -> c)

This is useful to bring authentication credentials to individual client endpoint queries.

Methods

distributeClient :: client -> client' Source

Instances

(DistributiveClient (a -> b) b', DistributiveClient (a -> c) c') => DistributiveClient (a -> (:<|>) b c) ((:<|>) b' c')

Distribute function over alternative.

DistributiveClient (a -> b) (a -> b)

Base case.