This commit is contained in:
2026-05-10 17:24:58 -06:00
parent 3ce87bbb3d
commit 42b94606ba

View File

@@ -3,6 +3,7 @@
{-# LANGUAGE OverloadedStrings #-}
module Gyehoek.Sexp
( let_
, sexp
, nonempty
, nonEmptyGrammar
, encode
@@ -11,7 +12,7 @@ module Gyehoek.Sexp
where
import Data.Text (Text)
import Language.SexpGrammar as Sexp hiding (List, encode, decode)
import Language.SexpGrammar as Sexp hiding (List, encode, decode, iso)
import Language.SexpGrammar qualified as Sexp
import Language.SexpGrammar.Generic
import Data.InvertibleGrammar.Base qualified as IGB
@@ -20,11 +21,17 @@ import Data.InvertibleGrammar.Base ((:-)((:-)))
import Data.List.NonEmpty (NonEmpty ((:|)))
import Data.List (List)
import Data.Text.Encoding
import Data.Either (either)
import GHC.Generics (Generic)
import Control.Lens
encode :: SexpIso a => a -> Either _ Text
sexp :: SexpIso a => Iso' a Text
sexp = iso
(either error id . encode)
(either error id . decode)
encode :: SexpIso a => a -> Either String Text
encode = (_Right %~ decodeUtf8 . view strict) . Sexp.encode
decode :: SexpIso a => Text -> Either String a