packages feed

capnp-0.10.0.0: examples/gen/lib/Capnp/Gen/Calculator.hs

{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -Wno-unused-imports #-}
{-# OPTIONS_GHC -Wno-dodgy-exports #-}
{-# OPTIONS_GHC -Wno-unused-matches #-}
{-# OPTIONS_GHC -Wno-orphans #-}
{-# OPTIONS_GHC -Wno-unticked-promoted-constructors #-}
module Capnp.Gen.Calculator where
import qualified Capnp.Message as Message
import qualified Capnp.Untyped as Untyped
import qualified Capnp.Basics as Basics
import qualified Capnp.GenHelpers as GenHelpers
import qualified Capnp.Classes as Classes
import qualified GHC.Generics as Generics
import qualified Capnp.Bits as Std_
import qualified Data.Maybe as Std_
import qualified Capnp.GenHelpers.ReExports.Data.ByteString as BS
import qualified Prelude as Std_
import qualified Data.Word as Std_
import qualified Data.Int as Std_
import Prelude ((<$>), (<*>), (>>=))
newtype Calculator msg
    = Calculator'newtype_ (Std_.Maybe (Untyped.Cap msg))
instance (Classes.FromPtr msg (Calculator msg)) where
    fromPtr msg ptr = (Calculator'newtype_ <$> (Classes.fromPtr msg ptr))
instance (Classes.ToPtr s (Calculator (Message.Mut s))) where
    toPtr msg (Calculator'newtype_ (Std_.Nothing)) = (Std_.pure Std_.Nothing)
    toPtr msg (Calculator'newtype_ (Std_.Just cap)) = (Std_.pure (Std_.Just (Untyped.PtrCap cap)))
newtype Calculator'evaluate'params msg
    = Calculator'evaluate'params'newtype_ (Untyped.Struct msg)
instance (Classes.FromStruct msg (Calculator'evaluate'params msg)) where
    fromStruct struct = (Std_.pure (Calculator'evaluate'params'newtype_ struct))
instance (Classes.ToStruct msg (Calculator'evaluate'params msg)) where
    toStruct (Calculator'evaluate'params'newtype_ struct) = struct
instance (Untyped.HasMessage (Calculator'evaluate'params mut) mut) where
    message (Calculator'evaluate'params'newtype_ struct) = (Untyped.message struct)
instance (Untyped.MessageDefault (Calculator'evaluate'params mut) mut) where
    messageDefault msg = (Calculator'evaluate'params'newtype_ <$> (Untyped.messageDefault msg))
instance (Classes.FromPtr msg (Calculator'evaluate'params msg)) where
    fromPtr msg ptr = (Calculator'evaluate'params'newtype_ <$> (Classes.fromPtr msg ptr))
instance (Classes.ToPtr s (Calculator'evaluate'params (Message.Mut s))) where
    toPtr msg (Calculator'evaluate'params'newtype_ struct) = (Classes.toPtr msg struct)
instance (Classes.Allocate s (Calculator'evaluate'params (Message.Mut s))) where
    new msg = (Calculator'evaluate'params'newtype_ <$> (Untyped.allocStruct msg 0 1))
instance (Basics.ListElem mut (Calculator'evaluate'params mut)) where
    newtype List mut (Calculator'evaluate'params mut)
        = Calculator'evaluate'params'List_ (Untyped.ListOf mut (Untyped.Struct mut))
    listFromPtr msg ptr = (Calculator'evaluate'params'List_ <$> (Classes.fromPtr msg ptr))
    toUntypedList (Calculator'evaluate'params'List_ l) = (Untyped.ListStruct l)
    length (Calculator'evaluate'params'List_ l) = (Untyped.length l)
    index i (Calculator'evaluate'params'List_ l) = (do
        elt <- (Untyped.index i l)
        (Classes.fromStruct elt)
        )
instance (Basics.MutListElem s (Calculator'evaluate'params (Message.Mut s))) where
    setIndex (Calculator'evaluate'params'newtype_ elt) i (Calculator'evaluate'params'List_ l) = (Untyped.setIndex elt i l)
    newList msg len = (Calculator'evaluate'params'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
get_Calculator'evaluate'params'expression :: ((Untyped.ReadCtx m msg)
                                             ,(Classes.FromPtr msg (Expression msg))) => (Calculator'evaluate'params msg) -> (m (Expression msg))
get_Calculator'evaluate'params'expression (Calculator'evaluate'params'newtype_ struct) = (do
    ptr <- (Untyped.getPtr 0 struct)
    (Classes.fromPtr (Untyped.message struct) ptr)
    )
set_Calculator'evaluate'params'expression :: ((Untyped.RWCtx m s)
                                             ,(Classes.ToPtr s (Expression (Message.Mut s)))) => (Calculator'evaluate'params (Message.Mut s)) -> (Expression (Message.Mut s)) -> (m ())
set_Calculator'evaluate'params'expression (Calculator'evaluate'params'newtype_ struct) value = (do
    ptr <- (Classes.toPtr (Untyped.message struct) value)
    (Untyped.setPtr ptr 0 struct)
    )
has_Calculator'evaluate'params'expression :: ((Untyped.ReadCtx m msg)) => (Calculator'evaluate'params msg) -> (m Std_.Bool)
has_Calculator'evaluate'params'expression (Calculator'evaluate'params'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
new_Calculator'evaluate'params'expression :: ((Untyped.RWCtx m s)) => (Calculator'evaluate'params (Message.Mut s)) -> (m (Expression (Message.Mut s)))
new_Calculator'evaluate'params'expression struct = (do
    result <- (Classes.new (Untyped.message struct))
    (set_Calculator'evaluate'params'expression struct result)
    (Std_.pure result)
    )
newtype Calculator'evaluate'results msg
    = Calculator'evaluate'results'newtype_ (Untyped.Struct msg)
instance (Classes.FromStruct msg (Calculator'evaluate'results msg)) where
    fromStruct struct = (Std_.pure (Calculator'evaluate'results'newtype_ struct))
instance (Classes.ToStruct msg (Calculator'evaluate'results msg)) where
    toStruct (Calculator'evaluate'results'newtype_ struct) = struct
instance (Untyped.HasMessage (Calculator'evaluate'results mut) mut) where
    message (Calculator'evaluate'results'newtype_ struct) = (Untyped.message struct)
instance (Untyped.MessageDefault (Calculator'evaluate'results mut) mut) where
    messageDefault msg = (Calculator'evaluate'results'newtype_ <$> (Untyped.messageDefault msg))
instance (Classes.FromPtr msg (Calculator'evaluate'results msg)) where
    fromPtr msg ptr = (Calculator'evaluate'results'newtype_ <$> (Classes.fromPtr msg ptr))
instance (Classes.ToPtr s (Calculator'evaluate'results (Message.Mut s))) where
    toPtr msg (Calculator'evaluate'results'newtype_ struct) = (Classes.toPtr msg struct)
instance (Classes.Allocate s (Calculator'evaluate'results (Message.Mut s))) where
    new msg = (Calculator'evaluate'results'newtype_ <$> (Untyped.allocStruct msg 0 1))
instance (Basics.ListElem mut (Calculator'evaluate'results mut)) where
    newtype List mut (Calculator'evaluate'results mut)
        = Calculator'evaluate'results'List_ (Untyped.ListOf mut (Untyped.Struct mut))
    listFromPtr msg ptr = (Calculator'evaluate'results'List_ <$> (Classes.fromPtr msg ptr))
    toUntypedList (Calculator'evaluate'results'List_ l) = (Untyped.ListStruct l)
    length (Calculator'evaluate'results'List_ l) = (Untyped.length l)
    index i (Calculator'evaluate'results'List_ l) = (do
        elt <- (Untyped.index i l)
        (Classes.fromStruct elt)
        )
instance (Basics.MutListElem s (Calculator'evaluate'results (Message.Mut s))) where
    setIndex (Calculator'evaluate'results'newtype_ elt) i (Calculator'evaluate'results'List_ l) = (Untyped.setIndex elt i l)
    newList msg len = (Calculator'evaluate'results'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
get_Calculator'evaluate'results'value :: ((Untyped.ReadCtx m msg)
                                         ,(Classes.FromPtr msg (Value msg))) => (Calculator'evaluate'results msg) -> (m (Value msg))
get_Calculator'evaluate'results'value (Calculator'evaluate'results'newtype_ struct) = (do
    ptr <- (Untyped.getPtr 0 struct)
    (Classes.fromPtr (Untyped.message struct) ptr)
    )
set_Calculator'evaluate'results'value :: ((Untyped.RWCtx m s)
                                         ,(Classes.ToPtr s (Value (Message.Mut s)))) => (Calculator'evaluate'results (Message.Mut s)) -> (Value (Message.Mut s)) -> (m ())
set_Calculator'evaluate'results'value (Calculator'evaluate'results'newtype_ struct) value = (do
    ptr <- (Classes.toPtr (Untyped.message struct) value)
    (Untyped.setPtr ptr 0 struct)
    )
has_Calculator'evaluate'results'value :: ((Untyped.ReadCtx m msg)) => (Calculator'evaluate'results msg) -> (m Std_.Bool)
has_Calculator'evaluate'results'value (Calculator'evaluate'results'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
newtype Calculator'defFunction'params msg
    = Calculator'defFunction'params'newtype_ (Untyped.Struct msg)
instance (Classes.FromStruct msg (Calculator'defFunction'params msg)) where
    fromStruct struct = (Std_.pure (Calculator'defFunction'params'newtype_ struct))
instance (Classes.ToStruct msg (Calculator'defFunction'params msg)) where
    toStruct (Calculator'defFunction'params'newtype_ struct) = struct
instance (Untyped.HasMessage (Calculator'defFunction'params mut) mut) where
    message (Calculator'defFunction'params'newtype_ struct) = (Untyped.message struct)
instance (Untyped.MessageDefault (Calculator'defFunction'params mut) mut) where
    messageDefault msg = (Calculator'defFunction'params'newtype_ <$> (Untyped.messageDefault msg))
instance (Classes.FromPtr msg (Calculator'defFunction'params msg)) where
    fromPtr msg ptr = (Calculator'defFunction'params'newtype_ <$> (Classes.fromPtr msg ptr))
instance (Classes.ToPtr s (Calculator'defFunction'params (Message.Mut s))) where
    toPtr msg (Calculator'defFunction'params'newtype_ struct) = (Classes.toPtr msg struct)
instance (Classes.Allocate s (Calculator'defFunction'params (Message.Mut s))) where
    new msg = (Calculator'defFunction'params'newtype_ <$> (Untyped.allocStruct msg 1 1))
instance (Basics.ListElem mut (Calculator'defFunction'params mut)) where
    newtype List mut (Calculator'defFunction'params mut)
        = Calculator'defFunction'params'List_ (Untyped.ListOf mut (Untyped.Struct mut))
    listFromPtr msg ptr = (Calculator'defFunction'params'List_ <$> (Classes.fromPtr msg ptr))
    toUntypedList (Calculator'defFunction'params'List_ l) = (Untyped.ListStruct l)
    length (Calculator'defFunction'params'List_ l) = (Untyped.length l)
    index i (Calculator'defFunction'params'List_ l) = (do
        elt <- (Untyped.index i l)
        (Classes.fromStruct elt)
        )
instance (Basics.MutListElem s (Calculator'defFunction'params (Message.Mut s))) where
    setIndex (Calculator'defFunction'params'newtype_ elt) i (Calculator'defFunction'params'List_ l) = (Untyped.setIndex elt i l)
    newList msg len = (Calculator'defFunction'params'List_ <$> (Untyped.allocCompositeList msg 1 1 len))
get_Calculator'defFunction'params'paramCount :: ((Untyped.ReadCtx m msg)) => (Calculator'defFunction'params msg) -> (m Std_.Int32)
get_Calculator'defFunction'params'paramCount (Calculator'defFunction'params'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
set_Calculator'defFunction'params'paramCount :: ((Untyped.RWCtx m s)) => (Calculator'defFunction'params (Message.Mut s)) -> Std_.Int32 -> (m ())
set_Calculator'defFunction'params'paramCount (Calculator'defFunction'params'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word32) 0 0 0)
get_Calculator'defFunction'params'body :: ((Untyped.ReadCtx m msg)
                                          ,(Classes.FromPtr msg (Expression msg))) => (Calculator'defFunction'params msg) -> (m (Expression msg))
get_Calculator'defFunction'params'body (Calculator'defFunction'params'newtype_ struct) = (do
    ptr <- (Untyped.getPtr 0 struct)
    (Classes.fromPtr (Untyped.message struct) ptr)
    )
set_Calculator'defFunction'params'body :: ((Untyped.RWCtx m s)
                                          ,(Classes.ToPtr s (Expression (Message.Mut s)))) => (Calculator'defFunction'params (Message.Mut s)) -> (Expression (Message.Mut s)) -> (m ())
set_Calculator'defFunction'params'body (Calculator'defFunction'params'newtype_ struct) value = (do
    ptr <- (Classes.toPtr (Untyped.message struct) value)
    (Untyped.setPtr ptr 0 struct)
    )
has_Calculator'defFunction'params'body :: ((Untyped.ReadCtx m msg)) => (Calculator'defFunction'params msg) -> (m Std_.Bool)
has_Calculator'defFunction'params'body (Calculator'defFunction'params'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
new_Calculator'defFunction'params'body :: ((Untyped.RWCtx m s)) => (Calculator'defFunction'params (Message.Mut s)) -> (m (Expression (Message.Mut s)))
new_Calculator'defFunction'params'body struct = (do
    result <- (Classes.new (Untyped.message struct))
    (set_Calculator'defFunction'params'body struct result)
    (Std_.pure result)
    )
newtype Calculator'defFunction'results msg
    = Calculator'defFunction'results'newtype_ (Untyped.Struct msg)
instance (Classes.FromStruct msg (Calculator'defFunction'results msg)) where
    fromStruct struct = (Std_.pure (Calculator'defFunction'results'newtype_ struct))
instance (Classes.ToStruct msg (Calculator'defFunction'results msg)) where
    toStruct (Calculator'defFunction'results'newtype_ struct) = struct
instance (Untyped.HasMessage (Calculator'defFunction'results mut) mut) where
    message (Calculator'defFunction'results'newtype_ struct) = (Untyped.message struct)
instance (Untyped.MessageDefault (Calculator'defFunction'results mut) mut) where
    messageDefault msg = (Calculator'defFunction'results'newtype_ <$> (Untyped.messageDefault msg))
instance (Classes.FromPtr msg (Calculator'defFunction'results msg)) where
    fromPtr msg ptr = (Calculator'defFunction'results'newtype_ <$> (Classes.fromPtr msg ptr))
instance (Classes.ToPtr s (Calculator'defFunction'results (Message.Mut s))) where
    toPtr msg (Calculator'defFunction'results'newtype_ struct) = (Classes.toPtr msg struct)
instance (Classes.Allocate s (Calculator'defFunction'results (Message.Mut s))) where
    new msg = (Calculator'defFunction'results'newtype_ <$> (Untyped.allocStruct msg 0 1))
instance (Basics.ListElem mut (Calculator'defFunction'results mut)) where
    newtype List mut (Calculator'defFunction'results mut)
        = Calculator'defFunction'results'List_ (Untyped.ListOf mut (Untyped.Struct mut))
    listFromPtr msg ptr = (Calculator'defFunction'results'List_ <$> (Classes.fromPtr msg ptr))
    toUntypedList (Calculator'defFunction'results'List_ l) = (Untyped.ListStruct l)
    length (Calculator'defFunction'results'List_ l) = (Untyped.length l)
    index i (Calculator'defFunction'results'List_ l) = (do
        elt <- (Untyped.index i l)
        (Classes.fromStruct elt)
        )
instance (Basics.MutListElem s (Calculator'defFunction'results (Message.Mut s))) where
    setIndex (Calculator'defFunction'results'newtype_ elt) i (Calculator'defFunction'results'List_ l) = (Untyped.setIndex elt i l)
    newList msg len = (Calculator'defFunction'results'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
get_Calculator'defFunction'results'func :: ((Untyped.ReadCtx m msg)
                                           ,(Classes.FromPtr msg (Function msg))) => (Calculator'defFunction'results msg) -> (m (Function msg))
get_Calculator'defFunction'results'func (Calculator'defFunction'results'newtype_ struct) = (do
    ptr <- (Untyped.getPtr 0 struct)
    (Classes.fromPtr (Untyped.message struct) ptr)
    )
set_Calculator'defFunction'results'func :: ((Untyped.RWCtx m s)
                                           ,(Classes.ToPtr s (Function (Message.Mut s)))) => (Calculator'defFunction'results (Message.Mut s)) -> (Function (Message.Mut s)) -> (m ())
set_Calculator'defFunction'results'func (Calculator'defFunction'results'newtype_ struct) value = (do
    ptr <- (Classes.toPtr (Untyped.message struct) value)
    (Untyped.setPtr ptr 0 struct)
    )
has_Calculator'defFunction'results'func :: ((Untyped.ReadCtx m msg)) => (Calculator'defFunction'results msg) -> (m Std_.Bool)
has_Calculator'defFunction'results'func (Calculator'defFunction'results'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
newtype Calculator'getOperator'params msg
    = Calculator'getOperator'params'newtype_ (Untyped.Struct msg)
instance (Classes.FromStruct msg (Calculator'getOperator'params msg)) where
    fromStruct struct = (Std_.pure (Calculator'getOperator'params'newtype_ struct))
instance (Classes.ToStruct msg (Calculator'getOperator'params msg)) where
    toStruct (Calculator'getOperator'params'newtype_ struct) = struct
instance (Untyped.HasMessage (Calculator'getOperator'params mut) mut) where
    message (Calculator'getOperator'params'newtype_ struct) = (Untyped.message struct)
instance (Untyped.MessageDefault (Calculator'getOperator'params mut) mut) where
    messageDefault msg = (Calculator'getOperator'params'newtype_ <$> (Untyped.messageDefault msg))
instance (Classes.FromPtr msg (Calculator'getOperator'params msg)) where
    fromPtr msg ptr = (Calculator'getOperator'params'newtype_ <$> (Classes.fromPtr msg ptr))
instance (Classes.ToPtr s (Calculator'getOperator'params (Message.Mut s))) where
    toPtr msg (Calculator'getOperator'params'newtype_ struct) = (Classes.toPtr msg struct)
instance (Classes.Allocate s (Calculator'getOperator'params (Message.Mut s))) where
    new msg = (Calculator'getOperator'params'newtype_ <$> (Untyped.allocStruct msg 1 0))
instance (Basics.ListElem mut (Calculator'getOperator'params mut)) where
    newtype List mut (Calculator'getOperator'params mut)
        = Calculator'getOperator'params'List_ (Untyped.ListOf mut (Untyped.Struct mut))
    listFromPtr msg ptr = (Calculator'getOperator'params'List_ <$> (Classes.fromPtr msg ptr))
    toUntypedList (Calculator'getOperator'params'List_ l) = (Untyped.ListStruct l)
    length (Calculator'getOperator'params'List_ l) = (Untyped.length l)
    index i (Calculator'getOperator'params'List_ l) = (do
        elt <- (Untyped.index i l)
        (Classes.fromStruct elt)
        )
instance (Basics.MutListElem s (Calculator'getOperator'params (Message.Mut s))) where
    setIndex (Calculator'getOperator'params'newtype_ elt) i (Calculator'getOperator'params'List_ l) = (Untyped.setIndex elt i l)
    newList msg len = (Calculator'getOperator'params'List_ <$> (Untyped.allocCompositeList msg 1 0 len))
get_Calculator'getOperator'params'op :: ((Untyped.ReadCtx m msg)) => (Calculator'getOperator'params msg) -> (m Operator)
get_Calculator'getOperator'params'op (Calculator'getOperator'params'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
set_Calculator'getOperator'params'op :: ((Untyped.RWCtx m s)) => (Calculator'getOperator'params (Message.Mut s)) -> Operator -> (m ())
set_Calculator'getOperator'params'op (Calculator'getOperator'params'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 0 0 0)
newtype Calculator'getOperator'results msg
    = Calculator'getOperator'results'newtype_ (Untyped.Struct msg)
instance (Classes.FromStruct msg (Calculator'getOperator'results msg)) where
    fromStruct struct = (Std_.pure (Calculator'getOperator'results'newtype_ struct))
instance (Classes.ToStruct msg (Calculator'getOperator'results msg)) where
    toStruct (Calculator'getOperator'results'newtype_ struct) = struct
instance (Untyped.HasMessage (Calculator'getOperator'results mut) mut) where
    message (Calculator'getOperator'results'newtype_ struct) = (Untyped.message struct)
instance (Untyped.MessageDefault (Calculator'getOperator'results mut) mut) where
    messageDefault msg = (Calculator'getOperator'results'newtype_ <$> (Untyped.messageDefault msg))
instance (Classes.FromPtr msg (Calculator'getOperator'results msg)) where
    fromPtr msg ptr = (Calculator'getOperator'results'newtype_ <$> (Classes.fromPtr msg ptr))
instance (Classes.ToPtr s (Calculator'getOperator'results (Message.Mut s))) where
    toPtr msg (Calculator'getOperator'results'newtype_ struct) = (Classes.toPtr msg struct)
instance (Classes.Allocate s (Calculator'getOperator'results (Message.Mut s))) where
    new msg = (Calculator'getOperator'results'newtype_ <$> (Untyped.allocStruct msg 0 1))
instance (Basics.ListElem mut (Calculator'getOperator'results mut)) where
    newtype List mut (Calculator'getOperator'results mut)
        = Calculator'getOperator'results'List_ (Untyped.ListOf mut (Untyped.Struct mut))
    listFromPtr msg ptr = (Calculator'getOperator'results'List_ <$> (Classes.fromPtr msg ptr))
    toUntypedList (Calculator'getOperator'results'List_ l) = (Untyped.ListStruct l)
    length (Calculator'getOperator'results'List_ l) = (Untyped.length l)
    index i (Calculator'getOperator'results'List_ l) = (do
        elt <- (Untyped.index i l)
        (Classes.fromStruct elt)
        )
instance (Basics.MutListElem s (Calculator'getOperator'results (Message.Mut s))) where
    setIndex (Calculator'getOperator'results'newtype_ elt) i (Calculator'getOperator'results'List_ l) = (Untyped.setIndex elt i l)
    newList msg len = (Calculator'getOperator'results'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
get_Calculator'getOperator'results'func :: ((Untyped.ReadCtx m msg)
                                           ,(Classes.FromPtr msg (Function msg))) => (Calculator'getOperator'results msg) -> (m (Function msg))
get_Calculator'getOperator'results'func (Calculator'getOperator'results'newtype_ struct) = (do
    ptr <- (Untyped.getPtr 0 struct)
    (Classes.fromPtr (Untyped.message struct) ptr)
    )
set_Calculator'getOperator'results'func :: ((Untyped.RWCtx m s)
                                           ,(Classes.ToPtr s (Function (Message.Mut s)))) => (Calculator'getOperator'results (Message.Mut s)) -> (Function (Message.Mut s)) -> (m ())
set_Calculator'getOperator'results'func (Calculator'getOperator'results'newtype_ struct) value = (do
    ptr <- (Classes.toPtr (Untyped.message struct) value)
    (Untyped.setPtr ptr 0 struct)
    )
has_Calculator'getOperator'results'func :: ((Untyped.ReadCtx m msg)) => (Calculator'getOperator'results msg) -> (m Std_.Bool)
has_Calculator'getOperator'results'func (Calculator'getOperator'results'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
newtype Expression msg
    = Expression'newtype_ (Untyped.Struct msg)
instance (Classes.FromStruct msg (Expression msg)) where
    fromStruct struct = (Std_.pure (Expression'newtype_ struct))
instance (Classes.ToStruct msg (Expression msg)) where
    toStruct (Expression'newtype_ struct) = struct
instance (Untyped.HasMessage (Expression mut) mut) where
    message (Expression'newtype_ struct) = (Untyped.message struct)
instance (Untyped.MessageDefault (Expression mut) mut) where
    messageDefault msg = (Expression'newtype_ <$> (Untyped.messageDefault msg))
instance (Classes.FromPtr msg (Expression msg)) where
    fromPtr msg ptr = (Expression'newtype_ <$> (Classes.fromPtr msg ptr))
instance (Classes.ToPtr s (Expression (Message.Mut s))) where
    toPtr msg (Expression'newtype_ struct) = (Classes.toPtr msg struct)
instance (Classes.Allocate s (Expression (Message.Mut s))) where
    new msg = (Expression'newtype_ <$> (Untyped.allocStruct msg 2 2))
instance (Basics.ListElem mut (Expression mut)) where
    newtype List mut (Expression mut)
        = Expression'List_ (Untyped.ListOf mut (Untyped.Struct mut))
    listFromPtr msg ptr = (Expression'List_ <$> (Classes.fromPtr msg ptr))
    toUntypedList (Expression'List_ l) = (Untyped.ListStruct l)
    length (Expression'List_ l) = (Untyped.length l)
    index i (Expression'List_ l) = (do
        elt <- (Untyped.index i l)
        (Classes.fromStruct elt)
        )
instance (Basics.MutListElem s (Expression (Message.Mut s))) where
    setIndex (Expression'newtype_ elt) i (Expression'List_ l) = (Untyped.setIndex elt i l)
    newList msg len = (Expression'List_ <$> (Untyped.allocCompositeList msg 2 2 len))
data Expression' (mut :: Message.Mutability)
    = Expression'literal Std_.Double
    | Expression'previousResult (Value mut)
    | Expression'parameter Std_.Word32
    | Expression'call (Expression'call mut)
    | Expression'unknown' Std_.Word16
instance (Classes.FromStruct mut (Expression' mut)) where
    fromStruct struct = (do
        tag <- (GenHelpers.getTag struct 4)
        case tag of
            0 ->
                (Expression'literal <$> (GenHelpers.getWordField struct 0 0 0))
            1 ->
                (Expression'previousResult <$> (do
                    ptr <- (Untyped.getPtr 0 struct)
                    (Classes.fromPtr (Untyped.message struct) ptr)
                    ))
            2 ->
                (Expression'parameter <$> (GenHelpers.getWordField struct 0 0 0))
            3 ->
                (Expression'call <$> (Classes.fromStruct struct))
            _ ->
                (Std_.pure (Expression'unknown' (Std_.fromIntegral tag)))
        )
get_Expression' :: ((Untyped.ReadCtx m msg)
                   ,(Classes.FromStruct msg (Expression' msg))) => (Expression msg) -> (m (Expression' msg))
get_Expression' (Expression'newtype_ struct) = (Classes.fromStruct struct)
set_Expression'literal :: ((Untyped.RWCtx m s)) => (Expression (Message.Mut s)) -> Std_.Double -> (m ())
set_Expression'literal (Expression'newtype_ struct) value = (do
    (GenHelpers.setWordField struct (0 :: Std_.Word16) 1 0 0)
    (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 0 0 0)
    )
set_Expression'previousResult :: ((Untyped.RWCtx m s)
                                 ,(Classes.ToPtr s (Value (Message.Mut s)))) => (Expression (Message.Mut s)) -> (Value (Message.Mut s)) -> (m ())
set_Expression'previousResult (Expression'newtype_ struct) value = (do
    (GenHelpers.setWordField struct (1 :: Std_.Word16) 1 0 0)
    (do
        ptr <- (Classes.toPtr (Untyped.message struct) value)
        (Untyped.setPtr ptr 0 struct)
        )
    )
set_Expression'parameter :: ((Untyped.RWCtx m s)) => (Expression (Message.Mut s)) -> Std_.Word32 -> (m ())
set_Expression'parameter (Expression'newtype_ struct) value = (do
    (GenHelpers.setWordField struct (2 :: Std_.Word16) 1 0 0)
    (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word32) 0 0 0)
    )
set_Expression'call :: ((Untyped.RWCtx m s)
                       ,(Classes.FromStruct (Message.Mut s) (Expression'call (Message.Mut s)))) => (Expression (Message.Mut s)) -> (m (Expression'call (Message.Mut s)))
set_Expression'call (Expression'newtype_ struct) = (do
    (GenHelpers.setWordField struct (3 :: Std_.Word16) 1 0 0)
    (Classes.fromStruct struct)
    )
set_Expression'unknown' :: ((Untyped.RWCtx m s)) => (Expression (Message.Mut s)) -> Std_.Word16 -> (m ())
set_Expression'unknown' (Expression'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word16) 1 0 0)
newtype Expression'call msg
    = Expression'call'newtype_ (Untyped.Struct msg)
instance (Classes.FromStruct msg (Expression'call msg)) where
    fromStruct struct = (Std_.pure (Expression'call'newtype_ struct))
instance (Classes.ToStruct msg (Expression'call msg)) where
    toStruct (Expression'call'newtype_ struct) = struct
instance (Untyped.HasMessage (Expression'call mut) mut) where
    message (Expression'call'newtype_ struct) = (Untyped.message struct)
instance (Untyped.MessageDefault (Expression'call mut) mut) where
    messageDefault msg = (Expression'call'newtype_ <$> (Untyped.messageDefault msg))
get_Expression'call'function :: ((Untyped.ReadCtx m msg)
                                ,(Classes.FromPtr msg (Function msg))) => (Expression'call msg) -> (m (Function msg))
get_Expression'call'function (Expression'call'newtype_ struct) = (do
    ptr <- (Untyped.getPtr 0 struct)
    (Classes.fromPtr (Untyped.message struct) ptr)
    )
set_Expression'call'function :: ((Untyped.RWCtx m s)
                                ,(Classes.ToPtr s (Function (Message.Mut s)))) => (Expression'call (Message.Mut s)) -> (Function (Message.Mut s)) -> (m ())
set_Expression'call'function (Expression'call'newtype_ struct) value = (do
    ptr <- (Classes.toPtr (Untyped.message struct) value)
    (Untyped.setPtr ptr 0 struct)
    )
has_Expression'call'function :: ((Untyped.ReadCtx m msg)) => (Expression'call msg) -> (m Std_.Bool)
has_Expression'call'function (Expression'call'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
get_Expression'call'params :: ((Untyped.ReadCtx m msg)
                              ,(Classes.FromPtr msg (Basics.List msg (Expression msg)))) => (Expression'call msg) -> (m (Basics.List msg (Expression msg)))
get_Expression'call'params (Expression'call'newtype_ struct) = (do
    ptr <- (Untyped.getPtr 1 struct)
    (Classes.fromPtr (Untyped.message struct) ptr)
    )
set_Expression'call'params :: ((Untyped.RWCtx m s)
                              ,(Classes.ToPtr s (Basics.List (Message.Mut s) (Expression (Message.Mut s))))) => (Expression'call (Message.Mut s)) -> (Basics.List (Message.Mut s) (Expression (Message.Mut s))) -> (m ())
set_Expression'call'params (Expression'call'newtype_ struct) value = (do
    ptr <- (Classes.toPtr (Untyped.message struct) value)
    (Untyped.setPtr ptr 1 struct)
    )
has_Expression'call'params :: ((Untyped.ReadCtx m msg)) => (Expression'call msg) -> (m Std_.Bool)
has_Expression'call'params (Expression'call'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 1 struct))
new_Expression'call'params :: ((Untyped.RWCtx m s)) => Std_.Int -> (Expression'call (Message.Mut s)) -> (m (Basics.List (Message.Mut s) (Expression (Message.Mut s))))
new_Expression'call'params len struct = (do
    result <- (Classes.newList (Untyped.message struct) len)
    (set_Expression'call'params struct result)
    (Std_.pure result)
    )
newtype Value msg
    = Value'newtype_ (Std_.Maybe (Untyped.Cap msg))
instance (Classes.FromPtr msg (Value msg)) where
    fromPtr msg ptr = (Value'newtype_ <$> (Classes.fromPtr msg ptr))
instance (Classes.ToPtr s (Value (Message.Mut s))) where
    toPtr msg (Value'newtype_ (Std_.Nothing)) = (Std_.pure Std_.Nothing)
    toPtr msg (Value'newtype_ (Std_.Just cap)) = (Std_.pure (Std_.Just (Untyped.PtrCap cap)))
newtype Value'read'params msg
    = Value'read'params'newtype_ (Untyped.Struct msg)
instance (Classes.FromStruct msg (Value'read'params msg)) where
    fromStruct struct = (Std_.pure (Value'read'params'newtype_ struct))
instance (Classes.ToStruct msg (Value'read'params msg)) where
    toStruct (Value'read'params'newtype_ struct) = struct
instance (Untyped.HasMessage (Value'read'params mut) mut) where
    message (Value'read'params'newtype_ struct) = (Untyped.message struct)
instance (Untyped.MessageDefault (Value'read'params mut) mut) where
    messageDefault msg = (Value'read'params'newtype_ <$> (Untyped.messageDefault msg))
instance (Classes.FromPtr msg (Value'read'params msg)) where
    fromPtr msg ptr = (Value'read'params'newtype_ <$> (Classes.fromPtr msg ptr))
instance (Classes.ToPtr s (Value'read'params (Message.Mut s))) where
    toPtr msg (Value'read'params'newtype_ struct) = (Classes.toPtr msg struct)
instance (Classes.Allocate s (Value'read'params (Message.Mut s))) where
    new msg = (Value'read'params'newtype_ <$> (Untyped.allocStruct msg 0 0))
instance (Basics.ListElem mut (Value'read'params mut)) where
    newtype List mut (Value'read'params mut)
        = Value'read'params'List_ (Untyped.ListOf mut (Untyped.Struct mut))
    listFromPtr msg ptr = (Value'read'params'List_ <$> (Classes.fromPtr msg ptr))
    toUntypedList (Value'read'params'List_ l) = (Untyped.ListStruct l)
    length (Value'read'params'List_ l) = (Untyped.length l)
    index i (Value'read'params'List_ l) = (do
        elt <- (Untyped.index i l)
        (Classes.fromStruct elt)
        )
instance (Basics.MutListElem s (Value'read'params (Message.Mut s))) where
    setIndex (Value'read'params'newtype_ elt) i (Value'read'params'List_ l) = (Untyped.setIndex elt i l)
    newList msg len = (Value'read'params'List_ <$> (Untyped.allocCompositeList msg 0 0 len))
newtype Value'read'results msg
    = Value'read'results'newtype_ (Untyped.Struct msg)
instance (Classes.FromStruct msg (Value'read'results msg)) where
    fromStruct struct = (Std_.pure (Value'read'results'newtype_ struct))
instance (Classes.ToStruct msg (Value'read'results msg)) where
    toStruct (Value'read'results'newtype_ struct) = struct
instance (Untyped.HasMessage (Value'read'results mut) mut) where
    message (Value'read'results'newtype_ struct) = (Untyped.message struct)
instance (Untyped.MessageDefault (Value'read'results mut) mut) where
    messageDefault msg = (Value'read'results'newtype_ <$> (Untyped.messageDefault msg))
instance (Classes.FromPtr msg (Value'read'results msg)) where
    fromPtr msg ptr = (Value'read'results'newtype_ <$> (Classes.fromPtr msg ptr))
instance (Classes.ToPtr s (Value'read'results (Message.Mut s))) where
    toPtr msg (Value'read'results'newtype_ struct) = (Classes.toPtr msg struct)
instance (Classes.Allocate s (Value'read'results (Message.Mut s))) where
    new msg = (Value'read'results'newtype_ <$> (Untyped.allocStruct msg 1 0))
instance (Basics.ListElem mut (Value'read'results mut)) where
    newtype List mut (Value'read'results mut)
        = Value'read'results'List_ (Untyped.ListOf mut (Untyped.Struct mut))
    listFromPtr msg ptr = (Value'read'results'List_ <$> (Classes.fromPtr msg ptr))
    toUntypedList (Value'read'results'List_ l) = (Untyped.ListStruct l)
    length (Value'read'results'List_ l) = (Untyped.length l)
    index i (Value'read'results'List_ l) = (do
        elt <- (Untyped.index i l)
        (Classes.fromStruct elt)
        )
instance (Basics.MutListElem s (Value'read'results (Message.Mut s))) where
    setIndex (Value'read'results'newtype_ elt) i (Value'read'results'List_ l) = (Untyped.setIndex elt i l)
    newList msg len = (Value'read'results'List_ <$> (Untyped.allocCompositeList msg 1 0 len))
get_Value'read'results'value :: ((Untyped.ReadCtx m msg)) => (Value'read'results msg) -> (m Std_.Double)
get_Value'read'results'value (Value'read'results'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
set_Value'read'results'value :: ((Untyped.RWCtx m s)) => (Value'read'results (Message.Mut s)) -> Std_.Double -> (m ())
set_Value'read'results'value (Value'read'results'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 0 0 0)
newtype Function msg
    = Function'newtype_ (Std_.Maybe (Untyped.Cap msg))
instance (Classes.FromPtr msg (Function msg)) where
    fromPtr msg ptr = (Function'newtype_ <$> (Classes.fromPtr msg ptr))
instance (Classes.ToPtr s (Function (Message.Mut s))) where
    toPtr msg (Function'newtype_ (Std_.Nothing)) = (Std_.pure Std_.Nothing)
    toPtr msg (Function'newtype_ (Std_.Just cap)) = (Std_.pure (Std_.Just (Untyped.PtrCap cap)))
newtype Function'call'params msg
    = Function'call'params'newtype_ (Untyped.Struct msg)
instance (Classes.FromStruct msg (Function'call'params msg)) where
    fromStruct struct = (Std_.pure (Function'call'params'newtype_ struct))
instance (Classes.ToStruct msg (Function'call'params msg)) where
    toStruct (Function'call'params'newtype_ struct) = struct
instance (Untyped.HasMessage (Function'call'params mut) mut) where
    message (Function'call'params'newtype_ struct) = (Untyped.message struct)
instance (Untyped.MessageDefault (Function'call'params mut) mut) where
    messageDefault msg = (Function'call'params'newtype_ <$> (Untyped.messageDefault msg))
instance (Classes.FromPtr msg (Function'call'params msg)) where
    fromPtr msg ptr = (Function'call'params'newtype_ <$> (Classes.fromPtr msg ptr))
instance (Classes.ToPtr s (Function'call'params (Message.Mut s))) where
    toPtr msg (Function'call'params'newtype_ struct) = (Classes.toPtr msg struct)
instance (Classes.Allocate s (Function'call'params (Message.Mut s))) where
    new msg = (Function'call'params'newtype_ <$> (Untyped.allocStruct msg 0 1))
instance (Basics.ListElem mut (Function'call'params mut)) where
    newtype List mut (Function'call'params mut)
        = Function'call'params'List_ (Untyped.ListOf mut (Untyped.Struct mut))
    listFromPtr msg ptr = (Function'call'params'List_ <$> (Classes.fromPtr msg ptr))
    toUntypedList (Function'call'params'List_ l) = (Untyped.ListStruct l)
    length (Function'call'params'List_ l) = (Untyped.length l)
    index i (Function'call'params'List_ l) = (do
        elt <- (Untyped.index i l)
        (Classes.fromStruct elt)
        )
instance (Basics.MutListElem s (Function'call'params (Message.Mut s))) where
    setIndex (Function'call'params'newtype_ elt) i (Function'call'params'List_ l) = (Untyped.setIndex elt i l)
    newList msg len = (Function'call'params'List_ <$> (Untyped.allocCompositeList msg 0 1 len))
get_Function'call'params'params :: ((Untyped.ReadCtx m msg)
                                   ,(Classes.FromPtr msg (Basics.List msg Std_.Double))) => (Function'call'params msg) -> (m (Basics.List msg Std_.Double))
get_Function'call'params'params (Function'call'params'newtype_ struct) = (do
    ptr <- (Untyped.getPtr 0 struct)
    (Classes.fromPtr (Untyped.message struct) ptr)
    )
set_Function'call'params'params :: ((Untyped.RWCtx m s)
                                   ,(Classes.ToPtr s (Basics.List (Message.Mut s) Std_.Double))) => (Function'call'params (Message.Mut s)) -> (Basics.List (Message.Mut s) Std_.Double) -> (m ())
set_Function'call'params'params (Function'call'params'newtype_ struct) value = (do
    ptr <- (Classes.toPtr (Untyped.message struct) value)
    (Untyped.setPtr ptr 0 struct)
    )
has_Function'call'params'params :: ((Untyped.ReadCtx m msg)) => (Function'call'params msg) -> (m Std_.Bool)
has_Function'call'params'params (Function'call'params'newtype_ struct) = (Std_.isJust <$> (Untyped.getPtr 0 struct))
new_Function'call'params'params :: ((Untyped.RWCtx m s)) => Std_.Int -> (Function'call'params (Message.Mut s)) -> (m (Basics.List (Message.Mut s) Std_.Double))
new_Function'call'params'params len struct = (do
    result <- (Classes.newList (Untyped.message struct) len)
    (set_Function'call'params'params struct result)
    (Std_.pure result)
    )
newtype Function'call'results msg
    = Function'call'results'newtype_ (Untyped.Struct msg)
instance (Classes.FromStruct msg (Function'call'results msg)) where
    fromStruct struct = (Std_.pure (Function'call'results'newtype_ struct))
instance (Classes.ToStruct msg (Function'call'results msg)) where
    toStruct (Function'call'results'newtype_ struct) = struct
instance (Untyped.HasMessage (Function'call'results mut) mut) where
    message (Function'call'results'newtype_ struct) = (Untyped.message struct)
instance (Untyped.MessageDefault (Function'call'results mut) mut) where
    messageDefault msg = (Function'call'results'newtype_ <$> (Untyped.messageDefault msg))
instance (Classes.FromPtr msg (Function'call'results msg)) where
    fromPtr msg ptr = (Function'call'results'newtype_ <$> (Classes.fromPtr msg ptr))
instance (Classes.ToPtr s (Function'call'results (Message.Mut s))) where
    toPtr msg (Function'call'results'newtype_ struct) = (Classes.toPtr msg struct)
instance (Classes.Allocate s (Function'call'results (Message.Mut s))) where
    new msg = (Function'call'results'newtype_ <$> (Untyped.allocStruct msg 1 0))
instance (Basics.ListElem mut (Function'call'results mut)) where
    newtype List mut (Function'call'results mut)
        = Function'call'results'List_ (Untyped.ListOf mut (Untyped.Struct mut))
    listFromPtr msg ptr = (Function'call'results'List_ <$> (Classes.fromPtr msg ptr))
    toUntypedList (Function'call'results'List_ l) = (Untyped.ListStruct l)
    length (Function'call'results'List_ l) = (Untyped.length l)
    index i (Function'call'results'List_ l) = (do
        elt <- (Untyped.index i l)
        (Classes.fromStruct elt)
        )
instance (Basics.MutListElem s (Function'call'results (Message.Mut s))) where
    setIndex (Function'call'results'newtype_ elt) i (Function'call'results'List_ l) = (Untyped.setIndex elt i l)
    newList msg len = (Function'call'results'List_ <$> (Untyped.allocCompositeList msg 1 0 len))
get_Function'call'results'value :: ((Untyped.ReadCtx m msg)) => (Function'call'results msg) -> (m Std_.Double)
get_Function'call'results'value (Function'call'results'newtype_ struct) = (GenHelpers.getWordField struct 0 0 0)
set_Function'call'results'value :: ((Untyped.RWCtx m s)) => (Function'call'results (Message.Mut s)) -> Std_.Double -> (m ())
set_Function'call'results'value (Function'call'results'newtype_ struct) value = (GenHelpers.setWordField struct ((Std_.fromIntegral (Classes.toWord value)) :: Std_.Word64) 0 0 0)
data Operator 
    = Operator'add 
    | Operator'subtract 
    | Operator'multiply 
    | Operator'divide 
    | Operator'unknown' Std_.Word16
    deriving(Std_.Show
            ,Std_.Read
            ,Std_.Eq
            ,Generics.Generic)
instance (Classes.IsWord Operator) where
    fromWord n = case ((Std_.fromIntegral n) :: Std_.Word16) of
        0 ->
            Operator'add
        1 ->
            Operator'subtract
        2 ->
            Operator'multiply
        3 ->
            Operator'divide
        tag ->
            (Operator'unknown' tag)
    toWord (Operator'add) = 0
    toWord (Operator'subtract) = 1
    toWord (Operator'multiply) = 2
    toWord (Operator'divide) = 3
    toWord (Operator'unknown' tag) = (Std_.fromIntegral tag)
instance (Std_.Enum Operator) where
    fromEnum x = (Std_.fromIntegral (Classes.toWord x))
    toEnum x = (Classes.fromWord (Std_.fromIntegral x))
instance (Basics.ListElem mut Operator) where
    newtype List mut Operator
        = Operator'List_ (Untyped.ListOf mut Std_.Word16)
    index i (Operator'List_ l) = (Classes.fromWord <$> (Std_.fromIntegral <$> (Untyped.index i l)))
    listFromPtr msg ptr = (Operator'List_ <$> (Classes.fromPtr msg ptr))
    toUntypedList (Operator'List_ l) = (Untyped.List16 l)
    length (Operator'List_ l) = (Untyped.length l)
instance (Classes.MutListElem s Operator) where
    setIndex elt i (Operator'List_ l) = (Untyped.setIndex (Std_.fromIntegral (Classes.toWord elt)) i l)
    newList msg size = (Operator'List_ <$> (Untyped.allocList16 msg size))