Copyright | Plow Technologies 2017 |
---|---|
License | BSD3 |
Maintainer | mchaver@gmail.com |
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
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
(HasOCamlTypeMetaData (OCamlPackage packageName deps), HasOCamlTypeMetaData rest) => HasOCamlTypeMetaData (OCamlPackage packageName deps :<|> rest :: Type) Source # | packages |
Defined in OCaml.BuckleScript.Internal.Package mkOCamlTypeMetaData :: Proxy (OCamlPackage packageName deps :<|> rest) -> Map HaskellTypeMetaData OCamlTypeMetaData Source # | |
(HasOCamlTypeMetaData deps, HasOCamlTypeMetaData modules) => HasOCamlTypeMetaData (OCamlPackage packageName deps :> modules :: Type) Source # | build a packages dependencies and its declared modules |
Defined in OCaml.BuckleScript.Internal.Package mkOCamlTypeMetaData :: Proxy (OCamlPackage packageName deps :> modules) -> Map HaskellTypeMetaData OCamlTypeMetaData Source # | |
(HasOCamlTypeMetaData deps, HasOCamlTypeMetaData a, HasOCamlPackage' a) => HasOCamlPackage (OCamlPackage packageName deps :> a :: Type) Source # | |
Defined in OCaml.BuckleScript.Internal.Package mkPackage :: Proxy (OCamlPackage packageName deps :> a) -> PackageOptions -> IO () Source # |
type NoDependency = '[] Source #
data PackageOptions Source #
Options for creating an OCaml package based on Haskell types.
PackageOptions | |
|
defaultPackageOptions :: PackageOptions Source #
Default PackageOptions
.
data SpecOptions Source #
Details for OCaml spec.
SpecOptions | |
|
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 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
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 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