elm/src/Types/Hints.hs

29 lines
905 B
Haskell
Raw Normal View History

2012-04-19 06:32:10 +00:00
module Hints where
2012-04-19 06:32:10 +00:00
import Types
elementT = ADT "Element" []
n2e2e = LambdaT IntT $ LambdaT elementT elementT
str2elem = map (\f -> (f, LambdaT StringT elementT))
[ "image", "video", "text", "leftText", "centerText", "rightText" ]
textAttrs =
[ ("link", LambdaT StringT s2s), ("fontSize", LambdaT IntT s2s) ] ++
map (\f -> (f, s2s))
["header", "italic", "bold", "underline"
, "overline", "strikeThrough" ]
where s2s = LambdaT StringT StringT
allHints = str2elem ++ textAttrs ++
[ ("flowDown", LambdaT (ADT "List" [elementT]) elementT)
, ("flowRight", LambdaT (ADT "List" [elementT]) elementT)
, ("opacity", n2e2e)
, ("width", n2e2e)
, ("height", n2e2e)
, ("size", LambdaT IntT n2e2e)
, ("centerX", LambdaT elementT elementT)
]
typeHints = Map.fromList allHints