digitallyinduced / ihp

🔥 The fastest way to build type safe web apps. IHP is a new batteries-included web framework optimized for longterm productivity and programmer happiness

Home Page:https://ihp.digitallyinduced.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Not in scope: type constructor or class

geofflangenderfer opened this issue · comments

I get this error when creating a controller from http://localhost:8001/Generators

pretty confusing because I don't make any other change beyond clicking "Generate"

~/
devenv-shell-env ❯ ihp-new --version

ihp-new version: 1.3.0

~/
devenv-shell-env ❯ ghc --version
The Glorious Glasgow Haskell Compilation System, version 9.4.4

~/
devenv-shell-env ❯
17:38:16 devServer.1 | AsyncCancelled
17:38:16 devServer.1 | [ 7 of 21] Compiling Web.Types        ( Web/Types.hs, interpreted ) [Source file changed]
17:38:16 devServer.1 |
17:38:16 devServer.1 | Web/Types.hs:15:59: error:
17:38:16 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:16 devServer.1 |    |
17:38:16 devServer.1 | 15 |     | ShowHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:16 devServer.1 |    |                                                           ^^^^^^^^^^^^^^
17:38:16 devServer.1 |
17:38:16 devServer.1 | Web/Types.hs:17:59: error:
17:38:16 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:16 devServer.1 |    |
17:38:16 devServer.1 | 17 |     | EditHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:16 devServer.1 |    |                                                           ^^^^^^^^^^^^^^
17:38:16 devServer.1 |
17:38:16 devServer.1 | Web/Types.hs:18:61: error:
17:38:16 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:16 devServer.1 |    |
17:38:16 devServer.1 | 18 |     | UpdateHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:16 devServer.1 |    |                                                             ^^^^^^^^^^^^^^
17:38:16 devServer.1 |
17:38:16 devServer.1 | Web/Types.hs:19:61: error:
17:38:16 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:16 devServer.1 |    |
17:38:16 devServer.1 | 19 |     | DeleteHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:16 devServer.1 |    |                                                             ^^^^^^^^^^^^^^
17:38:16 devServer.1 | Failed, six modules loaded.
17:38:16 devServer.1 | [ 7 of 21] Compiling Web.Types        ( Web/Types.hs, interpreted )
17:38:16 devServer.1 |
17:38:16 devServer.1 | Web/Types.hs:15:59: error:
17:38:16 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:16 devServer.1 |    |
17:38:16 devServer.1 | 15 |     | ShowHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:16 devServer.1 |    |                                                           ^^^^^^^^^^^^^^
17:38:16 devServer.1 |
17:38:16 devServer.1 | Web/Types.hs:17:59: error:
17:38:16 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:16 devServer.1 |    |
17:38:16 devServer.1 | 17 |     | EditHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:16 devServer.1 |    |                                                           ^^^^^^^^^^^^^^
17:38:16 devServer.1 |
17:38:16 devServer.1 | Web/Types.hs:18:61: error:
17:38:16 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:16 devServer.1 |    |
17:38:16 devServer.1 | 18 |     | UpdateHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:16 devServer.1 |    |                                                             ^^^^^^^^^^^^^^
17:38:16 devServer.1 |
17:38:16 devServer.1 | Web/Types.hs:19:61: error:
17:38:16 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:16 devServer.1 |    |
17:38:16 devServer.1 | 19 |     | DeleteHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:16 devServer.1 |    |                                                             ^^^^^^^^^^^^^^
17:38:16 devServer.1 | Failed, six modules loaded.
17:38:16 devServer.1 | [ 7 of 21] Compiling Web.Types        ( Web/Types.hs, interpreted )
17:38:16 devServer.1 |
17:38:16 devServer.1 | Web/Types.hs:15:59: error:
17:38:16 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:16 devServer.1 |    |
17:38:16 devServer.1 | 15 |     | ShowHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:16 devServer.1 |    |                                                           ^^^^^^^^^^^^^^
17:38:16 devServer.1 |
17:38:16 devServer.1 | Web/Types.hs:17:59: error:
17:38:16 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:16 devServer.1 |    |
17:38:16 devServer.1 | 17 |     | EditHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:16 devServer.1 |    |                                                           ^^^^^^^^^^^^^^
17:38:16 devServer.1 |
17:38:16 devServer.1 | Web/Types.hs:18:61: error:
17:38:16 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:16 devServer.1 |    |
17:38:16 devServer.1 | 18 |     | UpdateHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:16 devServer.1 |    |                                                             ^^^^^^^^^^^^^^
17:38:16 devServer.1 |
17:38:16 devServer.1 | Web/Types.hs:19:61: error:
17:38:16 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:16 devServer.1 |    |
17:38:16 devServer.1 | 19 |     | DeleteHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:16 devServer.1 |    |                                                             ^^^^^^^^^^^^^^
17:38:16 devServer.1 | Failed, six modules loaded.
17:38:16 devServer.1 | [ 7 of 21] Compiling Web.Types        ( Web/Types.hs, interpreted )
17:38:16 devServer.1 |
17:38:16 devServer.1 | Web/Types.hs:15:59: error:
17:38:16 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:16 devServer.1 |    |
17:38:16 devServer.1 | 15 |     | ShowHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:16 devServer.1 |    |                                                           ^^^^^^^^^^^^^^
17:38:16 devServer.1 |
17:38:16 devServer.1 | Web/Types.hs:17:59: error:
17:38:16 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:16 devServer.1 |    |
17:38:16 devServer.1 | 17 |     | EditHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:16 devServer.1 |    |                                                           ^^^^^^^^^^^^^^
17:38:16 devServer.1 |
17:38:16 devServer.1 | Web/Types.hs:18:61: error:
17:38:16 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:17 devServer.1 |    |
17:38:17 devServer.1 | 18 |     | UpdateHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:17 devServer.1 |    |                                                             ^^^^^^^^^^^^^^
17:38:17 devServer.1 |
17:38:17 devServer.1 | Web/Types.hs:19:61: error:
17:38:17 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:17 devServer.1 |    |
17:38:17 devServer.1 | 19 |     | DeleteHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:17 devServer.1 |    |                                                             ^^^^^^^^^^^^^^
17:38:17 devServer.1 | Failed, six modules loaded.
17:38:17 devServer.1 | [ 7 of 21] Compiling Web.Types        ( Web/Types.hs, interpreted )
17:38:17 devServer.1 |
17:38:17 devServer.1 | Web/Types.hs:15:59: error:
17:38:17 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:17 devServer.1 |    |
17:38:17 devServer.1 | 15 |     | ShowHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:17 devServer.1 |    |                                                           ^^^^^^^^^^^^^^
17:38:17 devServer.1 |
17:38:17 devServer.1 | Web/Types.hs:17:59: error:
17:38:17 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:17 devServer.1 |    |
17:38:17 devServer.1 | 17 |     | EditHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:17 devServer.1 |    |                                                           ^^^^^^^^^^^^^^
17:38:17 devServer.1 |
17:38:17 devServer.1 | Web/Types.hs:18:61: error:
17:38:17 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:17 devServer.1 |    |
17:38:17 devServer.1 | 18 |     | UpdateHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:17 devServer.1 |    |                                                             ^^^^^^^^^^^^^^
17:38:17 devServer.1 |
17:38:17 devServer.1 | Web/Types.hs:19:61: error:
17:38:17 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:17 devServer.1 |    |
17:38:17 devServer.1 | 19 |     | DeleteHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:17 devServer.1 |    |                                                             ^^^^^^^^^^^^^^
17:38:17 devServer.1 | Failed, six modules loaded.
17:38:17 devServer.1 | [ 7 of 21] Compiling Web.Types        ( Web/Types.hs, interpreted )
17:38:17 devServer.1 |
17:38:17 devServer.1 | Web/Types.hs:15:59: error:
17:38:17 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:17 devServer.1 |    |
17:38:17 devServer.1 | 15 |     | ShowHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:17 devServer.1 |    |                                                           ^^^^^^^^^^^^^^
17:38:17 devServer.1 |
17:38:17 devServer.1 | Web/Types.hs:17:59: error:
17:38:17 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:17 devServer.1 |    |
17:38:17 devServer.1 | 17 |     | EditHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:17 devServer.1 |    |                                                           ^^^^^^^^^^^^^^
17:38:17 devServer.1 |
17:38:17 devServer.1 | Web/Types.hs:18:61: error:
17:38:17 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:17 devServer.1 |    |
17:38:17 devServer.1 | 18 |     | UpdateHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:17 devServer.1 |    |                                                             ^^^^^^^^^^^^^^
17:38:17 devServer.1 |
17:38:17 devServer.1 | Web/Types.hs:19:61: error:
17:38:17 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:17 devServer.1 |    |
17:38:17 devServer.1 | 19 |     | DeleteHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:17 devServer.1 |    |                                                             ^^^^^^^^^^^^^^
17:38:17 devServer.1 | Failed, six modules loaded.
17:38:17 devServer.1 | [ 7 of 21] Compiling Web.Types        ( Web/Types.hs, interpreted )
17:38:17 devServer.1 |
17:38:17 devServer.1 | Web/Types.hs:15:59: error:
17:38:17 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:17 devServer.1 |    |
17:38:17 devServer.1 | 15 |     | ShowHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:17 devServer.1 |    |                                                           ^^^^^^^^^^^^^^
17:38:17 devServer.1 |
17:38:17 devServer.1 | Web/Types.hs:17:59: error:
17:38:17 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:17 devServer.1 |    |
17:38:17 devServer.1 | 17 |     | EditHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:17 devServer.1 |    |                                                           ^^^^^^^^^^^^^^
17:38:17 devServer.1 |
17:38:17 devServer.1 | Web/Types.hs:18:61: error:
17:38:17 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:17 devServer.1 |    |
17:38:17 devServer.1 | 18 |     | UpdateHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:17 devServer.1 |    |                                                             ^^^^^^^^^^^^^^
17:38:17 devServer.1 |
17:38:17 devServer.1 | Web/Types.hs:19:61: error:
17:38:17 devServer.1 |     Not in scope: type constructor or class ‘HardwareVendor’
17:38:17 devServer.1 |    |
17:38:17 devServer.1 | 19 |     | DeleteHardwareVendorAction { hardwareVendorId :: !(Id HardwareVendor) }
17:38:17 devServer.1 |    |                                                             ^^^^^^^^^^^^^^
17:38:17 devServer.1 | Failed, six modules loaded.

I didn't create the HardwareVendor table. The error resolved after creating it:

diff --git a/Application/Schema.sql b/Application/Schema.sql
index b743c66..5c22cff 100644
--- a/Application/Schema.sql
+++ b/Application/Schema.sql
@@ -1 +1,4 @@
 -- Your database schema. Use the Schema Designer at http://localhost:8001/ to add some tables.
+CREATE TABLE hardwarevendors (
+    id UUID DEFAULT uuid_generate_v4() PRIMARY KEY NOT NULL
+);