ocaml-export-0.2.0.0: Convert Haskell types in OCaml types

CopyrightPlow Technologies 2017
LicenseBSD3
Maintainermchaver@gmail.com
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

OCaml.BuckleScript.Internal.Package

Description

 

Synopsis

Documentation

data OCamlPackage (packageName :: Symbol) (packageDependencies :: [*]) Source #

Instances

(HasOCamlTypeMetaData * (OCamlPackage packageName deps), HasOCamlTypeMetaData * rest) => HasOCamlTypeMetaData * ((:<|>) (OCamlPackage packageName deps) rest) Source #

packages

(HasOCamlTypeMetaData [*] deps, HasOCamlTypeMetaData k1 modules) => HasOCamlTypeMetaData * ((:>) * k1 (OCamlPackage packageName deps) modules) Source #

build a packages dependencies and its declared modules

Methods

mkOCamlTypeMetaData :: Proxy ((* :> k1) (OCamlPackage packageName deps) modules) a -> Map HaskellTypeMetaData OCamlTypeMetaData Source #

(HasOCamlTypeMetaData [*] deps, HasOCamlTypeMetaData k1 a, HasOCamlPackage' k1 a) => HasOCamlPackage * ((:>) * k1 (OCamlPackage packageName deps) a) Source # 

Methods

mkPackage :: Proxy ((* :> k1) (OCamlPackage packageName deps) a) a -> PackageOptions -> IO () Source #

type NoDependency = '[] Source #

data PackageOptions Source #

Options for creating an OCaml package based on Haskell types.

Constructors

PackageOptions 

Fields

data SpecOptions Source #

Details for OCaml spec.

Constructors

SpecOptions 

Fields

class HasOCamlPackage a where Source #

Iterate over a list of OCamlModule types that are concated with '(:|)', to create a package.

Minimal complete definition

mkPackage

Methods

mkPackage :: Proxy a -> PackageOptions -> IO () Source #

Instances

(HasOCamlTypeMetaData k a, HasOCamlPackage' k a) => HasOCamlPackage k a Source # 

Methods

mkPackage :: Proxy a a -> PackageOptions -> IO () Source #

(HasOCamlTypeMetaData [*] deps, HasOCamlTypeMetaData k1 a, HasOCamlPackage' k1 a) => HasOCamlPackage * ((:>) * k1 (OCamlPackage packageName deps) a) Source # 

Methods

mkPackage :: Proxy ((* :> k1) (OCamlPackage packageName deps) a) a -> PackageOptions -> IO () Source #

class HasOCamlModule a where Source #

Depending on PackageOptions settings, mkModule can - make a declaration file containing encoders and decoders - make an OCaml interface file - make a Spec file that tests the encoders and decoders against a golden file and a servant server

Minimal complete definition

mkModule

Instances

(KnownSymbols modules, HasOCamlModule' k1 api) => HasOCamlModule * ((:>) * k1 (OCamlModule modules) api) Source # 

class HasOCamlTypeMetaData a where Source #

Produce type meta data for an OCamlPackage and its dependencies

Minimal complete definition

mkOCamlTypeMetaData

Instances

HasOCamlTypeMetaData [k] ([] k) Source #

empty list

(HasOCamlTypeMetaData * modul, HasOCamlTypeMetaData * rst) => HasOCamlTypeMetaData * ((:<|>) modul rst) Source #

modules

(HasOCamlTypeMetaData * (OCamlPackage packageName deps), HasOCamlTypeMetaData * rest) => HasOCamlTypeMetaData * ((:<|>) (OCamlPackage packageName deps) rest) Source #

packages

(HasOCamlTypeMetaData a modul, HasOCamlTypeMetaData [a] rst) => HasOCamlTypeMetaData [a] ((:) a modul rst) Source #

packages

(HasOCamlTypeMetaData [*] deps, HasOCamlTypeMetaData k1 modules) => HasOCamlTypeMetaData * ((:>) * k1 (OCamlPackage packageName deps) modules) Source #

build a packages dependencies and its declared modules

Methods

mkOCamlTypeMetaData :: Proxy ((* :> k1) (OCamlPackage packageName deps) modules) a -> Map HaskellTypeMetaData OCamlTypeMetaData Source #

(KnownSymbols modules, HasOCamlTypeMetaData' k1 api) => HasOCamlTypeMetaData * ((:>) * k1 (OCamlModule modules) api) Source #

single module