{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE ScopedTypeVariables #-} module Servant.Client.Free ( client, ClientF (..), module Servant.Client.Core.Reexport, ) where import Control.Monad.Free import Data.Proxy (Proxy (..)) import Servant.Client.Core import Servant.Client.Core.Reexport import Servant.Client.Core.RunClient client :: HasClient (Free ClientF) api => Proxy api -> Client (Free ClientF) api client :: forall api. HasClient (Free ClientF) api => Proxy api -> Client (Free ClientF) api client Proxy api api = Proxy api api Proxy api -> Proxy (Free ClientF) -> Client (Free ClientF) api forall (m :: Type -> Type) api. HasClient m api => Proxy api -> Proxy m -> Client m api `clientIn` (Proxy (Free ClientF) forall {k} (t :: k). Proxy t Proxy :: Proxy (Free ClientF))