Size: a a a

2021 July 14

[

[BRM]White Rabbit in Haskell
закончим к GHC 11
источник

к

кана in Haskell
но ToServantApi использовать не стоит
источник

к

кана in Haskell
он забывает про рекорд сразу же
источник

к

кана in Haskell
откуда вы genericClient берете?
источник

к

кана in Haskell
client-core?
источник

[

[BRM]White Rabbit in Haskell
мы научились конвертить кусок апишки в рекорд, но нам не кусок апишки дают, а функцию
источник

[

[BRM]White Rabbit in Haskell
да
источник

к

кана in Haskell
блин без частичнопримененных семейств тяжело
источник

к

кана in Haskell
так-то все очень просто было бы
источник

к

кана in Haskell
data X prefix route = X
 { a :: route :- prefix :> A
 }
источник

[

[BRM]White Rabbit in Haskell
вот такая штука есть, бтв
источник

[

[BRM]White Rabbit in Haskell
но это не решит проблемы того, что нам надо будет гонять с апишкой и версией вместо того чтоб дать их с самого начала
источник

к

кана in Haskell
да, окей, разумно
источник

к

кана in Haskell
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeOperators #-}

import Data.Proxy
import Servant.API
import Servant.API.Generic
import Servant.Client
import Servant.Client.Generic

data VKAPI route = VKAPI
 { a :: route :- Get '[PlainText] String,
   b :: route :- Capture "val" String :> Get '[PlainText] String
 }
 deriving (Generic)

type API = "vk" :> Capture "token" String :> ToServantApi VKAPI

main = do
 let token = "hello"
 let VKAPI {a, b} = fromServant @_ @(AsClientT _) (client (Proxy @API) token)
 pure ()
источник

к

кана in Haskell
ну и все
источник

JJ

Joshua Jakowlew in Haskell
@_@
источник

JJ

Joshua Jakowlew in Haskell
Великолепная конструкция
источник

к

кана in Haskell
run :: ClientM a -> IO a
run client =
 runClientM client env >>= \case
   Left err -> throwIO err
   Right x -> pure x
 where
   env = undefined

main = do
 let token = "hello"
 let api = Proxy @API
 let vk = fromServant @VKAPI @(AsClientT _) (hoistClient api run (client api) token)
 q <- vk.a
 w <- vk.b "hello"
 pure ()
источник

[

[BRM]White Rabbit in Haskell
о, оно работает
источник

[

[BRM]White Rabbit in Haskell
и даже компилится
источник