From 622119bed5f59aaf68481a1d06693f79bb9846c3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Hamal=20Dvo=C5=99=C3=A1k?= <mordae@anilinux.org>
Date: Wed, 4 Dec 2019 00:58:52 +0100
Subject: [PATCH] Introduce the Form type
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Jan Hamal Dvořák <mordae@anilinux.org>
---
 lib/Hikaru/Form.hs | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/lib/Hikaru/Form.hs b/lib/Hikaru/Form.hs
index 6883013..24e2ed1 100644
--- a/lib/Hikaru/Form.hs
+++ b/lib/Hikaru/Form.hs
@@ -13,6 +13,7 @@ module Hikaru.Form
   , FormElement(..)
   , FormNote(..)
   , FormT
+  , Form
   , newForm
   , getForm
   , postForm
@@ -94,6 +95,9 @@ where
     deriving (Functor, Applicative, Monad)
 
 
+  type Form l m a = Maybe a -> FormT l m (Maybe a)
+
+
   data Env
     = Env
       { envPrefix      :: [Text]
@@ -175,7 +179,7 @@ where
 
 
   inputField :: (Monad m, ToParam a, FromParam a)
-             => Text -> l -> Maybe a -> FormT l m (Maybe a)
+             => Text -> l -> Form l m a
   inputField name label orig = do
     fullName  <- makeName name
     textValue <- formParamMaybe fullName
@@ -193,7 +197,7 @@ where
 
 
   hiddenField :: (Monad m, ToParam a, FromParam a)
-              => Text -> Maybe a -> FormT l m (Maybe a)
+              => Text -> Form l m a
   hiddenField name orig = do
     fullName  <- makeName name
     textValue <- formParamMaybe fullName
@@ -208,7 +212,7 @@ where
 
 
   textField :: (Monad m, ToParam a, FromParam a)
-            => Text -> l -> Maybe a -> FormT l m (Maybe a)
+            => Text -> l -> Form l m a
   textField name label orig = do
     fullName  <- makeName name
     textValue <- formParamMaybe fullName
@@ -226,7 +230,7 @@ where
 
 
   selectField :: (Monad m, ToParam a, FromParam a, Eq a)
-              => Text -> l -> (a -> l) -> [a] -> Maybe a -> FormT l m (Maybe a)
+              => Text -> l -> (a -> l) -> [a] -> Form l m a
   selectField name label optlabel options orig = do
     fullName  <- makeName name
     value     <- formParamMaybe fullName
-- 
GitLab