# Module CamlTemplate.Model

    module Model: sig .. end

Provides the types used in the data models that are merged with templates.

`type ``tvalue =`

`|` | `Tnull` | `(*` | `A null value.` | `*)`
`|` | `Tstr of `string`` | `(*` | `A string value.` | `*)`
`|` | `Tint of `int`` | `(*` | `An integer value.` | `*)`
`|` | `Tfloat of `float`` | `(*` | `A floating-point value.` | `*)`
`|` | `Tbool of `bool`` | `(*` | `A boolean value.` | `*)`
`|` | `Tlist of `tlist`` | `(*` | `A list.` | `*)`
`|` | `Thash of `thash`` | `(*` | `A set of key-value pairs.` | `*)`
`|` | `Tfun of `tfun`` | `(*` | `An Objective Caml function that can be called by a template.` | `*)`

A value in a template data model.

    type tlist = tvalue list

The type contained in a `Tlist`: a list of `tvalue`s.

    type thash = (string, tvalue) Hashtbl.t

The type contained in a `Thash`: a collection of `tvalue`s, each of which has a name.

    type tfun = args:tvalue list -> tvalue

The type contained in a `Tfun`: a function that takes `tvalue`s as arguments, and returns a `tvalue`.

    exception Tfun_error of string

An exception that `tfun` functions can raise when called by a template.