| Copyright | Plow Technologies 2017 |
|---|---|
| License | BSD3 |
| Maintainer | mchaver@gmail.com |
| Stability | experimental |
| Safe Haskell | None |
| Language | Haskell2010 |
OCaml.BuckleScript.Internal.Package
Description
- data OCamlPackage (packageName :: Symbol) (packageDependencies :: [*])
- type NoDependency = '[]
- data PackageOptions = PackageOptions {}
- defaultPackageOptions :: PackageOptions
- data SpecOptions = SpecOptions {}
- defaultSpecOptions :: SpecOptions
- class HasOCamlPackage a where
- class HasOCamlModule a where
- class HasOCamlTypeMetaData a where
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 |
| (HasOCamlTypeMetaData [*] deps, HasOCamlTypeMetaData k1 a, HasOCamlPackage' k1 a) => HasOCamlPackage * ((:>) * k1 (OCamlPackage packageName deps) a) Source # | |
type NoDependency = '[] Source #
data PackageOptions Source #
Options for creating an OCaml package based on Haskell types.
Constructors
| PackageOptions | |
Fields
| |
defaultPackageOptions :: PackageOptions Source #
Default PackageOptions.
data SpecOptions Source #
Details for OCaml spec.
Constructors
| SpecOptions | |
Fields
| |
defaultSpecOptions :: SpecOptions Source #
Default SpecOptions.
class HasOCamlPackage a where Source #
Iterate over a list of OCamlModule types that are concated with '(:|)', to create a package.
Minimal complete definition
Instances
| (HasOCamlTypeMetaData k a, HasOCamlPackage' k a) => HasOCamlPackage k a Source # | |
| (HasOCamlTypeMetaData [*] deps, HasOCamlTypeMetaData k1 a, HasOCamlPackage' k1 a) => HasOCamlPackage * ((:>) * k1 (OCamlPackage packageName deps) a) 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
Methods
mkModule :: Proxy a -> PackageOptions -> Map HaskellTypeMetaData OCamlTypeMetaData -> IO () Source #
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
Methods
mkOCamlTypeMetaData :: Proxy a -> Map HaskellTypeMetaData OCamlTypeMetaData Source #
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 |
| (KnownSymbols modules, HasOCamlTypeMetaData' k1 api) => HasOCamlTypeMetaData * ((:>) * k1 (OCamlModule modules) api) Source # | single module |