Skip to content

Commit

Permalink
add missing Capabilities instances
Browse files Browse the repository at this point in the history
  • Loading branch information
marcellussiegburg committed Mar 20, 2024
1 parent 8d85401 commit f39d525
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 1 deletion.
7 changes: 6 additions & 1 deletion src/Capabilities/Alloy.hs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ import qualified Language.Alloy.Call as Alloy (
getInstancesWith,
)

import Language.Alloy.Call as Alloy (
import Control.Monad.IO.Class (MonadIO (liftIO))
import Control.Monad.Output.Generic (GenericReportT)
import Language.Alloy.Call (
AlloyInstance,
CallAlloyConfig (..),
SatSolver (..),
Expand All @@ -22,6 +24,9 @@ class Monad m => MonadAlloy m where
instance MonadAlloy IO where
getInstancesWith = Alloy.getInstancesWith

instance MonadIO m => MonadAlloy (GenericReportT l o m) where
getInstancesWith config = liftIO . getInstancesWith config

getInstances
:: MonadAlloy m
=> Maybe Integer
Expand Down
8 changes: 8 additions & 0 deletions src/Capabilities/Cache.hs
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@ import qualified Data.ByteString.Lazy as LBS (fromStrict)
import qualified Data.ByteString.UTF8 as BS (fromString)

import Control.Monad (when)
import Control.Monad.IO.Class (MonadIO (liftIO))
import Control.Monad.Trans.Class (MonadTrans (lift))
import Control.Monad.Trans.Maybe (MaybeT (MaybeT, runMaybeT))
import Control.Monad.Output.Generic (GenericReportT)
import Data.ByteString (ByteString)
import Data.Digest.Pure.SHA (sha256, showDigest)
import Data.Maybe (fromJust)
Expand All @@ -31,6 +33,12 @@ instance MonadCache IO where
readShowFile = BS.readFile
writeShowFile = BS.writeFile

instance MonadIO m => MonadCache (GenericReportT l o m) where
appendCollisionFile f = liftIO . appendCollisionFile f
doesCacheExist = liftIO . doesCacheExist
readShowFile = liftIO . readShowFile
writeShowFile f = liftIO . writeShowFile f

{-|
Caches some file which is generated by using some 'Show'able input.
The textual representation (using 'show') of the input is stored in a file
Expand Down
6 changes: 6 additions & 0 deletions src/Capabilities/Diagrams.hs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ import qualified Graphics.SVGFonts.Fonts (lin)

import Modelling.Auxiliary.Diagrams (renderSVG)

import Control.Monad.IO.Class (MonadIO (liftIO))
import Control.Monad.Output.Generic (GenericReportT)
import Data.ByteString.Internal (w2c)
import Data.Data (Typeable)
import Diagrams.Backend.SVG (SVG)
Expand Down Expand Up @@ -72,6 +74,10 @@ instance MonadDiagrams IO where
svg <- groupSVG $ renderSVG (dims2D 400 400) g
T.writeFile file $ LT.toStrict svg

instance MonadIO m => MonadDiagrams (GenericReportT l o m) where
lin = liftIO lin
writeSvg file = liftIO . writeSvg file

data SVGOptions = SVGOptions
{ xmlns, height, iStrokeOpacity, viewBox, fontSize, width, xmlnsXlink, iStroke, version :: T.Text,
groups :: [SVGGroup] }
Expand Down
8 changes: 8 additions & 0 deletions src/Capabilities/Graphviz.hs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ module Capabilities.Graphviz (
) where

import qualified Diagrams.TwoD.GraphViz as GV

import Control.Monad.IO.Class (MonadIO (liftIO))
import Control.Monad.Output.Generic (GenericReportT)
import Data.GraphViz (
AttributeEdge,
AttributeNode,
Expand Down Expand Up @@ -39,3 +42,8 @@ instance MonadGraphviz IO where
|]
layoutGraph = GV.layoutGraph
layoutGraph' = GV.layoutGraph'

instance MonadIO m => MonadGraphviz (GenericReportT l o m) where
errorWithoutGraphviz = liftIO errorWithoutGraphviz
layoutGraph command = liftIO . layoutGraph command
layoutGraph' params command = liftIO . layoutGraph' params command
1 change: 1 addition & 0 deletions src/Modelling/CdOd/NameCdError.hs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ module Modelling.CdOd.NameCdError (
NameCdErrorTaskTextElement (..),
NumberOfReasons (..),
Reason (..),
Relevance (..),
TaskTextPart (..),
checkNameCdErrorConfig,
checkNameCdErrorInstance,
Expand Down

0 comments on commit f39d525

Please sign in to comment.