newtype ~{handlerEntityName} = ~{handlerEntityName} { ~{indent 4 $ intercalate ",\n" $ map field $ handlerOutputFields m h}} instance decodeJson~{handlerEntityName} :: DecodeJson ~{handlerEntityName} where decodeJson json = do x <- decodeJson json ~{indent 8 $ concatMap decodeJsonExtract $ handlerOutputFields m h} pure $ ~{handlerEntityName} { ~{indent 12 $ intercalate ",\n" $ map decodeJsonAssign $ handlerOutputFields m h} } ~{lowerFirst handlerEntityName} :: forall e. Affjax.URL~{concatMap (prepend " -> ") $ map snd $ routePathParams r} -> Array RH.RequestHeader -> URIT.Query -> Aff.Aff (ajax :: Affjax.AJAX | e) (Either String (Result ~{handlerEntityName})) ~{lowerFirst handlerEntityName} baseUrl~{concatMap (prepend " ") $ map fst $ routePathParams r} headers query = do r <- Affjax.affjax $ Affjax.defaultRequest { url = baseUrl~{routePathUrl r} ++ URIQ.printQuery query, headers = headers } pure $ jsonParser r.response >>= decodeJson