-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Automatically derive Kotlin class to query servant webservices
--   
--   See README at
--   <a>https://github.com/matsubara0507/servant-kotlin#readme</a>
@package servant-kotlin
@version 0.1.1.7

module Servant.Kotlin.Internal.File
data Spec
Spec :: [Text] -> Text -> [Text] -> Spec
[namespace] :: Spec -> [Text]
[filename] :: Spec -> Text
[declarations] :: Spec -> [Text]
specsToDir :: [Spec] -> FilePath -> IO ()
instance GHC.Show.Show Servant.Kotlin.Internal.File.Spec

module Servant.Kotlin.Type
data KotlinClass
PrimitiveClass :: KotlinPrimitiveClass -> KotlinClass
DataClass :: KotlinDataClass -> KotlinClass
ExClass :: KotlinExClass -> KotlinClass
data KotlinPrimitiveClass
KDouble :: KotlinPrimitiveClass
KFloat :: KotlinPrimitiveClass
KLong :: KotlinPrimitiveClass
KInt :: KotlinPrimitiveClass
KShort :: KotlinPrimitiveClass
KByte :: KotlinPrimitiveClass
KChar :: KotlinPrimitiveClass
KBoolean :: KotlinPrimitiveClass
KArray :: KotlinClass -> KotlinPrimitiveClass
KString :: KotlinPrimitiveClass
KUnit :: KotlinPrimitiveClass
KNullable :: KotlinClass -> KotlinPrimitiveClass
KAny :: KotlinPrimitiveClass
data KotlinExClass
KList :: KotlinClass -> KotlinExClass
KHashMap :: KotlinClass -> KotlinClass -> KotlinExClass
KPair :: KotlinClass -> KotlinClass -> KotlinExClass
KTime :: KotlinExClass
data KotlinDataClass
KotlinDataClass :: Text -> KotlinFields -> KotlinDataClass
data KotlinFields
Node :: KotlinField -> KotlinFields
Brunch :: KotlinFields -> KotlinFields -> KotlinFields
data KotlinField
KotlinField :: Text -> KotlinClass -> KotlinField
class KotlinType a
toKotlinType :: KotlinType a => a -> Maybe KotlinClass
toKotlinType :: (KotlinType a, Generic a, GenericKotlinType (Rep a)) => a -> Maybe KotlinClass
class GenericKotlinType f
genericToKotlinType :: GenericKotlinType f => f a -> Maybe KotlinClass
class GenericKotlinFields f
genericToKotlinFields :: GenericKotlinFields f => f a -> Maybe KotlinFields
toKotlinType' :: KotlinType a => a -> KotlinClass
instance GHC.Classes.Eq Servant.Kotlin.Type.KotlinPrimitiveClass
instance GHC.Show.Show Servant.Kotlin.Type.KotlinPrimitiveClass
instance GHC.Classes.Eq Servant.Kotlin.Type.KotlinExClass
instance GHC.Show.Show Servant.Kotlin.Type.KotlinExClass
instance GHC.Classes.Eq Servant.Kotlin.Type.KotlinFields
instance GHC.Show.Show Servant.Kotlin.Type.KotlinFields
instance GHC.Classes.Eq Servant.Kotlin.Type.KotlinDataClass
instance GHC.Show.Show Servant.Kotlin.Type.KotlinDataClass
instance GHC.Classes.Eq Servant.Kotlin.Type.KotlinClass
instance GHC.Show.Show Servant.Kotlin.Type.KotlinClass
instance GHC.Classes.Eq Servant.Kotlin.Type.KotlinField
instance GHC.Show.Show Servant.Kotlin.Type.KotlinField
instance (GHC.Generics.Datatype d, Servant.Kotlin.Type.GenericKotlinFields f) => Servant.Kotlin.Type.GenericKotlinType (GHC.Generics.D1 d f)
instance (GHC.Generics.Constructor c, Servant.Kotlin.Type.GenericKotlinFields f) => Servant.Kotlin.Type.GenericKotlinFields (GHC.Generics.C1 c f)
instance Servant.Kotlin.Type.GenericKotlinFields (f GHC.Generics.:+: g)
instance (GHC.Generics.Selector s, Servant.Kotlin.Type.GenericKotlinType a) => Servant.Kotlin.Type.GenericKotlinFields (GHC.Generics.S1 s a)
instance (Servant.Kotlin.Type.GenericKotlinFields f, Servant.Kotlin.Type.GenericKotlinFields g) => Servant.Kotlin.Type.GenericKotlinFields (f GHC.Generics.:*: g)
instance Servant.Kotlin.Type.GenericKotlinFields GHC.Generics.U1
instance Servant.Kotlin.Type.KotlinType a => Servant.Kotlin.Type.GenericKotlinType (GHC.Generics.Rec0 a)
instance Servant.Kotlin.Type.KotlinType a => Servant.Kotlin.Type.KotlinType [a]
instance Servant.Kotlin.Type.KotlinType a => Servant.Kotlin.Type.KotlinType (GHC.Maybe.Maybe a)
instance Servant.Kotlin.Type.KotlinType ()
instance Servant.Kotlin.Type.KotlinType Data.Text.Internal.Text
instance Servant.Kotlin.Type.KotlinType Data.Time.Clock.Internal.UTCTime.UTCTime
instance Servant.Kotlin.Type.KotlinType GHC.Types.Float
instance Servant.Kotlin.Type.KotlinType GHC.Types.Double
instance Servant.Kotlin.Type.KotlinType GHC.Types.Int
instance Servant.Kotlin.Type.KotlinType GHC.Int.Int8
instance Servant.Kotlin.Type.KotlinType GHC.Int.Int16
instance Servant.Kotlin.Type.KotlinType GHC.Int.Int32
instance Servant.Kotlin.Type.KotlinType GHC.Int.Int64
instance Servant.Kotlin.Type.KotlinType GHC.Types.Char
instance Servant.Kotlin.Type.KotlinType GHC.Types.Bool
instance (Servant.Kotlin.Type.KotlinType a, Servant.Kotlin.Type.KotlinType b) => Servant.Kotlin.Type.KotlinType (a, b)
instance Servant.Kotlin.Type.KotlinType a => Servant.Kotlin.Type.KotlinType (Data.Proxy.Proxy a)
instance (Servant.Kotlin.Type.KotlinType k, Servant.Kotlin.Type.KotlinType v) => Servant.Kotlin.Type.KotlinType (Data.Map.Internal.Map k v)
instance Servant.Kotlin.Type.KotlinType v => Servant.Kotlin.Type.KotlinType (Data.IntMap.Internal.IntMap v)
instance Servant.Kotlin.Type.KotlinType Servant.API.ContentTypes.NoContent

module Servant.Kotlin.Internal.Foreign
data LangKotlin
getEndpoints :: (HasForeign LangKotlin KotlinClass api, GenerateList KotlinClass (Foreign KotlinClass api)) => Proxy api -> [Req KotlinClass]
instance Servant.Kotlin.Type.KotlinType a => Servant.Foreign.Internal.HasForeignType Servant.Kotlin.Internal.Foreign.LangKotlin Servant.Kotlin.Type.KotlinClass a

module Servant.Kotlin.Internal.Generate
class GenerateKotlin a
generateKotlin :: GenerateKotlin a => a -> [Text]
generateKotlin' :: GenerateKotlin a => a -> Text
generateKotlinForDefDataClass :: KotlinType a => Proxy a -> [Text]
generateKotlinForDefDataClass' :: KotlinClass -> [Text]
defKotlinImports :: Text
generateKotlinForAPIClass :: Text -> [Text] -> [Text]

-- | Generate Kotlin code for the API with default options. Returns a list
--   of Kotlin functions to query your Servant API from Kotlin.
generateKotlinForAPI :: (HasForeign LangKotlin KotlinClass api, GenerateList KotlinClass (Foreign KotlinClass api)) => Proxy api -> [Text]

-- | Generate Kotlin code for the API with custom options.
generateKotlinForAPIWith :: (HasForeign LangKotlin KotlinClass api, GenerateList KotlinClass (Foreign KotlinClass api)) => KotlinOptions -> Proxy api -> [Text]

-- | Options to configure how code is generated.
data KotlinOptions
KotlinOptions :: UrlPrefix -> [KotlinClass] -> [KotlinClass] -> KotlinOptions
[urlPrefix] :: KotlinOptions -> UrlPrefix

-- | Types that represent an empty Http response.
[emptyResponseKotlinTypes] :: KotlinOptions -> [KotlinClass]

