on a587ff5 help sign in
elk/src/Types/TypeHints.hs
30 lines 954 B history raw
2module TypeHints (typeHints) where
4import qualified Data.Map as Map
5import Types
7elementT = ADT "Element" []
8n2e2e = LambdaT IntT $ LambdaT elementT elementT
10str2elem = map (\f -> (f, LambdaT StringT elementT))
11 [ "image", "video", "text", "leftText", "centerText", "rightText" ]
13textAttrs =
14 [ ("link", LambdaT StringT s2s), ("fontSize", LambdaT IntT s2s) ] ++
15 map (\f -> (f, s2s))
16 ["header", "italic", "bold", "underline"
17 , "overline", "strikeThrough" ]
18 where s2s = LambdaT StringT StringT
20allHints = str2elem ++ textAttrs ++
21 [ ("flowDown", LambdaT (ADT "List" [elementT]) elementT)
22 , ("flowRight", LambdaT (ADT "List" [elementT]) elementT)
23 , ("opacity", n2e2e)
24 , ("width", n2e2e)
25 , ("height", n2e2e)
26 , ("size", LambdaT IntT n2e2e)
27 , ("centerX", LambdaT elementT elementT)
28 ]
30typeHints = Map.fromList allHints