-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Rage against the quantification - integration with Aeson
--
-- Data types and typeclasses to deal with universally and existentially
-- quantified types
@package quantification-aeson
@version 0.8
module Data.Exists.Aeson
class FromJSONForall f
parseJSONForall :: FromJSONForall f => Sing a -> Value -> Parser (f a)
class FromJSONForeach f
parseJSONForeach :: FromJSONForeach f => Sing a -> Value -> Parser (f a)
class FromJSONExists f
parseJSONExists :: FromJSONExists f => Value -> Parser (Exists f)
class ToJSONForall f
toJSONForall :: ToJSONForall f => f a -> Value
class ToJSONForeach f
toJSONForeach :: ToJSONForeach f => Sing a -> f a -> Value
data ToJSONKeyFunctionForall f
ToJSONKeyTextForall :: !forall a. f a -> Key -> !forall a. f a -> Encoding' Key -> ToJSONKeyFunctionForall f
ToJSONKeyValueForall :: !forall a. f a -> Value -> !forall a. f a -> Encoding -> ToJSONKeyFunctionForall f
data FromJSONKeyFunctionForeach f
FromJSONKeyTextParserForeach :: !forall a. Sing a -> Key -> Parser (f a) -> FromJSONKeyFunctionForeach f
FromJSONKeyValueForeach :: !forall a. Sing a -> Value -> Parser (f a) -> FromJSONKeyFunctionForeach f
class ToJSONKeyForall f
toJSONKeyForall :: ToJSONKeyForall f => ToJSONKeyFunctionForall f
class ToJSONKeyForeach f
toJSONKeyForeach :: ToJSONKeyForeach f => ToJSONKeyFunctionForall (Product Sing f)
class FromJSONKeyExists f
fromJSONKeyExists :: FromJSONKeyExists f => FromJSONKeyFunction (Exists f)
class FromJSONKeyForeach f
fromJSONKeyForeach :: FromJSONKeyForeach f => FromJSONKeyFunctionForeach f
class ToJSONSing k
toJSONSing :: forall (a :: k). ToJSONSing k => Sing a -> Value
class FromJSONSing k
parseJSONSing :: FromJSONSing k => Value -> Parser (Exists (Sing :: k -> Type))
-- | Parse a Map whose key type is higher-kinded. This only creates
-- a valid Map if the OrdForeach instance agrees with the
-- Ord instance.
parseJSONMapForeachKey :: forall k (f :: k -> Type) (a :: k) v. (FromJSONKeyForeach f, OrdForeach f, Unreify k) => (Value -> Parser v) -> Sing a -> Value -> Parser (Map (f a) v)
toJSONMapForeachKey :: (ToJSONKeyForeach f, ToJSONForeach v) => Sing a -> Map (f a) (v a) -> Value
instance forall k (f :: k -> *). (Data.Exists.Aeson.FromJSONForeach f, Data.Exists.Aeson.FromJSONSing k) => Data.Aeson.Types.FromJSON.FromJSON (Data.Exists.Some f)
instance forall k (f :: k -> *). (Data.Exists.Aeson.ToJSONForeach f, Data.Exists.Aeson.ToJSONSing k) => Data.Aeson.Types.ToJSON.ToJSON (Data.Exists.Some f)
instance forall k (f :: k -> *). (Data.Exists.Aeson.FromJSONKeyExists f, Data.Exists.Aeson.FromJSONExists f) => Data.Aeson.Types.FromJSON.FromJSONKey (Data.Exists.Exists f)
instance forall k (f :: k -> *). Data.Exists.Aeson.FromJSONExists f => Data.Aeson.Types.FromJSON.FromJSON (Data.Exists.Exists f)
instance forall k (f :: k -> *) (a :: k). (Data.Exists.Aeson.FromJSONForeach f, Data.Exists.Reify a) => Data.Aeson.Types.FromJSON.FromJSON (Data.Exists.ApplyForeach f a)
instance forall k (f :: k -> *). Data.Exists.Aeson.FromJSONForeach f => Data.Exists.Aeson.FromJSONForeach (Data.Exists.ApplyForeach f)
instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Exists.Aeson.FromJSONForeach (Data.Functor.Const.Const a)
instance forall k (f :: * -> *) (g :: k -> *). (Data.Aeson.Types.FromJSON.FromJSON1 f, Data.Exists.Aeson.FromJSONForeach g) => Data.Exists.Aeson.FromJSONForeach (Data.Functor.Compose.Compose f g)
instance forall k (f :: * -> *) (g :: k -> *). (Data.Aeson.Types.FromJSON.FromJSON1 f, Data.Exists.Aeson.FromJSONForall g) => Data.Exists.Aeson.FromJSONForall (Data.Functor.Compose.Compose f g)
instance forall k (f :: k -> *) (a :: k). (Data.Exists.Aeson.ToJSONForeach f, Data.Exists.Reify a) => Data.Aeson.Types.ToJSON.ToJSON (Data.Exists.ApplyForeach f a)
instance forall k (f :: k -> *). Data.Exists.Aeson.ToJSONForeach f => Data.Exists.Aeson.ToJSONForeach (Data.Exists.ApplyForeach f)
instance Data.Aeson.Types.ToJSON.ToJSON a => Data.Exists.Aeson.ToJSONForeach (Data.Functor.Const.Const a)
instance forall k (f :: * -> *) (g :: k -> *). (Data.Aeson.Types.ToJSON.ToJSON1 f, Data.Exists.Aeson.ToJSONForeach g) => Data.Exists.Aeson.ToJSONForeach (Data.Functor.Compose.Compose f g)
instance forall k (f :: k -> *). (Data.Exists.Aeson.ToJSONKeyForall f, Data.Exists.Aeson.ToJSONForall f) => Data.Aeson.Types.ToJSON.ToJSONKey (Data.Exists.Exists f)
instance forall k (f :: k -> *). Data.Exists.Aeson.ToJSONForall f => Data.Aeson.Types.ToJSON.ToJSON (Data.Exists.Exists f)
instance forall k (f :: * -> *) (g :: k -> *). (Data.Aeson.Types.ToJSON.ToJSON1 f, Data.Exists.Aeson.ToJSONForall g) => Data.Exists.Aeson.ToJSONForall (Data.Functor.Compose.Compose f g)
instance forall k (f :: k -> *). Data.Exists.Aeson.FromJSONKeyForeach f => Data.Exists.Aeson.FromJSONKeyForeach (Data.Exists.ApplyForeach f)
instance forall k (f :: k -> *) (a :: k). (Data.Exists.Aeson.FromJSONKeyForeach f, Data.Exists.Reify a) => Data.Aeson.Types.FromJSON.FromJSONKey (Data.Exists.ApplyForeach f a)
instance forall k (f :: k -> *). Data.Exists.Aeson.ToJSONKeyForeach f => Data.Exists.Aeson.ToJSONKeyForeach (Data.Exists.ApplyForeach f)
instance forall k (f :: k -> *) (a :: k). (Data.Exists.Aeson.ToJSONKeyForeach f, Data.Exists.Reify a) => Data.Aeson.Types.ToJSON.ToJSONKey (Data.Exists.ApplyForeach f a)