Advertisement
Guest User

Untitled

a guest
Jan 26th, 2018
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.38 KB | None | 0 0
  1. -- Is this API style a meme?
  2.  
  3. data Person name = Person { personName :: name }
  4.  
  5. data Login username password = Login { loginUsername :: username , loginPassword :: password }
  6.  
  7. data Customer id person login = Customer
  8. { customerId :: id
  9. , customerPerson :: person
  10. , customerLogin :: login
  11. }
  12.  
  13. data CustomerSvc m customer id person login name username password format = CustomerSvc
  14. { createCustomer :: id -> person -> login -> m (Maybe customer)
  15. , createPerson :: name -> m (Maybe person)
  16. , createLogin :: username -> password -> m (Maybe login)
  17.  
  18. , getCustomerId :: customer -> m id
  19. , getCustomerPerson :: customer -> m person
  20. , getCustomerLogin :: customer -> m login
  21.  
  22. , getPersonName :: person -> m name
  23.  
  24. , getLoginUsername :: login -> m username
  25. , getLoginPassword :: login -> m password
  26.  
  27. , setPerson :: person -> customer -> m (Maybe customer)
  28. , setLogin :: login -> customer -> m (Maybe customer)
  29.  
  30. , setPersonName :: name -> person -> m (Maybe person)
  31.  
  32. , setLoginUsername :: username -> login -> m (Maybe login)
  33. , setLoginPassword :: password -> login -> m (Maybe login)
  34.  
  35. , findCustomer :: id -> m (Maybe customer)
  36. , findCustomers :: m [customer]
  37.  
  38. , customerToFormat :: customer -> m format
  39. , customerFromFormat :: format -> m customer
  40.  
  41. , deleteCustomer :: customer -> m ()
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement