Haskell client implementation of mixpanel HTTP api
Implements major features of MixPanel HTTP API:
import Data.Aeson ( (.=) )import Data.Time.Clock ( getCurrentTime )import GHC.Exts ( fromList )import MixPanel ( Operation(Set), engage, track, alias, AuthToken(..), mkEnv-- reexports, newManager, tlsManagerSettings)main :: IO ()main = do-- setupmanager <- newManager tlsManagerSettingslet env = mkEnv (AuthToken "foobar") manager-- track a simple eventRight () <- track env "Played Video" mempty-- track an event with extra propertiesRight () <- track env "Played Video Unique per user"$ fromList [ "distinct_id" .= ("generated-id" :: String), "customProperty" .= True ]-- alias the userRight () <- alias env "generated-id" "user@example.com"-- profile engagementnow <- getCurrentTimeRight () <- engage env "user@example.com"$ Set (fromList [ "$created" .= now])putStrLn "All good!"
a) Why does it use Object/Array intemediate values from Data.Aeson?