Holmusk / elm-street

:deciduous_tree: Crossing the road between Haskell and Elm

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Generation of function names isn't namespace aware.

turboMaCk opened this issue · comments

for code like (note the elmConstructFields):

newtype RichText =
    RichText Aeson.Value
    deriving stock (Show)
    deriving (FromJSON, ToJSON) via Aeson.Value


instance Elm RichText where
    toElmDefinition _ = DefType $
        ElmType
            { elmTypeName = "RichText"
            , elmTypeVars = []
            , elmTypeIsNewtype = False
            , elmTypeConstructors = ElmConstructor
                { elmConstructorName = "RichText"
                , elmConstructorFields = [ RefCustom $ TypeName "Json.Decode.Value" ]
                } :| []
            }

(and provided one can overcome #112 witch something like sed -e '/import Time exposing (Posix)/ a import Json.Decode' -i Generated/Types.elm)

elm street will generate decoder and encoding function like:

T.RichText x1 -> [("tag", E.string "RichText"), ("contents", encodeJson.Decode.Value x1)]

which is obviously not correct. Perhaps things like TypeName should contain qualified modules namespace.