| Copyright | Plow Technologies 2017 |
|---|---|
| License | BSD3 |
| Maintainer | mchaver@gmail.com |
| Stability | experimental |
| Safe Haskell | None |
| Language | Haskell2010 |
OCaml.BuckleScript.Internal.Package
Description
Synopsis
- data OCamlPackage (packageName :: Symbol) (packageDependencies :: [*])
- type NoDependency = '[]
- data PackageOptions = PackageOptions {}
- defaultPackageOptions :: PackageOptions
- data SpecOptions = SpecOptions {}
- defaultSpecOptions :: SpecOptions
- class HasOCamlPackage a where
- mkPackage :: Proxy a -> PackageOptions -> IO ()
- class HasOCamlModule a where
- mkModule :: Proxy a -> PackageOptions -> Map HaskellTypeMetaData OCamlTypeMetaData -> IO ()
- class HasOCamlTypeMetaData a where
Documentation
data OCamlPackage (packageName :: Symbol) (packageDependencies :: [*]) Source #
Instances
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.
Instances
| (HasOCamlTypeMetaData a, HasOCamlPackage' a) => HasOCamlPackage (a :: k) Source # | |
Defined in OCaml.BuckleScript.Internal.Package | |
| (HasOCamlTypeMetaData deps, HasOCamlTypeMetaData a, HasOCamlPackage' a) => HasOCamlPackage (OCamlPackage packageName deps :> a :: Type) Source # | |
Defined in OCaml.BuckleScript.Internal.Package Methods mkPackage :: Proxy (OCamlPackage packageName deps :> 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
Methods
mkModule :: Proxy a -> PackageOptions -> Map HaskellTypeMetaData OCamlTypeMetaData -> IO () Source #
Instances
| (SingI modules, HasOCamlModule' api) => HasOCamlModule (OCamlModule modules :> api :: Type) Source # | |
Defined in OCaml.BuckleScript.Internal.Package Methods mkModule :: Proxy (OCamlModule modules :> api) -> PackageOptions -> Map HaskellTypeMetaData OCamlTypeMetaData -> IO () Source # | |
class HasOCamlTypeMetaData a where Source #
Produce type meta data for an OCamlPackage and its dependencies
Methods
mkOCamlTypeMetaData :: Proxy a -> Map HaskellTypeMetaData OCamlTypeMetaData Source #