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 #