servant-reason-0.1.0.0: src/Servant/Reason/Internal/Foreign.hs
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeFamilies #-}
module Servant.Reason.Internal.Foreign where
import Data.Proxy (Proxy (Proxy))
import Reason (ReasonDatatype, ReasonType, toReasonType)
import Servant.Foreign (Foreign, GenerateList, HasForeign,
HasForeignType, Req, listFromAPI, typeFor)
data LangReason
instance (ReasonType a) => HasForeignType LangReason ReasonDatatype a where
typeFor _ _ _ =
toReasonType (Proxy :: Proxy a)
getEndpoints
:: ( HasForeign LangReason ReasonDatatype api
, GenerateList ReasonDatatype (Foreign ReasonDatatype api))
=> Proxy api
-> [Req ReasonDatatype]
getEndpoints =
listFromAPI (Proxy :: Proxy LangReason) (Proxy :: Proxy ReasonDatatype)