-- | Types that represent a String.
[stringKotlinTypes] :: KotlinOptions -> [KotlinClass]

-- | Default options for generating Kotlin code. The default options are:
--   &gt; { urlPrefix = Static "" &gt; , emptyResponseKotlinTypes = [
--   toKotlinType NoContent ] &gt; , stringKotlinTypes = [ toKotlinType ""
--   ] &gt; }
defKotlinOptions :: KotlinOptions
data UrlPrefix
Static :: Text -> UrlPrefix
Dynamic :: UrlPrefix
instance Servant.Kotlin.Internal.Generate.GenerateKotlin Servant.Kotlin.Type.KotlinClass
instance Servant.Kotlin.Internal.Generate.GenerateKotlin Servant.Kotlin.Type.KotlinPrimitiveClass
instance Servant.Kotlin.Internal.Generate.GenerateKotlin Servant.Kotlin.Type.KotlinExClass
instance Servant.Kotlin.Internal.Generate.GenerateKotlin Servant.Kotlin.Type.KotlinDataClass
instance Servant.Kotlin.Internal.Generate.GenerateKotlin Servant.Kotlin.Type.KotlinFields
instance Servant.Kotlin.Internal.Generate.GenerateKotlin Servant.Kotlin.Type.KotlinField

module Servant.Kotlin
generateKotlinForDefDataClass :: KotlinType a => Proxy a -> [Text]
defKotlinImports :: Text

-- | Generate Kotlin code for the API with default options. Returns a list
--   of Kotlin functions to query your Servant API from Kotlin.
generateKotlinForAPI :: (HasForeign LangKotlin KotlinClass api, GenerateList KotlinClass (Foreign KotlinClass api)) => Proxy api -> [Text]

-- | Generate Kotlin code for the API with custom options.
generateKotlinForAPIWith :: (HasForeign LangKotlin KotlinClass api, GenerateList KotlinClass (Foreign KotlinClass api)) => KotlinOptions -> Proxy api -> [Text]
generateKotlinForAPIClass :: Text -> [Text] -> [Text]

-- | Options to configure how code is generated.
data KotlinOptions
KotlinOptions :: UrlPrefix -> [KotlinClass] -> [KotlinClass] -> KotlinOptions
[urlPrefix] :: KotlinOptions -> UrlPrefix

-- | Types that represent an empty Http response.
[emptyResponseKotlinTypes] :: KotlinOptions -> [KotlinClass]

-- | Types that represent a String.
[stringKotlinTypes] :: KotlinOptions -> [KotlinClass]
data UrlPrefix
Static :: Text -> UrlPrefix
Dynamic :: UrlPrefix

-- | Default options for generating Kotlin code. The default options are:
--   &gt; { urlPrefix = Static "" &gt; , emptyResponseKotlinTypes = [
--   toKotlinType NoContent ] &gt; , stringKotlinTypes = [ toKotlinType ""
--   ] &gt; }
defKotlinOptions :: KotlinOptions
data Spec
Spec :: [Text] -> Text -> [Text] -> Spec
[namespace] :: Spec -> [Text]
[filename] :: Spec -> Text
[declarations] :: Spec -> [Text]
specsToDir :: [Spec] -> FilePath -> IO ()
class KotlinType a

-- | <a>Proxy</a> is a type that holds no data, but has a phantom parameter
--   of arbitrary type (or even kind). Its use is to provide type
--   information, even though there is no value available of that type (or
--   it may be too costly to create one).
--   
--   Historically, <tt><a>Proxy</a> :: <a>Proxy</a> a</tt> is a safer
--   alternative to the <tt>'undefined :: a'</tt> idiom.
--   
--   <pre>
--   &gt;&gt;&gt; Proxy :: Proxy (Void, Int -&gt; Int)
--   Proxy
--   </pre>
--   
--   Proxy can even hold types of higher kinds,
--   
--   <pre>
--   &gt;&gt;&gt; Proxy :: Proxy Either
--   Proxy
--   </pre>
--   
--   <pre>
--   &gt;&gt;&gt; Proxy :: Proxy Functor
--   Proxy
--   </pre>
--   
--   <pre>
--   &gt;&gt;&gt; Proxy :: Proxy complicatedStructure
--   Proxy
--   </pre>
data Proxy (t :: k) :: forall k. () => k -> Type
Proxy :: Proxy
