diff --git a/copar.cabal b/copar.cabal index 79582fdcd7efbcf0c866d9c187541f8bcea11836..481a0366eb9c2662dd89e45c4cb26131d9286f99 100644 --- a/copar.cabal +++ b/copar.cabal @@ -59,6 +59,7 @@ library , Copar.FunctorExpression.Sorts , Copar.FunctorExpression.Desorting , Copar.FunctorExpression.Transform + , Copar.CoalgebraPrinter , Copar.Coalgebra.Parser , Copar.Coalgebra.Parser.Class , Copar.Coalgebra.Parser.Internal diff --git a/src/Copar/Coalgebra/Printer.hs b/src/Copar/Coalgebra/Printer.hs new file mode 100644 index 0000000000000000000000000000000000000000..7e682bf59851d744830591d806309d1bd66bf8fb --- /dev/null +++ b/src/Copar/Coalgebra/Printer.hs @@ -0,0 +1,20 @@ +module Copar.Coalgebra.Printer + ( PrintMorphism(..) + , printFloat + ) where + +import qualified Data.Text.Lazy.Builder as Build +import Numeric (showFFloat) +import GHC.Float (double2Float) + +import Data.Vector as V + + +import Copar.RefinementInterface + +class PrintMorphism f where + printMorphismPoint :: f () -> F1 f -> [(Label f, Build.Builder)] -> Build.Builder + +-- | Prints a `Double` in a format expected by the lexer. +printFloat :: Double -> Build.Builder +printFloat d = Build.fromString $ showFFloat Nothing (double2Float d) ""