-- 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)