{-# LANGUAGE PatternSynonyms #-}
module Schemas
(
Field(..)
, Schema(.., Empty, Union)
, _Empty
, _Union
, Mismatch(..)
, Trace
, isSubtypeOf
, versions
, coerce
, finite
, validate
, validatorsFor
, TypedSchema
, TypedSchemaFlex
, HasSchema(..)
, theSchema
, extractSchema
, enum
, readShow
, list
, vector
, stringMap
, viaJSON
, viaIso
, Key(..)
, record
, RecordField
, RecordFields
, field
, fieldWith
, fieldWith'
, optField
, optFieldWith
, optFieldEither
, optFieldEitherWith
, optFieldGeneral
, fieldName
, fieldNameL
, overFieldNames
, extractFields
, liftMaybe
, liftEither
, union
, union'
, UnionTag(..)
, alt
, altWith
, encode
, decode
, encodeTo
, decodeFrom
, encodeWith
, decodeWith
, encodeToWith
, decodeFromWith
, DecodeError(..)
, finiteValue
, finiteEncode
, Profunctor(..)
)
where
import Data.Profunctor
import Schemas.Class
import Schemas.Internal
import Schemas.Untyped