    {-# LANGUAGE OverloadedStrings, Safe #-}
    module SMTLib2.Array where

    import SMTLib2.AST

    tArray :: Type -> Type -> Type
    tArray :: Type -> Type -> Type
    tArray Type
    x Type
    y = Ident -> [Type] -> Type
    TApp Ident
    "Array" [Type
    x,Type
    y]

    select :: Expr -> Expr -> Expr
    select :: Expr -> Expr -> Expr
    select Expr
    x Expr
    y = Ident -> [Expr] -> Expr
    app Ident
    "select" [Expr
    x,Expr
    y]

    store :: Expr -> Expr -> Expr -> Expr
    store :: Expr -> Expr -> Expr -> Expr
    store Expr
    x Expr
    y Expr
    z = Ident -> [Expr] -> Expr
    app Ident
    "store" [Expr
    x,Expr
    y,Expr
    z]