on 294ee07 help sign in
elk/src/AST/Module/Name.hs
68 lines 1.1 kB history raw
1{-# OPTIONS_GHC -Wall #-}
2{-# LANGUAGE OverloadedStrings #-}
3module AST.Module.Name where
5import Data.Binary
6import qualified Data.Text as Text
7import Data.Text (Text)
9import qualified Elm.Package as Package
12type Raw = Text -- must be non-empty
15data Canonical = Canonical
16 { _package :: Package.Name
17 , _module :: Raw
18 }
19 deriving (Eq, Ord, Show)
22inVirtualDom :: Raw -> Canonical
23inVirtualDom raw =
24 Canonical Package.virtualDom raw
27inCore :: Raw -> Canonical
28inCore raw =
29 Canonical Package.core raw
32inHtml :: Raw -> Canonical
33inHtml raw =
34 Canonical Package.html raw
37toString :: Raw -> String
38toString =
39 Text.unpack
42{-# INLINE toText #-}
43toText :: Raw -> Text
44toText name =
45 name
48canonicalToText :: Canonical -> Text
49canonicalToText (Canonical _ name) =
50 toText name
53isNative :: Raw -> Bool
54isNative name =
55 Text.isPrefixOf "Native." name
58canonicalIsNative :: Canonical -> Bool
59canonicalIsNative (Canonical _ name) =
60 isNative name
63instance Binary Canonical where
64 put (Canonical home name) =
65 put home >> put name
67 get =
68 Canonical <$> get <*> get