module HIndent.Ast.Declaration.Foreign.Safety ( Safety , mkSafety ) where import qualified GHC.Types.ForeignCall as GHC import HIndent.Ast.NodeComments import {-# SOURCE #-} HIndent.Pretty import HIndent.Pretty.Combinators import HIndent.Pretty.NodeComments data Safety = Safe | Interruptible | Unsafe instance CommentExtraction Safety where nodeComments :: Safety -> NodeComments nodeComments Safety _ = [LEpaComment] -> [LEpaComment] -> [LEpaComment] -> NodeComments NodeComments [] [] [] instance Pretty Safety where pretty' :: Safety -> Printer () pretty' Safety Safe = HasCallStack => String -> Printer () String -> Printer () string String "safe" pretty' Safety Interruptible = HasCallStack => String -> Printer () String -> Printer () string String "interruptible" pretty' Safety Unsafe = HasCallStack => String -> Printer () String -> Printer () string String "unsafe" mkSafety :: GHC.Safety -> Safety mkSafety :: Safety -> Safety mkSafety Safety GHC.PlaySafe = Safety Safe mkSafety Safety GHC.PlayInterruptible = Safety Interruptible mkSafety Safety GHC.PlayRisky = Safety Unsafe