hakaru-0.7.0: haskell/Language/Hakaru/Simplify.hs
{-# LANGUAGE TypeSynonymInstances
, FlexibleInstances
, FlexibleContexts
, DeriveDataTypeable
, CPP
, GADTs
, DataKinds
, OverloadedStrings
, ScopedTypeVariables
, TypeOperators
, RecordWildCards
#-}
{-# OPTIONS_GHC -Wall -fwarn-tabs #-}
----------------------------------------------------------------
-- 2016.04.28
-- |
-- Module : Language.Hakaru.Simplify
-- Copyright : Copyright (c) 2016 the Hakaru team
-- License : BSD3
-- Maintainer : wren@community.haskell.org
-- Stability : experimental
-- Portability : GHC-only
--
-- Take strings from Maple and interpret them in Haskell (Hakaru)
----------------------------------------------------------------
module Language.Hakaru.Simplify
( simplify, simplifyWithOpts
, simplify'
, simplifyDebug
) where
import Language.Hakaru.Syntax.ABT
import Language.Hakaru.Syntax.AST
import Language.Hakaru.Maple
import Language.Hakaru.Syntax.TypeCheck
----------------------------------------------------------------
simplify
:: forall abt a
. (ABT Term abt)
=> abt '[] a -> IO (abt '[] a)
simplify = simplifyWithOpts defaultMapleOptions
simplifyWithOpts
:: forall abt a
. (ABT Term abt)
=> MapleOptions () -> abt '[] a -> IO (abt '[] a)
simplifyWithOpts o = sendToMaple o{command=MapleCommand Simplify}
simplify'
:: forall abt
. (ABT Term (abt Term))
=> TypedAST (abt Term) -> IO (TypedAST (abt Term))
simplify' = sendToMaple' defaultMapleOptions{command="Simplify"}
simplifyDebug
:: forall abt a
. (ABT Term abt)
=> Bool
-> Int
-> abt '[] a
-> IO (abt '[] a)
simplifyDebug d t = sendToMaple
defaultMapleOptions{command=MapleCommand Simplify,
debug=d,timelimit=t}
----------------------------------------------------------------
----------------------------------------------------------- fin.