purescript-bridge-0.15.0.0: Generate PureScript data types from Haskell data types
Safe HaskellNone
LanguageHaskell2010

Language.PureScript.Bridge.TypeInfo

Synopsis

Documentation

data TypeInfo (lang :: Language) Source #

Basic info about a data type:

Constructors

TypeInfo 

Fields

Instances

Instances details
HasHaskType HaskellType Source #

Simple id instance: Get the TypeInfo itself.

Instance details

Defined in Language.PureScript.Bridge.TypeInfo

Show (TypeInfo lang) Source # 
Instance details

Defined in Language.PureScript.Bridge.TypeInfo

Methods

showsPrec :: Int -> TypeInfo lang -> ShowS #

show :: TypeInfo lang -> String #

showList :: [TypeInfo lang] -> ShowS #

Eq (TypeInfo lang) Source # 
Instance details

Defined in Language.PureScript.Bridge.TypeInfo

Methods

(==) :: TypeInfo lang -> TypeInfo lang -> Bool #

(/=) :: TypeInfo lang -> TypeInfo lang -> Bool #

Ord (TypeInfo lang) Source # 
Instance details

Defined in Language.PureScript.Bridge.TypeInfo

Methods

compare :: TypeInfo lang -> TypeInfo lang -> Ordering #

(<) :: TypeInfo lang -> TypeInfo lang -> Bool #

(<=) :: TypeInfo lang -> TypeInfo lang -> Bool #

(>) :: TypeInfo lang -> TypeInfo lang -> Bool #

(>=) :: TypeInfo lang -> TypeInfo lang -> Bool #

max :: TypeInfo lang -> TypeInfo lang -> TypeInfo lang #

min :: TypeInfo lang -> TypeInfo lang -> TypeInfo lang #

type PSType = TypeInfo 'PureScript Source #

For convenience:

type HaskellType = TypeInfo 'Haskell Source #

For convenience:

data Language Source #

Constructors

Haskell 
PureScript 

typePackage :: forall (lang :: Language) f. Functor f => (Text -> f Text) -> TypeInfo lang -> f (TypeInfo lang) Source #

typeModule :: forall (lang :: Language) f. Functor f => (Text -> f Text) -> TypeInfo lang -> f (TypeInfo lang) Source #

typeName :: forall (lang :: Language) f. Functor f => (Text -> f Text) -> TypeInfo lang -> f (TypeInfo lang) Source #

typeParameters :: forall (lang1 :: Language) (lang2 :: Language) f. Functor f => ([TypeInfo lang1] -> f [TypeInfo lang2]) -> TypeInfo lang1 -> f (TypeInfo lang2) Source #

class HasHaskType t Source #

Types that have a lens for accessing a 'TypeInfo Haskell'.

Minimal complete definition

haskType

Instances

Instances details
HasHaskType BridgeData Source #

By implementing the haskType lens in the HasHaskType class, we are able to use it for both BridgeData and a plain HaskellType, therefore you can use it with doCheck and ^== for checks on the complete HaskellType value.

Example:

stringBridge :: BridgePart
stringBridge = do
  -- Note: we are using the HaskellType instance here:
  haskType ^== mkTypeInfo (Proxy :: Proxy String)
  return psString
Instance details

Defined in Language.PureScript.Bridge.Builder

HasHaskType HaskellType Source #

Simple id instance: Get the TypeInfo itself.

Instance details

Defined in Language.PureScript.Bridge.TypeInfo

flattenTypeInfo :: forall (lang :: Language). TypeInfo lang -> [TypeInfo lang] Source #

Put the TypeInfo in a list together with all its _typeParameters (recursively)